dringend Hilfe benötigt: Power-On-Problem mit Arduino Mega

Ich verwende diesen Shield ( ITEAD STUDIO OFFICIAL | ) auf einem Mega. Wenn ich den Sketch direkt drauflade, funktioniert das TFT. Trenne ich aber die Betriebsspannung oder führe ich einen Reset aus, wird der TFT nicht initialisiert und bleibt weiß. Manchmal kommt er dann nach dem x-ten Reset, aber oft garnicht. Der Rest des Sketches läuft dabei übrigens ganz normal, ich merke das an den Reaktionen auf Tastereingaben und die angeschlossenen LEDs und Relais - nur die grafische Ausgabe fehlt.

Der TFT wird parallel betrieben und nutzt nur die beiden parallelen Stiftleisten, damit er auch zum UNO kompatibel ist. Das bedingt die Nutzung beinahe sämtlicher Pins, so auch D0...D7. Soweit ich weiß, sind aber D0 und D1 mit der Seriellen Schnittstelle verbunden ... vermutlich hat das Problem hier seine Ursache. Allerdings, wie bereits geschrieben, direkt nach einem Sketch-Upload funktioniert es ja immer.

Also befinden sich diese (oder andere) Pins nach einem Upload in einem anderen Zustand als nach einem Power-On oder einem Reset. Da müsste auch der Ansatz für eine Problemlösung stecken, aber irgendwie weiss ich da nicht weiter. Ich verwende die neueste Version der Lib "UTFT", das Display wird mit dem Code: "UTFT tft(ITDB28,A5,A4,A3,A2);" zum Leben erweckt.

Notfalls bin ich inzwischen auch bereit eine diskrete Hardware zum Power-On-Reset anzubauen, das Projekt hat inzwischen Terminprobleme. Falls es dazu Tips gibt - her damit. Danke!

Der Link funktioniert nicht.
Ein Reset bzw Power on reset sind von der Programmausführung bzw Pinzustand prinzipiell gleich.

Grüße Uwe

Hier der korrigierte Link: https://www.itead.cc/itead-2-4-tft-lcd-touch-shield-v1.html

"Ein Reset bzw Power on reset sind von der Programmausführung bzw Pinzustand prinzipiell gleich."

  • Das muss ich bezweifeln, denn das unterschiedliche Verhalten ist offensichtlich und ja der Grund für diesen Post. Nochmal:

Direkt nach einer Neuprogrammierung startet der Sketch immer korrekt von selbst. Trenne ich den Mega vom USB und stecke ihn wieder an (an den selben USB-Port), wird der Screen nicht initialisiert. Nur der Screen spinnt, der Rest des Sketches läuft normal. Betätige ich den Onboard-Reset-Taster auf dem Mega, wird auch der Screen initialisiert.

Das muss doch eine nechvollziehbare Ursache haben?

Da nicht jeder Sektch automatisch Open Source ist, habe ich mal extra einen ganz minimalistischen gemacht, der aber das gleiche Verhalten zeigt:

#include <UTFT.h>

UTFT tft(ITDB28,A5,A4,A3,A2);
unsigned long mics = millis()+5000;

void setup()
{
  delay(3000);
  tft.InitLCD(PORTRAIT); 
  delay(3000);   
}

void loop()
{ 
  tft.clrScr();
  tft.setColor(255,0,0);
  tft.fillRect(10,10,230,310);
  delay(950);
}

Evtl. TFT defekt, timing Probleme ?

Schreibe doch mal den Hersteller an.

Wie sieht denn Deine Stromversorgung aus? Vielleicht hast Du ja ein Power Problem, nicht nur mit Power On.