Pomoc s displejem

Dotazy na technické problémy, vlastní řešení technických problémů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
zoufalec
Příspěvky: 5
Registrován: 18 lis 2014, 00:00

Pomoc s displejem

#1 Příspěvek od zoufalec »

Dobrý den, prosí o radu. Sestavila jsem kodový zámek s displejem http://extremeelectronics.co.in/avr-pro ... code-lock/. Zámek funguje ale displej ne, pouze bliká čtvereček. Neporadil by někdo kde jsem udělala chybu?Děkuji

Název vlákna upraven.Viz PRAVIDLA, odst.7a)
Hill
Uživatelský avatar
Jirka525
Příspěvky: 325
Registrován: 22 kvě 2013, 00:00
Bydliště: Psáry JN79GW

#2 Příspěvek od Jirka525 »

Odpověď na tuto otázku, to je spíš práce pro křišťálovou kouli. Tam se může vyskytovat jakákoli závada od plus nekonečna do mínus nekonečna. Předpokládám, že jsi udělala všechny kroky, tj. osadila desku, vyzkoušela, zkompilovala a nahrála program. Teď tedy začíná ta správná bastlířská práce. Pokud klávesnice funguje a nefunguje displej, tak bych v 1. kroku doporučoval provést vizuální kontrolu nejlépe s lupou, jestli jsou všechny vývody správně zaletovány, jestli tam nejsou zkraty, přerušený tišťák a pod. Zvláštní pozornost doporučuji především řídícím pinům mezi CPU a displejem.
Ve 2. kroku bych doporučoval přibližně to samé ale s použitím ohm metru.
Ve 3. kroku bych zkontroloval staticky napětí na důležitých pinech. (napájení jednotlivých součástek a pod.)
O dalším se můžeme bavit podle výsledku těchto třech kroků.
Jirka
Uživatelský avatar
Kurrur
Příspěvky: 116
Registrován: 23 kvě 2013, 00:00
Bydliště: Ostrava
Kontaktovat uživatele:

#3 Příspěvek od Kurrur »

Já bát tebou spíše to řeším přes arduino ;) asi před 2 lety jsem si ho koupil že to bude taková hračička na hraní, ale ono se z toho vyklubala opravdu užitečná věc ;). Mimochodem na internetu je plno návodů na kódový zámek pomocí arduina.
Uživatelský avatar
Hill
Administrátor
Příspěvky: 21233
Registrován: 10 zář 2004, 02:00
Bydliště: Jičín, Český ráj

#4 Příspěvek od Hill »

Kurrur: netahej sem nesmysly. Ta chyba může být jak hardwarová, tak softwarová - nefunguje-li komunikace s displejem, nebo displej nezobrazuje z jiného důvodu, je úplně jedno, jestli tam má atmegu nebo něco jiného.
Zámek chodí, čili dělá, co má. Atmega zjevně funguje.
Neodbočujme tedy, prosím, k jinému procesoru.
Uživatelský avatar
Kurrur
Příspěvky: 116
Registrován: 23 kvě 2013, 00:00
Bydliště: Ostrava
Kontaktovat uživatele:

#5 Příspěvek od Kurrur »

Žádné nesmysly tady netahám pouze říkám svůj názor že bych to spíše řešil přes arduino. Myslím si že SW chyba to nebude jestliže zámek funguje a program je správně nahraný.
Uživatelský avatar
Hydrawerk
Příspěvky: 8514
Registrován: 13 pro 2011, 00:00
Bydliště: Earth

#6 Příspěvek od Hydrawerk »

Chce to zjistit, jestli signály přicházejí na displej. Zkontroluj je osciloskopem.
Uživatelský avatar
Chenzee
Příspěvky: 464
Registrován: 26 čer 2007, 00:00
Bydliště: Vysočina

#7 Příspěvek od Chenzee »

začni propojem MCU - displej. Myslím vodivé spojení, zkraty mezi piny či jiným cestám na DPS. Taky zkontroluj, jak jsou zapojeny piny displeje D0-D3. Kdyžtak je dát na mínus.
Žádnej učenej z nebe nespadl ...
Uživatelský avatar
Zaky
Příspěvky: 7050
Registrován: 30 říj 2010, 00:00
Bydliště: Praha

#8 Příspěvek od Zaky »

Nejprve bych se zaměřil na ověření, že rozhoz pinů použitého displeje odpovídá rozhozu na DPS, displeje různých výrobců to mohou mít jinak. Datasheet použitého displeje by měl napovědět. Potom ta kontrola na zkraty a přerušené dráhy od MCU k displeji. Pokud by vše selhávalo a propojení se jevilo v pořádku, stálo by za pokus zkusit použít displej, který má zezadu naletované IO (hd44780 a demuxy) a ne zalité kapky od Číňana, ty s kapkami jsou sice kompatibilní, ale jak dobře, to asi neví nikdo, ikdyž v mých projektech běžně fungují OK.
Uživatelský avatar
mtajovsky
Příspěvky: 3728
Registrován: 19 zář 2007, 00:00
Bydliště: Praha

