Mikrovaldiklių įvesčių apsauga

Posted: 2017-08-15 in Darbeliai, Pezalai
Žymos:,

Taigi name pasikūriau nuosavą šviesų valdymo sistemą. Tik kai pirmą kartą ją pajungiau, tai lempos pradėjo „šaudyti“, o reguliavimas net nesiteikė veikti. Kas gi nutiko, ką ne taip padariau?

Ogi buvau naivus ir iš anksto nepasidomėjau, kaip apsaugoti mikrovaldiklių įvestis nuo visokių triukšmų, statinių iškrovų ir kitų elektrinių efektų. Ant stalo, t.y. „laboratorinėmis sąlygomis“ viskas veikė tobulai.

Iš tikrųjų viskas labai paprasta ir galėjau pasidomėti iš anksto. Tikrai. Bet naiviai galvojau, kad sistema yra labai paprasta ir mygtukų bei rotacinių enkoderių signalams perduoti bus ok ir šarvuotas signalizacijos kabeliukas. O va nė velnio.

Pirmoji klaida, kurią padariau — mygtuko paspaudimo registravimas loginiu vienetu, t.y. įvesties patempimu į 3,3 V. Paprastai daroma priešingai, mygtuko paspaudimas registruojamas užtrumpinant įvestį į „žemę“. Tam yra nemažai priežasčių. Viena iš jų — „žemė“ yra priešinga vienetui ir bet kokiems kitiems elektriniams krūviams, kurie gali „apsimesti“ loginiu vienetu. Be to, sakykim, AVR mikrovaldikliai turi tiktai prie vieneto pritempiančius vidinius rezistorius, tad mažiau komponentų reikia. Mano naudojami ARM STM32F103 turi patempimą į bet kurią padėtį.

Taigi pirmas pakeitimas ir buvo toks: „apversti“ programiškai logiką, o plokštes papjaustyti peiliuku ir mygtukų/enkoderiu signalizavimą padaryti per „žemę“. Pagerėjo iš karto.

Antras dalykas — filtruojantys 10-100 nF kondensatoriai ant mygtukų ir enkoderių įvesčių. Šitiems kažkokiai nuojautai užpuolus plokštėse suprojektavau vietas iš anksto, bet neįlitavau. Sulitavau 10 nF SMD’ukus ir nuo prisilietimo pirštu (statinių iškrovų) mygtukų registravimas dingo. O šiaip užtekdavo prisiliest prie kurio nors mygtuko laidelio ir iš karto suveikdavo.

Bet čia ne viskas. Pirmoji prijungta šviesa vis tiek kartais užsidegdavo pati, kartais užgesdavo. Čia pasireiškė ilgųųųų laidų fizika. Ilgi lygiagrečiai einantys laideliai turi tiek kažkokią talpą, tiek kažkokį induktyvumą, nes bjaurybės vis tiek yra kažkiek susisukę. O ir be susisukimo to induktyvumo pakanka. Net ir šarvuotuose laiduose indukuojasi įtampa, kai šalia praeina 50 Hz galios kabelis. Miegamojo lempos pajungtos taip ir mirgėjo, į mygtuką mažai reagavo.

Nuo šito iš dalies padėjo įvesties rezistoriai, kuriuos teko lituoti prie laiduko, nes tokiems dalykams vietos nenumačiau. Na, kad būtų ne tiesioginis trumpinimas į „žemę“, o per kiloominį rezistorių. Nuo to su filtruojančiu 10 nF kondensatoriumi dar gaunasi RC filtras, kuris staigias statines iškrovas nuslopina ir suvalgo. Bet 50 Hz vis tiek veikė.

Šitoj vietoj padėjo paprasčiausias dalykas: mikrovaldiklio „žemės“ sujungimas su elektros skydo „žeme“ — tuo geltonai žaliu laidu. Čia gavosi visiškai pilnas įžeminimas, ne vien loginis. Dingo ir indukciniai efektai, ir atsitiktiniai „šaudymai“.

