FPGA:0002 – Cypukas

Kai jau kažkas suveikė ir signalas perėjo iš vieno mikroschemos šono į kitą, reikia tą signalą kaip nors modifikuoti.
Aišku galima iš bibliotekos prisidėlioti visokių loginių elementų į schemos puslapį ir viskas veiks. Bet mūsų užduotis pasigaminti modulį kuris veiks pagal mūsų norus. Ką nors nestandartinio.
Tačiau pradžiai reikia pasidaryti pirmą periferinį įrenginį- mažyčiuką garsiakalbiuką. Aišku nesamonė jungti tiesiogiai garsiakalbiuką prie LVTTL kojos, reikėtų kokio nors buferio, tačiau bus gerai ir tiesiogiai. Aš panaudojau cypuką iš kompų motininės plokštės. Kad netrumpinti FPGA kojos, nuosekliai įlitajau nedidelį rezistorių- kad srovė neviršytu leistinos mikroschemos išėjime.

Mūsų FPGA turi vienintelį CLK šaltinį 50MHz osciliatorių (25MHz gal pas ką nors). Tokio dažnio tikrai niekas negirdi, nebent radio imtuvai. Todėl dažnį reikia sumažinti. Lengviausia tai padaryti su skaitliuku.
Continue reading →

FPGA:0001 – Softas, konfiguravimas, pirmas paleidimas

Straipsnis tikrai atsirado greičiau nei koks nors skaitytojas įsigijo dev boardą. Tačiau softą dalinai galima pasibandyti.

Paleidus Quartus programą spaudžiam naujo projekto darymo “wizardą”. Spaudžiam NEXT ir pasirenkame direktorija kurioje kursime savo pirmą projektą. Darbo metu ten susikurs melionas ir dar biški failiukų, todėl reikia susikurti naują direktoriją. Pasirenkam projekto pavadinimą, kad ir “FPGA001”. NEXT.
Čia galima pridėti esamus failus prie projekto. Nieko dar neturim, tai spaudžiam NEXT.
Dabar pasirenkam kokią mikroschemą naudosim. Čia jau kokią prisilitavot, nusipirkot, tą ir pasirinkit. Aš renkuosi Cyclone II šeimą, 144 kojos, EP2C8T144C8. Čia pamatom, kad šitas čipas turi 1.2V core maitinimą, 8256 loginius elementus, 85 vartotojui panaudojamas kojas, 165888 atminties bitus, 36 loginio dauginimo elementus, 2 PLLus ir 8 globalius CLK sujungimus. NEXT
EDA tool settings nesvarbu kol kas. NEXT. FINISH.
Continue reading →

FPGA:0000 – Intro

Labai mažai rašiau FPGA/CPLD temoje, o ir tautinėje “spaudoje” ši tema mažai apšviesta. Todėl (nes išsibaigė fantazija) nutariau parašyti keletą straipsnių apie FPGA čipus ir jų panaudojima. Aišku, stipriai remsiuosi FPGA4FUN puslapiais. Gal net plagijuosiu. Ir dar, nesiruošiu apibrėžti visko ir visada. Todėl mano pasakojimui bus apie Alteros produktus ir verilog kalbą. Kitų neįvaldžiau.

Kadangi žaisti su FPGA “sausai” yra didelė nesamonė, o pramoniniai dev-boardai karvę kainuoja, tai pradedu pasakojima apie pigų dev boardą.

FPGA mini board
(Altera Cyclone II, EP2C8T144C8N)

Tokių dev boardų su Altera Cyclone II (EP2C5 arba EP2C8) pilna eBay. Yra plokščių, kur viskas sulituota (rodos apie 20…30$ kainuoja), o yra tik PCB (~3$ su atsiuntimu).
Jei rankos nekreivos, turite kur nors laisvą FGPA ciklono čipą, tai galima pačiam prisilituoti. Aš taip ir padariau (čipas iš seno LCD teliko). Taip pat prilitavau konfiguracinį flešiuką (nebūtina) ir kitas aprišimo detales (3.3V ir 1.25V stabilizatorius, 10K rezistoriai, keletas mažų kondikų, keli LEDai, 50MHz osciliatorių). Sulitavau JTAG ir serial prom programavimo jungtis.
Dar reikia įsigyti programavimo kabelį (pats primityviausias prie LPT porto netgi lengvai pasidaromas). Rekomenduočiau patį paprasčiausia USB Byte blasterį.
Continue reading →

LED šviestuvas iš TV. Versija 2

Laikas bėga, technologija tobulėja. Patobulėjo ir LED LCD televizoriai. Dabar 32″ telikas tebeturi pašvietimą tik iš
vienos pusės. O ir LED draiveris integruotas į LCD matricą…

LED TV sviestuvas
(matosi “paleidimo” grandinė)

