2 Treiber-Chip MAX7219 miteinander verbinden

Gast #6417958
Lesenswert?

Hallo zusammen,
ich möchte mir eine Schaltung aufbauen, um 2 Treiber-Chip MAX7219 
miteinander zu verbinden, da ich später 16x 7 Segment LED (insgesamt 16 
Bit) hinzufügen möchte.
Also 8x 7 Segment LED (insgesamt 8 Bit) pro Treiber-Chip.

Im Internet habe ich einen Schaltplan gefunden, jedoch nur, wie man die 
einzelnen Leds mit dem Treiber-Chip verbindet.
Die Schaltung habe ich dann etwas angepasst, und möchte von euch mal 
wissen, ob die Schaltung richtig ist oder ob da noch etwas angepasst 
werden muss?

Im Anhang habe ich ein Bild von der Schaltung hochgeladen.

Ich bedanke mich schon mal im Voraus für die Hilfe.

Gruss
Angehängte Dateien:
Gast #6418196
Lesenswert?

ich habe bei 3 Bestellungen von LED Matrixmodulen mit MAX7219 auch 3 
verschiedene Varianten sowohl von den Maxen als auch den LED Modulen 
bekommen, funktionieren zum Glück trotzdem alle. Die Zahl der 
Fälschungen oder Nachbauten nimmt subjektiv aber deutlich zu.
Gast #6418383
Lesenswert?

Vielen Dank für die Antworten.

H.Joachim S. schrieb:
> So siehts übersichtlicher aus :-)
> Und nimm lieber den MAX7221.

Ich möchte lieber einzelne Leds und keine 8er, da ich sie besser 
aufteilen kann und an beliebige Positionen Platzieren kann.
Ich möchte später meine Displayanzeige mit MobiFlight konfigurieren, von 
daher weiß ich leider nicht, ob MobiFlight den Chip MAX7221 unterstützt.

Timo N. schrieb:
> H.Joachim S. schrieb:
>> Und nimm lieber den MAX7221.
>
> Pass aber auf. Nur bei renommierten Distributoren bestellen (Mouser,
> TME, Reichelt, Digikey, Farnell...) und nicht bei Ebay. Die MAX7221
> (vermutlich auch MAX7219) werden scheinbar oft gefälscht und bei Ebay
> viel günstiger verkauft.

