Op 25 februari 2021 00:21:44 schreef Kortsluiting_Online:
Wat afstanden betreft...
Signalen uit microcontrollers zijn zowieso niet geschikt om direct door een kabel heen te sturen. Die dingen zijn ontworpen om op een PCB te solderen, en dat dan de I/O ook op de print blijft.
Anderhalve meter kabel is veel te veel voor een "normale" microcontroller uitgang, zeker als je op hogere frequenties dingen aan wilt gaan sturen.
eerste maatregel die je in een dergelijk geval moet gaan nemen is de timing aanpassen, zodat de kabel capaciteiten tijd krijgen om te (ont) laden. Kleine ferriet kerntjes of echte Pi filters zijn ook een manier om betrouwbaarheid wat te verhogen. Maar het beste is om echte "line drivers" te gebruiken.
Ik heb zelf nogal een afkeer van maxim (krijgt geen hoofdletter van mij). Ze maken wel leuke chipjes, maar willen daar gelijk exorbitante bedragen voor hebben. (Texas Instruments maakt b.v. ook driver chippen voor LED matrix displays).
Om mee te spelen heb ik ook een bosje van die 8x8 displays gekocht met chinese MAX7219 clonen. Die van mij doen het, (Ik heb verschillende verhalen van het tegendeel gelezen op het grote internet).
Ik heb echter wel een merkwaardig verschijnsel ontdekt. Soms gaat het hele display op tilt op het moment dat er spanning op komt. De enige manier om het dan nog aan de gang te krijgen is om de spanning er af te halen, even wachten en nog een keer proberen. Ik vermoed dat het komt door CMOS "latching". Dat houd in, op de chip wordt met de (paracitaire) diode van het substraat een thyristor gevormd. Als die thyristor getriggered word, blijft hij stroom gelijden tot dat de spanning er af gaat. In "westerse" electronica is dit tig jaar geleden al (vrijwel) opgelost door die (altijd aanwezige) tyristor extra ongevoelig te maken. Die Chinezen vertrouw ik wat dit betreft niet zo.
Voor mij heb ik het opgelost door voor de displays een P-Kanaal fet te zetten. De microcontroller maakt dan bewust alle aansluitingen naar de MAX7219 laag bij opstarten, zet daarna de P-kanaals MOSfet open, en begint dan pas met aansturen. Met die combinatie waren mijn problemen verdwenen.
Ik ben trouwens niet zo blij met mijn MAX7219 chippen. De helderheid van die dingen is alleen in hele grove stappen in te stellen, en dan nog lineair ook, terwijl ogen (ongeveer) logaritmisch zijn. Deze grove stappen zijn nauwelijks bruikbaar om b.v. de helderheid van het display aan omgevingslicht aan te passen. Als de omgeving donker is, zijn de stappen veel te groot. Van "1" naar "2" is een verdubbeling van de hoeveelheid licht. En als er veel omgevings licht is ga je van "15" naar "16" wat een verschil is van een procent of 6.
Alles bij elkaar...
Nooit van z'n leven EUR 6 aan een "originele" uitgeven, dat is de chip domweg niet waard. Maar EUR1,5 voor een chinees printje met chip & display en dat nog redelijk bruikbaar is ook is leuk om mee te spelen.
Als je zelf wilt solderen:
Neem 2x 74HC595, en een ULN2803 en 8 weerstanden. Je hebt dan ook wel wat meer software nodig en moet zelf multiplexen. Je kunt dan ook een PWM uitgang van je favourite uC aan een van de 74HC595 chippen hangen om het display te dimmen.
Dank voor je reactie.
Ik heb inmiddels wat maatregelen genomen om het zaakje 'redelijk' betrouwbaar te laten werken:
- De SPI Clockfrequentie aanzienlijk naar beneden brengen (ca 15 Khz)
- Een weerstand van 2K tussen de Data en Clock (oplossing uit een ander topic)
- Goede kabels en pluggen (CAT 5 UTP kabel, RJ45 pluggen en chassideel.
Achteraf had ik het waarschijnlijk beter kunnen doen door alles op één print te monteren, dus ook de MAX 7219's en de (lange) draden alleen naar de LED's. Dan loopt er geen dataverkeer, clocksignalen etc meer over de draden.
De lichtopbrengst heb ik ook mee lopen stoeien. Ik regel het nu redelijk lineair door een tabel op te nemen die de stapjes min of meer logaritmisch maakt, waardoor het voor het oog gelijkmatiger is.
Maar ook ik ervaar met de Maxen soortgelijke problemen. Bijvoorbeeld dat er na een fout je de zaak niet zomaar aan de praat krijgt. Soms lang wachten nadat je de voedingsspanning hebt afgekoppeld.
En dan ineens werkt het weer.
Een ander vervelend probleem is dat de MAX7219 een eigen oscillator aan boord heeft om de PWM te regelen. Als je dan zoals ik 8 van die dingen hebt, krijg je rare stroboscopische en interferrentie verschijnselen, omdat ze allemaal hun eigen tempo hebben en niet zijn gesynchroniseerd. Als je je hoofd beweegt of met je opgen knippert, zie je de LED's als een 'lichttrein' aan je voorbijgaan. Een soort echo-effect.
(Met een beetje pech kost het af en toe na lang staren naar het project een doosje paracetamol... )
Het project is inmiddels ver gevorderd en wordt eerdaags aan het plafond opgehangen. Alleen de Maan moet nog.
Daar moet ik nog iets voor verzinnen: om een ronde maan te maken van LED's (waarbij ik dan eerste, laatste kwartier, volle en nieuwe maan zou moeten kunnen regelen).
Ik ben overigens ook wel benieuwd naar de oplossing met de 74HC595...