SPI mellan IL9341 och ATMEGA328P (Pro Trinket)

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Zajber
Inlägg: 451
Blev medlem: 19 oktober 2009, 22:07:16
Skype: Andreas.fridh85
Ort: Rödön
Kontakt:

SPI mellan IL9341 och ATMEGA328P (Pro Trinket)

Inlägg av Zajber »

Har införskaffat en 2.4" IL9341 TFT med SPI-interface (3.3V)
För att styra denna så har jag för enkelhetens skull skaffat en Pro Trinket som baseras på en ATMega328P programmeras med Arduinos system och bootloader.
Adafruit har ett grafikbibliotek med en enkel demo för denna kontroller och jag har skrivit ner den till MCU:n.

Har SDO,SDI,SCK,CS och D/C inkopplad.
MCU:n är matat med 3.3VDC (testa flera olika matningar) och delar nolla med skärmen som är matad från samma källa.

Problemet:
Det går att få bild, MEN bara om jag håller fingrarna på anslutningsplintarna mellan skärmen och MCU:n i vissa lägen! :shock:
Släpper jag fingrarna från MCU-sidan så blir bilden "dålig" den missar kommandon när den ritar.
Släpper jag fingrarna från skärmens plintar så tappar den kommunikationen helt. Bilden blir vit.
Det funkar inte alltid, men jag upptäckte detta av en ren slump när jag höll på att bryta ihop.

Har kollat på signalerna; SCK, SDO CS och D/C med oscilloskopet och alla ser ut att ligga på rätt nivåer (~3.3V).
Kan det vara så att man behöver pull-ups/downs på SPI? Har för mig att med SD-kort är det rekomenderat att göra så i vissa fall.

Tips?
opatagio
Inlägg: 236
Blev medlem: 24 maj 2005, 20:19:21

Re: SPI mellan IL9341 och ATMEGA328P (Pro Trinket)

Inlägg av opatagio »

Prova också med en liten kondensator vid skärmens matning, mellan 3.3V och 0V, i storleken 10-220nF.
Funkar det om du sätter proben på 3.3V vid skärmen?
Funkar det om du sätter proben på SCK eller SDO?
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: SPI mellan IL9341 och ATMEGA328P (Pro Trinket)

Inlägg av Icecap »

"rätt nivåer" innebär (i detta fall) 0,0 eller 3,3V. Det är ganska tydligt att du antingen saknar pull-up/down (kanske på CS?).

Självklart ska det finnas avkoppling.
Användarvisningsbild
Zajber
Inlägg: 451
Blev medlem: 19 oktober 2009, 22:07:16
Skype: Andreas.fridh85
Ort: Rödön
Kontakt:

Re: SPI mellan IL9341 och ATMEGA328P (Pro Trinket)

Inlägg av Zajber »

Jag besvarar min egen fråga så fler kan ta lärdom av detta värdelöst enkla felet.

Så här ligger det till. Det finns en reset på IL9341 som inte finns definierad i Adafruits bibliotek.
Om den ingången ligger flytande så reagerar den i princip helt random på beröring, i vissa lägen drar den mot nolllan. Vilket den SKA göra.

Så. RST skall sättas LÅG. Då kommer det funka.
opatagio
Inlägg: 236
Blev medlem: 24 maj 2005, 20:19:21

Re: SPI mellan IL9341 och ATMEGA328P (Pro Trinket)

Inlägg av opatagio »

Och det påminner övriga, inte minst mig själv, att kolla alltid kopplingar både en två och tre gånger eller fler om något osäkert... :)
Agwan
Inlägg: 1617
Blev medlem: 15 september 2009, 09:05:14

Re: SPI mellan IL9341 och ATMEGA328P (Pro Trinket)

Inlägg av Agwan »

Jag var med om en gång att min SPI-länk bara fungerade när jag mätte på den med oscilloskop. Det visade sig att jag hade valt fel MODE på SPI-länken så att den samplade samtidigt som den klockade vilket är olyckligt. Kapacitansen i proben gjorde att datat försköts och samplingen skedde på rätt sida om mariginalen. Men när jag väl ställde in rätt MODE så funkade det ju utan proben också.
Skriv svar