Ich Danke Dir.
Ich habe gestern bereits 2er Set bei Amazon bestellt, nur erstmal zum 
testen:
[[https://www.amazon.de/gp/product/B06XKVL4PH?ref=ppx_pt2_dt_b_prod_image]]

Ich werde es dann einfach mal testen und vielen Dank nochmal für die 
Antworten.

Gruss
#6418875
Lesenswert?

Chris F. schrieb:
> von
> daher weiß ich leider nicht, ob MobiFlight den Chip MAX7221 unterstützt.

Wer ist MobiFlight, weiß ich leider nicht. Aber SPI kann mit beiden 
arbeiten.
Mit MAX7219 kann ein Problem kommen, aber nur dann, wenn in der 
Schaltung und im Programm möglich ist, daß ~CS Impuls bekommt, ohne 
unmittelbar vorher 2 Bytes für MAX7219 übertragen werden. Falls nicht, 
ist 7219 sogar etwas besser, da mehr Stufen für Lichtstärke möglich.

Das Problem mit MAX7219 kann man aber mit 1/2 von 74HC02 beheben.
Gast #6422073
Lesenswert?

Danke Dir.

MobiFlight ist ein Programm für Flugsimulatoren, mit der man bestimmte 
Geräte hinzufügen kann und viele Sachen selbst konfigurieren kann.
Über das Programm wird eine Firmware von MobiFlight auf das 
Controllerboard hochgeladen.
Von daher weiß ich nicht, ob die Firmware von MobiFlight einen anderen 
Chip
unterstützt, für die Segment-Display Anzeige.
Mehr dazu unter:
https://www.mobiflight.com/de/index.html

Ich habe da noch eine Frage:
Brauche ich für jeden weitere MAX7219 2 zusätzliche Kondensatoren bzw. 
größere Werte, diese ich zwischen +5V und GROUND schalte?
Oder reichen die 2 Kondensatoren (100nF und 10µF), wenn ich mehrere 
MAX7219 auf einer Platine verwende, diese ich dann zusammen koppel?

Ich habe das ganze auf einem Steckbrett aufgebaut "mit 2x MAX7219 und 2x 
7 Segment 4 Digit" und getestet, es funktioniert einwandfrei.
Nur möchte ich wissen, ob die Kondensatoren reichen oder ob ich lieber 
etwas größere nehmen sollte?

Ich bedanke mich schon mal für die Hilfe.

Gruss
#6422202
Lesenswert?

Chris F. schrieb:
> Ich habe da noch eine Frage:
> Brauche ich für jeden weitere MAX7219 2 zusätzliche Kondensatoren bzw.
> größere Werte, diese ich zwischen +5V und GROUND schalte?
> Oder reichen die 2 Kondensatoren (100nF und 10µF), wenn ich mehrere
> MAX7219 auf einer Platine verwende, diese ich dann zusammen koppel?

Nimm die Kondensatoren, die auch im Datenblatt des MAX7219 vorgeschlagen 
werden.
Da es Bypass-Kondensatoren sind, brauchst du natürlich je einen direkt 
an den Pins VCC / GND bei jedem MAX7219. Es reichen nicht nur 2 (100nF 
und 10µF).
Gast #6424535
Lesenswert?

Crazy H. schrieb:
> Ich kann dich beruhigen, ich hab rund 60 MAX7219 aus China (div. 20er
> Pack für 6-8€ und 50er Pack für ~15€ aus verschiedenen Quellen)  in
> Betrieb und die funktionieren alle ohne Probleme

Ich kann das so nicht bestätigen. Es gibt Exemplare bei Aliexpress wo 
der Decode Mode Register um eine Stelle verschoben ist. (0->1, 1->2, 
usw.) Solange man die IC nur für 7-Segment Anzeige oder nur für Led 
Matrix verwendet, es fällt nicht auf. Habe aber in einem Projekt die 
Digits 0-3 als 7-Segment Decoder, Digit 4 für 8 LEDs für Bargraph ohne 
Dekodierung gebraucht. So habe ich diesen Fehler entdeckt.

Interessanterweise habe ich das Geld ohne Widerstand seitens des 
Verkäufers zurückerstattet bekommen. Er wusste offensichtlich bescheid 
darüber.
#6424567
Lesenswert?

Ich hatte mal ein Problem, daß MAX7219 ab und zu Ziffer zeigt, die nicht 
erwünscht sind. Das Problem lag daran, daß ~CS für MAX7219 mit 74HC138 
gemacht wurde und A0-A2 nicht auf einem Port lagen. Deshalb wurden 
Adresse-Pins mit cbi-sbi umgeschaltet, und gelegentlich ging eine 
Kombination durch, so daß MAX7219 ~CS-Impuls bekommen hat, und vorher 
wurden die Daten über SPI für andere IC geschickt.

D.h. ab und zu kann es von Bedeutung sein, daß MAX7219 nicht vollständig 
SPI-kompatibel ist. Mit MAX7221 kommt das Problem nicht vor.

Man kann aber das Problem mit 1/2 von 74HC02 beheben.
Angehängte Dateien:
#6427010
Lesenswert?

Chris F. schrieb:
> Vielen Dank für die Infos.
> Ich habe mir den MAX7219 erstmal zum testzwecken gekauft.
Wenn nur für eine Probe, dann gibt es bei Amazon und Ebay verschiedene 
Module. Es gibt ein Modul mit 8 7-Segm.Ziffer, es gibt ein Modul mit 
32x8 Punktmatrix, dort sind 4 X Max7219 seriell geschaltet. Blöd nur, 
daß die "Säulen" dort horisontal platziert sind, deshalb muß man 
umkodieren, wenn man Zeichen kleiner als 8 P.breit will. Bei mir klappte 
das mit solch riesigen Funktion:
1
void max7219_sendbuf(void){ // gibt max7219_buf zu LED-Matrix
2

3
  for(u8 i=0;i<8;i++){
4
    spi_intern_start();
5
    for(u8 x=0;x<4;x++){
6
      u8 temp = 0;
7
        spi_send(i+1);
8
      if (max7219_puffer[(3-x)*8] & (1<<(7-i))) temp |= (1<<0);
9
      if (max7219_puffer[(3-x)*8+1] & (1<<(7-i))) temp |= (1<<1);
10
      if (max7219_puffer[(3-x)*8+2] & (1<<(7-i))) temp |= (1<<2);
11
      if (max7219_puffer[(3-x)*8+3] & (1<<(7-i))) temp |= (1<<3);
12
      if (max7219_puffer[(3-x)*8+4] & (1<<(7-i))) temp |= (1<<4);
13
      if (max7219_puffer[(3-x)*8+5] & (1<<(7-i))) temp |= (1<<5);
14
      if (max7219_puffer[(3-x)*8+6] & (1<<(7-i))) temp |= (1<<6);
15
      if (max7219_puffer[(3-x)*8+7] & (1<<(7-i))) temp |= (1<<7);
16

17
        spi_wait();
18
        spi_master_transmit(temp);
19
    }
20

21
    spi_intern_stop();
22
  } // 4723 c 590,38 us
23

24
}

Danach habe ich ein eigenes Modul entworfen, wo die Säulen physisch 
vertikal sind. So spart man 590 us (wenn F_CPU = 8 MHz)

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