Forum: Mikrocontroller und Digitale Elektronik PPI Display - Probleme bei Init


von Display Newbie (Gast)


Lesenswert?

Ich habe hir ein Customize Display rumfliegen, einen absoluten Exoten. 
Glaubt mir wenn ich sage, dass im Netz kein Datenblatt zu finden ist. Es 
wird mit Minimum 3 Leitungen (Clock, Daten und CS) und die Schnittstelle 
ist ein sogennanter PPI Bus.

Als Controller benutze ich einen PIC.

Der Code sieht wie folgt aus
1
    CS_OUT;               // Set Chipselect pin as an digital output
2
    CLK_OUT;              // Set Clock pin as an digital output
3
    Data_OUT;             // Set Data Line as an digital Output
4
5
    CS_1;
6
    CLK_1;
7
    DelayMs(10);
8
    Reset();
9
    DelayMs(10);
10
    Init_Display();
11
    DelayMs(100);
12
    clear_Display();

Es funktioniert auch alles wie geplant.
Das Problem ist jedoch, dass ich nach flashen des MCU das Display nicht 
korrekt initialisiert bekomme und ich jedes Mal nachdem Flashen 
ersteinmal einen "Spannungsreset" machen muss, sprich 
Spannungsversorgung kappen und wieder aktivieren. Dann funktioniert 
alles einwandfrei.

Wo könnt hier der Hund begraben liegen?

von Display Newbie (Gast)


Lesenswert?

Keiner eine Idee, Vorschlag?

von Stefan F. (Gast)


Lesenswert?

Du erwartest doch nicht im Ernst Hilfe für ein Produkt das nur Dir 
vorliegt und zu dem außerdem noch keine Dokumentation verfügbar ist?

Ich schätze, dass du dort am ehesten Hilfe findest: 
http://www.manticus.de

Selbst wenn diese Leute nicht Hellsehen können, sind doch einige dabei, 
die weise Ratschläge erterilen können.

von Display Newbie (Gast)


Lesenswert?

Es gibt halt manchmal auch Pauschallösungen, wie

"Die Warteroutine nach dem Reset ist für alle mir bekannten Displays 
deutlich zu kurz/lang. Probier mal..."
Ich hatte gehofft, das für erfahrene User hier direkt der Fehler ins 
Auge springt oder es Jemanden gibt, der solche Fehler schon bei zig 
Displays gesehen hat und ne Idee hat woran es liegen KÖNNTE.

von Karl H. (kbuchegg)


Lesenswert?

Display Newbie schrieb:
> Es gibt halt manchmal auch Pauschallösungen, wie
>
> "Die Warteroutine nach dem Reset ist für alle mir bekannten Displays
> deutlich zu kurz/lang. Probier mal..."

Und was hindert dich daran, das auf eigene Faust zu probieren?
Wobei: zu lang gibt es eigentlich nicht wirklich. Im Regelfall kann man 
Displays so langsam takten wie man will. Nur zu schnell darf man nicht 
sein.

> Ich hatte gehofft, das für erfahrene User hier direkt der Fehler ins
> Auge springt

Was soll einem da ins Auge springen.

Zuerst Reset, dann delay, dann Init, dann delay, dann Clear Display.

Schön. Sieht gut aus. Diese Reihenfolge ist logisch und so schwer auch 
wieder nicht zu erraten. Man wird wohl kaum ein Display löschen ehe man 
es initialisiert hat.
Details kennt ja keiner.
Das ist so, wie wenn du sagst: zuerst geh ich zum Parkplatz, dann sperr 
ich mein Auto auf, stecke den Schlüssel ins Zündschloss, betätige den 
Starter und der Motor springt nicht an - was könnte das sein? Kann ja 
für einen erfahrenen KFZ-Mechaniker nicht so ein Problem sein, das 
rauszufinden.

Meine Hypothese ist, dass du beim Flashen das Display mitten in einer 
Befehlsübertragung erwischt. D.h. das Display wartet auf die restlichen 
Bits der Übertragung. Und das tut es bis zum St. Nimmerleinstag. Nimmst 
du nach dem Flashen die SPI Übertragung wieder auf, dann holt es sich 
von den ersten übertragenen Bytes die Bits und stoppelt sich was 
zusammen. Ist aber eine ins blaue geratene Hypothese.

Was macht der CS während des Flashens?

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.