Konstigt fel med Mega16+i2c minne + lcd

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Konstigt fel med Mega16+i2c minne + lcd

Inlägg av mullemeck »

Hej!

har kopplat ett i2c eeprom minne (24fc256) och en vanlig hd44780 lcd till en AtMega16.

koden i avr:en ska läsa av minnet på adress 10 och sen skriva ut det på lcdn.

Allt detta har funkat perfekt innan utan några som helst problem.
men när jag började utöka koden för att göra mer så slutade dessa två grundläggande saker fungera.

Nu skrivs 255 ut på lcdn fast det som ligger på minnesplatsen som läses av är 3, när jag skulle felsöka och kolla om nån data skickades på i2c busen så märkte jag att när jag råkade nudda matningssladden med jord-klämman från oscilloskopet så hoppade plötsligt rätt värde fram, startar man sedan om avren så får man ut 255 igen.

spelade in en liten film för att illustrera det lite bättre.
http://www.mullemeck.com/mojt/film.avi [38mb]


har testat sätta dit ordentliga backupkondensatorer och även små för att få bort störningar på matningen, även testat ta ström från annat ställe men det är ändå alltid samma.

upptäckte också att om man håller oscilloskopets jordklämma i ena handen och mekar med en metallbit på sladden så kommer även rätt värde fram då.


Nån som har några förslag på vad som kan orsaka detta?

/mullemeck
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Du har alltså inte jorden (nollan, GND) genomgående, alternativt har du mycket störningar från en usel nätdel.
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

Jo allt som är uppkopplat, avr, lcd och minne delar samma +5v och gnd.
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Men ändå har du en störning eller hur?

Har du alla portar som är oanvända som utgång? eller är de ingånger och terminerat? Jag tror att problemet ligger i den delen.

Ditt problem består av att du har instrålning från de omgivande ledninger i väggen, ett alternativ kan vara att använda en nätdel som har jordat hölje eller att vända kontakten i väggen.

Vilken pull-up motståndsvärde har du på IIC-bussen?
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

mullemeck skrev:Jo allt som är uppkopplat, avr, lcd och minne delar samma +5v och gnd.
Du har möjligtvis inte en lång flatkabel till LCDn? Långa kablar vid dataöverföring (logiknivå) kan spöka till det rejält.

(nej, jag har inte kollat på filmen eftersom jag sitter på jobbet :wink: )
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

Det är väl mellan i2c och AVRen som problemet uppstår? LCDn verkar ju fungera som den ska.

Du har inga interrupts eller timingproblem i koden? Du kanske använder hårdvarui2c, eller har du gjort en egen för kommunikation med minnet? Har du pull-up/down motstånd på dataledningarna? Skulle kanske kunna hjälpa.
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

Jo faktum är att jag har ganska lång sladd till lcdn ca 1m flatkabel. Kan ju vara det som spökar till det.

Använder 4.7kohms pullup på i2cbussen och har skrivit en egen rutin för att protokollet.

nu nä jag tänker efter så är det mest logiskt att det är den långa sladden som spökar till det. När jag debuggade min i2c-rutin för att se hur långt den kommit genom att skriva lite till displayen så försvann det problemet jag hade när jag skickade ett tecken till displayen mitt i sända och läs rutinen.

ska testa korta den och förhoppningsvis räcker det.
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

hmm, nu får ni gärna förklara hur den långa sladden till LCDn kan göra att överföringen mellan minnet och kretsen inte fungerar som det ska.
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

Det är ju ingenting som säger att felet ligger i dataöverföringen mellan minne och uC.
Datat kan ju lika gärna förvanskas på vägen från uC:n och LCD:n, och det är det som jag tror händer i detta fall.
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Mja, det känns ganska otroligt att datan till LCDn bara råkar förvändlas från ASCII "0003" till "0255"

Att man däremot får enbart ettor (255) från ett seriellt EEPROM låter inte så långsökt, allt möjligt glapp eller liknande på matning/jord/signaler till minnet.
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

har nu kortat sladden och visst blev lcdn stabilare men minnet fortsätter att klaga.

Mätte nu för att kolla så där kom fram ström till minnet och där var bara 0,4v, på nått skumt sätt så har en byglingssladd som binder ihopa kopplingsplattans två halvor slutat leda, sen när jag drog upp bygeln och satte ner den igen så leder den igen.. helt mysko...

men nu verkar det mesta funka.
Användarvisningsbild
erixon
Inlägg: 380
Blev medlem: 27 augusti 2003, 10:21:58

Inlägg av erixon »

Kopplingsdäck ska man se upp med, visst är det smidigt att kunna koppla upp kretsen utan att behöva löda och desutom enkelt att göra en endring men mer än 50% av fallena när det inte har fungerat har det varit glap någon stans och det blir värre ju störe kretsen är...
Visst är dom smidig men man kan grå hårig för mindre :roll:
Skriv svar