Be abejo, idealiausias sprendimas įvestims būtų optronai. T.y. pilna galvaninė izoliacija tarp mikrovaldiklio ir išorinio pasaulio — mygtukų. Nuo statinių iškrovų optronų šviesos diodai neįsižiebtų — neužtektų iškrovos galios. O tuo tarpu mikrovaldiklio 20 MΩ impendanso įvestis reaguoja beveik į bet kokį pirstelėjimą. Todėl aš manau, kad ant panašios hardwaro bazės, kokią turiu dabar, užmesiu optronus ir bus geriausias sprendimas. Bet kol viskas veikia ir be to — pult taisyt iš karto nesiruošiu, ir taip yra daug darbų, ką nuveikt.

Taigis, nevyniojant į vatą, pati geriausia (neskaitant optinės, aišku) mikrovaldiklio įvesčių apsauga yra tokia:

Mikrovaldiklio įvesties apsauga | Elektronika | Darau, blė

Paaiškinimai:

  • C1 — filtruojantis kondensatorius. Jis nuslopina trumpus statinius „žybsnius“. Su rezistoriumi R2 dar sudaro ir RC grandinę, apsaugo nuo mygtuko kontaktų „žaibavimų“ ir juos nuglotnina. Žiauriai svarbus komponentas, pas mane tokiems kondensatoriams vieta buvo numatyta. Ir labai gerai, kad buvo. Galima rinkti 10-100 nF ribose, pasiskaičiuoti RC laiką. Mygtukams baisiai gerai.
  • R2 — tiek RC grandinė su C1, tiek srovės ribojimas į mikrovaldiklį. Jei gerai žiebs — bent jau dalinai apsaugos nuo susvilimo, ribos srovę. Irgi būtinas. Pas mane plokštėj nėra, tad teko lituoti prie kiekvieno laido galiuko ir sukti rezistorių į terminalą 😦
  • R3 — loginis „patempiantis“ rezistorius. Pas mane nėra, kol kas naudoju vidinius mikrovaldiklio. ARM valdikliuose vidiniai rezistoriai yra 30-50 kΩ eilės, ganėtinai „silpni“. Net ir nedidelis elekrinis krūvis gali juos nustelbti, todėl išorinis 4,7-10 kΩ yra geriau, „tvirčiau“ palaiko loginį vienetą. Projektuojant rimtesnius aparatus, nei kad žaislinis laikrodis, pageidautinas — nereikėtų remtis galimybe naudotis vidiniais rezistoriais ir taupyti komponentus.
  • D1 ir D2 — įvesties apsaugos nuo viršįtampių diodai. Tokius turi visi mikrovaldikliai viduje, tiek ARM, tiek AVR. Bet vidiniai yra smulkūs, o ir stovi valdiklio viduje. Aš, be abejo, šitų diodų neturiu, be to, manau, kad jie yra toks biškį overkill.
  • R1 — srovės ribojimas D1 ir D2 diodams, kad nebūtų užtrumpinimų su laide susikaupusiu krūviu.
  • Yra dar galimybė uždėti filtruojantį kondensatorių ir skersai jungiklio kontaktų kitame gale. Paprastai jis dedamas didesnės talpos, nei C1. Pvz., jei C1 yra 10 nF, tai kitame gale galima dėti 100 nF. O skaičiau apie vieną atvejį, kur jungikliui buvo panaudotas senas skambučio 220 V laidas, tai žmogus dėjo prie jungiklio net 100 µF bipolinį elektrolitą, taip blogai buvo.

Taigi reziumuojant aš turiu R2 ant laidų, C1 plokštėse ir remiuosi vidiniais apsauginiais diodais bei vidiniu patempiančiuoju rezistoriumi. Atrodo daugmaž taip:

Laidynas ties mikrovaldikliu | Elektronika | Darau, blė

