Fubarino-tävling: 1980: s CD-spelare med MPD

[Ronald] var tvungen att skrymma för att få sitt inlägg i, men vi är glada att han gjorde det. Hans demo-video visar skärmen på en 1980-cd-spelare som arbetar med Music Player Daemon. Det är verkligen bara den ursprungliga skärmen själv som fungerar, men jobbet är ännu inte färdigt. Men är tillräckligt mycket för att visa vår webbadress när ett spår når 22:00-märket.

Skärmen drivs av ett ATMEGA32-chip som använder en USB-anslutning för att få kommandon från datorn som kör MPD. [Ronald] hade problem med att räkna ut exakt hur man skickade int-värden över USB så han hackade sitt eget protokoll som bara utnyttjar LSB av varje byte som kommer över bussen. Efter pausen kan du se videon, såväl som checkat ut den beskrivning som han inkluderade med hans inlämning. Det finns också en kodpaket som erbjuds här.

Detta är en post i Fubarino-tävlingen för en möjlighet på en av de 20 Fubarino SD-kort som Microchip har lagt upp som priser!

Det slutliga målet är att ha en MPD (Music Player Daemon) -baserad spelare i en 1980-skivans CD-spelare (Working), med hjälp av den ursprungliga LCD-lkd (Working), som kan använda den ursprungliga fjärranslutningen (Arbeta), som kan spela DVD-skivor (pågår pågår), saker så.

Min plan är att sätta scheman såväl som källa på internet, liksom skicka den till obdev.at eftersom jag tror att det är en ny metod att utnyttja sin USB-drivrutin. Eftersom jag fortfarande etablerar datorns programvara, hade jag inte gjort ännu. Jag hörde bara om Fubarino-tävlingen igår, liksom jag trodde att det skulle vara möjligt att mod mitt projekt, så jag gjorde det.
Först misslyckades jag med att komma ihåg schematiken. De är ganska lätta: det är en allmän atmega32 (ingen atmega8, med tanke på att jag främst utnyttjar de som jag misstog den nedan) HID bootloader packad enhet. Två stift av portd används för att driva bakplanet. Fyra av fem 1,1K 1% motstånd används som dra upp / ner motstånd för att producera den 2,5V-nivån som behövs för en två-backplane LCD-konfiguration.

Lite bakgrund. För att köra en generisk LCD-skärm med två backplaner behövs två kvadratvågor med mellannivå, tillsammans med fyrkantiga vågor för segmenten (t.ex. Figur 2 på http://www.freescale.com/webapp/ps/site/overview.jsp? Kod = 784_lpbb_lcdtips). Tidpunkten måste vara exakt, för att stoppa LCD-segmenten för nedbrytning. Vilken typ av DC-balans som helst som är tillräckligt med kan döda det …

Porta, Portb, Portc är alla kopplade till segmenten. En extra PIN-kod på portd är kopplad till avsnittet “Play” (det verkar enda backplane), ett avsnitt är kopplat till alla “off” -segment (jag hade inte tillräckliga stift för att köra alla segment).

Eftersom jag inte förstod exakt hur man skickade 0x00 tecken som utnyttjar USB, gjorde jag mitt eget protokoll genom att skicka LSBIT i de 2 × 3 data byte som de allra första tre av en fjärde data byte, liksom untangel de i Atmegakoden . De allra tre första data byte har alla “1” som LSB.

I min jobbstil fattade jag ett beslut att göra mycket av logiken på PC-sidan, samt utnyttja Atmega mycket mer eller mindre som en rambuffer. Det gjorde det svårare för mig att mod det för att visa lite text, liksom att utföra påskäggsutlösaren.
För att visa texten (den fullständiga http://hackaday.com var omöjligt på denna LCD, så jag gjorde det närmaste jag kunde :-)), jag utnyttjade PC-klienten först för att producera hex-koderna i karaktärerna, som Tja, sedan kopierade de i Atmega-källan, anpassade LSB är upp tills det såg bra ut.

Och det handlar om allt jag kan göra före tidsfristen … Jag hoppades verkligen på att det här är allt i koden, men ah väl … Det kan vara tillräckligt för dig att förstå.

Påskägget är i videon klockan 1:06.

Vänliga Hälsningar,
Ronald

Leave a Reply

Your email address will not be published. Required fields are marked *