AVR a Nokia 5110 display
Napsal: 07 čer 2015, 19:19
Dobrý den,
před nedávnem jsem přešel z Arduina na holé AVRko a s ním zkouším rozchodit display ze staré Nokie 5110. Kdysi jsem ho zprovoznil na Arduinu, kde fungovalo jako po másle, proto jsem se rozhodl přepsat starý C++ Arduino kód do C kódu pro Attiny2313, který běží na frekvenci 1MHz (interní osc.). Celý obvod, včetně displaye, je napájen ze zdroje o 5V. Tady je zapojení, snad se v něm vyznáte:
5V ... VCC (jak jsem řekl, napájím z 5V)
GND ... GND
PB0 ... odpor 1k ... SCE
PB1 ... odpor 10k ... RST
PB2 ... odpor 10k ... D/C
PB3 ... odpor 10k ... DIN (nebo DNK nebo MOSI)
PB4 ... odpor 10k ... SCLK
5V ... odpor 330 ... LED
Kód do AVR jsem z Arduina doslova opisoval. Nebyl jsem si jist, jestli mi bude fungovat komunikace, při které se nějakým způsobem shiftují data. Celé mi to přijde velice dřevorubecké. To byl důvod mého strachu. Konkrétně jsem se bál příkazu shiftOut. Našel jsem si ale zdrojáky Arduina, které vám přidám do přílohy pod jménem wiring_shift.c, a tam jsem to vykoukal. Nyní by komunikace měla fungovat. Teď už ale k mému problému.
Na začátku komunikace se display inicializuje a musí se do něj nastavit nějaké nastavení. To mi funguje (ale nevim jestli vše). Ověřil jsem si to tak, že jsem příkazem writedata(0x09, 0); zapnul všechny pixely, takže byly tmavé. Pak jsem se ale pokoušel odeslat do lcd nějaká data na zobrazení (třeba příkaz writedata(0xFF, 1); ). To už ale nefunguje a nemám ponětí proč. Nevěděl by někdo co s tím?
Jinak zdroják v C jsem si různě zjednodušil, jsem totiž líný psát PORTB |= 1<<rst; tak jsem si na to udělal funkci high(rst); ... zlaté Picaxe
Děkuji za Váš čas a přeji hezký den
před nedávnem jsem přešel z Arduina na holé AVRko a s ním zkouším rozchodit display ze staré Nokie 5110. Kdysi jsem ho zprovoznil na Arduinu, kde fungovalo jako po másle, proto jsem se rozhodl přepsat starý C++ Arduino kód do C kódu pro Attiny2313, který běží na frekvenci 1MHz (interní osc.). Celý obvod, včetně displaye, je napájen ze zdroje o 5V. Tady je zapojení, snad se v něm vyznáte:
5V ... VCC (jak jsem řekl, napájím z 5V)
GND ... GND
PB0 ... odpor 1k ... SCE
PB1 ... odpor 10k ... RST
PB2 ... odpor 10k ... D/C
PB3 ... odpor 10k ... DIN (nebo DNK nebo MOSI)
PB4 ... odpor 10k ... SCLK
5V ... odpor 330 ... LED
Kód do AVR jsem z Arduina doslova opisoval. Nebyl jsem si jist, jestli mi bude fungovat komunikace, při které se nějakým způsobem shiftují data. Celé mi to přijde velice dřevorubecké. To byl důvod mého strachu. Konkrétně jsem se bál příkazu shiftOut. Našel jsem si ale zdrojáky Arduina, které vám přidám do přílohy pod jménem wiring_shift.c, a tam jsem to vykoukal. Nyní by komunikace měla fungovat. Teď už ale k mému problému.
Na začátku komunikace se display inicializuje a musí se do něj nastavit nějaké nastavení. To mi funguje (ale nevim jestli vše). Ověřil jsem si to tak, že jsem příkazem writedata(0x09, 0); zapnul všechny pixely, takže byly tmavé. Pak jsem se ale pokoušel odeslat do lcd nějaká data na zobrazení (třeba příkaz writedata(0xFF, 1); ). To už ale nefunguje a nemám ponětí proč. Nevěděl by někdo co s tím?
Jinak zdroják v C jsem si různě zjednodušil, jsem totiž líný psát PORTB |= 1<<rst; tak jsem si na to udělal funkci high(rst); ... zlaté Picaxe
Děkuji za Váš čas a přeji hezký den