- LiFePO4 Speicher Test         
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
    So wie es aussieht, reagiert der MAX6958 auf ein Kommando mit 8 Bits. Die ersten 6 Bits sind in der Tat 011100.
    Danach kommt aber noch ein siebtes Adress-Bit, das beim MAX6958A 0 ist, und beim Typ B 1. Das ist dafür gut, wenn man zwei ICs mit dem selben Bus bedienen und einzeln ansprechen möchte. Und schließlich kommt das Read-write-Bit, das dem IC sagt, ob es Daten empfangen oder senden soll. In Deinem Fall soll es Daten empfangen, also muss dieses letzte Bit 0 sein.

    Versuch´s also mal mit Const Ad = 01110000 (MAX6958A) bzw. 01110010 (MAX6958B)!

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    ...und im Datenblatt steht nochwas wichtiges:

    Nach dem korrekten Adressieren muss als erstes ein Kommando-Byte gesendet werden, damit der MAX überhaupt weiß, was er tun soll. Denn man kann ihm eine Menge anderer Befehle geben als einfach nur das Anzeigen von irgendwelchen Ziffern.

    Wie ich das verstanden habe, ist das Kommando für den "decode"-Modus die Bitfolge 00000001. Die sagt dem IC, dass das nächste gesendete Byte (= Datenbyte) auf der 7-Segment-Anzeige dargestellt werden soll. Da sich mit einem einzelnen Digit nur 16 Zeichen darstellen lassen (0-9 und A-F), werden auch nur die niedrigsten 4 Bits des Datenbytes ausgewertet. Soweit klingt das Datenblatt ganz schlüssig.

    Du brauchst also mal mindestens drei Bytes: Adressbyte, Kommandobyte und Datenbyte, die komplette Sequenz müsste etwa so aussehen:


    I2cstart
    I2cwbyte Ad
    I2cwbyte &b00000001
    I2cwbyte X
    I2cstop

    Wenn X 16 ist, müsste die Anzeige wieder bei 0 anfangen hochzuzählen.

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.698
    ... nur die niedrigsten 4 Bits des Datenbytes ausgewertet ... I2cwbyte X ... Wenn X 16 ... wieder bei 0 anfangen hochzuzählen.
    Irgendwie verstehe ich das anders: bei I2cwbyte X mit X = 15dez sieht (m)ein Byte so aus 0b00001111, bei x = 6dez genauso trivial 0b00000110. Mit X = 16 dann 0b00010000, damit stimmt die Aussage, die stimmt aber auch für X = 48dez => 0b00110000, kurz - wenn I2cwbyte ein unsigned integer ist - für alle Zahlen über 16, bei denen die letzten vier Bits 0 sind, allgemein bei allen Werten bei denen die letzten vier Bits 0 sind. Mag pingelig klingen.
    Ciao sagt der JoeamBerg

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    @ Oberallgeier:

    Vielleicht meinen wir ja das gleiche - ich habe mich auf diese Passage aus dem Datenblatt zum "Decode Mode Register" bezogen:

    In hexadecimal code-decode mode, the decoder looks
    only at the lower nibble of the data in the digit register
    (D3–D0), disregarding bits D7–D4.

    Leider habe ich gerade keinen MAX6958 da, sonst würde ich glatt mal ein wenig damit rumspielen

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    15.08.2013
    Ort
    Güstrow
    Beiträge
    31
    Vielen Dank für Eure Antworten.

    Das war ein guter Tipp mit dem Kommandobyte. Das probiert ich heute Abend mal aus.
    Ich hab an dem Treiber zwei Anzeigen dran, da ich Werte von 0 bis ca. 65 anzeigen lassen will. (Geschwindigkeitsanzeige für ne fahrende Bierkiste)
    Muss ich dann den Dezimalwert auch noch in Hex oder Bit umrechnen lassen oder muss ich jede Stelle der zweistelligen Dezimalzahl dann getrennt auf die
    jeweiligen Digits ausgeben lassen?

    The decode-mode register sets hexadecimal code
    (0–9, A–F) or no-decode operation for each digit. Each
    bit in the register corresponds to one digit.
    Ich lese das so, dass ich wenn ich die hexadezimale Ausgabe haben möchte, dieses Register setzen muss.
    Ich glaube, ich probier auch mal &b00000000 aus für "keine Änderung am Standard.
    Heute Abend gibt's mehr.

    Gruß Udo
    Geändert von therealosram (13.11.2014 um 14:07 Uhr)

  6. #6
    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

  7. #7
    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

Ä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