Po resetu mikrokontroléru přestane fungovat připojené LCD

Ahoj , nevíte někdo v čem by mohla být chyba?
Používám display 2x16 znaků , když zapnu napájení tak mi lcd normálně pracuje , ale když zmáčknu reset , tak se lcd zhroutí a místo znaků se mi objeví čverečky na tom daném řádku , který mi ještě před resetem ukazoval znaky.
částečně jsem přišel na to jak se tomuto jevu , který vzniká po resetu vyhnout , ale nevím jestli je to správné řešení.
řešení je , že všechny piny u lcd , které jsou připojeny k zemi tak je spínám přes tranzistor pomocí PICu a lcd se po resetu chová stejně jako po zapnutí napájení
díky ahoj

:arrow_right: administrator: přejmenováno z "lcd display"

Dej si spoždovací smyčku, třeba 2 vteřiny, mezi sepnutí tranzistoru a incializaci LCD. Pokud to pomůže, pak tu spoždovací smyčku můžeš zkoušet zkracovat až na únosnou mez. Akorát nechápu, proč to spínáš tranzistorem, když jsou při 4bit komunikaci připojené trvale k zemi.

máš pravdu , piny DB0 - DB3 jsem připojil na zem , k zemi mám připojený i piny R/W.Zjistil jsem , že když připojím pin VSS na zem tak mi dělá ten haluz po tom resetu , jak jsem psal.ALe když připojím pin VSS přes trazistor nebo ho nezapojím vůbec , tak mi display normálně zobrazuje i po resetu:)
takže jsem z toho trochu vedle , jak ta jedle…

Hoď jsem schéma.

VSS a VDD by jsi měl mít připojený pořád, je to napájení displeje. DB0-DB3 + RW by měli být připojený taky pořád na VSS, tedy zem. A pokud nemáš chybu v programu a dodržuješ časy dané výrobcem, tak to musí fungovat.

Ten PIC a i displej potřebují nějaký čas po zapnutí na to, aby se “vzpamatovali” z toho šoku, že mají něco dělat. :smiley: :smiley:

Používám PIC18F4550 , DB0 - DB3 jsem uzemnil , R-W taky uzemnil , piny RS na RB4 a E mám na RB3 , pin VDD mám na napájení pin V0 mám přes trimr a zapojený na tranzistor.Ten V0 mám přes tranzistor proto , když zmáčknu reset tak aby se mi vypnul display a nezůstávaly tam předchozí znaky.
No a pin VSS to je problém , ten momentálně můžu nechat nazapojený.
Časování mám správně , protože by se mi nezobrazovalo vůbec nic.
Nebo se mílím , ale je to přinejmenším záhada…

Máš asi něco špatně. Pokud připojíš displej bez VSS, tak by čistě teoreticky neměl fungovat.

není to napájení spojené s napájením podsvícení ?

zkoušel jsem podsvícení vypnout i zapnout , ale vliv na to nemá.
Zjistil jsem ale jinou věc ,
VSS , R-W , DB0-DB3 jsem připojil na zem a V0 jsem připojil pouza na trimr rovnou k napětí VDD.
Zapnu napájení a zobrazí se mi znaky normálně ,ale jakmile stisknu reset tak potom resetu se mi zvýší konstrast těch znaků.Výsledkem je to , že když trimrem nastavím napětí na V0 tak , aby znaky byly přijatelně vidět , tak po resetu u skoro vidět nejsou , protože se za nimi zobrazí po celém řádku takové tmavší čtverečky a zároveň znaky.
Jakmile opět stisknu reset , tak se vše vrátí do původní polohy jako při zapnutí napájení VDD a znaky opět svítí bez doprovodu “čverečků”

Toto mi dělalo, když jsem záčínal s LCD a podle mého je špatně zinicializovanej displej. Prodluž si časy třeba na dvojnásobek a pokud to pomůže, pak je můžeš zkusit zkracovat. Po resetu to musí vypadat pořád stejně. Podle toho co popisuješ ho opětovný reset nastaví jako 2x8 znaků.

ahojte , tak jsem našel v čem byl zakopaný pes…
Zkoušel jsem prodlužovat časy i jsem vzal funkce přímo z microhipu ,ale marná snaha.
Zjistil jsem , že to dělá spínač ,který je připojený na pin - MCLR , kterým obvod resetuji.
Jestliže spínač stisknu na dobu víc jak cca 50ms tak se obvod vyresetuje a pak znovu naskočí program i lcd , vše běhá v pohodě.
Pokud spínač stisknu na velice krátkou dobu ,
"jenom do spínače ťuknu ",ale zmáčku ho , tak se obvod zresetuje , ale na display se objeví ty známé polotmavé čverečky.
Nedokážu si to vysvětlit , protože zapojení MCLR mám přesně podle katalogové listu.
nesmím být asi tak náročný na pomalou odezvu od spínače :slight_smile:

Inicializujes vobec pomocou PIC aj nejake nastavenia kontrastu, alebo sa spoliehas na nejaky default po resete, respektive umoznuje display cez PIC nieco s kontrastom robit?. Pisal si, ze V0 mas cez reset. Nemoze byt tam pes zakopany?

nene , Vo mám připojené natvrdo přes trimr k Vdd a Vss.
Na začátku jsem psal , že jsem Vo připojil nejdříve přes tranzistor a trimr , aby mi z lcd zmizely znaky při zmáčknutí resetu.
Ale pak jsem to znovu přepojil a Vo jsem dal na Vdd a Vss.