VFD ir PT6315 kontroleris

Taip imat, konstruojat kažką, konstruojat ir staiga tik pyst, prisireikia pajungti daugiau nei kokius trys LEDus, arba kokius nors aštuonsegmenčius displėjus, o dar mygtukai… ir nebeliko kontrolerio kojyčių. Galima paimti kokią 128-koją atmegą (ARMą), naudoti sudėtingas dinamines indikacijas, charliplexingus… nu ir kam to reikia? Vietoje to, kad sutelkti dėmesį į projekto bugų naikinimą, jo naudojimosi patogumus, didžiają dalį savo programinimo laiko praleidi programindamas taimerius-dinaminę indikaciją, kovodamas su lempučių mirgėjimu ir su CPU time trukumu. Dar plius kovoti su mygtukų kontaktų “drebėjimo” problemom. O ką daryti?! Atsakymas paprastas- lituoti dar vieną mikroschemą. Pasakysit jos brangios, sunkiai gaunamos? Taip, visokios brandinės tai tikrai. Tačiau pažiūrėkit po stalu (šiukšlyne). Tikrai rasit kokį nusibaigusi DVD grotuvą. Arba kokį kitokį kinišką “širpotrebą” su indikatorium…

princeton technology corp. VFD LED drivers
Va, vienas VFD, kitas LED displėjukas.

princeton technology corp. VFD LED drivers
Tai kiniškos kompanijos “Princeton Technology Corp.” produktai- VFD draiveris PT6315 ir LED draiveris PT6961. Dar ant stalo guli PT6312 su mažiau kojų.

Tai patys paprasčiausi dinaminės indikacijos ir mygtukų kontroleriai. Valdomi per keturis laidus (nu tiesa pasakius, du laidus galima užtrumpinti ir veiks per tris). Aišku nuoseklus interfeisas, panašus į SPI. Dar mikroschemai reikia vieno rezistoriaus dinaminės indikacijos dažniui nustatyti. Jei bus naudojami mygtukai, reikės dijodų ir rezistorių.
Dar VFD mikroschema gali valdyti keturis LEDus.

Kadangi internete galima rasti mikroschemos aprašymus, tai pajungti ją pasirodė labai paprasta. Tiesa biški vėl teko susidurti su kinišką logiką, bet nieko baisaus ir drąstiško (tik 10 žalių PCB į šiukšlyną).
VFD draiveriui reikia Vee maitinimo kuris yra neigiamam potenciale palyginus su GND. Jis netgi neigiamesnis nei VFD lempos katodas. Tada VFD lempa šviečia labai korektiškai- jos anodai kinta nuo Vcc (teigiamos +5V) iki neigiamesnės nei katodas (Vee, apie -20V).
LED draiverio mikroschemos nestudijavau taip giliai, bet mikroschemos padarytos panašiai.

Kas šlykštisi šrotu arba jiems reikia daugiau, tai aliexpresse tu mikroschemų galima paimti ir papigiai.


Svarbiausia, kad viskas paprastai, kiniškai veikia ir nereikia nervuotis dėl projekto vizualizacijos!
Mirtis nenaudojamiems DVD grotuvams, radijoms ir kitokiam šlamštui- recycle!

Ir aišku:PT6315 VFD mikroschemos source code AVR ATMEGA8. Ten tiesa dar pripaišytas RTC, kad kažką rodyti ir gana iškreiptas “šriftas”, nes kiniečiai labai keistai pagamino tą VFD ekraniuką.

Labai nepykit jei ten bus pilną klaidų, jau kokią savaitę turiu temperatūros ir smegeniai vos vos veikia. Sunkiai sekasi programuoti.

12 replies on “VFD ir PT6315 kontroleris”

  1. nu jo, temperatūra daro savo…

    print(x<65);

    Ilgai galvojau kas čia per b… , o pasirodo, čia mirksintys dvitaškiai tarp skaičių. 🙂

    Todėl trumpas softo aprašymas. Ant I2C kabo RTC laikrodukas, kuris daro rodos 1Hz tick signalą. Tas signalas iššaukia pertraukimą per INT0. Tada nusikaito RTC turinys ir pavaizduojamas ant VFD displėjuko. Vienas simbolis ant VFD atitinką mygtukų būklei. Pakeliui pagal globalinę X reikšmę mirksi dvitaškiai.
    Taimerio pertraukimas kažkur ten gal 13Hz dažniu iššaukia programą kuri paišo tą bybuką kuris sukasi ratu. Ten 13 segmentų, todėl ir 13Hz, kad apsisuktu maždaug per vieną sekundę. Čia ir skaičiuojasi globalus X.
    Šiaip, daugiau softas nieko nedaro.

    Inicializacija irgi paprasta- I2C, PT631x čipas ir jų kojos. Pull-up ant INT0. Dar yra debug koja kuri keičia savo būklę pagal reikalą.

    Toks keistas RTC inicializavimas gavosi empiriškai, pagal praktiką. Kartais RTC nupušta ir jiems gerai perrašyti bent jau valandų-minučių-sekundžių registrus, nes jiems kartais užeina tokios nesamonės kaip trisdešimt 0x0A valandų, septyniasdešimt devynios minutės ir šimtas penkiasdešimt sekundžių

  2. Maxim nemokamus samplus siunčia (bent jau prieš porą metų siuntė) visokių panašių draiverių. Pirkt, tai tikrai brangūs jie.

  3. There is no schematics, as part of board is from some old DVD player and other PCB is universal AVR PCB. All the stuff is in software. Source code is available in the link above, in main article.

    All real time clock timekeeping is in some RTC chip on I2C bus.

  4. Thank you.
    I’m a novice in microcontrollers.
    Now I trying to make a watch based on VFD from DVD, chip PT6315 and some of AVR controllers.
    I understand, how to connect VFD to PT6315, have no problem with power supply, but can’t design controller board 🙁

  5. You can use any AVR/Arduino controller from Aliexpress/eBay or other sources. I am using selfmade PCB with some universal PCB I’ve made many years ago. These PCBs are for bunch of different components- ATMEGA8, 16 (32), some Atmel ARM chips… now I ordered PCBs for STM ARM chips and other stuff. PCB cost is about 1.2$ for PCB from China. Some of the boards are described in my blog page, some not.
    The idea is that there is no need for special PCB. Software is written in “generic” C, and it is portable to any hardware with minor changes.
    Just grab ANY PCB with any AVR controller, replace few lines in source code and adapt it for your purposes.
    Some examples in my blog do not have permanent circuit- it is made only for testing and for fun, like this VFD experiment.
    There is some schematics of ATMEGA16 (32) board here. First prototype is about 10 years old!

  6. Greetings to the author and everyone.
    I thought your Clock was really cool, but I have no idea how to adapt the code to open and write in the Arduino IDE (ATmega328); did anyone here do this? Thanks

  7. Hey friend!
    I have a Samsung Digit HNV-07SS45T with 13 Digits with 13 Segments and I am dealing with an Arduino code for a Clock but, I have a crucial question about the characters as here:

    unsigned int segments [] = {
    0b01110111, // 0
    0b00100100, // 1
    …..
    …..
    So, how do I fill in this binary table, which has 8 characters, if my Display has 13 Segments (13 characters), as I said above?
    If I could put a drawing here, you would understand it better; thanks

Leave a Reply

Your email address will not be published. Required fields are marked *