Forum: Mikrocontroller und Digitale Elektronik 2 Treiber-Chip MAX7219 miteinander verbinden


von Chris F. (Gast)


Angehängte Dateien:

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

von Karl K. (karl2go)


Lesenswert?

Passt so.

von H.Joachim S. (crazyhorse)


Angehängte Dateien:

Lesenswert?

So siehts übersichtlicher aus :-)
Und nimm lieber den MAX7221.

von Timo N. (tnn85)


Lesenswert?

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.

von Johannes S. (Gast)


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.

von Chris F. (Gast)


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

von Maxim B. (max182)


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.

: Bearbeitet durch User
von Chris F. (Gast)


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

von Timo N. (tnn85)


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

von Maxim B. (max182)


Lesenswert?

Chris F. schrieb:
> 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?

100n sollte in der Nähe von jeder IC stehen, 10u reicht einmal für 
mehrere.

von Veilchenpastillenlutscher (Gast)


Angehängte Dateien:

Lesenswert?

Ein 100n pro 7219 reicht.

von Veilchenpastillenlutscher (Gast)


Lesenswert?

Auf dem Bild ist Alice Cooper. Nicht Ozzy Osbourne! Und schon gar nicht 
Cher!

von Chris F. (Gast)


Lesenswert?

Vielen Dank für die Antworten.

Veilchenpastillenlutscher schrieb:
> Auf dem Bild ist Alice Cooper. Nicht Ozzy Osbourne! Und schon gar nicht
> Cher!

Was genau meinst Du?

Gruss

von Crazy Harry (crazy_h)


Lesenswert?

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

von Ozvald K (Gast)


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.

von Maxim B. (max182)


Angehängte Dateien:

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.

von Hans-Jürgen Friedrichsen (Gast)


Lesenswert?

Chris F. schrieb:
> Was genau meinst Du?

...dass du zu seiner Zeit noch nicht auf der Welt warst. 🎸

von Crazy Harry (crazy_h)


Lesenswert?

@Ozvald K (Gast): Danke für die Info. Ich verwende den Decoder nicht.

von Chris F. (Gast)


Lesenswert?

Vielen Dank für die Infos.
Ich habe mir den MAX7219 erstmal zum testzwecken gekauft.
Später, wenn meine Schaltung fertig ist, werde ich mir dann eventuell 
den MAX7221 kaufen.

Gruss

von Maxim B. (max182)


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)

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.