MAX7219

Dit topic is gesloten

Ik ben druk bezig met een MAX7219, helaas werkt het nog niet goed.

Er zijn 2 digits aangesloten (digit 1 en 0)
Er zouden nu toch de getalen 5 en 3 op deze digits moeten verschijnen ?

Helaas verschijnen deze niet...

Wie ziet de fout(en) ?

[Bericht gewijzigd door MMSoft op zaterdag 17 maart 2007 18:31:06

Ik snap er langzaam aan niet meer van.

Wat ik ook probeer ik krijg slechts een digit aangestuurd.
De ene keer is het digit 0 en en even later (met dezelfde code) wordt digit 1 aangestuurd.

Ik ben ook al met pullup / pulldown weerstanden bezig geweest, maar het blijft zo wisselvallig als wat..

Na elke pen set/reset wacht ik met diverse nop's.

Heeft iemand een stukje (geteste code) liggen en wil dit eens posten/mailen ?

Ik krijg steeds meer de indruk dt er iets met die MAX aan de hand is, of dat het hardwarematig niet goed zit.

Alles is ontkoppeld, ook gebruik ik een goede voeding....

Ik heb intussen code gevonden op internet, en hierbij heb ik hetzelfde probleem.

Er wordt maar 1 digit getoond, ook wisselvallig.
Soms digit 0, en (na opnieuw opstarten) soms weer digit 1.

Is het mogelijk dat het ontbreken van de digits 2...7 het probleem veroorzaakt ?

Edit:
Probleem gevonden...

[Bericht gewijzigd door MMSoft op zaterdag 17 maart 2007 19:42:25

De MAX7219 werkt perfect, ik kan precies op het display zetten wat en waar ik wil.

Er is echter nog een opstart probleem.
Als je de schakeling (PIC + MAX) inschakel, dan komt er op het display direct: 8.8.8.8.8.8.8.8.
Het display lijkt dus in test mode te staan.

Helaas reageert deze niet meer op commando's van de PIC.

Om het geheel op te starten, schakel ik de voeding nu in, uit en weer in, en dan werkt het.

De MAX is met 3 lijnen verbonden met de PIC (zonder Pullup/Pulldown weerstanden).

code:



#Define	 CLK      PORTB,0                   
#Define	 LOAD     PORTB,1                   
#Define	 DIN      PORTB,2                   

INIT   PORTB als uitgangen instellen
       BCF        CLK    ;Clock lijn Laag
       BCF        DIN    ;Data lijn Laag
       BSF        LOAD   ;Load lijn Hoog
       CALL       Delay  ;500 MSec wachten
       CALL       MAX7219_INIT

Main   ....

-Het gaat al mis, voordat de MAX7219_INIT routine uitgevoerd wordt.
-De wachttijd verlengen/verkorten is ook al getest.

Wie weet raad ?

Ken de PIC niet maar gebruikt een pullup op de CS\/LOAD ingang van de MAX7219 ipv de weak-pullup van de PIC.
De init routine klokt nu zo data naar binnen.

Wat gebeurt er als je het volgende doet?

code:


#Define	 CLK      PORTB,0                   
#Define	 LOAD     PORTB,1                   
#Define	 DIN      PORTB,2                   

INIT   PORTB als uitgangen instellen
       BSF        LOAD   ;Load lijn Hoog
       BCF        CLK    ;Clock lijn Laag
       BCF        DIN    ;Data lijn Laag
       BSF        LOAD   ;Load lijn Hoog
END

Het probleem lijkt inderdaad in die hoek te zitten.

Eerst de Load lijn Hoog maken (BSF LOAD) geeft geen verbetering.
Daarna ook nog een pullup weerstand van 10K op de load lijn aangesloten, ook dit gaf geen verbetering.

Vreemd, maar een pulldown weerstand van 10K op de load lijn lijkt de oplossing...

Intussen zo'n 10 keer gestart, en nog niet één keer is het mis gegaan.

Vreemd, omdat de Load ingang de MAX toch spert als deze HOOG is !

idd vreemd, zeker als de andere functies correct werken.
Succ6 verder.

Het zag er even goed uit, maar helaas gaat het nog regelmatig mis.

Ik ben ook nog bezig geweest met pullup/pulldown weerstanden (10K) op de Clock en Data lijn, maar het gaat toch nog regelmatig verkeerd bij het opstarten (weergave 8.8.8.8.8.8.8.8. waarna de MAX niet meer reageerd op commando's).

Wie heeft er ervaring met de MAX7219, of kan hier iets meer over vertellen ?

als hij niet meer reageert nadat alle displays oplichten, kijk dan eens of je niet toevallig in test-mode staat ?
Die MAX start op in test-mode. Je kan wel het aantal digits enzo instellen dat dient op te lichten, dat past hij dan aan, maar verder doet hij niks. (nou ja, hij reageert wel op commando's, maar zet ze niet op de display, omdat die nogsteeds in test-mode staat)

groeten,
Kris

https://www.digitalplayground.be - Where fun meets technology ...

Dat was (waarschijnlijk) het probleem.
Nu schakel ik als eerste de test mode Uit, en en gaat nu keer op keer goed (zo'n 10 keer getest).

Op 27 februari 2007 23:41:51 schreef ActiveHouse:
[...]....Je kan dan de data in de eerste IC binnenduwen, en als je daarna nog data naar die IC duwt, duwt die op z'n beurt de vorige data door naar IC2. Deze kan je dan weer doorduwen naar IC3 enz ....

Zit ik nog met de laatste vraag, is het nu wel of niet mogelijk om een licht krant te maken, dus dat de tekst gescrold wordt, zonder de digit data geheel opnieuw te beschrijven.

nee, dat zal je software-matig moeten oplossen hé.
Als je je data gewoon "doorduwt", springt hij met hele letters opzij, en da's niet zo mooi dan pixel per pixel hé. Maar wees gerust, die dingen reageren snel genoeg, ik heb een enorme matrix van 128 x 96 LEDs, en die stuur ik aan met een PIC 18F4320, en ik haal refresh-rates van meer dan 30 beelden per seconde !

groeten,
Kris

https://www.digitalplayground.be - Where fun meets technology ...

...Als je je data gewoon "doorduwt", springt hij met hele letters opzij...

Hoe krijg je dat voor elkaar ?
Als ik het goed begrepen heb, dan moet ik telkens de data naar een bepaalde digit sturen.

Adressen:
xxxx0001 = Digit 0
xxxx0010 = Digit 1
xxxx0011 = Digit 2
xxxx0100 = Digit 3
xxxx0101 = Digit 4
xxxx0110 = Digit 5
xxxx0111 = Digit 6
xxxx1000 = Digit 7

...Als je je data gewoon "doorduwt", springt hij met hele letters opzij......

Ik heb intussen de gehele datasheet doorgelezen, maar begrijp niet hoe ik dit voor elkaar kan krijgen...

[Bericht gewijzigd door MMSoft op zondag 1 april 2007 11:47:01

...Als je je data gewoon "doorduwt", springt hij met hele letters opzij......

Ik heb intussen de gehele datasheet doorgelezen, maar begrijp niet hoe ik dit voor elkaar kan krijgen...

[Bericht gewijzigd door MMSoft op vrijdag 6 april 2007 18:56:14

Bavelt

Golden Member

Oud Topic, toch pas het wel bij een probleempje dat ik heb met de MAX7219. (ook al gemeld bij sterrenhemel, dus wel een beetje dubbel).

Ik heb 8 MAX7219's achter elkaar geschakeld, die per MAX7219 64 Ledjes aansturen.
Dit werkt.

Wat ik alleen heb is dat van een tweetal MAX7219's een aantal LEDjes héél lichtjes blijven branden. Zet je ze hoog, dan branden ze normaal. Bij laag gaat er een paar dus niet helemaal uit.

Het enige waarmee je ze écht volledig uit kan zetten, is met het commando 0X0C, parameter 0x00. (Shut down).

Wellicht heeft iemand het ook meegemaakt van niet-helemaal uitgaande ledjes bij een MAX7219?

Of is het 'gewoon' chip defect?

Fouten zijn het bewijs dat je het probeert..

Uit je andere topic, je had toch 1 originele gekocht ? Even swappen en je weet het.

It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.
Sine

Moderator

Het gaat over de zelfde chip, daar houdt verder alle vergelijk wel op, en je hebt al een topic lopen over het onderwerp.

Dus dit bijna 15 jaar oude topic laten we verder maar eens met rust geloof ik.

[Bericht gewijzigd door Sine op dinsdag 18 mei 2021 08:06:10 (14%)

Dit topic is gesloten