Stránka 1 z 2

PWM matrix s ATmega

Napsal: 27 lis 2011, 13:13
od polo_marco
Dobry den
Potreboval by som pomoct s jednym projektom. Chcem spraviť LED maticu 64x8led. Kde by som kazdu led mohol lubovolne rozsvietit a riadit ju aj PWM signalom. Stretol sa uz niekto s niecim podobnym?

Napsal: 27 lis 2011, 14:12
od Jenda_KL
Jde o to jak moc to uděláš složitě.
64 sloupců horizontálně, tzn. 8x 8bit záchytných registrů a driverů,
8 řádků, přepínat třeba 4017.
PWM, třeba 4-bitovou,udělat vynecháváním bitů při obnově.

Napsal: 27 lis 2011, 15:18
od polo_marco
islo by to nejak takto? schema pochadza z 8x8x8led cube

len ako tam poriesiť PWM?

Napsal: 27 lis 2011, 16:23
od Banda
O PWM se snad postará procesor, ne?

Napsal: 27 lis 2011, 18:09
od Jenda_KL
573 je "transparent", když budeš postupně zapisovat těch 8B tak se budou hned předávat do právě zobrazeného řádku.
potřebuješ něco "buffered", nebo ještě jednu 573 za to, nebo řádek vždycky při přepisování deaktivovat, tzn. načtení dat, výstup dat, zápisový pulz + nějaká další režije to dělá celkem by odhad 8us čas mezi aktivními řádky.
LED A-řádek K-sloupec(výstup 573)

Napsal: 27 lis 2011, 18:56
od polo_marco
Moc som tomu nepochopil ze je transparent :?

Napsal: 27 lis 2011, 20:00
od Jenda_KL
když IE=1 & #OE=0 tak se data neustále kopírují ze vstupu na výstup, čímž překreslují právě zobrazený řádek.
šel bych do posuvného registru, třeba 594, všech 8 sériově naplníš, deaktivuješ řádek, pošleš signál pro překlopení dat na výstupy a aktivuješ další řádek.
Tím pádem máš na přípravu a přenos nových řádkových dat čas.

Napsal: 27 lis 2011, 20:18
od Andrea
Posuvné registry nebudou asi to pravé, z hlediska rychlosti, když chce ty LED řídit PWM.

Napsal: 27 lis 2011, 20:27
od Jenda_KL
Zabere to stejně času, když použije jeden výstupní pin jako zdroj dat pro jeden posuvný registr, navíc se pak dá řádek přepnout na 4 instrukce.
Je to jednodušší i na drátování.

Napsal: 27 lis 2011, 21:50
od polo_marco
Neviem či som to nakreslil spravne, mohlo by to byť takto?
Ešte otazka, ako budem riešiť PWM? To už v ramci SW, lebo s PWM nemam ziadne skusenosti :(

Napsal: 28 lis 2011, 00:01
od Jenda_KL
To je právě ta varianta "na dlouho", tady musíš sériově poslat 64bitů, 64 taktů.

piny PAx propoj na SER
všechny #QH nech odpojený
všechny SCK třeba na PB1
všechny SCL na +5, nebude potřeba.
všechny RCK třeba na PB0
všechny RCL na +5, taky nebude potřeba.

Takhle pošleš 64bitů na 8 taktů.
SCK posouvá bity a RCK přesune přijatá data na výstup.

Napsal: 28 lis 2011, 00:27
od polo_marco
Pomaly zacinam chapat, cize SER pripojim na PORT A 1-8, a SCK na PB0, RCK PB1.

SCK posuva byty 0-7, a RCK mi ich posle na vystup tak ako ich zapisem do registra.
Este ktomu SER, ked nanho provediem H vtedy, ho ako keby "aktivujem"? ked je L vtedy neposuva register. Spravne som pochopil?
Inak ako teraz pozeram, mohol by som použiť aj 74hc595, nie?
datasheet
http://www.nxp.com/documents/data_sheet/74HC_HCT595.pdf

Napsal: 28 lis 2011, 01:24
od Jenda_KL
ne SER je vstup dat. To co je na tomhle pinu se zapisuje změnou LH na vstupu SCK

na PA7:0 zapíšeš sedmé bity [b] každého bajtu [B] . třeba 01101011.
SCK LH bit se posune v každém registru.
SCK HL
na PA7:0 zapíšeš šesté bity každého bajtu. třeba 00101111.
SCK LH bit se posune v každém registru.
SCK HL
atd až k nultým bitům...

až bude konec:
PA7 registr: 00xx xxxx
PA6 registr: 10xx xxxx
PA5 registr: 11xx xxxx
PA4 registr: 00xx xxxx
deaktivuješ řádek a
RCK L-> H se poslaných 64 bitů přenese na výstup
RCK H->L
aktivuj další řádek.

Nevím čim se 595 přesně liší, je tam taky ,DS(SER) SHCP(SCK) SDCP(RCK)

PWM budeš řešit sw, začni zatím bez ní, nebo prozačátek s plnou a poloviční intenzitou svitu.

Napsal: 28 lis 2011, 17:48
od polo_marco
OK, uz chapem, dik moc :)
Spravil som tu schemu, takto by asi vyzerala, pridal som este tranzistorove polia na vystup

Napsal: 28 lis 2011, 18:43
od Jenda_KL
IC 11 a jemu následné jsou co?
Když bude mít řádek společnou anodu, nemusíš tam , pokod to jsou, ty budiče dávat. Ta 594 má IOL 12mA, to tu ledku utáhne. Řádkový tranzistory zapoj jako sledovač.