[ZIE ONDER VOOR UPDATES!]
Heya!,
Ik ben bezig met een projectje, waarbij ik 2 16*16 led-matrix schermpjes aan wil gaan sturen. Hiervoor ben ik op de volgende driver ic's gekomen (TLC5922) van TI.
datasheet: http://focus.ti.com/docs/prod/folders/print/tlc5922.html
Om de 2*16*16 displays aan te sturen heb ik 4 drivers nodig (2 per display, een row een colom)
Deze wil ik aan gaan sturen met een Atmega128 (welbekend, maar voor de onwetende de datasheet: http://www.datasheetcatalog.com/datasheets_pdf/A/T/M/E/ATMEGA128.shtml)
De Atmega beschikt over een 2-tal seriele poortjes, wat precies geschikt is voor mijn doel. In eerste instantie wil ik een USART gebruiken voor de communicatie naar een PC en de andere om de LED-drivers aan te sturen (in cascade geschakeld).
Nu is de datasheet van de drivers niet bepaald overcompleet, maar ik het meeste er wel uit kunnen vinden. Het id zoals ik het nu heb liggen:
dmv a-synchrone communicatie wil ik de 4 drivers aansturen over een van de USARTS van de Atmega128.
De drivers komen in MODE 0 (16 bits, zonder dot-correction).
In startpositie stuur ik de eerste 16 bits voor de eerste driver, direct hierna stuur ik vanuit de Atmega128 de XLAT0 aan van de eerste driver, zodat de data doorgeshift word. Stap 2 is wederom 16 bits data sturen en nu uiteraard XLAT1 aansturen, zodat de 2e driver de data doorshift. etc..
Als ik dit zo bekijk heb ik 17 clock-pulsen per driver nodig om deze aan te sturen (16*data + 1 xlat bit)
17*4(drivers)=68 clock pulsen per lijn
16(lijnen)*68=1088 clock pulsen zijn er dus nodig om de 2 led-array's volledig aan te sturen.
Om een redelijk beeld te krijgen moet de total frequentie hoger zijn als 24Hz.
24*1088 = 26112 clock pulsen
Met een transfer-rate vanaf de Atmega zou ik dus al uit de voeten kunnen met 27KHz.
Ik ben begonnen met het uitteken van het schema (nog geen voedingen etc aangesloten, puur en alleen de seriele verbindingen) http://www.itabs.nl/array.jpg
Ik zou graag aan jullie een second opinion willen vragen, of ik op de goede weg ben en zo niet, waarom?
Ik weet bijvoorbeeld niet zeker als ik de drivers in cascade zet ook iedere driver altijd de seriele data binnenkrijgt (was mij niet helemaal duidelijk uit de datasheet).
Laat maar horen!
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Voor zover ik van een vluchtige blik op de datasheet van de TLC5922 opsteek, kan je die dingen inderdaad in serie plaatsen als een gewoon schuifregister (de 74HC595 bv.), zodat na 64 seriële klokpulsen alle bits volledig "doorgeschoven" zijn. Wat ik in je schema niet begrijp, is het feit dat je de XLAT-ingangen afzonderlijk aanstuurt. Immers, als je er toch voor kiest de 4 IC's in serie te plaatsen, kan je de XLAT-ingangen zonder meer aan mekaar knopen. Hetzelfde geldt trouwens voor de MODE-ingangen. En ook voor de BLANK-ingangen. Het is bij matrix-aansturing steeds een goed idee om tussen het wisselen van de data voor korte tijd alles te doven, teneinde spook-effecten te vermijden.
Nog iets: voor zover ik kan zien, kan de TLC5922 enkel stroom sinken. Wil je een LED-matrix sturen, dan heb je zowel drivers nodig die stroom kunnen sinken, als drivers die stroom kunnen sourcen!
[Bericht gewijzigd door pros op ]
oor zover ik van een vluchtige blik op de datasheet van de TLC5922 opsteek, kan je die dingen inderdaad in serie plaatsen als een gewoon schuifregister (de 74HC595 bv.), zodat na 64 seriële klokpulsen alle bits volledig "doorgeschoven" zijn.
Als ik de XLAT bij iedere driver tegelijk aanstuur, dan gaat de data-transfer vanuit de MCU toch nog gewoon alsvolgt?:
Driver1..................Driver2.................Driver3
[16 bits][XLAT bit] [16 bits][XLAT bit] [16 bits][XLAT bit]
etc.
Ik voorzie op deze manier alleen dan wel een probleem als er een XLAT bit "verloren" raakt, zo zal het scherm niet meer sync lopen.
Ik zou dan nog wel aan de terugkoppeling van de laatste driver kunnen zien of deze wel zijn data heeft gehad.
[16 bits][XLAT bit][16 bits][XLAT bit][16 bits][XLAT bit][16 bits][XLAT bit][check bit] etc..
Nog iets: voor zover ik kan zien, kan de TLC5922 enkel stroom sinken. Wil je een LED-matrix sturen, dan heb je zowel drivers nodig die stroom kunnen sinken, als drivers die stroom kunnen sourcen!
Ik dacht niet dat dat nodig was, als ik er voor zorg dat er een common-anode array aanhangt? zoiets als hieronder.
De driver zorgt er zo voor dat de GND's wel en niet geschakelt zijn:
In de cascade example van de datasheet doet men dat ook zo
Bedankt voor de feedback!
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Op 9 november 2006 20:24:45 schreef Triggs:
Als ik de XLAT bij iedere driver tegelijk aanstuur, dan gaat de data-transfer vanuit de MCU toch nog gewoon alsvolgt?:Driver1 Driver2 Driver3
[16 bits][XLAT bit] [16 bits][XLAT bit] [16 bits][XLAT bit]
Wat ik bedoel, is dat je eerst alle bits (48 in jouw voorbeeld) serieel doorstuurt met een DATA- en een CLK- lijn v/d uC, en dan de drie XLAT-pinnen gelijktijdig activeert met een derde lijn v/d uC. Voor de MODE-lijn (als je de stroomregeling-functie wil gebruiken) heb je een vierde signaallijn nodig.
Het kan ook anders, en sneller: gebruik voor elke TLC5922 een afzonderlijke DATA-lijn (SIN), knoop alle SCLK-pinnen aan mekaar en verbindt ze met een uC-uitgang, doe hetzelfde met de XLAT en --zo nodig-- de MODE en BLANK pinnen. Nu kan je voor iedere TLC5922 afzonderlijk het gepaste bit klaarzetten, SCLK activeren, het volgende bit klaarzetten, SCLK activeren, enz. (x 16). Nu is het schuifregister van elke TLC5922 gevuld met de data die voor hem bedoeld is, en kan je alle XLAT-pinnen gelijktijdig een puls geven, zodat de bits aan de uitgang verschijnen.
Dat kost je --voor 4 IC's-- 6 uC-pinnen (plus 2 voor MODE en BLANK).
Ik dacht niet dat dat nodig was, als ik er voor zorg dat er een common-anode array aanhangt?
In dat geval heb je geen source-drivers nodig. Ik verwarde even "matrix" met "multiplexen". 
volgens mij zit ik er zelf helemaal langs :|
schermpje
http://www.farnell.com/datasheets/46565.pdf
* Triggs nog eens ff nalopen...
[edit]
je hebt wel gelijk.. ik zelf was in de war :x
[/edit]
terug af..
[Bericht gewijzigd door Triggs op ]
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Met het display? Daar lijkt het erg op...
Nu ja, je kan nog steeds voor elk van dergelijke display's 1 TLC5922 (handig voor de stroomregeling - geen weerstanden nodig) als sinc-driver gebruiken en 2 74HC595's of 1 74HC674 als source-driver met --zonodig-- transistors die als emittervolger geschakeld zijn.
de TLC5920 lijkt me geschikter voor deze operatie!
http://focus.ti.com/lit/ds/symlink/tlc5920.pdf
* Triggs puzzelt verder 
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Nieuw ontwerp!
Gebaseerd op 2 driver:
Schema:
http://www.itabs.nl/new.jpg
Nu is ie in ieder geval wel aan te sturen 
[Bericht gewijzigd door Triggs op ]
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Op 10 november 2006 16:24:36 schreef pros:
Leuke drivers. Heb je ook een idee van de prijs?
Ze kosten rond de 4 a 5 euro ps geloof ik (farnell), Ik heb er een 6-tal als sample besteld bij TI direct.
Sample aanvragen 2 dagen later heb je ze in huis!
Goede service 
pros
Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)
Op 10 november 2006 18:25:59 schreef pros:
Zouden ze daar bij TI samples leveren aan gepensioneerden? Ik heb zo mijn twijfels...
Is geen enkel probleem, niet geschoten is altijd mis 
Ik heb zo al verschillende malen samples besteld, niet alleen bij TI maar ook bij microchip etc.
Whoei met deze presenteer ik U met trots het meest recente schema (zou zo goed als af moeten zijn nu)
http://www.itabs.nl/schema.jpg
Commentaar = welkom!
*notes:
- De spoel in de voeding is inderdaad een C, nog geen tijd genomen om daar een fatsoenlijk component voor te maken.
- !DSELx zijn voor de 2 drivers apart aangesloten, om eenvoudiger te kunnen debuggen.