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
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…
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.
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…
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
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.