bekomme ich aber immer 0x24 als ID! Laut Datenblatt kann die ID aber nur
1 oder 2 sein?! Was mache ich falsch?
Wäre super, wenn da jemand weiter wüsste!
Besten Dank schonmal, Sean
Guck dir dein SPI Timing mal auf einem Oszilloskop an.
Könnte mir vorstellen, dass
EPD_SCK_high
EPD_SCK_low
so schnell ist, dass da keine Vernünftige Kommunikation zustande kommt.
Im Zweifel ein ordentliches Delay einbauen:
Ansonsten: es gibt 4 verschiedene SPI modes.
Dein Link zum E-Paper funktioniert nicht, also kann ich nicht
beurteilen, ob der von dir implementierte Mode der richtige ist.
Easylife schrieb:> Ansonsten: es gibt 4 verschiedene SPI modes.> Dein Link zum E-Paper funktioniert nicht, also kann ich nicht> beurteilen, ob der von dir implementierte Mode der richtige ist.
komisch, hier direkt das Datenblatt:
http://www.pervasivedisplays.com/LiteratureRetrieve.aspx?ID=207589&A=SearchResult&SearchID=7127875&ObjectID=207589&ObjectType=6
kann schon sein, dass ich da was übersehen hab, aber ich habe eigentlich
genau deshalb soft-SPI genommen: weil ich die Signalform genau nachbauen
kann.
Das mit dem Timing hab ich jetzt getestet, aber das SPI darf soviel ich
weiss bis 20MHz gehen, und der STM läuft im Moment ohne PLL auf 8 MHz...
easylife schrieb:> falsches datenblatt. da ist nichts zu spi zu finden (protocol, timing).
hier sind alle: http://www.pervasivedisplays.com/products/2inch
hab das nur so gepostet, weil ich mir langsam nicht mal mehr sicher bin,
ob ich die richtige SPI Spezifikation hatte...
easylife schrieb:> dein protokoll ist falsch. du musst header commands senden (0x72,> 0x70)... waelze nochmal die pdf's... und immer nach 2 bytes cs high-low.
du meinst das mit dem 0x70 vor der Register-ID und dem 0x72 für write,
0x73 für read? Das habe ich schon gesehen, aber bei "SPI read COG ID and
flowchart(SPI_RID):" ist im Gegensatz zu sonst keine Rede von Hadern!?
EDIT: Habs gefunden, komisch auf dem einen Flowchart ists nicht drauf.
Aber so:
Ne, du hast recht, beim Header 0x71 sollte noch im gleichen 16-bit
Zugriff im 2. Byte die COG ID zurückkommen.
(Doc. No 4P015-00 - Seite 19)
Dise Datenblätter sind allerdings auch eine ziemlich unübersichtliche
Sache, muss man mal feststellen.
Auf S. 24 steht geschrieben:
"SPI_R(0x72,0x00) is used to check the COG Driver ID."
Vielleicht versuchst du es einfach mal mit der 0x72 statt 0x71.
Ausserdem: S.23 - im Flowchart wird gewartet, bis "Busy" auf low geht
bevor die ID gecheckt werden kann.
Easylife schrieb:> Ist es die 0x72 statt 0x71?> Oder busy?
Nee, leider beides nicht. Mittlerweile ziehe ich ein kaputtes display in
Betracht (im moment bekomm ich nichtmal mehr 0x24 sondern nurnoch
0xff)... Falls das aber so ist muss ich zuerst ein neues besorgen.
Busy ging gar nie high. Und 0x72 lieferte immer schon 0xff (habe ganz am
Anfang mal probiert)
Tja, sowas nervt natürlich, und ein kaputtes Display kommt schon mal
vor.
Trotzdem lohnt es sich evtl. nochmal ein paar Dinge zu prüfen:
a) Spannungsversorgung. 10uF und 100nF bewirken oft Wunder.
b) Schaltung überprüfen. SI und SO ist schnell mal verwechselt...
c) Signale auf dem Oszi angucken (saubere Pegel, Clock nicht zu
schnell...)
Manchmal hat man auch vergessen einen Output richtig zu konfigurieren,
und da kommt einfach nichts raus, weil er als Input konfiguriert ist.
d) Reset/Initialisierung prüfen. Das Display scheint etwas
anspruchsvoll, was die Initialisierungssequenz angeht...
Viel Erfolg, u.U. mit einem neuen Display.
Easylife schrieb:> Viel Erfolg, u.U. mit einem neuen Display.
Seit dem letzten Beitrag sind ja einige Jahre vergangen und vielleicht
hat jemand so ein e-Papier zum Laufen gebracht.
Ich habe die Schaltung nach Anhang (hoffentlich fehlerlos) aufgebaut
und verwende E2271CS021- 2,7".
Heute nur die Frage, ob jemand mir zunächst bei der
a) Initialisierung helfen könnte.
b) kann man bei SPI an Stelle von jeweils 8 Bit gleich 16 Bit übertragen
(SPI (0x70, 0x08)? Anhang Auszug Seite 17
Das beste wäre, wenn jemand für mich ein lauffähiges Beispiel mit (viel
deutschem) Kommentar hätte.
MfG