0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovRevijaPredstavljamoOdprava pretvornikov nivojev v mikrokontrolerskih aplikacijah (2)

    Odprava pretvornikov nivojev v mikrokontrolerskih aplikacijah (2)

    V prvem delu članka smo obravnavali novo periferno povezavo, imenovano Multi-Voltage I/O (MVIO), ki je na voljo v družini AVR® DB mikrokontrolerjev.
    Microchip Technology Inc.
    Avtor teksta in fotografij: Robert Perkel, Microchip
    Na kratko, MVIO je notranji pretvornik napetostnih nivojev na ploščici mikrokontrolerja, ki omogoča, da en vhodno-izhodni priključek deluje v drugačnem napetostnem območju kot preostali deli naprave. S tem se zmanjšata popis materiala (BOM) in površina tiskanega vezja, hkrati pa je zagotovljena večja prilagodljivost kot pri zunanjih rešitvah. V drugem delu te serije si bomo ogledali uporabo MVIO v konkretni aplikaciji.
    Eden najpreprostejših načinov za ugotavljanje, ali je okno odprto, je uporaba magnetnega stikala. Reed stikalo je preprosta naprava z električnimi kontakti, ki se odprejo ali zaprejo zaradi prisotnosti magnetnega polja. Če na okno pritrdimo magnet, stikalo pa namestimo v fiksni položaj, lahko stanje okna določimo s preverjanjem kontaktov reed stikala. Vendar pa ima reed stikalo dve omejitvi.

    Prvič, ne more razlikovati med malo odprtim (okno odprto na »V«, op. ur.) in polno odprtim oknom. Če je alarm vklopljen, okna ni mogoče samo malo odpreti, ne da bi se alarm sprožil. Drugič, na reed stikalo je mogoče zlahka vplivati, če se v njegovo bližino postavi drugi magnet. Drugi magnet drži kontakte stikala nepremične, medtem ko je okno odprto.

    Da bi izboljšali odpornost proti ponarejanju in uporabi, je bila razvita alternativna rešitev z magnetometrom. Za razliko od reed stikala, ki je bodisi odprto bodisi zaprto, magnetometer meri in digitalizira komponente magnetnega polja. S spremljanjem komponent polja lahko senzor razlikuje med malo odprtim in široko odprtim oknom in je veliko bolj odporen proti nedovoljenemu spreminjanju magnetov, nameščenih v bližini senzorja.
    Da bi dokazali prednosti rešitve, ki temelji na magnetometru, smo skupaj z družbo Melexis, svetovnim dobaviteljem mikroelektronskih polprevodniških rešitev, razvili pametni varnostni senzor za okna. Mikrokontroler je iz AVR DB družine, prve družine mikrokontrolerjev, ki ima MVIO periferno funkcijo.
    Za spremljanje jakosti magnetnega polja je bil uporabljen 3D magnetometer MLX90392 [1]. Magnetometer se napaja iz 1,8 V in komunicira prek I2C. V tej demonstraciji je uporabljen tudi MLX90632 Far Infra-Red (FIR) senzor [2] za spremljanje temperature v prostoru. Izbrani FIR senzor je boljša izbira kot lokalni temperaturni senzor, saj bodo na mestu meritve prisotni zračni prepihi in neposredna sončna svetloba, ki bodo povzročili napake pri meritvah. Medtem ko se MLX90632 napaja s 3,3 V, obstaja različica naprave, zasnovana za 1,8 V I2C komunikacijo.
    Za brezžično povezljivost je bil zaradi preprostosti uporabljen RN4870 Bluetooth® modul [3]. To uporabniku omogoča interakcijo s predstavitvenim modelom s pametnega telefona, namesto da bi uporabljal po meri razvit komunikacijski most. V produkcijski aplikaciji pa bi za vsako senzorsko vozlišče priporočali prehod na alternativno preprostejšo in manj zmogljivo radijsko rešitev, kot je Sub-GHz radio [4]. Izvorna koda in dokumentacija sta navedeni na koncu članka.
    Sestava prototipa in razvoj naprave
    Za razvoj smo uporabili Curiosity Nano Base for Click boards™ (AC164162) [5] z AVR DB Curiosity Nano (EV35L43A) razvojno ploščo [6]. RN4870 in temperaturni senzor MLX90632 sta na voljo na ploščah Click podjetja MikroElektronika (RN4870 Click [7] in IrThermo 3 Click [8]). Magnetometer MLX90392 je dobavila družba Melexis na predhodno sestavljeni razvojni plošči (EVB90392) [9].
    Po začetnem testiranju komunikacije s senzorjem smo hitro ugotovili, da bo potrebna fiksna preizkusna naprava za nadzor položaja magneta in senzorja. S pomočjo naših latentnih umetniško-obrtniških sposobnosti smo iz kartona in vročega lepila sestavili preprosto preskusno napravo, ki je prikazana na sliki 1.
    Majhni beli škatlici, ki sta pritrjeni na napravo sta standardno reed stikalo, ki je na voljo v trgovinah. Priloženi magnet je bil uporabljen kot primer standardnega varnostnega magneta za namene testiranja.
    Magnetometer
    Konceptualno bi se zdelo, da bi bilo najenostavneje izvesti okenski alarm tega sistema, vendar je bilo to veliko bolj zapleteno, kot smo sprva mislili. Razlogov za dodatno zapletenost je več.
    Prvič, magnetometer je izredno občutljiv. Majhne razlike v položaju magneta ali magnetometra bi močno spremenile številke. Grafi na sliki 2 so bili dobljeni iz surovih vrednosti magnetometra brez kalibracije ali normalizacije. Med zbiranjem podatkov je drsni mehanizem drsel naprej in nazaj.
    Namesto neposrednega spremljanja največje in najmanjše vrednosti vsake komponente, ki se spreminjata glede na položaj namestitve senzorja, smo namesto tega uporabili skupno jakost magnetnega polja (). Zaradi optimizacije programske opreme aplikacija uporablja kvadrat magnetne poljske jakosti. Spodnji graf prikazuje velikost magnetnega polja med istim preskusom. V aplikaciji je magnituda izračunana iz normaliziranih 16-bitnih vrednosti.

    Da bi bil sistem na splošno bolj občutljiv, so bile vrednosti magnetnega polja v vsaki osi normalizirane. Iz prikazanih vzorčnih podatkov je razvidno, da je vrednost Y osi največja, sledi ji os Z in nato os X. Vsaka os se povečuje z drugačno hitrostjo kot druge. To je intuitivno smiselno, saj bo magnetni tok največji v pravokotni smeri in najšibkejši v vzporedni. Za normalizacijo vsake osi mikrokontroler vsako od njih premeri tako, da rezultate premakne v desno, da ustrezajo podpisani 8-bitni vrednosti. Faktorji skaliranja se izračunajo med uporabniškim zaporedjem kalibracije, da je sistem na splošno bolj občutljiv.

    Prvotno je aplikacija nameravala izračunati tudi kotna razmerja X/Y, X/Z in Y/Z za dodatno odpornost proti nepooblaščenim posegom. Vendar se je med testiranjem izkazalo, da je ta izračun zelo nezanesljiv zaradi velikih razlik v intenzivnosti polja. Ti koti so povečali porabo pomnilnika in aktivni čas demo različice. Ugotovili smo, da aplikacija dobro deluje tudi brez njih, zato smo jih onemogočili z makrom. Izračunana kotna razmerja iz prejšnjih podatkov so prikazana na sliki 4. Za zanesljivo uporabo magnetometra smo razvili postopek kalibracije v štirih korakih. Ta postopek je treba izvesti med začetno nastavitvijo, vendar ga lahko uporabnik po potrebi pozneje ponovno sproži. Štirje koraki za umerjanje aplikacije so naslednji:
    • Ničenje
    • Normalizacija
    • Nastavitev praga
    • Verifikacija
    Pri ničenju je okno popolnoma odprto, zato je magnet najbolj oddaljen od senzorja. Povprečna vrednost, zabeležena za vsako os, je opredeljena kot vrednost odmika. Nato se okno zapre, s čimer se magnet približa senzorju. V tem položaju se izračuna povprečje intenzivnosti polja v vsaki osi. Po določenem številu vzorcev mikrokontroler izračuna normalizacijski faktor za vsako os.
    Nato uporabnik odpre okno do želenega odprtega/zaprtega praga. Medtem ko uporabnik odpira okno, aplikacija spremlja največjo zabeleženo jakost polja (R2). Glede na postavitev mora biti največja poljska jakost v položaju zaprtega okna ali blizu tega položaja.
    Po tem koraku uporabnik zapre okno. Na tej točki sistem preveri, ali se bo med zapiranjem okna sprožil alarm. Če se alarm sproži, umerjanje ni bilo uspešno in ga je treba ponoviti. Ko je umerjanje uspešno, se vrednosti zapišejo v notranji EEPROM za poznejšo uporabo.
    Uporaba temperaturnega senzorja
    Za vmesnik s senzorjem MLX90632 smo razvili nov lahek API vmesnik, ki je bil zasnovan tako, da za izboljšanje zmogljivosti izkorišča funkcije, značilne za mikrokontroler. V primeru MLX90632 temperaturnega senzorja smo izvedli sistem predpomnjenja kalibracijskih konstant za shranjevanje tovarniških konstant senzorja v EEPROM mikrokontrolerja. To samodejno izvede mikrokontroler. Ob zagonu mikrokontroler preveri svoj EEPROM, da ugotovi, ali so bile konstante iz senzorja programirane v pomnilnik. Za preverjanje konstant mikrokontroler:
    • uskladi shranjeno serijsko številko s serijsko številko senzorja.
    • preveri XOR serijske številke na koncu pomnilniškega segmenta.
    Če katero od preverjanj ni uspešno, mikrokontroler ponovno pridobi konstante senzorja, izračuna ekvivalente s plavajočo vejico in jih nato ponovno zapiše v EEPROM. Če je pomnilnik veljaven, mikrokontroler preprosto prebere shranjene konstante, namesto da bi jih ponovno pridobil in izračunal.
    To funkcijo lahko v programski opremi onemogočite tako, da razveljavite definicijo makra. Če ob vklopu aplikacije držite tipko za umerjanje, se aplikacija zažene v varnem načinu, v katerem so vse nastavitve in vrednosti v EEPROM-u neveljavne in se jih ponovno pridobi/preprogramira (če je to omogočeno).
    Delovanje pri 1,8V 
    Pri napetosti 1,8 V je treba serijsko komunikacijo obravnavati bolj previdno kot pri običajnejših vrstah komunikacij, ki potekajo pri 3,3 V ali 5 V. Notranji pull-up upori v mikrokontrolerju so bili na primer prešibki, da bi vodilo izpolnjevalo časovne zahteve. Da bi rešili to težavo, smo na vodilo dodali zunanje pull-up upore.
    Med zgodnjim testiranjem smo skušali neposredno izmeriti porabo toka zunanjega 1,8V napajalnika z natančnim digitalnim multimetrom. Vendar je bila obremenitvena napetost multimetra ravno dovolj velika, da je vodilo med serijsko komunikacijo izklopilo zaradi Brown-out zaščite. To težavo smo v prototipu rešili tako, da smo napajalniku dodali velik kondenzator, ki je zagotovil, da je vodilo ostalo nad pragom za izklop, medtem ko je merilnik meril porabo toka. Pri polni uporabi to ni težava, saj je tok mogoče meriti na vhodu za napajanje, napajalniki pa so regulirani na plošči in ne zunaj nje.
    Končni rezultati
    Ko je sistem pravilno deloval, smo začeli razvijati posebno ploščico tiskanega vezja (TIV). Na sliki 5 je razvita plošča (fotografirana brez plastičnega ohišja). Prototip sistema je bil predstavljen na sejmu Sensors Expo na stojnici podjetja Microchip.
    Zaključne ugotovitve
    Povezovanje različnih napetosti je ključni element številnih zasnov. V večini primerov je treba za pretvorbo med napetostnimi domenami uporabiti zunanji pretvornik ravni. MVIO to komponento odpravi in jo integrira v mikrokontroler, zaradi česar je za razvijalca skoraj nevidna. Obstaja veliko možnih zasnov in aplikacij, ki jim bo dodana periferna enota MVIO v sistemu koristila. Posebna zahvala za pomoč pri razvoju te aplikacije gre družbi Melexis.
    Viri:
    1: https://www.melexis.com/en/product/MLX90392/3D-Magnetometer-micro-power-and-cost-conscious
    2: https://www.melexis.com/en/product/MLX90632/Miniature-SMD-Infrared-Thermometer-IC
    3: https://www.microchip.com/en-us/product/RN4870
    4: https://www.microchip.com/en-us/products/wireless-connectivity/sub-ghz
    5: https://www.microchip.com/en-us/development-tool/AC164162
    6: https://www.microchip.com/en-us/development-tool/EV35L43A
    7: https://www.mikroe.com/rn4870-click
    8: https://www.mikroe.com/ir-thermo-3-click
    9: https://www.melexis.com/en/product/EVB90392/Evaluation-Board-MLX90392
    Opomba: Ime in logotip Microchip sta registrirani blagovni znamki podjetja Microchip Technology Incorporated v ZDA in drugih državah. Vse druge blagovne znamke, ki so morda tu omenjene, so last njihovih podjetij.
    https://www.microchip.com

    1: https://www.melexis.com/en/product/MLX90392/3D-Magnetometer-micro-power-and-cost-conscious
    2: https://www.melexis.com/en/product/MLX90632/Miniature-SMD-Infrared-Thermometer-IC
    3: https://www.microchip.com/en-us/product/RN4870
    4: https://www.microchip.com/en-us/products/wireless-connectivity/sub-ghz
    5: https://www.microchip.com/en-us/development-tool/AC164162
    6: https://www.microchip.com/en-us/development-tool/EV35L43A
    7: https://www.mikroe.com/rn4870-click
    8: https://www.mikroe.com/ir-thermo-3-click
    9: https://www.melexis.com/en/product/EVB90392/Evaluation-Board-MLX90392

    Opomba: Ime in logotip Microchip sta registrirani blagovni znamki podjetja Microchip Technology Incorporated v ZDA in drugih državah. Vse druge blagovne znamke, ki so morda tu omenjene, so last njihovih podjetij.

    https://www.microchip.com