Max 7219 mit SPI ansteuern

OP #814659
Lesenswert?

Hallo,

ich habe ein Problem bei dem ihr mir vielleicht weiterhelfen könnt.

Zur Zeit versuche ich mit meinem Mikrocontroller (AT90S8515) vier 
7-Segment-Anzeigen anzusteuern. Dazu benutze ich den Treiberbaustein Max 
7219 von Maxim. Da Daten an diesen Baustein seriell geschickt werden 
müssen, habe ich erst versucht, ein Programm zu schreiben, dass dieses 
Problem löst. Als das nicht funktionierte habe ich versucht den 
Treiberbaustein mit der SPI-Schnittstelle anzusteuern, was leider auch 
nicht funktioniert hat.

Ich habe meinen Schaltplan mehrmals überprüft und konnte keinen Fehler 
feststellen.

Vielleicht kann mir jemand von euch ein Beispielprogramm schicken mit 
dem ich den Treiberbaustein ansteuern kann. Das Programm müsste 
allerdings in Assembler geschrieben sein, da ich noch kein C 
programmiert habe.

Freue mich auf eure Antworten.

Gruss
D-Bracket
Gast #814686
Lesenswert?

max_adresse equ 20h
max_daten   equ 21h
max_clock   equ p1.0
max_data    equ p1.1
max_load    equ p1.2


mov sp,#21h
main:  lcall max_init
       sjmp main

max_init:  mov max_adresse,#...
           mov max_daten,#...
           lcall max_out

           mov max_adresse,#...
           mov max_daten,#...
           lcall max_out

           mov max_adresse,#...
           mov max_daten,#...
           lcall max_out

           ......
           ret

max_out:   mov a,#128
next:      mov r0,a
           anl a,max_adresse
           clr max_data
           jz set
           setb max_data
set:       setb max_clock
           clr max_clock
           mov a, r0
           rr a
           cjne a,#128,next

next1:     mov r0,a
           anl a,max_daten
           clr max_data
           jz set1
           setb max_data
set1:      setb max_clock
           clr max_clock
           mov a, r0
           rr a
           cjne a,#128,next1
           setb max_load
           clr max_load
           ret
Gast #814790
Lesenswert?

soweit ich mich erinnern kann brauchte der 7219 Low an Load beim 
Übetragen und übernimmt mit L nach H.
Beim 7221 reicht eine Flanke an Load.
Wurde hier aber schon mehrfach diskutiert. Suchfunktion !!!
Gast #815060
Lesenswert?

Hallo,

da ich gerade an einer Laufschrift mit 8x8Matrix und 7219 bastel konnte 
ich eure Vermutungen direkt ausprobieren.

>>mußte nicht beim MAX7219 Load währen des letzten Clock-H auf H gehen zum
>>übernehmen?

Nein, die H-Flanke am LOAD-Eingang kann später als die letzte H-Flanke 
des CLK-Impulses kommen.

>>Deshalb ging ja Hardware-SPI nur mit dem MAX7921, wenn ich jetzt nicht
>>irre.

Falsch, ich habe hier 8 kaskadierte 7219 über 0,5m abgeschirmte Leitung 
an der SPI-Schnittstelle eines ATmega32 hängen und steuer die mit 4 MHz 
CLK-Frequenz über die SPI Schnittstelle an.

>>soweit ich mich erinnern kann brauchte der 7219 LOW an Load beim
>>Übertragen und übernimmt mit L nach H.

teilweise falsch, der 7219 übernimmt die Daten bei einer H-Flanke des 
LOAD-Signals, aber bei der Übertragung der Daten kann LOAD HIGH bleiben, 
erst nach der Übertragung der Daten muß LOAD einmal kurz auf LOW-HIGH 
wechseln.
Es schadet aber auch nicht wenn vor der Datenübertragung LOAD auf LOW 
gesetzt wird und nach der Datenübertragung auf HIGH.

Gruß
Udo

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren