Sida 1 av 1

SPI mellan IL9341 och ATMEGA328P (Pro Trinket)

Postat: 8 april 2015, 11:06:42
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?

Re: SPI mellan IL9341 och ATMEGA328P (Pro Trinket)

Postat: 8 april 2015, 11:21:06
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?

Re: SPI mellan IL9341 och ATMEGA328P (Pro Trinket)

Postat: 8 april 2015, 11:22:57
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.

Re: SPI mellan IL9341 och ATMEGA328P (Pro Trinket)

Postat: 8 april 2015, 21:00:54
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.

Re: SPI mellan IL9341 och ATMEGA328P (Pro Trinket)

Postat: 9 april 2015, 12:46:01
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... :)

Re: SPI mellan IL9341 och ATMEGA328P (Pro Trinket)

Postat: 16 april 2015, 13:27:06
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å.