Tai nėra blogas variantas, bet mano atveju veikia tik sujungus valdiklio „žemę“ su elektros skydo įžeminimu. Kitais atvejais ilgesni laidai prisigaudo 50 Hz triukšmų ir skleidžia juos į valdiklio įvestį, permuša net ir RC filtrą, nes 50 Hz — gan žemas dažnis. Todėl ir galvoju, kad ateity naudosiu optronais atrištas įvestis. Reikės papildomo maitinimo šaltinio, bet jau kaip nors. Pabandymui nusipirkau keturgubų optronų TLP281-4 iš draugiškųjų kinų:

Optronai TLP281-4 | Elektronika | Darau, blė

Beje, šitie optronai buvo pirmasis registruotas naujuoju adresu atkeliavęs siuntinys. Susipažinau su mūsų kaimą apvažinėjančia paštininke.

Taigi, mielieji skaitytojai, kai darysite kažką, ko mygtukai bus toli ir ant ilgų laidų, atsižvelkite į įvesčių apsaugas ir nepagailėkite priprojektuoti optronų ar bent jau minėtosios krūvos pasyviųjų komponentų.

Kitas dalykas, aš siuntinėju PWM signalą vyta pora UTP kabeliais į nutolusius LDD-300H draiverius. Tai nėra pats geriausias variantas, nes vyta pora skirta balansuotam signalui, o PWM yra santykinis nuo „žemės“ potencialo. Iš pradžių veikė nevisai gerai, biškį mirgėdavo, arba temdydavosi ne visai taip, kaip ant stalo. Bet susitvarkė irgi, kai visus 48V maitinimo šaltinius teisingai įžeminau. Taigi žemės potencialo sulyginimas yra jėga ir baisiai svarbu.

Ateity irgi esu numatęs perdarymą ir PWM signalą prie valdiklio konvertuoti į diferencinį signalą, o arti draiverių — atvertimą į santykinį. Diferenciniam greičiausiai naudosiu kažkokias RS-485 mikroschemas bei reikės pagalvoti apie maitinimo tiekimą.

Nusimato įdomus industrinio, nebe naminio mėgėjiško, lygio projektas.

Pabaigai, tai ne vien Levo šuo moka „patogiai“ miegoti:

Per du migius patogiai įsitaisęs šuo | Darau, blė

Kitas šuo, likęs be migio, bando ramintis ant seno rankinuko:

Šuo įsitaisęs ant seno rankinuko | Darau, blė

Tiek šiam kartui.

Reklama
Komentarai
  1. Sillisketas parašė:

    Daryk video su mielu noru ziureciau kaip sprendi savo technines problemas 🙂

  2. jarik parašė:

    O ar butinas optronams atskiras maitnimas? Kazkada esu zaides, tai jungiau ant to paties kaip ir mikrovaldikli.

  3. klejus parašė:

    O kaip Can magistralė reaguoja į trikdžius ir ilgus laidus?

  4. Vajezus parašė:

    “O tuo tarpu mikrovaldiklio 20 MΩ impendanso įvestis reaguoja beveik į bet kokį pirstelėjimą.“

    Jei naudoji pullupus/pulldownus, impedansas tikrai nebus 20 MO. Bus lygus pullupo/pulldowno rezistoriaus varžai.

Parašykite komentarą

Įveskite savo duomenis žemiau arba prisijunkite per socialinį tinklą:

WordPress.com Logo

Jūs komentuojate naudodamiesi savo WordPress.com paskyra. Atsijungti / Keisti )

Twitter picture

Jūs komentuojate naudodamiesi savo Twitter paskyra. Atsijungti / Keisti )

Facebook photo

Jūs komentuojate naudodamiesi savo Facebook paskyra. Atsijungti / Keisti )

Google+ photo

Jūs komentuojate naudodamiesi savo Google+ paskyra. Atsijungti / Keisti )

Connecting to %s