Forum: Mikrocontroller und Digitale Elektronik u8g2 lib new Display


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Marco H. (damarco)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hätte mal ein paar Fragen zur u8g2 LIB 
https://github.com/olikraus/u8g2.

Und zwar wie die Daten im Buffer liegen und wie die Buffergröße aus der 
u8g2_m_XX() abgeleitet wird?

Genau geht es darum ein neues Display hinzu zufügen, er zwangsweise. 
Denn auf den dargebotenen Grove 0.96 OLED Display ist ein völlig anderer 
Controller als auf der Packung steht. Made in China eben ;)Nun muss der 
SH1107 hinzugefügt werden. Setup etc. funktioniert. Nur die Ausgabe 
fast, naja die erste ROW. Also so ganz falsch liege ich nicht.

Die Zuordnung habe ich ausprobiert nur habe ich noch nicht heraus 
bekommen wie der callback Funktion der Datenbuffer übergeben wird. Also 
wie die Daten im Buffer liegen und wie die Ausgabe genau erfolgt. 
Ausprobieren ist beim ESP32 eine nervige Sache, vor allen wenn dieser 
beim ausbleiben des ACK sofort abschmiert.

Die Hardware des Displays ist unter aller sa.. Der Pegelwandler 
funktioniert mit 3,3V nicht zuverlässig und sorgt immer wieder für 
Fehlfunktonionen. Von den Parametern ist auch nicht mehr viel übrig. 
Scrollen oder Graustufen kann der Controller nicht. Auf einer Russischen 
Seite fand ich denn auch das command Set. Der Hersteller selbst war 
offenbar dazu nicht in der Lage.

Ewt. kann mir ja jemand mit ein paar Infos versorgen oder hat den 
Controller schon zum laufen gebracht.

edit: so ich habe mich entschlossen den schei... wieder einzupacken und 
mir besseres zu holen. Vor allen unter dem Aspekt das mir etwas verkauft 
wurden mit Eigenschaften die der Artikel nicht mehr besitzt mit dem 
Controller darauf. Ich habe keine Zeit für solch ein Mist für diesen 
Preis.

: Bearbeitet durch User
von u8g2 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi

Also generell versuche ich schon mit den Besitzern nicht unterstützter 
Displays diese via U8g2 zum Laufen zu bringen. Ein Issue auf der U8g2 
Projektseite wäre dazu ganz gut. Diskussion ist auch auf Deutsch 
möglich.

Ich gebe Dir Recht, dass es manchmal sehr lange dauert bis so ein 
Display sauber läuft... vor allem wenn das Display nicht vor mir auf dem 
Tisch liegt.

Grüße,
Oliver

von Marco H. (damarco)


Bewertung
0 lesenswert
nicht lesenswert
Im Grunde ist das Projekt recht gut beschrieben. Hilfreich wäre aber ein 
Example zu einen bekannten Driver das sehr gut Dokumentiert und 
nachvollziehbar wäre. Die entscheidenden und wichtigen Fragen werden 
durch die Doku nicht wirklich geklärt wenn es um die Ausgaberoutine 
geht.

Bei dem Grove Display kamen noch Hardware Probleme hinzu, die es nicht 
einfacher machten.

Ich werde die Library mal einen ARM einsetzen dann kann ich den Code 
auch debuggen. So bekomme ich schon heraus wie das funktioniert ;) .

Das Display ging allerdings an den Lieferanten zurück. Da der Controller 
die angepriesenen Fähigkeiten nicht besitzt.

- keine Graustufen
- kein Scrolling
- Pegelwandler funktionieren nicht zuverlässig bei 3.3V
- der Schaltregler(12V) erzeugt einen Stromimpuls der einen Kurzschluss 
gleicht

https://www.seeedstudio.com/Grove-OLED-Display-1.12%22-p-824.html

Das Display hat keinen  SSD1327 Controller mehr sondern ein SH1107 
dessen Dokumentation auch noch sehr schwer zu finden ist.

Außerdem ist die Ausgabe per I2c des ESP32 sehr langsam ohne den RAM zu 
nutzen. Da das ganze über ein CMD Buffer funktioniert und erst auf ein 
Kommando die Daten gesendet werden. Da man die Länge beim Single byte 
Transfer nicht kennt führt das immer wieder zu einer Start/Stop 
Kondition. Was die Ausgabe stark verlangsamt.

Im Grunde ließe ich das lösen aber dazu müsste ich wissen wie sich die 
Daten im Buffer zusammensetzen und man berechnen kann viele Daten 
übertragen werden müssen. Bei 1024byte muss dann die Ausgabe erfolgen, 
da sonst der I2C RAM voll ist. Ohne RAM wird nur ein Pointer übergeben 
und dessen Inhalt könnte sich ändern. Vermutlich führt das dann zum 
Absturz da beim ausbleiben des ACKs ein anderer Prozess aber auf diesen 
Pointer zugreift so lange der I2c Prozess auf ein ACK wartet.

: Bearbeitet durch User
von u8g2 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Dann sollte es doch bei Seeedstudio zumindest einen Hinweis auf den 
anderen Controller geben, komisch.

Übrigens war bei meinen Versuchen dieses Grove Display eines der 
langsamsten I2C Displays. Ich habe das aber auf den Pegelwandler auf dem 
PCB Board geschoben, der schnelleres Takten verhindert.

Oliver

von Marco H. (damarco)


Bewertung
0 lesenswert
nicht lesenswert
gibt es auch zu mindestens im Beispiel Code beim Init muss man den 
Controller angeben. Da die in China nicht lesen können packen sie immer 
noch den alten Zettel mit rein und auch viele Shops brauchen Zeit um die 
Artikel Texte zu ändern.

Der Controller ist auch ein extremer Rückschritt, ich vermute mal das 
die Displays mit dem SSD1327 nicht verfügbar waren und man einfach 
andere drauf getan hat. Keine Ahnung ob das so bleibt, jedenfalls blöd 
da man nicht sehen kann was für ein Controller drauf ist.

Der Pegelwandler ist unter aller Kanone, schon mal in den Plan geschaut 
?

Bis 100khz gehen solche Geschichten wenn man sie richtig baut schon. 
Keine Ahnung welcher Amateur da dran war. Der Plan sagt alles !

Ich bin noch auf der suche nach einen kleinen Display, um so kleiner des 
so besser.

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.