Merkwürdiger Effekt mit SSD1963 und AD7843 and STM32

18/12/2013 - 08:35 von Stefan | Report spam
Moin,

ich hab da einen merkwürdigen Effekt:

Wie im Topic beschrieben habe ich ein System mit STM32 und einem 5'' TFT
Display mit SSD1963 und AD7843 aufgebaut.

Das Displaymodul ist zugekauft. Es handelt sich um ein China-Modul mit
40-poligem Steckverbinder für Arduino-Systeme.
Die STM32f103V Platine ist von uns.

Probleme macht die PENIRQ* Leitung. Diese geht an GPIO Port C.9.
Der Port wurde als Eingang mit Pull-Up und auch als floating konfiguriert.

Der Effekt ist folgender: Wenn auf dem Touch gedrückt wird, geht die
PENIQR* Leitung auf GND. Der AD7843 hat einen open-drain Ausgang und
einen Pull-up auf der Platine.

Irgendwann, das kann sofort sein, oder nach einigen Minuten stürzt das
Display ab. Das Programm auf dem STM32 làuft weiter. Auf dem Display
erscheinen wirre Linien.

Wir haben zuerst nach einem Softwarefehler gesucht, da aber keine
Verbesserung erreicht. Schließlich haben wir die Verbindungsleitung
zwischen PENIRQ* und C.9 aufgetrennt und den PENIRQ* mit einem Stück
Draht simuliert.

Ergebnis: kein Absturz

Dann haben wir auf dem Touch-Display herumgedrückt und konnten so auch
keinen Absturz verursachen.

Dann haben wir einen 10k Widerstand in die Verbindung PINIRQ* und C.9
geschaltet.

Ergebnis: kein Absturz, alles funktioniert einwandfrei, Touch wird erkannt

So, jetzt haben wir eine Lösung unseres Problems, aber keine vernünftige
Erklàrung, warum es jetzt funktioniert und vorher nicht.

Gruß

Stefan
 

Lesen sie die antworten

#1 Igor \Knight\ Ivanov
18/12/2013 - 09:24 | Warnen spam
Hi!

Dann haben wir einen 10k Widerstand in die Verbindung PINIRQ* und C.9
geschaltet.

Ergebnis: kein Absturz, alles funktioniert einwandfrei, Touch wird erkannt



Möglicherweise gibt es eine Lötbrücke zwischen der besagten Leitung und
einem der Display-Steuerungssignale (zwischen CPU und Display). Ich tippe
auf eine Datenleitung, die irgendein Bit beeinflüsst, das einen Befehl
verzerrt und die Logik vom Display durcheinander bringt, sobald PINIRQ* zu
einem ungünstigen Moment auslöst. 10K hat den Konflikt gelöst.

LG,

Igor.

Ähnliche fragen