Va neseniai rašiau apie tai, kaip su mikrovaldikliu stebėti įtampą. Tiksliau, apie būdą, kuris man tinka ir patinka. O kas toliau?
O toliau situacija tokia. Stovi laukuose namelis, o jame junginėjasi dvi elektros linijos, t.y. relės. Kartais kažkas įvyksta ir tos relės neišsijungia. Iki artimiausio namo — apie 60-70 metrų. Na, tai kilo mintis pabandyti sulipdyti kažką bevirvėlaidžio, o konkrečiai — panaudoti JeeNode klonus. JeeNode yra gan geras ir nebrangus sprendimas su RFM12B radijo moduliuku. Taip pat JeeLabs sukūrė puikią kodo biblioteką, su kuria išsprendžiama krūva problemų, pavyzdžiui, duomenų „teisingumas“ ir šiaip patogumas naudotis.
Man dar taip pat labai pasisekė, kad nereikėjo pačiam projektuotis plokščių. Vienas draugas JeeNode seniai domisi ir turėjo pasigaminęs krūvelę universalių plokščių su krūva skylučių kokiems nors davikliams/jutikliams ir kitoms nesąmonėms prilituoti:
Jis taip pat turėjo ir visų reikalingų komponentų (taip pat ir RFM12B moduliukų) Tad kai išsiaiškinau, kaip galėčiau stebėti tinkle įjungiamą įtampą, sėdau lituoti plokščių.
Pradžiai dar reikėjo išsitraukti kelis senus ATX maitinimo blokus:
Nesgi pajutau 100 nF talpos kondensatorių badą. Jie kažkaip labai sueina į visokius darbelius triukšmų apvalymui. Gerai, kad viename jų buvo per akis:
Lituoti pradėjau, kaip visada, nuo žemiausių detalių. Šiuo atveju tai buvo RFM12B moduliukas. Jį sugalvojau laikinai prispausti kanceliariniu spaustuku (nes, nu, vis dar neturiu padoraus visokių lituotojų laikiklio su daug „rankyčių“):
Sulitavus vaizdas va kažkoks toks:
Čia dar toks reikalas, kad plokštė suprojektuota su keraminiu rezonatoriumi, kuris turi viduje ir į „žemę“ įjungtus du kondensatorius. Aš tokių iš bičiulio neprigriebiau, o pirkti kažkaip pagalvojau, kad neverta. Tai teko ten kvarco rezonatorių ir du kondensatorius kažkaip sugrūsti. Jie nuotraukoje matosi apačioje, po procesoriaus mikroschema.
Jungiu per savo seną atsitiktinai gautą USB TTL adapterį. Niekas neveikia. Hm. Tada pačiupinėju plokštę, o ji karšta kai velnias… 3,3 V reguliatorius kaista kaip pasiutęs.
Puoliau ieškot galų, galvoju, gal kažkur kažką užtrumpinau. Su testeriu „perskambinau“ biškį ir žiūriu, kad 3,3 V linija kažkaip tai užtrumpinta į „žemę“…
Rasti pavyko gan greitai, nes vienas kondensatorius man pasirodė beesąs įtartinoj vietoj. Draugas davė kartu ir schemas, tad pradėjau tyrinėti. Schema kaip ir gera, o va plokštės brėžinyje radau rankos sudrebėjimą, kuris kondensatoriaus skylutę „sukabino“ su via į „žemę“… va tai tau. O vizualiai nelabai matosi.
Plokštę teko apipjaustyti, gerai, kad litavimo aikštelės atskirtos, o ne vientisos. Čia aš truputį nuvaliau ir laką, ir piešinėlius, ir aikštelės padengimą, kad geriau galus rasčiau:
Kitoje pusėje, aišku, tas pats.
Šitą sutvarkius įtampos atsirado ten, kur reikia. Bet tada atradau, kad mano USB TTL adapteris neveikia. Naudojant vietoj adapterio Arduino plošktę viskas ok:
Įtariu, kad dėl 3,3 V ir RESET linijos adapteryje. Galvojau, gal pakeliamuosius rezitorius į 5 V padarysiu RX/TX linijoms, bet nepadėjo. Po kurio laiko pasikrapštęs aptikau, kad USB TTL adapteris suveikia, kai įjungimo į USB lizdą metu užtrumpino jo RESET koją ir 5 V. Paskui jau galima atjungti, veikia ir taip. Dar RX/TX buvau supainiojęs, bet šitą atradau laikinai susilitavęs antrą plokštę tik su procesoriumi ir 5 V maitinimu:
Užbaigiau abi plokštes, susirankiojau bibliotekas ir va, guli du bevirvėlaidžiai prietaisėliai ir „šnekasi“ eteriu:
O va čia abiejų prietaisėlių konsolės. Kairėje imtuvas parodo, kokius skaičiukus eteriu gavo, o dešinėje siųstuvėlis rodo, ką išsiuntė. Kairėje pirmas skaičiukas yra kintantis, o du antri — tiesiog įhardkodinti:
Na, džiugu, kad pradžia yra ir eteriu bangos sklinda taip, kaip norisi. Dabar reikės atstumo testą daryti ir jau tada galutinai spręsti, ar projektas turi galimybę būti įgyvendintas. Šiaip smagu padaryti kažką su radijo bangomis. Juo labiau, kad yra gatavi moduliai, plokštės ir bibliotekos… tikras džiaugsmas tinginiams. Nors kai kurie turbūt net ir lituoti tų plokščių nesiryžtų, pirktų gatavas, surinktas 😀 O aš kol kas negaliu be kanifolijos kvapo…
Žiūrių, žiūrių ir tik dabar suvokiau kad anas per 3,3V įtampa 16Mhz iš ATmega spaudžia. Tai ne vien Itead firma taip turbina atmegas 😀
Jo jo, JeeLabs jau seniai taip daro. Na, užtai nereikia jokio lygių konverterio su RFM moduliuku bendraujant. Ir kokią SD kortelę prijungt paprasčiau. Visapusiškas gėris tiesiog.
Kitas privalumas butų tas, kad gali maitintis tiesiai iš LiPo be busterio..
O ką, šiais laikais čia rimtas privalumas…
Kiets tu, eina sau. Norėčiau ir aš taip mokėt.
Baik tu. Aš irgi norėčiau kai ką mokėt, ką tu moki. Ale kodėl nemoku? Gal nepakankamai noriu? 😀
Aš va tokį workflow išmokau, panašius devaisus gamindamas:
1. Sulituojam viską, išskyrus procą.
2. Patikrinam ar VCC ir GND neužtrumpinta.
3. Pajungiam maitinimą ir patikrinam ar procas gaus reikiamą įtampą.
4. Lituojam procą ir bandom toliau.
USB-UART adapteris panašus į šitą:

