www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Max7221 Bascom Mega8, 7-Segmentanz will nicht leuchten


Autor: Steve Bennet (stevensen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mit einem Mega8 mit 8Mhz und einem Max7221 und Bascom, möchte ich 
erstmal eine 7-Segment-Anzeige zum Laufen bringen. Natürlich leuchtet 
sie nicht. :(
Ich habe die Segmente an den Segmentausgänge des Max7221 angeschlossen.
Die Pins des Mega8 wie folgt:
Pinb 2 (SS low) --> LOAD 12 (CS low) vom Max7221
Pinb 3 (MOSI) --> DIN 1 (Data in ) vom Max7221
Pinb 5 (SCK) --> CLK 13 (CLK) vom Max7221

Die Pins des Mega8 sind die Hardware SPI des Mega 8. nun dachte ich daß, 
das alles über SPI laufen müßte. hier mal der Code:


$regfile = "M8def.dat"                                      '
$crystal = 8000000                                          '8MHz 
crystal

Dim Wert(2) As Byte

Config Portb = Output
'Config Spi = Soft , Din = Pinb.4 , Dout = Portb.3 , Ss = Portb.2 , 
Clock = Portb.5
Config Spi = Hard , Data Order = Lsb , Master = Yes , Polarity = High , 
Phase = 0 , Clockrate = 128 , Noss = 0

Enable Interrupts

Spiinit


'Testmode off
Wert(1) = &H0F
Wert(2) = &H0
Spiout Wert(1) , 2 'ausgabge 16-Bit Wert

'Decode off
Wert(1) = &H09
Wert(2) = &H00
Spiout Wert(1) , 2

'8 Digits
Wert(1) = &H0B
Wert(2) = &H07
Spiout Wert(1) , 2

'Display on
Wert(1) = &H0C
Wert(2) = &H01
Spiout Wert(1) , 2

'Brightness
Wert(1) = &H0A
Wert(2) = &H07
Spiout Wert(1) , 2

Do

Wert(1) = &H01
Wert(2) = &H08
Spiout Wert(1) , 2

Loop

End

Es tut sich gar nichts. Müßte man nicht wenigstens den Displaytest 
sehen, also alle Segemnt an. Irgendwie schein SPI generell bei nicht zu 
klappen.
Wäre sehr froh über jeden Tipp.

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommt denn was raus aus der spi-schnittstelle? also an den pins?

Autor: TIMER_MAN (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe was über MAX7921
gefunden in bascom wenn dir das reicht.
sage bescheid.

Autor: TIMER_MAN (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
7219 meine ich FG

Autor: Steve Bennet (stevensen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure Antworten

@MAtthias L
Ich habe gerade mit nem Ozzi nach geschaut, also bei CLK bzw. Sck ist 
der Takt 200 KHz. CS Low und die Datenbyte liegen am Max7221 an. ist die 
Frage ob ich die richtigen Daten schreibe.


@Timer Man
Der Max7219 ist nicht SPI-Kompatibel, ich habe aber auch für den Typ 
verschiedene Programme gesucht und gefunden. Aber vielleicht kenn ich 
deinen Code nicht. Wenns dir nicht ausmacht kannst du ihn ja mal posten.


Aber wie ist das? wenn ich &H0F01 sende sollten doch der Displaytest 
eingeschaltet werden, und dann alle Segment leuchten? Oder seh ich 
falsch?

Autor: Daniel S. (longshine)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tut mir leid, dass ich diesen alten Thread den ich über die Suche nach 
MAX7219+SPI gefunden habe nochmal raushole. aber ich habe den Fehler 
gefunden und wollte das hier korregieren. oder hast du ihn noch selber 
gefunden stevensen?

im Datenblatt steht am Ende von Serial-Addressing Modes:
"D0–D7 contain the data, and D12–D15 are “don’t care” bits. The first 
received is D15, the most significant bit (MSB)."

also muss in der Config "Data Order = Msb" stehen...
also "Config Spi = Hard , Data Order = Msb , Master = Yes , Polarity = 
High , Phase = 0 , Clockrate = 128 , Noss = 0".
mit genau deinem Code und der geänderten Config läuft bei mir jetzt ein 
MAX7219 an Hardware-SPI - obwohl er ja nicht ganz SPI-kompatibel sein 
soll. nur wie man die Dinger jetzt kaskadieren kann ist mir noch ein 
Rätzel.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel S. schrieb:
> MAX7219 an Hardware-SPI - obwohl er ja nicht ganz SPI-kompatibel sein
> soll.

Das wird komischer Weise sehr oft kolportiert, ist aber falsch.
Code für den MAX7221 läuft in jedem Fall auch mit dem MAX7219.

Daniel S. schrieb:
> nur wie man die Dinger jetzt kaskadieren kann ist mir noch ein
> Rätzel.

Ganz einfach, Du sendest immer soviel 16Bit-Worte, wie MAX7221 
kaskadiert sind. Z.B. bei 3 Stück: 3 Worte, d.h. 6 Byte.

Beim Init sind die 3 Worte gleich und beim Anzeigen jedes 2. Byte die 
jeweilige Ziffer.
Am besten legt man sich einen Ziffernpuffer an, also bei 3 Stück dann 24 
Byte groß.


Peter

Autor: Daniel S. (longshine)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter Dannegger schrieb:

> Das wird komischer Weise sehr oft kolportiert, ist aber falsch.

wie kommst du denn darauf? dem Datenblatt entnehme ich:

> MAX7219/MAX7221 Differences
> The MAX7219 and MAX7221 are identical except for
> two parameters: the MAX7221 segment drivers are
> slew-rate limited to reduce electromagnetic interference
> (EMI), and its serial interface is fully SPI compatible.

daraus schließe ich doch, dass der MAX7219 nicht "voll SPI kompatibel" 
ist. oder wie verstehst du das?

> Ganz einfach, Du sendest immer soviel 16Bit-Worte, wie MAX7221
> kaskadiert sind. Z.B. bei 3 Stück: 3 Worte, d.h. 6 Byte.
>
> Beim Init sind die 3 Worte gleich und beim Anzeigen jedes 2. Byte die
> jeweilige Ziffer.
> Am besten legt man sich einen Ziffernpuffer an, also bei 3 Stück dann 24
> Byte groß.
>
>
> Peter

danke dir, jetzt funktioniert des auch...

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.