- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 33

Thema: MAX6958 - 7-Segment-Anzeigen leuchten nicht

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Hi Udo,

    schade dass ich so´n IC gerade nicht da habe - das Datenblatt klingt interessant und ich würde gerne einiges ausprobieren
    Inzwischen glaube ich folgendes zu verstehen:

    1. Man muss mehrstellige Zahlen wohl tatsächlich in Hunderter, Zehner und Einer zerlegen und sie einzeln rüberschicken.

    2. Das Decode Mode Register scheint festgzulegen, wieviele Stellen ("Digits") angezeigt werden sollen. Tab.7 im Datenblatt ist da sehr aufschlussreich. Wenn &b00000000 drinsteht (wie nach dem Power-On) findet gar keine Decodierung von binär nach (hexa)dezimal statt. Für eine zweistellige Zahl (also die Digits 1 und 2) müsste man also &b00000010 in dieses Register schreiben.

    3. Die Ziffern, die in den Digits tatsächlich angezeigt werden sollen, müssen dann per I2C in die Register "Digit 1.... Digit 4" geschrieben werden. Hierbei ist die Funktion interessant, dass der MAX die Adresse des nächsten zu beschreibenden Registers automatisch um 1 erhöht, nachdem er ein Datenbyte empfangen hat. Man müsste wahrscheinlich also nur die Adresse des ersten Digits senden (&b00100000) und dann alle darzustellenden Ziffern einfach nacheinander weg.

    4. Wenn dieser Thread noch länger geht, besorge ich mir irgendwo so´n Teil und probiere es selber aus

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    15.08.2013
    Ort
    Güstrow
    Beiträge
    31
    Hab noch einen liegen. Wenn der nicht so teuer wär, würd ich ihn dir glatt schicken

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    15.08.2013
    Ort
    Güstrow
    Beiträge
    31
    Das hat leider auch nicht funktioniert

    HTML-Code:
          Zehner = X / 10
          Zehner = Zehner Mod 10
          Einer = X Mod 10
    
    
          I2cstart
          I2cwbyte &B01110000
          I2cwbyte &B00100000
          I2cwbyte Zehner
          I2cwbyte &B00100001
          I2cwbyte Einer
          I2cstop

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Ich glaube das Problem ist, dass der MAX nicht wissen kann, dass &b00100000 und &b00100001 die Adressen der zu beschreibenden Register sind.
    Im Datenblatt steht folgendes:

    The address pointer in the MAX6958/MAX6959 autoincrements
    after each data byte. If multiple data bytes
    are transmitted before a STOP condition is detected,
    these bytes are stored in subsequent MAX6958/
    MAX6959 internal registers (Figure 8 ), unless the
    address pointer has reached address 01111111. The
    address pointer does not autoincrement once address
    01111111 has been reached (Table 3).

    Das heißt also, er schreibt den Wert "Zehner" noch korrekt in das Register &B00100000. Das nächste Byte (&b00100001) wird dann aber wieder als Datenbyte interpretiert und in das nächsthöhere Register geschrieben, und das Byte "Einer" in das wiederum nächsthöhere Register.

    Andersrum gesagt würde ich es mal so versuchen, einfach nur das erste Digit-Register zu adressieren (also &b00100000), und dann beide Ziffern-Bytes nacheinander zu senden. Sie müssten dann von selbst in den beiden aufeinanderfolgenden Registern (00100000 und 0100001) landen.

    Bleibt natürlich noch ein Problem: Das Decode-Mode-Register (0x01): Da steht beim Einschalten ´ne &b00000000 drin - also "no decode for digits 3-0".
    Damit die Digits 0 und 1 angesteuert werden, muss da &b00000011 reingeschrieben werden. Dieses Register steht aber an einer ganz anderen Stelle als die anderen zu beschreibenden Register, so dass man das nicht unmittelbar hintereinander weg per automatischem Increment machen kann.

    Ich würde also mal versuchen, zuerst das data decode register zu beschreiben, und dann in einem zweiten Teil die eigentlichen Ziffern in die Digit-Register:

    I2cstart
    I2cwbyte &b01110000
    I2cwbyte &b00000001 (Adresse des Data Decode Registers)
    I2cwbyte &b00000011 (=Digits 0 und 1)
    I2cstop

    I2cstart
    I2cwbyte &b01110000
    I2cwbyte &b00010000 (= 0x20, Adresse Digit 0)
    I2cwbyte Einer
    I2cwbyte Zehner (geht automatisch ins Register 0x21)
    I2cstop

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    15.08.2013
    Ort
    Güstrow
    Beiträge
    31
    Danke für die Mühen, geht auch nicht, grrr

    Ich hab schon die Firma angeschrieben, die wollen mir nochmal einen Schaltplan und Code-Beispiele senden.
    Auch die Displays hab ich schon x-Mal neu aufgebaut, weil ich dachte, ich hab da was falsch gemacht, aber aus den Ausgängen der LED kommt kein Mux raus.

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Das gibt´s´doch nicht... hast Du schon mal mit dem Display Test Register rumgespielt? Das aktiviert alle Display-Segmente mit einer Helligkeit von 28/64, so dass man auf jeden fall was sehen müsste. Übrigens ist die Intensität nach dem Einschalten erstmal bei 4/64, was laut Datenblatt einem Strom von gerade mal 1,4 mA entspricht. Bei einem normalen LED-Display dürfte da nicht allzuviel zu sehen sein.

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    15.08.2013
    Ort
    Güstrow
    Beiträge
    31
    Zehner = X / 10
    Zehner = Zehner Mod 10
    Einer = X Mod 10

    I2cstart
    I2cwbyte &b01110000
    I2cwbyte &B00000001
    I2cwbyte &B00000011
    I2cwbyte &B00010000
    I2cwbyte Einer
    I2cwbyte Zehner
    I2cstop

    Also mit der Einstellung leuchtet überhaupt irgendwas an dem Display.
    Leider ist es nur 0(0). Wobei die erste Null dauerhaft leuchtet, wenn "Zehner" 1,3 oder 5 ist.
    Wenn dann "Einer" 0,1,2; 4,5,6 ;8,9 ist leuchtet die zweite Null dazu, aber nur wenn die erste schon an ist.

    Ich raff das einfach nicht. Vielleicht hilft ja MAXIM (nicht die Zeitschrift) mit einer versprochenen Antwort weiter.

Ähnliche Themen

  1. Verkaufe 100mm 7 Segment anzeigen
    Von atmega318 im Forum Kaufen, Verkaufen, Tauschen, Suchen
    Antworten: 0
    Letzter Beitrag: 14.04.2013, 13:13
  2. 7 Segment Anzeigen ?
    Von KrosseKrabbe im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 6
    Letzter Beitrag: 14.04.2011, 19:20
  3. 2-Farbige 7-Segment-Anzeigen?
    Von Jaecko im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 3
    Letzter Beitrag: 10.05.2009, 17:02
  4. k8055 und 7-Segment Anzeigen?
    Von elvis im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 16.05.2007, 14:09
  5. unbekannte 7-Segment-Anzeigen
    Von orph im Forum Elektronik
    Antworten: 14
    Letzter Beitrag: 07.05.2006, 23:07

Stichworte

Berechtigungen

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

12V Akku bauen