Ir tas LED draiveris toks minimalistinis. Iš vieno galo 24V maitinimas, ON/OFF ir ryškumas. Iš kito galo pasijungimas į LED liniuotes. Pats draiveris padarytas ant nežinomos mikroschemos su žyma: BD9262EVF (Gal ROHM Semiconductor?). Tai tipinis STEP-UP stabilizatorius. Tačiau kažkai gudriai padarytas LED srovės feedback. Draiveris užkelia įtampą iki maždaug 50V ir matuoja srovę per 6 LED liniuotes (viso 96 LED korpusai, rodos po 2 diodus. 192 LEDai. 6 feedback)

LED TV sviestuvas
Ant pačio LED PCB nieko įdomaus: LG Innotek V6 32INCH HD R-TYPE Rev 0.0 20100104. Aliumininė PCB priklijuota prie LCD masyvaus profilio- jau nebe skardos, kaip senose versijose. Ir dar, tas aliumininis profilis varžteliais prisuktas prie LCD aliuminines nugarėlės. Ir ne be reikalo… naujas LED šviestuvas vartoja virš 40W energijos (24V, 2 su biški ampero). Atmetus draiverio nuostolius (jis čiut čiut kaista) visa energija teka į šviesos diodus. Ir šitas vienišas, nes LCD pašviečiamas tik iš vienos pusės, balkis gana stipriai ir greitai kaista!
Nėra net lyginti su senu LED šviestuvu.

LED TV sviestuvas
O šviesos duoda daug. Tikrai daug.

LED TV sviestuvas
Geriau į tuos LEDus nežiūrėti, nes lieka “zuikučiai” ilgesniam laikui. Žvėris o ne lempa.

Loginis analizatorius

Viena iš komentarų buvo rašyta apie USB oscilografus ir loginius analizatorius. Klausė ar aš bandžiau… Deja nebandžiau. Tačiau jau seniai masčiau ne apie USB oscilografą, bet loginį analizatorių. Bandžiau net FPGA versiją, ten viskas veikė, tačiau pagrindinė bėda su tais analizatoriais yra softas. Tiksliau jo nebuvimas. Jau keletą metų anksčiau žiūrėjau į USBee projektą. Tačiau legalus variantas labai jau brangus. Tačiau laikai keičiasi, negeri kiniečiai nukopijavo hardwarą ir padarė veikianti su softu. Dar jie padarė ir softo nulaužimą… labai jau negražu. Tačiau dėl kelių pažaidimų mokėti šimtus aš nenorėjau (brangiau už mano oscilografą!), o štai sumokėti $40 jau galiu. Taigi, per pora savaičių ant stalo atsirado toks daiGtas:
LHT00SU1
(USB laidas nepajungtas)

Komplekte tokie čiuptuvėliai:
ciuptuveliai

Pirmiausia, kapitalistai pradėjo kovoti su kinais, tai jei netyčia gausit tokį prietaisą pasiruoškit jį perdaryti:
LHT00SU1
Čia yra USB VID/PID atminties mikroschema. Originalus naujas softas mėgsta naikinti šiuos VID/PID. Gal originaliam hardware ši mikroschema apsaugota nuo įrašymo. Tuo tarpu Kinai padarė perrašoma- taip galima padaryti ne tik USBee įrenginį, bet ir persiklonuoti į kitą komercinį projektą (jau užmiršau pavadinimą). Tereikia tik perrašyti VID/PID. Man užteko tik USBee, tai paprasčiausiai užtenka write protect koją sujungti su Vcc. WP koja atkelta nuo PCB ir su lydmetalio lašu sujungta su Vcc.

Nu ir softo screenšotas:
LHT00SU1
(pasidinina)

Softas analizuoja kelis protokolus, yra analoginis osciloskopas. Gali dirbti kaip generatorius ir t.t. Paprasčiausiai, šias funkcijas aš neišbandžiau. Nelabai buvo jos reikalingos man. Tačiau man reikėjo I2C analizės. Paveiksliuke paprasčiausias I2C variantas, čia nuskaitymas iš LM75/FM75 mikroschemos, mano senas USB termometro projektas. Matosi apačioje USB debug langas ir tie patys skaičiai.

Tikiuosi, kad dar ką nors parašysiu apie šį gaminį. Tačiau dabar kažkaip laikas spaudžia ir nėra projektų. Tiesiog kurybinė ir laiko krizė 🙁

YIG sferos generatorius

Kažkotai senokai rašiau tikrus vandalizacijos straipsniukus. Pasitaisau dabar- straipsnis apie YIG sferų generatorių laužymą.
YIG – tai itrio-geležies granato kristalas. Tiksliau šio sintetinio granato sfera. Šis mineralas turi specifinę savybę- dėl savo feromagnetinių sąvybių šio kristalo sferos rezonuoja ultra aukštame dažnyje. Ir rezonuoja labai siauram diapazone, nes sferos rezonavimo “kokybė” (Q factor, Добротность) yra labai aukšta. Rezonavimo dažnis tiesiogiai (linear) priklauso nuo magnetinio lauko. Ir stipriai priklauso. Todėl galima padaryti generatorius (ir filtrus) kurie valdosi srove ir aprėpia gana platų diapazoną (oktavą ar net daugiau).
O dabar kaip tai atrodo realiam pasaulyje:
YIG oscillator collection AVANTEK
0.5-2.0GHz, 2.0-4.0GHz, 4.0-8.0GHz ir 8.0-12.4GHz.
Continue reading →

