RGB LED matrica: organizacija

Šis postas labiau skirtas man pačiam nei plačiajai visuomenei. Paprasčiausiai, popieriukai su užrašais dažnai pasimeta arba sunku juos rasti. O čia, internete, informacija randu greičiau :) .
Pagaliau buvo laisvo laiko, ir aš kiek padirbėjau su savo RGB LED matrica. Labai palengvino darbą FPGA mikroschema prilituota prie matricos- be jos, “reverse engineering" užtrūktu labai daug laiko… Laikas pažiūrėti ką sumastė Adaptive Micro Systems LLC iš Milwaukee, Vajomingo… ;)

RGB LED full color matrix

Matrica sudaryta iš 72×24=1728 RGB šviesos diodų. (Viso 5184 diskretus diodai).
Matrica padalinta į dvi dalis (eiles) kurios įjungiamos signalais (pagal mano klasifikaciją): LE_MBI_UPPER ir LE_MBI_LOWER (69 ir 70 ciklono kojos). Viena eilė sudaro 12 šviesos diodų eilučių. /LE signalo impulsas perveda informaciją iš vidinio registro į išorę. Žiūrėti MBI5026CD datasheetą .

Šias dvyliką eilučių valdo (per mosfetų raktus) paprasčiausia dvejetainė-šešiolika (74HC154, К155ИД3) mikroschema. Šios mikroschemos naudojamos tik 12 jaunesniųjų išėjimų. Pati dešifravimo mikroschema pajungta taip: A0-A3 (HC154A[3..0]) prie ciklono (32, 33, 34, 35), OE2 (HC154OE2) prie ciklono (32). O štai OE1 pajungtas gana įdomiai, čia padaryta apsauga nuo užstrigimo- su diskretinėm detalėm (rezistoriai, kondikai, tranzai, diodai) suorganizuotas šioks toks watchdog'as. Kol šį “šunį" maitinam per (RC_UNKNOWN1, 37), dešifratorius išduodą išėjimą. Užtenka generaciją nutraukti ir dešifratorius išsijungia.

Kiekvienoje eilutėje (išskyrus pirmuosius du kvadratėlius) yra 16 RGB diodų, kurie savo ruožtu maitiniami iš 3 serial-par-LED-draiver mikroschemų (MBI5026CD). Kiekviena mikroschema atitinkamai R, G ir B spalvas.

Dar, visos MBI5026 turi OE išėjimų valdymus, kurie sujungti išilgai, t.y. OE1 (59) atsovauja viršutinės dalies R spalvai, OE2 (60)- G, OE3 (61)- B. Atitinkamai OE4,5,6 (62, 67, 68)- apatinės dalies RGB.

Vaizdelio paišymas organizuojamas taip:
Paimam iš atminties 10×16 spalvotų pikselių. Juos užkraunam į registrus. Su LE pasirenkam viršutinę ar apatinę matricos dalį naudoti, o su dešifratoriaus A0..A3 pasirenkam eilutę. Kam tas LE? Nes kiekvienas “kvadratėlis" turi savo nuosava SDI…