Kažkada patys pigiausi ebay buvo. Jie turi dvi nesąmones:
1. RX ir TX atvirkščiai pažymėta.
2. Reset atvestas vidinis CP reset, kuris niekam nereikalingas, reikia pjaut takelį, kuris pažymėtas reset ir pajungt prie DTR ar RTS pin’o, tada ir su standartiniais Arduino pro veikia:).
Jo, aš panašiai darau… dažniausiai 😀 Lituoju gabaliukais, pradedant nuo maitinimo ir tikrinu. Čia tik pagalvojau, kad gerai suprojektuota gamyklinė plokštė… o nė velnio.
Va dėl DTR ir CP reset tai žinau, aš savo adapterį persidariau. Bet man įdomu, kodėl neveikia paprastas PL2303 adapteris, kuris iš viso turi tik VCC, RX, TX ir GND, jokių ten resetų ir dtr’ų pajungtų?
Man tie PL visada su draiveriais durniuodavo, ypač windows’uose, dėl to stengiuosi nenaudot jų kiek įmanoma. O tiesiog užtrumpinus Rx su Tx veikia?
Aš dirbu su Linux. PL adapterius naudoju rūterių konsolėms debuginti. Teoriškai turėtų tas pats šūdas būti ir su AVR, bet ne. Tiesa, TX (irgi supainiotas) švieselė mirksi, kai AVR’as kažką siunčia, bet konsolėj tuščia nyku — nepareina bitukai į screen’ą. CP tai suveikė reset’ą užkėlus, tai kaip ir gerai. Hm, gal čia pačios mikroschemos bajeris, kad tas CP Reset turi būti high?
Pala, o tame custom boarde Arduino bootloaderis? Tada jam gali reikt ir resetą nuspaust su RTS/DTR koja iš adapterio.
Dėl CP, tai lygiai tokį adapterį turiu, nereikėjo nieko papildomai dėl reset modifikuot.
Jo jo, ten Arduino. Šiaip, aš jau ne kartą esu tas plokštes visokias litavęs ir tas pats CP adapteris man veikė. Ir čia veikė, kol buvau trumpam įtampą 5 V padaręs. Kai prijungiau 3,3 V reguliatorių — nustojo veikti. Suveikia, jei prieš įkišant į USB būna RESET prie 5 V prijungtas. Aš taip įtariu, kad kadangi AVR’o RESET plokštėje turi pull-up’ą, tai jis suveikdavo ir adapteriui. Nu toks backfeed’as biškį, netiesioginis. Jei visai nepajungiu RESET’o, tai komunikacija nevyksta ir nesuprantu, kodėl. Teoriškai gi turėtų RX/TX ir GND užtekt, jei kitas galas atskirą maitinimą turi. O va serial komunikacija neįvyksta be to adapterio reset’o pakėlimo… nu kažkoks čiūdas.
P.S. Įkėlinėti firmwarus man per adapterį nelabai rūpi, tad tas DTR funkcionalumas toks antrinis… galutiniam projekte turėtų vienas JeeNode gulėt prie kompo per tokį adapterį pajungtas, bet tik serial’ui, daugiau niekam.
Na, keista, būtų įdomu sužinot kaip baigsis istorija:).
Dar viena mintis – ar tik plokštė nuo adapterio neužmaitinta? Jei taip, tai srovės trūksta paprasčiausiai.
Hmmm… kad ne tokius daiktus esu nuo adapterio maitinęs… be to, kodėl tada po reseto užtrumpinimo vėliau veikia…
Man dar vienas įdomus dalykas – o kokiais tikslais tarp DTR ir AVR Reset buvo panaikintas kondensatorius ir vietoje jo įdėta viela? Esu ne karta skaitęs, o ir pats patyręs kai programos rašymas nevyksta vien dėl elementaraus kondensatoriaus nebuvimo. Tai paaiškintu aišku tik programos įrašymo sutrikimus, kai DTR signalas pernelyg trumpa aktyvuoja Reset, o kondensatorius reikalingas Reset aktyvavimo signalui užlaikyti kiek ilgėliau.
Kondensatorius pas mane pačiame adapteryje, tai antro nereikia.
Jasna tada. Anyway, kondensatoriaus nebuvimas butu paaiškinęs kodėl su Uno adapteriu viskas veikė – ten 100nF kondensatorius yra garantuotai.
Nieko tas nepaaiškina. Kodėl nėra serial ryšio? Jam gi DTR apskritai nereikia… o kodėl bakstelėjus adapterio RESET tas ryšys staiga atsiranda? Va kur įdomumas.
Ikišiu savo trigrašį : seksas gerai tik nelabai pagaunu kampo kuo tas RFM12B modulis geras, nesuperpigus, lituoti nevisiems patogu, reikia daug proco koju, Pats neseniai zaidziau su APC220, ~300 metru netiesioginio matomumo neproblema, gali veikti multipointu, didelis buferis (gerai kokiam modbus protokolui) zodziu supergeris tik kaina didoka.
Hmm… man regis, lyginate truputį skirtingus dalykus: radijo modulį ir visą sukomplektuotą ryšio mazgą. RFM12B nėra kažkuo geras ar ypatingas, bet turi ir gerų savybių. Na ir kaina nėra jo tokia didelė, o aš iš viso už dyką gavau. Be to, mano poreikiams tai yra tobulas pasirinkimas, nes reikia pasiųsti vos kelis bitukus kas kažkiek laiko. Visą kitą laiką tiek procas, tiek modulis gali sau miegoti ir mažai elektros valgyti.