#9 Příspěvek od mtajovsky »

Kurrur píše:... pouze říkám svůj názor že bych to spíše řešil přes arduino...
Co byste řešil? Tady se řeší, proč ta stavebnice nezobrazuje. Jak může Arduino odhalit, proč ten display nezobrazuje? BTW, je něco, co byste přes Arduino NEřešil?
Naposledy upravil(a) mtajovsky dne 13 bře 2015, 20:24, celkem upraveno 1 x.
Uživatelský avatar
lesana87
Příspěvky: 4397
Registrován: 20 zář 2014, 00:00

#10 Příspěvek od lesana87 »

Pokud na displeji bliká čtvereček, tak musel být (možná nedobře) zinicializován, jinak by svítil celý první řádek.
Uživatelský avatar
Kurrur
Příspěvky: 116
Registrován: 23 kvě 2013, 00:00
Bydliště: Ostrava
Kontaktovat uživatele:

#11 Příspěvek od Kurrur »

Ježiši lidi já se tady nebavím o tom že arduino by tu chybu vyřešilo .. jen říkám svůj názor že se kódový zámek dá udělat i přes to arduino... Děláte jako bych tady napsal nevím co. Asi se budete divit, ale jsou věci které bych přes arduino neřešil !

Zaky v těch kapkách chyba nebude. Zaměřil bych se na to co co napsal Jirka525
Uživatelský avatar
Hydrawerk
Příspěvky: 8514
Registrován: 13 pro 2011, 00:00
Bydliště: Earth

#12 Příspěvek od Hydrawerk »

zoufalec
Dej prosím fotku celého zařízení.
Uživatelský avatar
mtajovsky
Příspěvky: 3728
Registrován: 19 zář 2007, 00:00
Bydliště: Praha

#13 Příspěvek od mtajovsky »

Díval jsem se do souboru lcd.c a jsou tam dosti krátké čekací doby, když se dělá puls na signálu ENABLE do řadiče LCD. Vidím tam 1 µs jako délka impulsu a taky 1µ jako přesah pro signál register select. Na čínských řadičích mám vyzkoušené, že je potřeba tak 20 µs. Taky datasheet HD44780 uvádí dobu pro operaci většinou 37 µs.

Tohle funguje spolehlivě:

Kód: Vybrat vše

void LCD_send(u08 data, u08 rs)
{
  LCD_clock(data >> 4  , rs);                              // send upper nibbel
  LCD_clock(data & 0x0F, rs);                              // send lower nibbel
}

void LCD_clock(u08 data, u08 rs)
{
    LCD_DATA_D |= 0xF0;
    LCD_CTRL_D |= _BV(LCD_EN)|_BV(LCD_RS);                 // initalize ports

    if(rs == 1)                                           // RS bit ?
        sbi(LCD_CTRL_O, LCD_RS);                         // set RS line

    LCD_DATA_O = (data << 4) | (LCD_DATA_O & 0x0F);          // prepare data

// --------------------- send data ------------------------

    sbi(LCD_CTRL_O,LCD_EN);                                // set EN signal
    _delay_us(20);                                        // wait
    cbi(LCD_CTRL_O,LCD_EN);                                // reset EN signal
    _delay_us(20);                                        // wait
    cbi(LCD_CTRL_O,LCD_RS);                                // reset RS line
}
Uživatelský avatar
Zaky
Příspěvky: 7050
Registrován: 30 říj 2010, 00:00
Bydliště: Praha

#14 Příspěvek od Zaky »

Kurrur píše:Zaky v těch kapkách chyba nebude. Zaměřil bych se na to co co napsal Jirka525


Jak píše pan Tajovský, rychlé časování může a dost možná i bude problém, uváděl jsem to na posledním místě, když se na nic jiného nepřijde a bude to právě těmi kapkami :-) Když se dá sáhnout do kódu, lze tento problém vyřešit i s použitím stávajícího displeje.
Uživatelský avatar
Kurrur
Příspěvky: 116
Registrován: 23 kvě 2013, 00:00
Bydliště: Ostrava
Kontaktovat uživatele:

#15 Příspěvek od Kurrur »

Autor projektu uvádí v seznamu součástek odkaz na obchod právě s displejem který má řadič HD44780. Zajímavé je že jemu zařízení funguje s řadičem HD44780 a s tou samou knihovnou kterou používá i zoufalec.
Odpovědět

Zpět na „Poradna“