ATMEGA USB 19: temperatūros daviklis

Tai kelių svetimų projektų kompiliacija. Iš esmės, šitas prietaisiukas nuskaito daviklio FM75 (kiek rimtesnis nei LM75, I2C) informaciją. Šis prietaisas nieko nekaupia savo atmintyje (nors galėtų, paprasčiausiai softas neparašytas), visa informacija nuskaitoma per USB į kompiuterį. Viena iš įpatybių: šis įrenginys nereikalauja jokių draiverių, operacinė sistema (išbandyta su Windows ir Linux Debian) mato jį kaip HID prietaisą. O toliau jau programos reikalas.

ATMEGA16 USB HID temperature sensor

Nuotraukoje matosi V1 veikiantis prietaisiukas, ir V2 PCB plokštelė paruošta litavimui. V1 ir V2 skiriasi tik tuo, kad panaudoti mažesni rezistoriai, pašalinti takelių pralindimai po resistoriu.
Panaudojau ATMEGA16 tik todėl, kad tokių megų turiu daug prisilupinėjęs. MCU stovi pasuktas 45 laipsnių kampu tik tam, kad išbandyti kaip Cadsoft Eagle sugeba sukinėti detales. Šiam projekui teoriškai turi tikti bet koks Atmel firmos procesoriukas veikiantis ant 12MHz ar daugiau. Tinka darbiniai dažniai 12, 15 ar 16MHz. Arba naujieji Atmel MCU su greitu RC vidinių generatorium veikiančiu ant 16.5MHz (yra softas programiniui dažnio kalibravimui). Čia labiausiai tiktu 8 kojų procesoriukas ATTiny45.

Reikalingi PCB, pdf, BMP, Eagle failai.

Source code, PCB, Eagle failai, Win ir Linux softas su source bus greitai įdėtas. Gal ir padarysiu online rezultatus.

Testavimas ant mano USB-AVR serijos plokštės. Firmware modifikacija, kai informacija dar parodama ir ant LCD ekrano. Daviklis prijungtas laidais:

USB + LCD + FM75

(papildymai)
Firmware, source code, command line with source code.
Eagle files (PCB and SCH).
Linux source code, MRTG config example. See comments for live results.

Spamassassin pluginas FromTo

Pradėjo mano serveriuką atakuoti spamas kuris siūlo pasiilginti savo šlangą keliais centimetrais. Kiek žiūrėjau, pats spaminis tekstas skiriasi kiekviename laiške. Pilnai skiriasi, o ir tiesioginio “penis enlargement” nėra paminėta. Viskas parašytas alegorijom- tai smauglys, tai gyvatė, tai šlanga, tai gyvis.. ir panašiai. Tiesiogiai spamassassin taisyklės kaip ir nėra galimybės parašyti.Tačiau yra vienas bendras dalykas tuose laiškuose- gavėjas ir siuntėjas sutampa. T.y. “FROM:” ir “TO:” laukelis tas pats. Kaip ir laiškai rašyti sau pačiam.
Pasiknaisiojes internete nieko gero neradau. Todėl pasinaudojau paprasto plugino source code ir parašiau pluginą, kuris paprasčiausiai sulygina tuos du laukelius.

Pluginas ir konfiguracinė eilutė šiame ZIP faile: FromTo Spamassassin plugin

Kadangi kodas labai paprastas, bet kas gali pasimodifikuoti source, kad būtų atliekamas net tik “FROM” = “TO” tikrinimas, bet ir “REPLYTO” ir koks nors “envelope”…
Nu ir standartinė atmazkė: use at your own risk.

ATMEGA USB 18: Mikro, 2 kanalų, USB oscilografas

Užbridau internete paprastutį projektą susijusi su ATMEGA procesoriukais, USB ir oscilografais.
Štai šis puslapis: http://yveslebrac.blogspot.com/2008/10/cheapest-dual-trace-scope-in-galaxy.html

Autorius naudoja ATTINY45-20, tačiau aš tokių čipukų neturiu ir nenoriu užsakinėti. Man buvo žymiai įdomiau pritaikyti programinę įranga prie mano turimos “hardwarės”.

Projekto galutinis rezultatas: dviejų kanalų, labai lėtas oscilografas. Jis atnaujina viso ekrano informaciją per kokias 4 sekundes. Įėjimo įtampa iki 2.5V (jei perprogramuoti ADC, galima padidinti jautrumą, jei naudoti direfencialinį įėjimą)
USB 1Ch osciloscope
(tai mano tikro oscilografo skleistinės pjūklas, ~500ms (0.5s) intervalas, per raudoną kanalą. Mėlynas kanalas pajungtas į žemę)