V-USB ir Microsoft Visual Basic Express Edition

Padaryti įrenginį kuris valdomas per USB su AVR atmega ar panašia mikroschema gana paprasta. Parašyti command line valdyma linux ar windows sistemai irgi gana lengva. Tačiau paleisti ką nors ant monstriško “visual” jau žymiai sunkiau.
Nesu programuotojas ir man tos visos “struktūros” ir kitokie specifiniai dalykai sunkiai įkandami. Man paprasčiau iškastruoti veikiantį svetimą produktą. Vienas toks produktas, tipo pavyzdinis, buvo “generic_hid_vb_50.zip”. Tačiau jis man neveikė- dar buvo per sudėtingas. Tačiau radau kitą projektą- kažkoks LCF matuoklis. Šitas projektas bent jau pamatė mano USB termometrą ir nuskaitė kelis baitus. Paaukojau dieną ir iškastravau esama source kodą iki minimalistinio varianto, kur jau kiekvienas supras kaip ir ką pakeisti. Rezultatas- pilnas source kodas ir maža programėlė, kuri tiesiogiai nuskaito USB termometro skaičius (HID device).

V-USB hid and MS visual basic

Spaudžiant “Write/Read USB” išsiunčiami keli baitai ir kartu nuskaitomi keli baitai iš USB įrenginio. Kiek pamenu, V-USB apribotas 8 baitais vienu metu. Čia jei neklystu.
Dar kažkur pramargalinau automatinį pranešimą, kad “savas” USB įrenginys jau įkištas ar jau ištrauktas. Dabar “statusas” atsinaujina tik pabandžius nuskaityti duomenis.

V-USB HID MS Visual Basic Express Edition 11 source code

Kompiliuojasi su nemokamu Visual Studio paketu.

P.S. turėtu veikti su bet kokiu USB HID įrenginiu. Nebūtinai AVR V-USB…

AVR 43: knyga, liion, led, laikrodis…

Čia tokia kompiliacija. Kažkada dariau rezervinį USB pakrovėją kurį galima maitinti kad ir iš saulės elementų, poto kažkada rašiau apie labai gražius LED indikatorius ir daug kartų rašiau apie savo universalią ATMEGA plokštę.
Kadangi nelabai kaip man ir reikia to rezervinio šaltinio, nutariau viską sujungti į vieną vietą. Ir dar pridėjau biškutį…

Viskas prasidėjo nuo to, kad pastebėjau, kad jei blogai miegu, tai atsibundu kažkodėl lygiom valandom. Tai buvo labai keistas reikalas. Arba ufonautai įsiuvo į mano galvą kokį RTC su batareika, arba veikė kažkoks išorinis reiškinys. Blaivesne galvą pagalvojus dašuto, kad tas išorinis reiškinys yra … didelis LED laikrodis. Jis kiekvieną valandą pradeda su nedidele animacija kol persivartalioja visi skaičiai. Tos šviesos mirgėjimo matyt užtenka, kad smegenys užfiksuotu ir prabudintu. Juolab, kad raudona spalva gana lengvai praeina ir per užmerktus vokus. Teko laikrodį pašalinti.
Bet reikia gi laikrodžio. Todėl tarp Eridano knygų, savadarbėse lentynose atsirado kažkokia ne knyga:
RED LED clock mini
(dizainas dar nebaigtas, reikia padažyti ir dar apsaugines plėveles nuplėšti)
Continue reading →

Radijas Realtek RTL2832U + R820T

Kol kas nėra savų pabaigtų projektų, tai weblogą pildau tokiais nelabai informatyviais straipsniais. Seniau, kiek paeksperimentavau su RTL2832U + FC0013 radija. Dabar atsisiunčiau kitą variantą: RTL2832U + R820T. Tas R802T (Rafael Micro) teoriškai turi didesnį jautrumą ir platesnį diapazoną. Tuoj pabandysim kai ką patikrinti. Čia skreenšotai tos pačios radio stoties, su ta pačia antena ir tuo pat laiku. Nuotraukos išsididina.

RRRR
Čia variantas su FC0013 imtuvu (tiuneriu). Uždėtas didžiausias realus stiprinimas. Ką reiškia realus? Ogi dar padidinus, padidėja foninis triukšmas ir stotis nesigirdi visiškai arba girdisi prasčiau. Matosi, kad smaukytuvas stovi ties -5.8dB.
Continue reading →