Bet kaip organizuojamas individualaus taško ryškumo reguliavimas? Kažkaip manipuliuojant OE ir H154OE2? Nes teoriškai, čia turėtų buti “analoginė", “full color" matrica. Kažkaip nesinori tikėti, kad čia tik 8 spalvos… :( Pati MBI5026 turi fiksuotos srovės išėjimus.

Pažiūrėkit ką jie gamina/gamino: http://www.adaptivedisplays.com/

11 Responses to “RGB LED matrica: organizacija”

  1. FoxIS Says:

    O kokie signalų vaikščiojimo dažniai ?
    koks fps?

  2. Administrator Says:

    Nežinau kokie galimi dažniai. Ant plokštės stovi ~18MHz kvarcas, toliau FPGA stovi PLLas ir dažnį galima užkelti. Šiuo metu PLLas išduoda 110.59MHz, serial clokas 1/2 taigi apie 50MHz, 16 bitų- 3MHz - 12 eilučių- 0.2MHz + mano klaidos. Žodžiu švelnus mirgėjimas jaučiasi.

    Taigi apie fps negaliu pasakyti. Tačiau turi tikrai imti 70fps.

    Čia testavimo schema. Nuo nuotraukoje pavaizduotos skiriasi, kad čia biški mirguliuoja (žiūrėti į OE grandines).

  3. Administrator Says:

    PWM moduliacija per OE (RGB):

    PWM RGB matrix

    Matosi, kad žali šviesos diodai žymiai lengviau užsidega. Beja, melyni diodai prie mažų raiškių kaitalioja spalvas :)

  4. Matas Says:

    Koks panaudojimas nusimato?

  5. FoxIS Says:

    wow :)
    man turbūt su atmega 16×16 matricos užPWMint nepavyks…

    o beje, kokiam formate plokštė priima vaizdą? ar savo konfiguraciją į fpga įrašei ?

  6. Administrator Says:

    Matui: jokių panaudojimo planų. Just for fun.
    Foxiui: pas mega hardwarinių pwm yra mažai. O softwarinių gali ir pritrūkti. Tam reikalui reikia naudoti kokią specialią PWM mikroschemą. Pas FPGA tai paprasta- bet kuri koja pasidaro PWM :) .
    Apie formatus plokštėje- originalus FPGA kodas nežinomas. Yra žinoma, kad pas plokstę yra 4 kanalų LVDS jungtis. Eksperimentuodamas paprasčiausiai perrašau FPGA turinį ir bandau savo schemas.

  7. Matas Says:

    Brangus tavo fun, bet kad fun tai tikrai :)
    Pakurk koki idomu project, pvz koki nors fading laikrodi :)

  8. Administrator Says:

    Labai labai neskubant padariau RGB matricos “firmware" deja ji be ryškumo lygių (tik 8 spalvos). Nelabai yra laiko ir energijos vargti su ta matrica. O kolega užsenietis užsispaudė savo subine ir nenori pasidalinti įdėjomis kaip organizuoti pilną spalvų gamą. Taip pat yra problemos su LED draiveriais- jei dega visi 16 diodų, jie dega silpniau, nei keli diodai. Atrodo, kad neužtektu galios. Matinų viską iš modifikuoto ATX (5V ir 3.3V), rodos galios turėtų užtekti…

    RGB matrica. Dalinis sprendimas
    (visų spalvų patikrinimas)

    RGB matrica. Dalinis sprendimas
    (atsitiktinė informacija vidiniame buferyje)

    Šiuo metu projektas naudoja 8192 iš 92160 (9%) bitus atminties, 1602 iš 5980 (27%) loginių elementų ir vieną PLLą (50%). FPGA dar kiek liko resursų viską perdaryti geriau. Beja optimizacija dar nepanaudota. Ryšis su išore tik per JTAG. Galima keisti “frame buffer" turinį ir RGB PWM reikšmes (white balance).

    Žiūrėti tai pat ir šitą žinutę: http://www.vabolis.lt/2008/09/28/rgb-matrica-rasom-softn/

  9. bwana Says:

    Hi,

    Can you send to me the FPGA code? I also have one of this board and I need the pinout of the FPGA.

    Many thanks and congratulation for your work!

  10. Administrator Says:

    Check other posts in LED and FPGA category and you'll find two versions of FPGA code. All pinout are in FPGA code.

  11. Administrator Says:

    64 bitų ryškumai individualiam taškui:

    RGB 64 levels
    (skaičiukas tai gama koeficientas)

    Daugiau apie tai: http://www.vabolis.lt/2008/10/10/rgb-matrica-gama-korekcija/
    dar biški: http://www.vabolis.lt/2008/10/04/rgb-matrica-beveik-24-bitai/

    Ir dar keli postai iš http://www.vabolis.lt/category/led/ ir http://www.vabolis.lt/category/fpgacpld/ ketegorijų.

Leave a Reply

Bot-Check (Jei ne skaičiai spauskit refresh. Tik oranžinius naudoti.)

Unhappy Tikbalang