Schema labai paprasta: ATMEGA16 paleista su 12MHz kvarcu. Maitinama iš USB. USB DATA- laidelis per rezistoriųdaliklį pajungtas prie MCU D1 kojos. DATA+ pajungtas prie D2/INT0 kojos. Viskas, daugiau detalių nėra. Rezisotorių reikšmes ir pajungimo subtilybės tokios pat, kai ir kituose ATMEGA USB temos schemose. Tik senoje schemoje panaudotas kitas pinas. Čia labiau priklauso nuo norų ir turimos PCB plokštės. Šiuo atveju panaudoja pre-ATMEGA-USB laikotarpio PCB, kuri yra netobula ir nepublikuota. Tačiau gaila ją išmesti. 🙂

Programinė įranga: source (ATMEGOS source, Windows EXE).

Windowsams USB draiverių nereikia. Tai standartinis HID įrenginys.

O va, kam šitas aparačiukas gali būti panaudotas, aš nežinau. Su tokių skleistinės dažniu tai tik žmogaus pulsą stebėti. Labai gaila, kad nėra Windows programos source code…

Buitinė spektrografija

Besiblaškydamas internete, radau keletą straipsnių apie spektroskopiją su CD diskais. Veikimo principas labai paprastas- į kartoninę dėžutę kampu įsmeigiamas kompaktinis diskas, kitame šone padaromas plyšiukas šviesai, o per dėžutės galą žiurima ar daromos nuotraukos. Spektrai nėra labai tobuli, bet kaip iliustracijos tinkamos. Štai kelios nuotraukos pažymėtos raidėmis A, B, C ir D.
Spektrogramos
Spektrogramos

Pabandykit atspėti, kokių šviesos šaltinių šios vaivorykštės. O dabar spauskite kad pamatyti atsakymą: Continue reading →

Išsibarstė pinigėliai…

Prisipirkom užsieniuose visokiausių niekučių dovanom. O štai valiutų kursai vaikšto aukštyn žemyn… O ir VISA sistema veikia taip, kad iš pradžių rezervuoja, poto tik nuskaito pinigus. Ir tu manipuliacijų metų apturimos negatyvios sumos nekreditinėse sąskaitose.

Issibarste pinigeliai

Ala, kad niekada dar nėra buve, kad po visų šitų “manipuliacijų” bankas aptūrėtų nuostuolį. Kažkodėl “minuse” būnų aš pats. Pats abidniausias minusas, kai perki ką nors su kortele, pinigus nuskaito, a poto pardavėjas neparduoda ir grąžina pinigus. Negana to, kad pinigėliai būna užšaldyti kone mėnesiui, bet ir dėl to, kad atliekama dviguba konvertacija visada nepalankiu kursu, pinigėlių grįžta visada mažiau 🙂

Su Naujais Metais!

Pagaliau atėjo tikra žiema.
Sveikinu skaitytojus su naujais metais. Linkiu, kad elektronikos projektai lengvai konstruotusi ir nebūtu mįslingų melsvų dūmelių…

Va, kokia bėda, kai namas turi šlaitinį stogą- nuo stogo nukrito lavina ir pilnai užklijavo mašiniuką:

auto po sniegu

sniegas, lavina

Tingiu atkasinėti. Pirmadienį, kai reikės eiti į darbą, bandysim išvažiuoti sava eiga… 🙂

LVDS duomenų perdavimas per UTP LAN kabelį

Pradėjau paišyti PCB skirta pajungti mano RGB matrica(s) prie kitų įrenginių ir nusprendžiau, prieš darant eksperimentus kiek paeksperimentuoti. Tada pačiupau senesnę savadarbę plokštę su Altera Cyclone 1 minimaliu čipuku su 100 kojų. Gerai, kad neskaičiau datasheeto, nes vėliau išskaičiau, kad 100 kojų pirmasis ciklonas nepalaiko pilnaverčio LVDS… Bet kažkas gavosi. Apie LVDS subtilybes nieko nežinojau, todėl teko pradėti nuo nulio. Ir dar viena bėda, kad reikia konstruoti du prietaisus- siustuvą ir imtuvą. Ir neaišku kurioje vietoje yra klaidos 🙂

Iš pradžių bandžiau daryti be PLL, nes jų trūkumas šioks toks… O štai vizardai kai užsispyre neleidžia naudoti mažų greičių. Iš pradžių bandžiau 100 megabitų greitį, bet gavosi tik su 200 megabitų.

Pats primityviausias siustuvas. Tikrai jo PCB nepritaikyta LVDS signalų siuntinėjimui. Toliau eina apie 2 metrai mėlyno, lanksčio UTP lan kabelio…
LVDS per UTP LAN kabeli

O čia paprasta iliustracija. Paleidžiam abu “aparatus” ir ištraukiu ir vėl ikišu LAN kištuką:

LVDS per UTP LAN kabeli
LVDS per UTP LAN kabeli
LVDS per UTP LAN kabeli

… ir kai atsigauna vaizdas, tada galiu ramiai per JTAG keisti “siuntėjo” RAM turinį ir duomenys puikiausiai persiduoda per tą kabelį.

LVDS per UTP LAN kabeli
(apačioje vaizdas iškraipytas todėl, kad pas siuntėją mažai atminties)

O šita sinchronizacijos bėda kol kas man nesuprantama.

Truputi techninės informacijos: Siuntėjas Cyclone EP1C3, taktinis dažnis 25MHz, toks pats dažnis ir persiunčiamas per vieną LVDS porą (3V). Siuntėjo viduje stovi dviejų kanalų x8 serializeris. Gautusi kaip ir 16 duomenų bitų. Tačiau aš duomenim naudoju tik 8 bitus, o likusius aštuonis naudoju tik adreso sinchronizacijai- paprasčiausiai siunčiu RESET signalą.
Imtuvas pasiima 25MHz taktinį signalą, susimaitina į savo PLL ir priima duomenis.

Ir šiaip šitas “negeras” rodymas kažkaip susijes su bitų seka. Nes transliuojant B/W ($00 ir $FF) vaizdą “kokybė” žymiai dažniau būna gera ir taškeliai visada užsidega savo vietoje.

Video kai kaišiojamas UTP kištukas:

Jau radau vieną klaidą mano naujojoje PCB. Tiesa, ji nėra esminė.

Reguliuojamas maitblokis (flyback)

Užduotis: padaryti reguliuojama stabilizuota maitinimo šaltinį, kuris būtų ekonomiškas, mažiukas, lengvai atkartojamas, saugus katastrofos metu, nebijotu trumpujų jungimų.
Priešistorė: man reikėjo padaryti maitblokį savo laboratoriniui maitblokiui (workbench power suply). Kaip pagrindinį šaltinį aš panaudojau pramoninį impulsinį maitblokį (kad ir ATX), todėl “kitokios” įtampos turi būti gaminamos papildomom priemonėm- impulsiniu stabilizatoriu. Kodėl impulsinis- todėl, kad nereikia didelių radiatorių.

Kaip pagrindą panaudojau National Semiconductors LM2585-ADJ mikroschemą. Ją radau kažkokiam prietaise. Tai kiek primityvokas ir senoviškas impulsinis stabilizatorius. Jo vidinis raktas gali junginėti iki 3A srovę ir max 65V impulsus. Mikroschemą galima maitinti nuo 4V iki 40V. Kuo daugiau maitinimo įtampos, tuo daugiau amperų bus galima išspausti. Svarbu atkreipti į tuos 65V.

Tipinė schema:
Flyback Regulator

Jei maitinsim prietaisą nuo 5V ir nekelsim įtampos, raudonai pažymėtų detalių galime ir nemontuoti.
Trafukas suvyniotas ant žiedo, kuri radau kažkokiam ATX maitblokyje. Jei svarbu jo spalva sviesiai salotinė, išorinis diametras 25mm. Jei kartosit schemą, nenaudokit labai mažiukų žiedelių- juose kaupiama energija ir geriau tas žiedas neužsisotintu. Pirminės apvijos (tiesa, suvyniojau dvigubu laidu, transformacijos koeficientas 1:1) apie 60uH. Jei išėjimo įtampa apie 5V tiks 47uH, o jei dar mažiau, induktyvumas kogero tiks dar mažesnis. Atkreipkit dėmesį į apvijų pradžių pajungimą.
Cin talpa 3x470uF+10uF keramika, Cout- 1000uF+10uF keramika+kažkiek tantalas. Išėjimo diodas S10S40 (40V, 5+5A, panaudojau tik vieną puselę. Beja jei rasit kur parašyta, kad 10A, tai čia reklaminis triukas, čia rašomas viso prietaiso suminis amperažas). Diodo įtampa kiek mažoka – peak reverse RMS tik 28V, bijau bus pykšt. Reikės įdėti ką nors geresnio.

Flyback Regulator
Mikroschema su nedideliu radiatorium. Trafukas priklijuotas prie PCB plokštės su termo klijais (nesugalvokit tvirtinti su varžtu iš geležies!)
Flyback Regulator
Tas didelis diodas tai “iškroviklis” 5KP58 (15000W Transient Voltage Suppression, TVS). Jei įtampa ant šio diodo viršija 58V jis atsidaro ir nukrauna energijos perteklių. Tai viena iš detalių pažymėtu raudonai. Kita, raudonai pažymėta detalė, tai paprasčiausias 3A šotki diodas- jis suvalgo neigiamus impulsus. Šios detalės apsaugos nuo mikroschemos mirties.
Baltas rezistorius išeinantis iš paveikslėlio tai tik apkrova testavimo metu. Eksperimento metu išėjimo įtampa kito nuo 1.23V iki kokių 25V (daugiau nekėliau, nes mano apkrovos rezistorius labai kaito ir smirdėjo). Trimeriukas laikinai pritvirtintas prie PCB (geltona detalė), vėliau ekranuotu trumpu laideliu bus išvestas į išore.

Saugumas: datasheetas sako, kad tokia schema nebijo trumpųjų jungimų (nebandžiau), o jei staiga mikroschema sprogs- transformatorius pilnai izoliuoja apkrovą nuo pirminio energijos šaltinio. Kitos topologijos schemos nėra saugios- turėjau bėda su viena schema, kai reguliavimo tranzas nuo karščio susitrumpino ir viskas kas buvo prieš reguliavimą pateko į prijungtą daikčiuką. Buvo daug dumų… 🙂

Recycle Rating: 100%!- visos detalės second hand.

Mygtukai analoginiam įėjime

Viskas prasidėjo nuo to, kad asmuo kodiniu vardu “Miltukų Meistras” sudaužė vieną Kinietišką prietaisiuką, o aš ji norėjau dar panagrinėti… Čia aišku nepalyginamas dalykas su žmogaus kodiniu vardu “Taupytis” poelgiu, kai norėdamas pažiūrėti kokios spalvos stiklas, jis atsipjovė su kampiniu šlifuokliu plazminio teliko ekrano gabalą… Dar veikiančio teliko…

O dabar esmė- daugelyje prietaisu yra grupės mygtukų. Dažnai mygtukai būna ir megėjiškuose prietaisuose su mikrokontroleriais (MCU). Tam tikslui naudojamos vertingos mikroprocesoriuko kojos. Jei grupė mygtukų, jie jungiami į matricą ir naudojamas dinaminis klavietūros skanavimas. Tuo tarpu, kieme jau 21 amžius ir daugelis MCU turi analoginius įėjimus. Ir daugelyje pramoninių prietaisų (magnetolos, CD grotuvai, radiojos, MP3 grotuvėliai, LCD monitoriai, elektroniniai laikrodžiai) jau seniai naudoja analoginį mygtukų valdyma. Minėtas sudaužytas prietaisas turėjo štai tokį mygtukų pajungimą:


(čia realaus prietaiso schema. Kodėl parinkti tokie rezistoriai aš nežinau)

Kaip matome, šeši mygtukai pajungti prie vienos MCU kojos. Šiaip prietaisiukas turi 3 analoginius valdymo įėjimus. 3 duomenų laidais pajungta 16 mygtukų. Naudojant grynai skaitmeninį pajungimą reikėtu žymiai daugiau MCU laidelių ir daryti ganėtinai sudėtingą ir resursų naudojantį algoritmą.

Pabandom suvesti skaitmeninio ir analoginio valdymo pliusus ir minusus (šios konkrečios schemos):

Analoginis valdymas:
(+) vienas MCU laidas
(+) lengva pajungti kiek toliau išneštą klavietūrą (rezistorius lengva prilituoti prie mygtukų)
(+) lengvas softas- analoginis signalas gali generuoti pertraukimą arba galima viena komandą nuskaityti klavietūros būklę.
(+)nėra kontaktų “kibirkščiavimo”
(-) reikia ADC
(-) reikia skirtingų rezistorių 🙂
(-) negalima daryti akordų (tiesa galima panaudoti binarinį kodavima su 2^n kodavimu)
(-) reikalingas Vref (tiesa jis gi pas MCU būna)
(-) galbūt jautrus trukdžiams? Ar blogiems mygtukams?

Skaitmeninis valdymas:
(+) yprastas
(+) daug softo
(+) galima akordai (nevisada)
(-) reikia daugiau MCU kojyčių
(-) reikia kovoti su kontaktų drebėjimu
(-) daug laidų iki klavietūros
(-) softas ėda daug MCU laiko, jei reikia dinaminio skanavimo

Malonu būtų išgirsti mintis ir komentarus.