Forum: Mikrocontroller und Digitale Elektronik TSC2046 und xMega SPI Problem


von McDonald J. (mcdonald_j)


Angehängte Dateien:

Lesenswert?

Hallo

Ich bin jetzt schon seit Stunden an diesem Problem und finde keine 
Lösung. Vielleicht weiss ja jemand von euch weiter. :D

Ich verwende ein Touchscreen mit dem Controller TSC2046. Der Contorller 
wird per SPI angesteuert. Der CS, MOSI und CLK funktionieren. Es kommen 
jedoch keine Daten zurück. Siehe KO-Bild.

Mein Port ist wie folgt initialisiert:
1
  PORTD.DIR=0xBB;  // D_In & T_ISQ = Input
2
3
  void init_spi(void)
4
  {
5
  SPID.CTRL = SPI_ENABLE_bm |SPI_MASTER_bm | SPI_MODE_gm| SPI_PRESCALER_gm;      // Master, Setup Falling sample Rising, Prescaler = 128
6
  SPID.STATUS = 0;
7
//  SPID.INTCTRL = SPI_INTLVL_MED_gc;
8
}

Der Chip select wird anfänglich auf high gesetzt.

LG
Jérôme

von da1l6 (Gast)


Lesenswert?

Hallo

MISO sieht so aus als würde er gar nicht angesteuert werden, also 
floaten.
Trick: Beim Messen auch den Finger an die Oszi-Spitze halten und sehen 
ob signifikant Störungen eingekoppelt werden.

Ist das der Fall ist entweder MISO nicht richtig angeschlossen, das 
ChipSelect erreicht den TouchController-Chip nie oder die CS Polarirät 
ist falsch.

da1l6

von Gerhard G. (g_g)


Lesenswert?

Hallo,

wenn du die Reihenfolg beachtest, sollte
es funktionieren: Bei mir SPIE!



#define TS_SPI_DDR  PORTE_DIR
#define TS_SPI_PORT PORTE_OUT
#define TS_SPI_PIN  PORTE_IN


#define TS_MOSI_BIT  5
#define TS_MISO_BIT  6
#define TS_SCK_BIT  7

#define TS_CS_DDR  PORTE_DIR
#define TS_CS_PORT PORTE_OUT
#define TS_CS_PIN  PORTE_IN
#define TS_CS_BIT 4


TS_CS_PORT |= (1<<TS_CS_BIT);  // Disable CS
TS_CS_DDR |= (1<<TS_CS_BIT);  // CS pin as Output



TS_SPI_DDR |= (1<<TS_SCK_BIT)|(1<<TS_MOSI_BIT) | (1<<TS_CS_BIT); 
//output
TS_SPI_DDR &= ~ (1<<TS_MISO_BIT); //  SS is input



//SPIE.CTRL =  SPI_MODE_0_gc | SPI_PRESCALER_DIV16_gc | (1<< 
SPI_CLK2X_bp) | (1<< SPI_ENABLE_bp) | (1<< SPI_MASTER_bp); // 4Mhz




Gruß G.G.

von McDonald J. (mcdonald_j)


Lesenswert?

Danke für die Hilfe.

Der Chinese hatte auf dem Display Dout nicht kontaktiert...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.