- LiTime Speicher und Akkus         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: Wie bringe ich OLED 1306 mit AVR/C ingang ?

  1. #1
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651

    Wie bringe ich OLED 1306 mit AVR/C ingang ?

    Anzeige

    Powerstation Test
    Bitte um Hilfe. Das Ansprechen von OLED 1306 (SSD1306) funktioniert bei mir nicht.

    Was ist geschehen
    a) Zwei OLED 1306 gekauft (hier)
    ...... Bild hier  

    b) Stromaufnahme nahe Null.
    Erstmal Saft dran (dummerweise 5V vom 5V-Ausgang des nanoclones). Hatte nix geleuchtet, Stromaufnahme blieb unerheblich. Auch spätere Stromversorgung 3,3V direkt vom Labornetzteil ans Steckbrett brachte die Stromanzeige nur auf 0,001 A

    c) Software - erfolglos
    Verschiedene, arduinospezifische Software durchgegangen, um mir eine Vorlage für Ingangsetzten vom AVR direkt zu erarbeiten. Erfolglos. Auch die Suche nach einem *.hex-file für den verbreiteten mega328 war ohne Erfolg.

    d) USB-I²C-Adapter von ELV (den) als Testgerät
    ......Bild hier  
    hergenommen und ans Steckbrett (mit Labornetzteilversorgung) angeschlossen: GND, SCL, SDA.

    e) I2C antwortet nicht.
    Ansprechen des OLED mit Adresse 0x78 geprobt. Not-Acknowledge ist die einzige Antwort.

    d) Leichte Verweiflung insbesondere deswegen, weil keinerlei Reaktion und keine Stromaufnahme erkennbar ist.

    Nun bitte ich darum, dass mir jemand über die ersten Schritte hilft. Oder der mir versichert, dass ich die Dinge mit den 5V schon geschossen hätte.
    Was könnte ich tun, um wenigstens einen Hauch Leben in das (aus dem) Display zu bringen. Leider spricht das Teilchen nur I²C - eine Fremdsprache die ich mit Mühe und nur teilweise kann/kenne. Anfangs reicht mir Textdarstellung konstanter Größe aber variabel hoher Text und Grafik wäre natürlich gigantisch.

    Danke im Voraus und schöne Feiertage.

    Nachtrag: I²C mit Takt 400 kHz und 100 kHz

    Nachtrag am 23. Apr. 2017, 17h26: Abschließende Zusammenfassung zu meiner knappen Erfahrung mit OLED1306
    Geändert von oberallgeier (23.04.2017 um 17:33 Uhr) Grund: Kurzer Hinweis auf kleinen Erfahrungsbericht
    Ciao sagt der JoeamBerg

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.08.2009
    Ort
    Berlin
    Alter
    69
    Beiträge
    348
    Sieht nach einem grösseren Problem aus. Das Ding verträgt nur 3,3V als Stromversorgung und Eingänge. Könnte ein Totalschaden sein.
    Wenn es gar nicht geht könnte ich dir mein Programm schicken. Ist allerdings nicht mit I2C Bus. Dürfte aber kein Problem sein, da ich viel mache mit I2C Bus
    achim

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    32
    Beiträge
    1.192
    Hallo,
    in den Rezensionen steht etwas von einer anderen I2C-Adresse (0x3C) und es werden viele Beispiele verlinkt. In den schlechten Bewertungen ist auch die Rede von falsch gelieferten Displays usw.
    Sind auch Pullup-Widerstände verbaut?
    Braucht das Display noch Abblockkondensatoren?
    Grüße, Bernhard
    "Im Leben geht es nicht darum, gute Karten zu haben, sondern auch mit einem schlechten Blatt gut zu spielen." R.L. Stevenson

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651
    Erstmal vielen Dank für Eure Antworten.

    .. Das Ding verträgt nur 3,3V als Stromversorgung und Eingänge. Könnte ein Totalschaden sein ..
    Sieht leider ganz so aus. Hmmm, bei 1.7 V Überspannung ein Totalschaden - hmmm. Das is ja nix für mich!

    Zitat Zitat von BMS Beitrag anzeigen
    .. anderen I2C-Adresse (0x3C) .. Pullup-Widerstände verbaut? .. Abblockkondensatoren? ..
    Danke. 0x3C hatte ich auch schon getestet (gehabt), Pullups sind dran - 4k7 und zwischen GND und Vcc hängt ein 10 µF/100V.

    Tja, die werde ich wohl abschreiben müssen. Schade.
    Ciao sagt der JoeamBerg

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    55
    Beiträge
    2.197
    Hast du nen Arduino zur Hand?
    Dann teste das Ding doch einfach mal- am besten mit der Lib. von Adafruit.

    Die, die ich davon so im Umlauf hab, vertragen sämtlich auch 5V und können per I2C problemlos angesprochen werden.
    Dann weisst du jedenfalls ob das Ding läuft.
    Und auch die Adresse kannst du so easy rausfinden: es gibt ein Progrämmchen namens I2C-Scanner. Das liefert brav alle, am Bus gefundenen, Adressen in die Konsole.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.08.2009
    Ort
    Berlin
    Alter
    69
    Beiträge
    348
    Habe mal versucht die Daten zu finden. Gibt ja kaum ein anständiges Datenblatt dazu. Scheinbar verträgt das Oled 3,3V und 5V. Die Stromaufnahme sollte bei max. 10mA liegen. Es bestehen moch Chansen das geht. Mit dem USB / I2C von ELV habe ich leider keine guten Erfahrungen gemacht. Ist sehr eigenwillig und kompliziert. Bevorzuge was anderes. Versuche es zu testen, dann kann ich mehr sagen
    achim

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651
    Danke Rabenauge, danke Achim.S.

    .. teste das Ding .. mit der Lib. von Adafruit .. Und auch die Adresse kannst du so easy rausfinden: .. I2C-Scanner ..
    Libs für Arduino - na ja, ich kann KEIN "arduinolanguage", kenne auch nicht die arduino-IDE und hab sie nicht installiert. Danke für den Tip mit dem Scanner - den habe ich in (fast) allen meinen I²C-Masterplatinen. Beim Archie z.B. sucht der Zentralrechner nach seiner Peripherie (nur die I²C-Slaves) und meldet die auf die Startseite (und reagiert auch intern drauf). Also - Adressbereich softwaremässig umgestellt
    Code:
    // ============================================================================= =
     void i2clook (void)            // Welche I²C-Devices existieren? Liste ?
     {                              //                              Aufruf     main =>
    // Teste I²C-Schreibadressen von 0x70hex bis 0xAC, 112 - 254 (früher bis 0xFC)
    //   ##>> Testbereich evtl. neu definieren
    //      Erfolgsmeldung(en) ausgeben mit Adresse dez und hex, Fehlsuche mit "-"
      uint8_t jaflag = 0;           // Ja-Flag
      u8    aktptr  =       0;      // Aktuelle I²C-Adresse
    // - - - - - - - - - - - - - - -
    und siehe da, der Test bringt ein glaubhaftes Ergebnis (copy&past vom Terminal) :

    Cxxx arno_x00 328/20 16 Apr 2017 09:28
    UART0_64 110 k
    Suche I²C-Devices im Bereich 0x00/_0dez - 0xFC/252dez
    Jedes '-' bedeutet: Slave/s nicht vorhanden oder defekt
    ------------------------------------------------------------
    Slave addr 120 dez = 0x78
    ------------------------------------------------------------------
    I²C-Slaves gesucht bis (dez) 252


    .. Gibt ja kaum ein anständiges Datenblatt dazu. Scheinbar verträgt das Oled 3,3V und 5V ..
    Meins verträgt wohl die 5V - denn der Scan läuft mit 3,3 V und 5V - jeweils als Versorgung und Signalpegel.

    Ok, der erste Schritt ist also getan: das Ding reagiert auf Zuruf. Sozusagen noch immer. Jetzt kommt der schwierige(re) Teil, die softwareseitige Implementierung des Dings. Da hoffe ich, dass das nicht sooo lange dauert :-/ -- leider habe ich KEIN einziges einfaches, kurzes, verständliches Beispiel in AVR8/C gefunden :-/

    Danke allen Helfern für Ihre Mitarbeit!



    @Achim.S: das ELV Ding ist recht schick, wenn man sich mal dran gewöhnt hat. Beispiel (zufällig):
    Code:
    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Fahre Servo 1 auf PWM 400 - und lies sofort Daten zurück
    v----- Dies ist der Befehl zum Adressieren des Targets
    v    v--- Stopbefehl
    v    v    v-- Dies ist die Adresse, ab der geschrieben wird
    s 84 p w 64  01  01  90  01  00  00  00  00  00  01  p s8460p r10p   <   <  Nur EIN Befehlsstring :-)
    hex-Adresse  64  65  66  67  68  69  6A  6B  6C  6D
    dez-Adresse 100 101 102 103 104 105 106 107 108 109
    =======================================================
    Läuft aber leider nur über das (eher gewöhnungsbedürftige HTerm)
    Geändert von oberallgeier (16.04.2017 um 11:05 Uhr) Grund: Text zurechtgerückt - war missverständlich
    Ciao sagt der JoeamBerg

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.08.2009
    Ort
    Berlin
    Alter
    69
    Beiträge
    348
    HTerm - ist leider "sehr" alt und seit gefühlten 10 Jahren nicht gepflegt. Besser gesagt, vergessen worden (kein Intresse mehr dran).
    Mache alles mit dem "normalen C" und bin sehr zufrieden damit. Das einzigste was fehlt ist ein gute Anbindung an den PC. Suche noch nach einer guten Lösung.
    Kennst du was dazu? oder Nachfolger von HTerm? So was vielleicht wie WLAN mit I2C Bus?
    An einem Beispiel der Einbindung vom Oled an den Bus bin ich auch interessiert. Falls du was findest.
    achim

  9. #9
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651
    So, die chose ist geritzt. Einfach das Atmel Studio 7.? am Desktop installiert (gabs bisher nur am Notebook) und das verdaut auch die Beispiele im Netz mit den *.cpp´s. Und das Terminal zeigt schon die ersten, selbst kreierten Bitfelder (8.x.8 ) bzw. Buchstaben - mal sehen was draus wird und was man mit den selbst verwalteten 128x64 Bitfeldern anfangen kann. Seltsam sind die zwei Farben bei meinem Displays: oben ein Streifen weiß, die Hautpsache aber blau.

    @achim:
    HTerm - ist leider "sehr" alt .. Mache alles mit dem "normalen C" .. was fehlt ist ein gute Anbindung an den PC. Suche .. Lösung ..
    Alt ist ja nun kein Synonym für schlecht. Na ja, mit fast 5 MB ist es etwas sehr groß, aber zusammen mit dem ELV-USB-I²C ist es bei mir ein sehr praktisches Werkzeug. Terminal geht zum Beispiel bei br@ys Terminal auch mit knapp 300 k, für mich die beste Lösung. Ich benutze das Terminal von br@y (das 2004er) seit "Jahren" für "alles" was über UART reinkommt oder reinkommen soll. Als Adapter dazu den schicken AVR-USB von Pololu (item#: 1300) - der hat auch gleich noch ein minimalistisches 5V-DSOszilloskop.

    - - - Aktualisiert - - -

    Ein Problemchen bleibt, eine Frage.

    Beim Compilieren (des past´n´copy Codes) bekomme ich Warnungen - alledings wird (wie gewohnt bei NUR Warnung) ein lauffähiger code erstellt. Die Warnung ist wech, wenn ich den Codeteil "int i = 0" ändere gegen "unsigned int i ..".

    Fehlerbeschreibung:
    Warning comparison between signed and unsigned integer expressions [-Wsign-compare]

    bei Code:
    for (int i = 0; i < sizeof(bitmap2); ++i) {
    mit "sizeof" = highligthed

    Frage: Klar, "int" ist vorzeichenbehaftet. Aber wo(her) bekomme ich das Vorzeichen von sizeof ? Das sollte ja sinnvollerweise ein vorzeichenloser Wert sein ! ?

    Ich habe Hinweise gefunden, dass "sizeof" in der stddef.h des WinAVR-20100110 liegt, dort finde ich aber nur den Kommentar /* Unsigned type of `sizeof' something. */

    Danke für die Hilfe

    - - - Aktualisiert - - -

    Nachtrag: das "Problemchen" mit dem sign von "sizeof"
    Ciao sagt der JoeamBerg

  10. #10
    HaWe
    Gast
    hi,
    schön dass es noch funktioniert, wie es sich anhört.
    einen 3EUR Arduino würde ich mir zwar an deiner Stelle auch mal anschaffen (ist praktisch zum schnell mal austesten), aber Libs für "richtiges C" habe ich hier auch, ebenfalls auf der Basis für Adafruit Libs, aber für gcc/Linux. Vlt hilft es ja trotzdem!

    http://www.mindstormsforum.de/viewto...p=69371#p69370

    sizeof ist egal ob Datentyp Vorzeichenbehaftet ist oder nicht, es ist immer eine Ganzzahl >= +1:
    sizeof(unsigned char) == sizeof(signed char) == 1
    sizeof(unsigned int) == sizeof(signed int) == 2 (bei 8bit-AVRs)
    Geändert von HaWe (18.04.2017 um 11:43 Uhr)

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. OLED leuchtet eigenartig
    Von Siro im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 12.12.2014, 23:18
  2. Bringe Pro-Bot128 nicht zum laufen -.-
    Von light.on im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 1
    Letzter Beitrag: 14.02.2010, 11:47
  3. OLED Adapter
    Von TomT. im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 2
    Letzter Beitrag: 28.07.2009, 22:39
  4. wie bringe ich ihm das Fliegen bei?
    Von Papa Schlumpf im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 36
    Letzter Beitrag: 03.05.2006, 17:03
  5. Ich bringe mein 4*20 LCD nicht zum laufen
    Von Dane im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 18.07.2005, 20:31

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus