Category Archives: MCU

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.

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…

ATMEGA USB 17 (Proteus)

Jei nenorite lituoti mano konstrukciją, bet norit pakritikuoti ar patobulinti softą, siūlau nusikrauti Proteus programą (ISIS, http://www.labcenter.co.uk ) ir išbandyti kas ir kaip. Didžioji dalis softo veikia ir nieko nereikia keisti. Deja nėra nei USB, nei FM75 mikroschemos, nei akseleratoriaus modelio. Termodaviklis ant I2C kažkos yra, bet reikės pakeisti bazinį adresą programoje. Accelerometro modelį gal kas nors sukurs. Bet va USB emuliacija nelabai galima, nes dar reikėtu emuliuoti ir klientinį kompiuterį ir priedo, reikėtų labai jau galingo kompo.

Proteus

O štai čia pati schema Proteus ISIS formate: Zip archyvas.

ATMEGA USB 15. (Nors čia ir ne mega)

Iš senų stacionarių NMT-450 Nokia telefonų prisilupinėjau mažiukų AT90LS2343 kontroleriukų. Tiesa, tik per atsitiktinumą sužinojau kad tai būtent šitas modelis, nes ant mikroschemos užrašyta “ATMEL 4370405”. Gal tai koks palengvintas variantas ar koks specifinis kontroleris. Paprasčiausiai buvo keletas telefonų, kur toje vietoje stovėjo čipukai su normaliais užrašais “AT90LS2343”.

Jau seniau rašiau apie RGB LEDus iš skanerio, kaip jie gražiai šviečia valdomi MCU ATMEGA16. Užsinorėjau padaryti tą patį, tik su šiuo MCU. Deja jis silpnesnis ir neturi hardware PWM.

Teko prasisukti su programiniu PWM (software PWM). Procesoriuko taktinis dažnis 1MHz, tai pagrindinis ciklas ir skirtas tam PWM generavimui, tuo tarpu pertraukimas skirtas spalvų reikšmių generavimui. Programinis generatorius leidžią neribotą kiekį skirtingai valdomų išėjimų, kad tik užtektu MCU našumo.

Software PWM ATTiny

Visa konstrukcija telpa ant skanerio elemento. Ta “mikroschema” ant geltonų laidelių tai tik programavimo kištukas. Gavosi toks kaip ir nereikalingas “gadget”- galima kur nors pakabinti ir stebėti kaip kaitaliojasi visos vaivorykštės (ir ne tik) spalvos. Pakeitus TCCR0 registro reikšmes, galima keisti spalvų kaitaliojimosi greitį. RGB diodai pajungti per 330 omų rezistorius prie PB0, PB1 ir PB2. Spalvą paskirsto skanerio optika.

Tikriausiai nesupratote kas čia per skaneris? Tai Canon skanerio vaikščiojantis daviklis. Jis pas pigius skanerius padarytas be lemputės ir optinis elementas yra monochromatinis. Kaip skanuoja spalvotą vaizdą? Ogi paprasčiausiai originalą apšviečia paeiliui su raudonu, žaliu ir mėlynu šviesos diodu ir registruoja vaizdą. Šie skaneriai nepasižymi gera vaizdo kokybę. Ypač tai matosi skanuojant juodai baltą tekstą spalvotame režime. Pasižiūrėjus į nuskanuotą paveiksliuką matosi, kad apie raides atsiranda spalvoti šešėliai…

Tamsoje, “hipnotinis prietaisas” visai gražiai šviečia. Dabar maitinu iš Liion akumuliatoriaus (3.7V), bet schemą galima maitinti ir nuo 5V šaltinio (šviečia žymiai geriau). Prie tos pačios plokštės prilitavau LM2937-5 (7805 variantas), tai dabar schemą galima maitinti ir kad nuo 12V automobilio akumuliatoriaus. Toks “mirksiukas” automobilyje turėtu atrodyti “rimčiau” nei paprastas signalizacijos diodas 🙂

Source code software PWM .

Nixie laikrodis

Prisireikė čia mums Nixie laikrodžio. Nixie tai kapitalistiškas indikatorinių dujų išlydžio lempų pavadinimas. Šiaip prikaupiau aš gana daug tokių lempučių, bet savo konstrucijai panaudojau neperdidžiausias ИН-12A arba ИН-12Б lemputes. Jos jungiasi į kištukus, todėl galima lemputes pakaitalioti…

Nixie clock

Ir panaudoti kiek retesnes ИН-15 serijos lemputes. Tada gaunam kiek užkoduotą laikrodį:

Nixie clock

Šiam laikrodžiui panaudotas rinkinukas iš interneto ir komercinė programinė įranga. Šiaip rinkinukas labai brangus. Už tuos pinigus gaunam kokybišką dvisluoksnę spausdintą plokštę (PCB) ir jau užprogramuotą PIC16F876 mikroprocesorių.

Softas turi savo prigulnybių. Viena iš jų- fading digits efektas. Kai skaičiukai vietoj to, kad paprasčiausiai persijungtu, pradžiai vienas prigęsta, o kitas paryškėja.

Laikrodis maitinamas nuo žemos įtampos. Jam reikia kintamos srovės, 9…15V šaltinio. Aš panaudojau adapteriuką nuo seno išorinio modemo. Schemoje esantis keitiklis užkelia įtampą iki 170… 180V. Bet kadangi šaltinis nėra galingas, tai pats laikrodis tik švelniai purto, jei pačiupini ne už reikiamos vietos. Beja, šis įtampos užkeliklis jau yra aprašytas mano puslapiuose.

Schema: komercinis Nixie laikrodis.

Kynar laidelių betvarkė

Gerai, kad yra išrasti Kynar laideliai… Adaptavau čia vieną schemutę kitokiam procesoriukui ir beskubėdamas supainiojau portus. O plokštė jau kaip ir pagaminta. Teko panaudoti pusmetrį laidelio ir “pertrasuoti” plokštę:

betvarke

Ir dar priedo nepadariau programavimo jungties- paprasčiausiai užmiršau. Šiaip schema dalinai veikia, bet kai kuriais matavimo momentais užstringa. Šiaip čia talpos matruoklis, tik ganėtinai plataus diapazono ir turi veikti su ilgais laidas- veikia ne kaip ankstesnis matuoklis su LC generatorium, bet kaip dar senesnis projektas. Tik šitas turi rodyti nuo pikofaradų iki dešimčių tūkstančių mikrofaradų…

MCU: AVR ATMEGA8, aš konvertavau į savo ATMEGA16 ir kažką negerai padariau…

Projektas “skolintas” iš http://pontoppidan.info/lars/index.php?proj=capmeter
Toliau: Continue reading →

ATMEGA USB 12 (accelerometer)

Sekantys žaisliukai pajungti prie ATMEGOS tai dvi Freescale semiconductors (ex Motorola) mikroschemos: MMA3202D ir MMA7260QT. Pirmoji tai “katastrofinė” mikroschema arba high-G (100g X-axis and 50g Y-axis). Prie tokių apkrovų žmogus ištyška kaip koks jogurtas. Bet realiam pasaulyje tokios apkrovos labai lengvai gaunamos- pvz. numeskite kompiuterio kietą diską ant akmeninių grindų 🙂
Ši mikroschema nėra labai jautri, bet ir su ja galima užregistruoti žemės trauką.

gravity Accelerometer XY

O štai antroji mikroschema tai jau žymiai jautresnė, low-G. (Selectable Sensitivity (1.5g/2g/4g/6g)). Ir turi jau tris ašis. Ši mikroschema maitinama nuo 3.3V maitinimo šaltinio sumontuoto šalia mikroschemos. Visos aplinkui prilituotos detalės skirtos apsaugti prietaisą nuo galimo elektroninio triukšmo.

gravity Accelerometer XYZ

Programoje yra ir mažytis panaudojimo demonstratorius. Kai uždedamas jumperis “firmware” ant LCD ekrano rodomi ne ADC skaičiukai, o kokia kryptim atsukta plokštė į žemę. Šitoks navarotas naudojamas fotoaparatuose ir telefonuose- kai pasuki aparatą, paveiksliukas pasukamas taip, kad būtų patogiau žiūrėti per ekraniuką.
Mikroschemos jautrumo ir greičio užtenka registruoti visokius virpesius- labai gerai matosi su oscilografu. Tai leidžia šia mikroschemą naudoti ir kaip vibracijos stabilizacijos daviklį.

gravity Accelerometer toy

Programa labai paprasta. Kadangi mikroschemos išduoda analoginį signalą, tai užtenka tik nuskaityti ADC parodymus ir juos interpretuoti. Archyve yra du “main” failai. Vienas skirtas vienai mikroschemai, kitas kitai. Dabar tereikia parašyti USB procedūras ir programa kokiam notebukui ir galima registruoti kad ir automobilio judėjimo pagreičius. Arba padaryti toki anavarotą panaudojus patarimą iš 11 skyriaus- vaivorykštinį pagreičio indikatorių. Pvz. imontuoti į spidometrą trispalvį LEDą ir jei per staigiai pradedi važiuoti ar stabdai- spidometras nušvinta grėsminga raudona spalva. 🙂 Va jums ir super-duper-high-tech tiuningas.

Programos source code: 20071102.zip.

Plokštėm PCB nedarytas. Mano printeris sugedo ir plokštelės nėra sudėtingos. Aš išgraviravau takelius su raižikliu. Plonas profesionalus raižiklis leido padaryti plokštė ir QFN (bekojam) korpusui.

ATMEGA USB 009 (1-wire, i-Button)

Tikriausiai pagalvosite, kad susipainiojau ir užmiršau 008 straipsniuką? Deja, 008 dar nesigavo ir neveikia…

Darbe stačiau elektroninę spyną su Dallas (Maxim) i-Button mikroschemom. Tiksliau “tabletėm”, “batareikom”. Mūsuose tom spynom naudojamos DS1990A mikroschemos. Viena mikroschema kainuoja apie 10Lt. Originali spyna buvo su PIC procesorium, su pačiu mažiausiu, ir 24C16 atmintim raktu atsiminimams. Aš nuskaičiau minėtos mikroschemos turinį ir radau tuos pačius skaičiukus kurie išgraviruoti ant “tablečių”. Pasiskaičiau mikroschemos aprašymą ir pamačiau, kad tai nėra koks tai stebūklingas “high security” daikčiukas. Paprasčiausias serial ROM su CRC ir vienintelis navarotas, kad maitinamas per tą patį duomenų laidą.

Nutariau paeksperimentuoti su esamom tabletėm. Pagrindinė problema, kad internete pilna visokių source susijusiu su 1-wire protokolu, bet dauguma jų naudoja komercinį AVR kompiliatorių kuris turi integruota include failą. O aš norėjau rašyti ant GNU versijos, todėl teko ilgokai paieškoti veikiančio varianto.

Tabletė jungiama prie mano plokštės panaudojant “firmware” jumperį. Tik reikia prikabinti 4.7K pull-up rezistorių is viskas bus gerai (yra programos modifikacija kuri veikia be rezistoriaus). Visa informacija atvaizduojama per LCD moduliuką.

i-button avr

Ekrane, viršutinėje eilutėje rodoma būklė (status): OPEN, SHORT, OK ir ERROR. Atitinkamai: niekas neprijungta, trumpas jungimas, viskas gerai ir klaida. SHORT būklė leidžia naudoti tuos pačius du laidus skambučiui. Dešinėje viršuje, CRC, tai kontrolinė suma. Programos archyve yra programa kuri perskaičiuoja kontrolinę sumą. Apačioje, kairėje- device familly id, mikroschemos grupės numeris. Ilgiausias skaičius- 48 bitų mikroschemos serijinis numeris. Jis taip pat išgraviruotas ant mikroschemos.

i-button avr

Programos išeities tekstai (source code): 20071027.zip

Programoje yra daugiau visokiausių funkcijų, aš panaudojau minimalistinį variantą kuris man veikia.

Dabar jau galima susikontruoti savo kodinę spyną, tik kad ID tabletės nėra saugūs prietaisai. Manau koks nors gudročius gali sukonstruoti mikroschemos emuliatorių ir nužiūrėjęs skaičiukus pagaminti rakto dublikatą. Ir dėl to Dallas’as nekaltas, jis gi rašo:

The DS1990A Serial Number iButton is a rugged data carrier that serves as an electronic registration number for automatic identification.
…allowing the DS1990A to be used easily by human operators. Accessories permit the DS1990A iButton to be mounted on almost any object, including containers, pallets, and bags.

Apie spynas, kaip matot, čia niekur neužsimenama. Manau čia Lietuvaičiai gudrauja ir stumia niekalūs mūsų tautai. Rimtom spynom reikėtų naudoti DS1963S mikroschemutę…

ATMEGA USB 007 (USB)

Jau rašiau, kad man nepavyko perkompiliuoti valdymo programą kad ji teisingai veiktų, nors prie originalaus archyvo pridėtas EXE failas buvo visai veikiantis. Matyt tai mano turimo kompiliatoriaus problemos- gal jis blogai nulaužtas ar jo versija kažkokia neteisinga. Aš naudojau Borlan Delphi Professional, Second Edition v7.2, Created 2006 by Lite Application.

Kiek paeksperimentavau ir radau metodą kaip apeiti šį bugą, bet tai tiesiog kažkoks nesusipratimas. Užtenka pridėti vieną eilutę kurioje atliekami nereikalingi veiksmai su nenaudojamais kintamaisiais ir viskas pradeda veikti. Deja, aš nesu šios programavimo kalbos specialistas. Jei rimtai, aš pirmą kartą matau šią programavimo sistemą. Jei kas nors paanalizuotu tekstus ir pakomentuotu, būtų visai fainai. Pakeitimai tekste aprašyti “Readme.txt” faile.

Kiek pamodifikuota USB-LCD valdymo programa ir jos išeities tekstai (source code) skirti Borland Delfi 7. Veikia su mano WinXP Pro SP2, and P4HT kompiuterio: 20071007.zip.