Codevision LCD typický problem začátečníka, jak vypsat text?

Postavil jsem si programator od Matouška a trošku upravil kity (LCD, D/A převodníky) k němu, aby to sedělo na to, co vyžaduje na některé periferie Codevision
LCD (2x16) je tedy připojeno tak, jak to vyžaduje zakladní knihovna Codevisionu (viz schema, konektor= 1-Vcc, 10-GND, 9-2=>pin0-pin7 portu).
Napsal jsem jednoduchej programek na vypsání textu, zkompiloval a nahrál a nic. Několikrát jsem kontroloval propojení pinů mcu s pinama LCD a vše je v pořádku (žádnej zkrat). Pokud mcu s displayem nekomunikuje, tak se mi vybarví horní řádek čtverečky, takže kontrast by měl být taky ok.
Mohli byste poradit, co mám ještě zkusit? Začínám být z toho zoufalý…

:arrow_right: administrator: přejmenováno z "Codevision LCD typický problem začátečníka"
schematko.jpg

No a kde je ten program ?

[code]
#include <MEGA16.h>

// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15
#endasm
#include <lcd.h>

void main(void)
{
// Port C initialization
PORTC=0x00;
DDRC=0x00;

// LCD module initialization
lcd_init(16);
lcd_gotoxy(0,0);
lcd_putsf(“No nazdar”);

while (1)
{
// Place your code here

  };

}[/code]

je možné, aby třeba poškozené lcd zatěžovalo datovými piny atmegu? Totiž po hodinovém hledání chyby a zkoušení překlápění jednotlivých pinů na mcu a pak přímo na lcd, jsem si všiml, že některé piny odebírají nadměrně proud z mcu

pomoc je jednoduchá - zakaž ve fuse bitech JTAG - nebo dej LCD na jiný port :slight_smile:
aspoň teda myslím, že na adrese 0x15 je PORT C, který má rezervované piny pro JTAG - proto ti nekomunikuje s LCD dokud ten JTAG nezakážeš

JTAG mám zakázanejch. Zkoušel jsem jsem i jiné brány.
Když jsem pin po pinu zkoušel, jak se napětové urovně dostávaj přímo na piny lcd, tak jsem zjistil, že při logické jedničce jsou piny přetěžovány. PRostě to spadne na 2-3V a zdroj mi hlasí odběr přes 150 mA. Když odpojím obvod s LCD, tak napětí na pinech ok (kde má bejt log1)
Mě by spíš zajímalo jestli je normální toto-jelikož pořád nedokážu přijít na problém, proč jsou piny mcu, tak zatěžovány, že pak napětí klesne na cca 3V, tak jsem zkusil odpojit mcu a přes odpor jsem připojil 5V na libovolnej datovej pin LCD. No a zjistil jsem, že na ostatních pinech, na které není nic připojeno je napětí 2-3 V. To je normální?

Je ten zvýšenej odběr jen u datovejch pinů, nebo i u řídicích? Jesli je správně r/w pin.

u všech…hodil jsem na každej pin 5 V. Taky nechápu proč se mi nevyplo podsvícení (viz pnp tranzistor řidící anodu podsvícení). Zdroj hlásil 250mA-300mA. Kontroloval jsem každej pin a všude zakázané stavy

Přesně tak jak píše piittyy, překontroloval bych R/W, případně Vcc u LCD…pokud obě budou v pořádku, nejspíše je vadný LCD.

no tak 5V na R/W máš právě režim čtení, pokud si se jenom špatně vyjádřil, tak se podívej zdali je LCD skutečně napájen.

[code]void main(void) {
DDRA = 0xff;
PORTA = 2;

while (1) {
}

}[/code]
Nahral jsem tenhle program, to znamená že na PC1 (RD/R/W) by měla bejt log 1. Místo toho tam je 2,17 V a dokonce na PC0 (RS) je 1 V přitom by tam mělo bet 0 V. Když vyndám LCD, tak jsou napětí na pinech mcu ok. Zapojím LCD a zase to spadne.
Napájení LCD v pořádku

na R/W ale musíš mít log nulu, pokud chceš zapisovat

hlavně ten RW uzemni to zaprvé a zadruhé nevím, ale vidím v programu DDRC = 0x00; a to znamená, že ten portC je vstupní ne ?

Jak můžeš z tohoto tvrdit, že tímto programem na PC1 by měla být log.1 ??? Vidím tam pouze obsluhu portuA

pardon, z rutiny jsem zkopčil starej program.
LCD jsem zkoušel na všech portech. Podle datasheetu na logiku potřebuje lcd kolem 2mA. Pokud mám na portu 0x00, tak zdroj mi hlasí odběr LCD asi 120 mA. Jakmile na jakýkoliv pin dám log. 1, tak zdroj mi hlasi zvýšenej odběr asi o 25-50mA. Dám na celej port 0xFF a zdroj se vyhoupne klidně na 0,5 A :angry:

no tak zkus jinej LCD modul. Nejspíše bude KO

edit: šel ti ten modul vůbec ? Já jen, že mi jednou taky jeden nešel, a po dlouhém hledání závady, jsem zjistil to, že ten modul má obráceně napájení, čili jednička byla plus a dvoujak zem. Je možné pokud jsi ho někde získal, a zda to byl nějaký takový atyp tak jsi ho odvařil.

mám ATM1602B
eště jedna věc
kontrast pokud jsem to správně pochopil, tak připojením GND na Vo nastaví maximální kontrast a +5V by měl bejt displey čistej. Je normální, že když trimrem nastavím +5 V, tak to odebírá přes 0,5A? (zdroj to naštěstí omezil)

elektrotekno.com/about28154.html