Kažkada labai seniai, realiai seniai, prieš kokia 10 metų, nusipirkau eBay Garmin navigaciją Nuvi 660 Euro. Net ir tuo metu Garmin, Mio ir kiti navigacijos prietaisai jau buvo išstumti navigacijų, esančių protinguose telefonuose, todėl pirkau pigiai. Pats prietaisas lyg ir veikiantis, bet pilnai įjungti nepavyko – uždėtas PIN kodas, be kurio prietaisas nieko nerodo, tik PIN kodo įvedimo meniu. O turėtų būti va toks vaizdelis:
Jau neprisimenu, ar kreipiausi į pardavėją, kad grąžintų pinigus, bet PINo tikrai negavau. Gal dėl to, kad navigaciją įsijungiau gerokai po visų eBay terminų (nes ir pats jau naudojau telefoninę navigaciją). Tuo metu buvau pradėjęs žaisti su Arduino, todėl sugalvojau pasidaryti hardware’inį bruteforcer’į. Kaip čia tas daiktas vadintųsi lietuviškai..? Mechaninis kodo spėliotojas arba parinkiklis, arba rinkiklis ? Turbūt. Su tuo PIN kodu viskas veikia taip – surenki 4 (gal) skaičiukus, Garmin’as pyptelna garsiuką ir parašo, kad kodas blogas. Alternatyvūs variantai, kuriuos pamenu iš anų laikų:
Laikyti Reset mygtuką 2 valandas 30 minučių, tas lyg ir pilnai perkrauna prietaisą į gamyklinius nustatymus. Gal, nebandžiau – lengvi keliai ne mums.
Susisiekti su gamintoju, pateikti pirkimo dokumentus ir gauti kažkokį atrakinimo būdą, PIN kodą ar kažką. Irgi ne variantas, nes pirkimo dokumentų neturiu.
Pats PINas gyvena iš išorės neprieinamoje atmintyje (per USB jungtį), ta atmintis nepriklausoma nuo maitinimo, todėl atjungus akumuliatorių neišsitrina. Greičiausiai galima būtų pasijungti atminties mikroschemą prie programatoriaus ir, nuskaičius duomenis, rasti/pakeisti PINą. Bet irgi, lengvi keliai ne mums . Ir todėl pradėjau tokio mechaninio PIN rinkiklio projektą. Anuomet Internete mačiau tokį prietaisą, gal gremėzdišką, kuris mechaniškai rinko PIN kodą, spaudė OK ir su kažkokiu šviesos davikliu tikrino, ar ekrano šviesumas pasikeitė iš PIN kodo meniu aplinkos (tamsi) į žemėlapį, kuris yra šviesesnis. Toks būdas kaip ir tinkamas, kai žinai tą tašką, kuriame ekranas pasikeičia iš tamsaus į šviesų ir tik tuo atveju, jei PIN teisingas. Dar buvo kažkoks pusiau CNC aparatas, kuris mygtuko „spaudiklį” judindavo link reikiamo mygtuko, dar mačiau ir tokį, kur buvo prisijungia prie touchpad’o, ekrano prilietimus apdorojančios mikroschemos, ir paspaudimus šėrė kaip jau gatavus duomenis į procesorių.
Aš sugalvojau kitą būdą – spaudinėti ekraną mechaniškai, o PIN kodo teisingumą detektuoti pagal garsą. Reikalas tame, kad surinkus PIN kodą, prietaisas sugroja tam tikrą toną ar tonus. Tuo metu tikėjausi, kad blogo PIN kodo garsas skiriasi nuo gero PIN kodo garso. Kol kas dar nežinau kaip iš tikrųjų, bet su laiku paaiškės. Bet blogo PIN kodo garsą girdėjau ne vieną kartą, bandydamas rankutėmis surinkti populiariausius PIN (0000, 1234 ir t. t.). Taigi, pradėjau kurti schemą ir gavosi va tokia vat:
Kaip visada, paanalizuokime, kaip čia kas su ta schema. Blemba, dabar kai žiūriu į schemą – kiek visko daryčiau kitaip, geriau, patogiau, paprasčiau , taip, kaip sakoma, „gyveni ir mokaisi”. Paveiksliukas didinasi į naują kortelę (į naują tab’ą, jeigu lietuviškai).
Kairėje pusėje DC/DC konverteris, kurio pagrindas LMZ23605TZ/NOPB mikroschema, konverteris. Efektyvumas, prie man reikiamų srovių apie 90 % arba daugiau, išėjimo srovė gerokai per didelį, net 5A, bet pamenu, pasirinkau būtent tokį konverteriuką, nes norėjau išbandyti tą mikroschemą, kaip ji veikia, konfigūruojasi, valdoma ir t. t., tai, kad nešvaistyti papildomai resursų, parinkau ją kuriamam prietaisiukui. Visas maitinimo šaltinis surinktas su keliomis išorinėmis detalėmis – įėjimo kondensatorius C1, išėjimo kondensatorius C2, R1-R2 daliklis, išėjimo įtampai nustatyti. Papildomų mikroschemos funkcijų, pavyzdžiui, minkšto paleidimo, nenaudojau, tai nėra ir papildomų detalių. Visų komponentų skaičiavimas ar parinkimas gerai aprašytas mikroschemos aprašyme, tai labai nepasakosiu, tik išėjimo daliklio skaičiavimas 5V išėjimo įtampai (VO):
Beveik tiksliai 5V. Primenu, kad čia reikia naudoti precizinius rezistorius. Realiai mano Mastech MS8265 rodo 4,971V prie 8,4V ir 0,3A maitinimo. Tiek apie maitinimo dalį.
Šalia yra USB jungtis J2 Garmin’o krovimui, šeriam tiesiai tuos 5V ir tiek.
IC2 ir IC4 padeda mygtukams S1, S2, S3. Padeda tuo, kad atlieka debounce funkciją, taip sakant padaro mygtukų signalą gražų, su vienu įjungimu/išjungimu, antraip būtų matomas kontaktų „drebėjimas”, kai sujungimo metu kontaktas atsiranda ne iš karto, pradžioje mygtukas junginėjasi ir tik po keliu ar keliolikos mikrosekundžių stabilizuojasi.
Be debounce funkcijos procesoriukas fiksuotų kelis paspaudimus vietoje vieno, bet visą darbą padaro tam, skirta MAX6817 mikroschema.
Šalia matosi aktyvus pjezo-pypsiukas. Aktyvus – todėl jam užtenka paduoti maitinimą iš valdiklio, o ne kažkokį dažnį, kad išgirsti garsą. Jeigu nebūtų aktyvus – reiktų su valdikliu norimu dažniu junginėti išėjimą.
D1, R3 ir C3 skirti Reset grandinei ir programavimui. Kai viskas gerai, R3 laiko Reset kontaktą aukštame lygyje (pull-up), o įrašius naują programą į valdiklį jis, per C3 iš atitinkamo programavimo jungties kontakto, automatiškai perkraunamas. JP2 – trumpiklis, kad perjungti valdiklio kontaktus programavimui arba solenoidų valdymui.
Dešiniau nuo valdiklio visas būrys BSP76 smartFETų, tranzistoriukų ir jungtelės solenoidams.
Viršuje LCD displėjaus blokas, valdomas dviem laidais per 74LS164D registrą ir loginio IR mikroschemos NC7S08M5X. Apie tai rašiau seniai, 2015 metais, kai šios schemos dalies pagrindu pasidariau LCD skydą Arduinui – Arduino 2 laidų LCD skydas. Veikimas paprastas, šeriam reikiamus duomenis nuosekliai į 74LS164D, pasirenkam reikiamą bitą (1 arba 0) QC išėjime, pagal tai, ar siunčiama komanda ar duomenys, paskutinį bitą QH padarom loginiu 1, tuo pačiu duomenų kontaktą irgi padarom loginiu 1, tada IR elemento išėjimas irgi tampa loginiu 1, tuo pačiu loginis 1 atsiranda LCD displėjaus E kontakte, tuo sukomanduoja LCD displėjui nuskaityti duomenis iš duomenų šynos DB4-DB7 (naudojamas 4 bitų duomenų perdavimas).
Ir beliko schemos apačioje esantis garso apdorojimo blokas. Jo pagrindas – labai populiarus audio stiprintuvėlis LM386M ir 74LVC1G17DCK buferio. Audio signalas iš jungties, per DC blokuojantį kondensatorių C4 patenka į stiprintuvą. Jo paskirtis yra sustiprinti signalą, jeigu kartais Garmino signalas būtų per silpnas arba nebūtų galimybės pasigarsinti Garmino garsą. Būtent toks stiprintuvas pasirinktas nes atitinka jo maitinimo įtampa, 5V ir vienpolis, plius beveik nereikia išorinių elementų, nes vidinis stiprinimas jau sureguliuotas ties 20, bet prireikus, papildomo potenciometro pagalba galima reguliuoti nuo tų 20 iki 200. Principe panaudota schema iš aprašymo:
Tik truputį patobulinta, kad būtų galimybė keisti stiprinimą. Toliau seka dar vienas filtruojantis kondensatorius C6. Tuomet testavimo taškas TP1, skirtas prijungti oscilografą, pažiūrėti, koks signalas yra tarp stiprintuvo ir buferio. Tuomet buferis, dirbantis kaip Šmito trigeris. Šiek tiek iš Wikipedios:
Šmito trigeris – vieną analoginį įėjimą, vieną loginį (1/0) išėjimą ir dvi būsenas turinti schema, pasižyminti histereze. Šmito trigeris turi du įėjimo slenksčius. Esant įėjimo signalui žemiau pirmojo slenksčio, schema pereina į loginio nulio būsena ir lieka joje tol, kol signalas neviršija antrojo (aukštesnio) perjungimo į loginio vieneto būseną slenksčio. Loginio vieneto būsenoje schema lieka tol, kol įėjimo įtampa nenukrinta žemiau pirmojo (į nulinę būseną perjungiančio) slenksčio.
Jeigu paprastai, kai įtampa įėjime viršija, tarkim 1V trigerio išėjime yra loginis 1, kai įtampa žemiau 1V, išėjime loginis 0. Taip labai paprastai iš sinusoidės padarome meadnro formos signalą, plius dar su histereze. O meandro formos signalas visada bus arba 0V arba 5V, todėl jį labai lengva detektuoti ir apskaičiuoti dažnį su valdikliu – nebus jokių sinuso formos signalų, kur dar trukdžiai ir visi kiti blogi dalykai, galintys iškreipti dažnio matavimą. Mūsų atveju viskas atrodo va taip:
Panašiai 1 kHz sinusoidė įėjime (geltona linija) po stiprintuvo ir buferio tampa stabiliu meandru (mėlyna linija). Nebelieka ir neigiamo poliarumo įtampų, kas valdikliui būtų ankstyva mirtis dar nepradėjus kaip reikiant dirbti. Tačiau matosi kažkokie šuoliai persijungimų metu, juos būtų gerai irgi panaikinti, gal užtektų kokio nedidelio keraminio kondensatoriuko išėjime.
Štai ir visa schema. Paprasta kaip du kart du.
Antra klausimo pusė yra programa. Per tuos 10 metų vis prišokdavau kažką parašyti, tai dabar ten toks zooparkas, kad pats jau turiu pagalvoti apie ką ten rašiau . Bet prisimenu, kad buvo tikslas kažkaip pasidaryti meniu. Tam sugalvojau naudoti meniu „flag’ą”, žymę, kuri keičiasi sulig kiekvienu meniu ir pagal ją atitinkamai valdomas tekstas ekrane ir funkcijos. Meniu struktūra:
Pagrindinis vaizdas, tiesiog parašyta PIN bruteforcer Menu – press UP
Paspaudus į viršų galima mygtukais aukštyn ir žemyn valdyti meniu:
Start cracking OK to start !
Crack from XXXX? Enter start PIN
Solenoid test OK to run test
Check sound frequency PIN BAD frequ.
Enter desired sound frequency?
Exit
Ties šita vieta pagalvojau, o gal perrašyti viską nuo nulio, tuo pačiu pasikartoti programavimą ir gal pavyks optimizuoti kodą, plius nebus toks kratinys.
2025.01.13
Perrašiau kodą, kažkiek paotimizavau, kažką palikau kaip buvo, kad nepersikrauti smegenų . Reikia susilipdyti bandymų stendą. Tiesiogine prasme susilipdyti. Tam reikia Garmin prietaiso ir medinių pagaliukų:
Tiks tiltas laikys visą PIN rinkiklį. Pagaliukai tarpusavyje suklijuoti ciano akrilatu (aka Super Glue), tiltas priklijuotas prie Garmin’o dvipuse lipnia juostele ir išcentruotas:
Kad šoninių skaičių nesimato – nieko tokio, toje vietoje paspaudus vis dar suveikia teisingas skaičius. Dar truputis dvipusės lipnios ant PIN rinkiklio ir klijuojam visą konstrukciją į krūvą:
Užklijavus patikrinam, ar lengvai paspaudžiami visi skaičiai, niekas nekliūna. Apie teisingą paspaudimą žinome pagal garsą.
Čia dar pirmoji softo versija, turinti dažnio įsiminimo funkciją, bet po to ją išmečiau kaip nepraktišką ir sunkiai pagaunamą. Dabar tiesiog galima pamatyti koks kada dažnis groja. paprastų mygtukų paspaudimai ~630 Hz, paspaudus OK sugroja ~630 Hz ir ~1600 Hz. Taip sužinome, kokio panašiai dažnio reikia ir, pasinaudojus atitinkamu meniu punktu įvedame rankiniu būdu. Įsimenamos dažnių reikšmės ±200 Hz, tai įvedus 1600 Hz dažnio paieškai naudos nuo 1400 Hz iki 1800 Hz.
Perrašius programą truputį pasikeitė meniu struktūra, naujoji:
Pagrindinis ekranas – PIN Bruteforcer / Menu – UP/DOWN
Start Cracking / OK to start !
Crack from XXXX? / Enter start PIN
Solenoid test / OK to run test
Check sound / frequency
Enter desired / sound frequency
EXIT
Veikimo logika tokia. Įjungus prietaisą reikia nustatyti detektuojamą dažnį. Net jeigu iš karto eiti į Start Cracking, vis tiek bus nukreipimas dažnio įvedimui:
Įvedus dažnį parodoma informacija apie detektuojamų dažnių ribas, pasirinkus Start Cracking tos ribos dar kartelį parodomos. Jeigu nežinomas dažnis, kurio reikia, tuomet pirma pasirenkame punktą „Check sound frequency” ir pasimatuojame koks ten dažnis (video aukščiau). Dabar tik įdėsiu kaip atrodo naujas meniu matavimui ir iš dažnių generatoriaus pašeriu apie 1500 Hz, dažnis pačiam generatoriuje plaukioja, tai parodymai irgi plaukioja iš paskos. Matavimo tikslumas gal nėra didelis, bet tokiai paskirčiai tikrai pakankamas.
Ir tuomet, kai jau turime suvestą dažnį, galima pradėti parinkinėti PIN kodą. Iš niuansų – dažnio matavimui galima pareguliuoti jo stiprumą daugiasūkiu paderinimo potenciometriuku, idealiausia matuoti signalą oscilografu TP1 ir TP2 taškuose, bet nebūtina.
Ar teisingai pataikyta į Garmino mygtukus patikrai ir tuo pačiu ar visi solenoidai veikia/nestringa/pasiekia ekraną galima įjungti solenoidų testavimo programėlę:
Bemaigydamas mygtukus pagalvojau, kad visai gal norėčiau turėti galimybę užtildyti pypsiką, nes labai daug pypsi, tai meniu papildytas „MUTE” funkcija. Tuo pačiu kaip ir pabaigiau PIN rinkimo procedūrą, nieko ten labai mandro – surenka PINą, 3 sekundes detektuoja dažnius, jeigu per tą laiką užfiksuoja nustatytą dažnį, kuris reiškia „PIN neteisingas” – palaukia šiek tiek, kol Garminas persijungs iš „PIN neteisingas” lango į PIN įvedimo langą ir renka sekantį kodą. Jeigu nustatyto dažnio neaptinka – parašo, kad PINas yra toks koks buvo suvestas.
Paskubėjau kuo greičiau sužinoti koks gi tas PIN kodas, todėl be didelių kodo optimizavimų ir papildomo funkcionalumo palikau atkodatorių/bruteforcerį maigyti Garminą, o Garminą pypsėti. Atėjau po kiek laiko ir matau, kad PIN kodas surastas – 0324. O bet tačiau – jis neteisingas. Nors mano prietaisas nesuklydo – garso, reiškiančio, kad PIN blogas iš tiesų nebuvo, nes, pasirodo, Garminas pakibo. Taip taip, ateinu, o jis ore kaba . O jei rimtai, pakibo ties ekranu, kur rodoma informacija ką daryti, jeigu PIN blogas. Perkrovus vėl viskas įsijungė į PIN įvedimo ekraną. Bet tai blyyyyn, negi dabar vėl nuo 0000 reiks koduoti ? Nesąmonė, paėmiau ir parašiau trūkstamą programos dalį, kur galima įvesti nuo kurio PIN pradėti. Ties ta vieta irgi dar pasvarsčiau ar neperrašius man visko dar kartelį iš naujo, apsisprendžiant kaip geriau saugoti piną, masyve ar kaip paprastą skaičių. Bet kūrybinė krizė buvo praėjus, tai tik parašiau PIN įvedimo dalį, prakonvertuojant PIN kintamąjį, kad tiktų likusiai programai ir sušėriau Atmegai. Procesas užsisuko, nors protarpiais Garminas vis dar pakibdavo, bet po perkrovimo tereikėjo įvesti detektuojamą dažnį ir nuo kurio PIN važiuojam toliau, nesudėtinga. Ir po kiek laiko, jeigu kas patikės, kad sėkmingai pataikiau nufilmuoti būtent tada, kai tikrasis PINas atrastas:
Ir bandymas rankiniu būdu įvesti PINą 1948:
Gaunamas startinis konfigūravimo ekranas, kadangi buvo spaustas Reset mygtukas. Šiaip būtų įsijungęs neresetuotas Garminas, su buvusio vartotojo nustatymais, istorija ir t.t.
Štai ir viskas, baigėsi šita epopėja, užtrukusi 10 metų . Dar iš įdomesnių niuansų – jeigu Garminą prijungti prie maitinimo šaltinio naudojant standartinį mini USB kabeliuką – jis persijungia į PC režimą ir rodo tik kompiuteriuką ekrane. Norint, kad taip nebūtų, reikia arba specialaus kabeliuko, arba standartiniam kabeliukui sujungti kartu 4 (ID) ir 5 (GND) kontaktus, paveiksliukas iš Interneto:
Programa neoptimizuota, kažkiek vis dar padrika, Eagle schema ir PCB berods teisingos, viskas yra čia.
Taip, kiniečiai prikepė visokių tų TV priedėlių, kaip karštų bandelių mokykloje, net nesuprantu, kodėl tas pats modelis turi skirtingas specifikacijas. Į remontą papuolė HK1MAX, gamintojas „Made in China”. Ant prietaiso parašyta 4G RAM ir 32g ROM, Internete randu 4GB RAM 64GB ROM Android 10.0. Vienu žodžiu zooparkas. Bet šiandien ne apie tai. TV žiūrėtojas vietoje 5V maitinimo pašėrė 12V ir po to priedėlis nustojo veikti.
Ardymas nesudėtingas, tai nėra ką parašyti. Bet pajungus prie maitinimo šaltinio priedėlis valgo kažkiek ne logiškai daug amperų, maitinimo šaltinį apribojau ties 2A, ko turėtų tikrai užtekti normaliam veikimui, bet maitinimo šaltinis šoko į apsaugą, nes srovė viršijo 2A. Ardome.
Nebaisiai daug detalių, matomos RAM/ROM mikroschemos nevalgo 5V, taigi, viskas maitinasi per DC/DC konverterius. Gal ir geras ženklas, jeigu konverterio nepramušė – veiks. Kairėje foto matosi 4 didesni droseliukai, paprastai droseliukai būna DC/DC konverterio schemos dalis. Dešinėje pusėje yra tik vienas AMS1117, toks tradicinis pas kiniečius Texas Instruments LM1117 klonas. Jo maksimali įtampa 15V, taigi, 12V prijungimą jis turėjo išgyventi, o vat šalia droselių esantys AS20B5 pažymėtos mikroschemos (realiai MT3520B) greičiausiai neišgyveno, maksimali įtampa tik 6,5V.
Tikrinam DC/DC konverterius – geras ženklas, įėjimas nepramuštas į išėjimą, atsiranda tikimybė, kad už konverterio mikroschemos išgyveno. Teks pakeisti ir pabandyti. Bėda tame, kad tos mikroschemos niekas iš patikimų tiekėjų neturi, teko užsakyti iš AliEkspress – o to labai nemėgstu, nes 90% mikroschemų iš ten – padirbtos arba iš viso neveikiančios.
Praėjo kiek laiko, mikroschemos atvažiavo ir buvo įlituotos. Stebuklas įvyko:
Išvada – 12V sudegino visas keturias mikroschemas, bet viskas, kas liko už jų išgyveno. kadangi testas sėkmingas, priedėlis veikia, tai šiek tiek diagnostinių duomenų:
Ne baisia sudėtingas remontas, bet kad jau prašė pažiūrėti… Kalba eina apie tokius pigučius lazerinius projektorius
Nei jis čia labai galingas, nei kažkuo geras, projektoriuoja visokius taškus ir tiek. Pradžiai kaip visada, diagnostika. Neveikia. Nu tai negi atsiųs remontui veikiantį… Teks ardyti, gerai, kad nesudėtinga. Va jau ir krūvelė pabertų:
Taip, iš viso keturi aparačiukai. Gedimas pas visus vienodas, nuo perdėto jėgos panaudojimo jungiant maitinimo šaltinį – nulaužtos visos jungtys. Betikrinant radau dar ir vieną trijų padėčių jungiklį stringantį. Išėmus matosi, kad jis toks lyg padegęs, lyg kaitęs… Visos blogos detalės išmontuotos:
Prasideda „lengvoji” dalis – surasti kuo juos pakeisti. Paieška užtruko kokia 15 minučių, bet rezultatas:
Pabumbėsiu… Maitinimo šaltinis 5V 1,5A, kiek tas aparatas „valgo” dar nežinau, bet tas jungiklis atlaiko tik kokius 200 mA, t. y. 7,5 karto mažiau. Ar nebus čia to kaitimo priežastis, kai per jungiklį prasibėgo didesnė srovė nei galima ? Reiks pamatuoti sroves, gal koks varikliukas pastrigęs ir dėl to vartoja didesnė srovę, ir degina jungiklį.
Patys aparačiukai padaryti labai kreivai šleivai, tokia Kinija, kad matyt pačio nuošaliausio Kinijos kaimo rūsyje gaminti…
Trumpai apie tai, kas viduje.
Du lazeriniai spinduoliai, po vienu prispaustas pavalkėlis, nežinau, ar kad kreiviau būtų ar atsitiktinai . Abu lazeriai šviečia į pusiau veidrodinį stikliuką, kuris turėtų viršuje esančio lazerio spindulį atspindėti 90° kampu ir tiesiai praleisti dešinėje esančio lazerio spindulį. Pabandome.
Taip, viršutinis lazeris raudonas, atsispindi reikiamu kampu ir išlenda per balto plastiko konstrukciją. Ji su varikliuku, matomai ten dar kokį veidrodį sukioja, kad spindulys judėtų. Dešinys lazeris tuomet turėtų būti žalias, bet prijungus maitinimą neveikia, tai kol kas ne žalias .
Dar keletas foto su montažinėmis plokštėmis:
LM317T, matomai surinktas įtampos stabilizatorius, reiks pamatuoti kiek Voltų gamina. Raudonu laidu padarytas trumpiklis, nuo jam yra vieta ant PCB… Toliau visokia smulkmė, DBL358V operacinukas, turbūt prie mikrofono grandinės, keletas 2SD882 tranzistorių, NE555 taimeriukas, laiko impulsų generavimui.
Remontuojam.
Aparačiukai nenumeruoti, bet tarkim pirmasis pasitaikęs po ranka – maitinimo lizdas pakeistas, jungiam. Ok, toks įspūdis, kad šalia namo kyla Eurofighter’is pilnu forsažu. Burzgia aušinimo ventiliatorius, reiks pakeisti. Laikinai atjungia ir bandom toliau. Lazeriai šviečia, o vat varikliukas, vartantis poliarizuotą stikliuką – ne. Pajungiam varikliuką prie maitinimo šaltinio, prie 5V šiaip ne taip, labai nenoriai, pradėjo suktis – viskas aišku, sunkiai sukasi, valgo daugiau srovės, srovė degina jungiklį ir gal dar kažką pakeliui, nes jungiklis tai veikia. Greita diagnostika, tiesiog atsekant takelius, kaltininkas rastas ir pašalintas. Raskite 1 skirtumą
Taip taip, 10 Ω rezistorius negyvas, matomai neatlaikė srovės. O gal čia tas pats aparačiukas, kuriam ir jungiklis neatlaikė. Vienu žodžiu teks pakeisti rezistorių. Ir tas sunkiai besisukantis varikliukas:
Paprastas šepetėlinis variklis, apie guolius čia nėra kalbos. Bet užsakiau naujus ir laukiam gavimo :).
Ventiliatoriai pakeisti, nors teko prie to padirbėti – visų pirma tvarkingas sulituoti ventiliatorių laidukus prie nukirptų senųjų ventiliatorių jungčių, užtraukiant termokembriką, po to dar pasirodė, kad ventiliatorių skylės varžtams per didelės, gerai, kad turiu ne mažą dėžę visokių kompiuterinių varžtelių, tame tarpe ir ventiliatorių tvirtinimo varžtų, tie puikiausiai tiko.
Varikliukai gauti ir sumontuoti. Patys varikliukai tai tiko idealiai, bet niekada nebūna viskas lengva – dviejų varikliukų dantračiai trūkę, uždėjus teko įtvirtinti specialia, UV šviesoje kietėjančia derva. Laikosi tvirtai. Naujas varikliukas laisva eina vartoja apie 5 mA.
oplus_0
Naujasis varikliukas su klijuotu dantračiu kairėje, o dešinėje jau sumontuotas. Kadangi nauji varikliukai atvažiavo be jungčių, teko senąsias jungtis prilituoti prie laidų, viską užtraukti tinkamos spalvos termokembriku. Prietaisiukai patikrinti ir veikia kaip numatyta gamintojo. Apie remonto kainą nesakysiu, nes gaunasi daugiau nei nauji prietaisiukai .
Toks skubus remontukas pasitaikė, gavau „SCE904AN-002-01 Pacific Scientific High Performance Digital Servo Drive” valdymo bloką, kuris, taip supratau, valdo pjovimo diskų galandinimo stakles. Daiktas brangus (eBay apie 2000€), o ir darbai stovi, kalnai negaląstų diskų, todėl reikėjo skubaus remonto. Atidėjau visus projektukus į šalį, ir porą dienų, arba labiau naktų praleidau su šituo bloku. Pradžiai, kaip ir visada, teko pasiaiškinti schemotechniką, nes tam, kad sutaisyti bet kokį daiktą, būtina žinoti kaip jis turi veikti. Gedimas – neįsijungia, po to beliko tik diagnostika. Pradžiai teko išardyti bloką:
Priekinė panelė su 7 segmentų LED indikatoriumi, maitinimų ir komunikacinėmis jungtimis, gale – masyvus radiatorius.
Atidarius va toks va vaizdelis. Kairėje – jėginė dalis ir impulsinis maitinimo šaltinis, dešinėje – valdymo schemos. Pačią diagnostiką suskirsčiau į tris etapus – jėginės dalies diagnostika, valdymo grandinės diagnostika ir likusios schemos diagnostika. Kodėl taip ? Nes labiausiai tikėtina, kad nusprogo jėginė dalis, kuri dalyvauja didelių srovių komutavime, jei ne ji, tuomet labai tikėtina, kad nusprogo valdymas (neseniai žaibavo, tai gal, pavyzdžiui, nužaibavo kokį prociuką).
Jėginė dalis sudaryta, principe, iš vienos detalės, IGBT modulio Semikron SKM40GD123D:
Modulio struktūra:
Nieko labai blatno, šeši IGBT tranzistoriai viename dideliame korpuse. Pliusas, kad visi gerai aušinsis ir bus vienodos temperatūros ir greičiausiai vienodų parametrų, jeigu daryti tuo pačiu procesu. Šalia dar gyvena du trifaziai lygintuviniai tilteliai VS-36MT140:
Modulių sandara standartinė:
Tikrinam…
Čia visi jėginiai elementai geri, IGBT modulis, tilteliai, dideli raudoni kondensatoriai, filtravimo dalis – pareiname prie valdymo schemos tikrinimo.
Pradžiai bandome tikrinti mikroschemų maitinimo grandines. Trumpo jungimo nėra, viskas kaip ir gerai, reikštų, kad galima padaryti diagnostinį maitinimo įvedimą ir pažiūrėti iš kur rūks dūmai. Ant plokštės patogiai matosi 5 VDC stabilizatorius:
Štai jis, kairiame apatiniame kampe, prisuktas prie radiatoriaus, šalia ir jo kondensatorius. Čia standartinis LM7805, 5 V stabilizatorius. Pasitikrinam aplink jį, viskas gražu, trumpo nėra, bandome jungti. Stabilizatoriaus įėjimui paduodam 7V, minusą prie stabilizatoriaus minuso, ir jo išėjime turime gražius 5 V. Bet valdymo plokštė vis tiek neveikia. Net nėra tų gražių 5 Voltų ant mikroschemų maitinimo išvadų. Nu va, nusiminiau aš, net susinervinau truputį, galvoju takelis kur nors bus trūkęs, o plokštė turbūt trisluoksnė, nebeatkasiu kur trūko. Bet vis tiek pradėjau tikrinti. Tikrinu tikrinu, nu kas per monai, mikroschemų maitinimas tikrai ne iš to stabilizatoriaus važiuoja, pasirodo iš tų šleifų, plataus ir siauresnio, kurie matosi foto kairėje pusėje. O tai kam tada tas 5 V stabilizatorius ? Nežinau, bet imamės plano B – paduodu maitinimą į bet kurios patogios mikroschemos maitinimo išvadus. Kiek Voltų ? Pasižiūrėjau keleto mikroschemų aprašymus, vienos valgo nuo 3 V iki 5,5 V, kitos grynai 5 V, taigi, tiek ir paduodam. Ir – stebuklas, displėjus atsigavo, rodo kažkokius kodus ir skaičius. Reiškia procesoriukas protauja, gerai. Bet vis dar nėra maitinimo. Kadangi jis ateina per šleifą iš jėgos plokštės pusės, grįžtame prie jos. Jėginėje plokštėje gyvena tas impulsinis maitinimo šaltinis:
Pasitikrinu ar nėra trumpo (su mintim, kad jeigu nėra, bus sąlyginai saugu jungti į 230 VAC), kai kuriuos komponentus (nes matosi kaitimo žymių), prasiskambinu AC takelius iki pat pagrindinės mikroschemos UC3845A. UC3845A ir UC3845B versijų aprašymai visai pravertė. Mikroschemos blokinė schema:
Ir tipinė jungimo schema:
Ir gedimas buvo būtent šito maitinimo šaltinio schemoje, bet kadangi remontas buvo komercinis, nesu tikras, kad galiu apie jį papasakoti. Bet diagnostikai reikėjo ocsilografo ir testerio, o gedimo priežastis – karštis. Remontas pavyko, o pats blokas padarytas kokybiškai, plokštė gera, elementinė bazė irgi patiko, nustebino, kad net visi varžteliai su prabangiom graverinėm/pleištinėm/rifliuotom poveržlėm:
Jau po truputį galima papsakoti apie viso šito reikalo tikslą – reikia be laidų valdyti posūkius, taip taip, mašinos posūkius. Kas per mašina ir kodėl reikia – vėliau, kad būtų intrigėlė . Ir pagaliau pabaigta finalinė siųstuvo versija, išbandyta ir pasitvirtinom teisingą veikimą. Paskutine tapo trečioji versija, taigi, pabandykime paanalizuoti klaidų ir tobulinimo kelią.
Pati pirmoji, V1.0 versija, įkūnijanti pačią idėją. O idėja tokia – prie H1 prijungiama posūkių valdymo rankenėlė, kuri iš 2 kontakto permetą pliusą į 1 arba 3, priklausomai nuo to, į kurią pusę paspausta. R1 ir R3 – pull-down rezistoriai, kad valdikliukas Attiny85 neprisigaudytų trukdžių. Toliau visą „protingą” darbą daro valdikliukas. Pagal tai, į kurį kontaktą (PB1 ar PB2) ateina signalas, valdiklis suformuoja atitinkamą baitų paketą ir supučia jį iš PB3 kontakto į siųstuvo TXM433LR antrą kontaktą (duomenų įėjimas), o siųstuvas viską ištransliuoja per ANT-433-USP anteną. Prieš tai nepamirštame nustatyti loginį 1 PB4 kontakte ir tuo pačiu siųstuvo PDN kontakte, kad siųstuvas „prabustų”. Tas padaryta elektros energijos taupymo sumetimais, kad bent jau siųstuvas neveiktų visą laiką, o tik tada, kai reikia parodyti posūkio signalą, nes maitinimas nuo CR2450 3V baterijos, iš kurios galima tikėtis tik 600 mAh. Viršutinė schemos dalis, U4 su C1 ir C2 – aukštinantis DC/DC mikrokonverteris XCL101C301ER-G, sugebantis iš 0,7-5,5 V įėjimo padaryti stabilią nustatytą įtampą, nuo 1,8 V iki 5.0 V (±2.0%) su 0,1 V žingsniu. Maksimali srovė 100 mA, mums tikrai užtenka. Kam jo reikia ? Ogi tam, kad baterijai išsikraunant, schema vis dar gautų skaniai ir sočiai valgyti . Pabandžiau, veikia stabiliai iki 0,8 V, taigi, baterijoje esančią energiją išnaudos kuo pilniausiai. Toliau jungiklis H2 ir baterija U3 (nežinau, kodėl būtent U). J1 trumpiklis arba 0 Ω rezistorius skirtas atjungti likusią schemos dalį, kol vyksta Attiny85 programavimas per CN1 jungtį, nes programatorius šeria 5 V, o siųstuvas valgo maksimum 3,6 V. Schema, sakyčiau griozdiška, bet kažkaip veikia, toliau bandome optimizuoti. Skirtingai nuo visų elektronikos gamintojų, man žodis „optimizuoti” nereiškia „atpiginti”, todėl antroji schemos versija gavosi tokia:
Pagrindiniai komponentai liko tokie patys, todėl kalbėsime tik apie pasikeitimus. Pirmas dalykas – schema perbraižyta plačiau, lengviau suprasti, kas čia prie ko prijungta ir kodėl. Perprojektuota maitinimo šaltinio veikimo logika, kas leido pašalinti mechaninį įjungimo tumbleriuką. Mintis tokia – baterijos pliusas, kaip ir ankščiau, ateina į posūkių rankenėlės kontaktus ir daugiau nieko neužmaitina. Įjungus posūkį, pliusas nubėga į trijų diodų mikroschemą ir patenka į tranzistoriaus Q1 užtūrą, tranzistorius atsidaro ir prijungia minusą prie visos schemos. Kam trys diodai ? Čia toks, vadinamas, loginis ARBA elementas. Loginis ARBA – tai kai bent viename įėjime yra loginis 1, išėjime irgi yra loginis 1. Taigi, kai maitinimas ateina nuo kurio nors posūkio (į kairę arba į dešinę), jis per savo diodą užmaitina tranzistorių, pasileidžia visa schema, tada valdikliukas iš PB4 paduoda pliusą, kad laikyti tranzistorių atidarytą tiek, kiek jam reikia. O kiek reikia ? Čia mintis tokia – kad posūkis mirksėtų, valdiklis/siųstuvas turi periodiškai siųsti įjungimo ir išjungimo komandas, jeigu siuntimas išjungiamas, tarkim, po komandos uždegti posūkio indikatorių, tuomet jis ir lieka degti, nes nebelieka komandos jį išjungti. Todėl atjungus posūkių rankenėlę pats valdikliukas dar palaiko schemą veikiančią, kad spėtų pabaigti siųsti išjungimo komandą ir tada jau PB4 nustatomas į loginį 0 ir viskas atsijungia iki sekančio posūkių rankenėlės įjungimo. Truputį pakoreguota ir Attiny programa, kad veiktų pagal naująją schemą. Toliau smulkmenos – pridėti trumpikliai SJ2 ir SJ3, skirti tam pačiam reikalui, programavimo metu atjungti likusią schemos dalį. Pamiršau – pirmoje versijoje J2, o antroje SJ1 naudojami DC/DC apėjimui, užtrumpinus maitinimas eina tiesiogiai iš baterijos ir DC/DC keitiklis nedalyvauja parade. Bandymu metu maitinimo schema veikė keistai, matyt atjunginėti minusą tuo trazistoriumi nebuvo gera mintis, gal koks „ground loop’as” gaunasi, gal dar kažkas, bet DC/DC keitikliui nepatiko taip veikti, todėl pradėta projektuoti trečioji schemos versija.
Ir vėl, pagrindinė mintis liko ta pati – mažinti nereikalingų komponentų kiekį, mažinti elektros suvartojimą, viską optimizuoti. Čia pagrindinis pasikeitimas yra maitinimo grandinėje. Paanalizuokime. Baterijos U2 pliusas sujungtas su posūkių rankenėle ir mikroschema U5 (TCK106AF), čia toks „protingas” tranzistorius, arba skaitmeninis jungiklis arba… Vienu žodžiu padavus jam pliusą jis pats teisingai sujungia savo Vin su Vout ir užmaitina prie Vout prijungtą schemos dalį. Taigi, kol posūkių rankenėlė atjungta, niekas neveikia, nėra jokio srovės vartojimo – energetinio taupumo tikslas pasiektas, nes energija naudojama tik tada, kai reikia rodyti posūkį. Sujungus rankenėlę, pliusas nubėga pas vieną iš trijų diodų (tas pats loginis ARBA), pasileidžia DC/DC keitiklis ir užmaitina visą schemą (valdikliuką ir siųstuvą). Valdikliukas įsijungia, įmeta loginį 1 į PB4, tuo paleisdamas tą U5 jungiklį, pasitikrina kuris posūkis įjungtas (kontaktai PB1 arba PB2) ir atitinkamus duomenis supučią siųstuvui. Kai posūkis atjungiamas, valdiklis vis dar laiko PB4 išėjime aukštą lygį, kad veiktų jungiklis U5, per kurį maitinimas patenka į vieną iš diodų, tada į DC/DC keitiklį ir visa schema veikia, kol valdiklis išsiunčia paskutines komandas, o tada nustato loginį 0 į PB4, tuo išjungdamas jungiklį U5. Kadangi tuo metu tai būna vienintelis dalykas, laikantis schemą įjungtą – viskas išsijungia iki sekančio posūkio įjungimo. Šitoje vietoje dvejojau, nes posūkių rankenėlė perduoda tiesioginę baterijos įtampą ir kaip ji keisis baterijai išsikraunant ? Maitinimas po DC/DC vis dar būtų 3V, bet baterija tuo matu jau gal bus tik 2V. Čia teko paknisti Attiny85 aprašymą, ir radau tokį dalyką:
Taigi, įtampos nuo 1,8 V ir daugiau bus tikrai fiksuojamos kaip loginis 1, įtampos žemiau 0,9 V bus tikrai fiksuojamos kaip loginis 0. Taigi, baterija gali išsikrauti net iki 1,8 V, vis tiek schema veiks teisingai, man tokie įtampų lygiai priimtini .
Schema ir montažinė plokštė braižyta EasyEDA programoje. Kodėl ? Paprastoms schemoms man ji visai patiko. Yra visokių niuansų ar nesklandumų, bet ne kritiški, todėl šalia Autodesk Eagle (gaila, kad ne Cadsoft) naudoju ir EasyEDA.
Plokštė daryta pagal posūkių rankenėlę, kad tilptų viduje. Keletas 3D vaizdelių:
Ir jau pagaminta plokštė:
Reiks dar įkelti EasyEDA projekto failiukus ir valdiklio programą.
O toliau – pabaigti ir aprašyti imtuvo projektą (prototipas irgi jau pagamintas ir išbandytas). Paskutinei, trečiajai, schemos versijai, dar įmanoma padaryti šiokį toki atpiginimą – kadangi per Attiny85 IO kontaktus gali tekėti 40 mA srovė, galima išmesti U5 ir valdyti viską vietoje jo, PB4 tikrai išveš tokias sroves – visa schema, siuntimo metu, vartoja 4,9 mA, t. y. ~8 kartus mažiau. Tam tereikia PB4 prijungti tiesiogiai prie D1 diodų 4 kontakto.
Tiksliai nežinau koks to kavos aparato modelis, nes gavau tik valdymo plokštę su akivaizdžiais degimo požymiais ir svilėsio kvapu:
Kol kas neaišku nei kas sudegė nei kodėl. Svarbiau – kodėl. Šalia DRV8841 mikroschema, kurios išvadai prijungti prie matomos 6 kontaktų jungties, sveikų kondensatoriukų ir svilėsių. Tas DRV8841 – variklio/variklių valdiklis su dviem H tiltais. Iš to darome išvadą, kad prie jungties jungiamas kažkoks varikliukas. Funkcinė schema elementariai paprasta:
O vat norint atsakyti į klausimą kodėl – pradžioje reiktų susirinkti įtariamuosius:
Kaltas variklis/varikliai – gal užsikirto, gal apvijos padegę ir viskas užsitrumpino…
Kaltas DRV8841, gal užtūrų valdymas H tilto tranzistoriams kažką prasileido ir atidarė porą tranzistorių vienu metu – štai jums ir trumpas jungimas.
Didžiausias svilėsis – tantalinis kondensatorius. Jie tokie iš prigimties keistuoliai, gali pridaryti fokusų patys užsitrumpindami.
Kadangi pabandyti surinkti aparatą patikrinimui galimybės neturiu – darysim viską maksimaliai. Bet pradžioje valymas:
Vis tiek nelabai geras priėjimas, bet aiškinamės kokių detalių trūksta ir traukiam lauk tą jungtį, šiaip ar taip pasvilus:
Tuo pačiu „užtaisome” tą skylė plokštėje. Tam gerai tinka epoksidiniai dalykai arba lakas.
Toliau pasinaudojame DRV8841 aprašymu, jame sužymėti kondensatoriai ir jų talpos:
Sveikas liko kondensatorius tas, kuris prijungtas prie CP1 ir CP2 išvadų (C269), VCP kondensatorius (C27) padegęs, šalia jo buvo du kondensatoriai, tantalinis (100 µF) ir keraminis (0,01 µF). Štai ir turime viską ko reikia.
Padegę takeliai „pariebinti” lydmetaliu, kondensatoriai sudėti. Tiesa tie du didesni po 0,01 µF, vienas kaip ir turi būti, o vietoje tantalinio dar vienas toks pat, pačio tantalinio dar nėra. Kodėl ? Todėl, kad taip sugalvojau , bet jeigu rimtai – kaip ir sakiau tantaliniai kartais padaro fokusų, sugalvojau pakeisti jį elektrolitiniu kondensatoriumi, o vietoje tantalinio papildomas keraminis kondensatorius pagelbės ESR mažinimo klausimu. Taigi, su kondensatoriais klausimas kaip ir išspręstas, bet neaišku, ar ta DVR8841 veikia korektiškai, todėl, prieš klijuojant sąlyginai didelį elektrolitinį kondensatorių norėtųsi pakeisti tą mikroschemą. Lupam ir ją:
O aš ir galvoju, ko ji taip lyg sunkiau kaito, štai va jums ir prašom – po mikroschema aušinimo radiatorius, prilituojamas prie metalinio mikroschemos „pilvo”. Matyt ir kaista atitinkamai, gal temperatūra ir sukėlė gedimą. Ok, lituojam naują mikroschemą į vietą:
Dabar jau galima primontuoti ir elektrolitinį kondensatorių:
Toliau jungties eilė. Tos pasvilusios nebemontavau į vietą, „pareguliavo” donorinę plokštę su tokiomis jungtimis nuo kažkokio kito aparato, taigi, į vietą stoja nauja:
Kadangi kondensatorius truputį didesnis nei buvęs tantalinis, jam prilaikyti reikės lašelio termoklijų:
Šiandien pabandykime pasinagrinėti Samsung SDI-3610B akumuliatorių su gedimu.
Gedimas tame, kad jis neveikia, bet taip visiškai, nei išėjimas yra, nei diagnostiniai įkrovimo indikatoriai šviečia. Pirma mintis žinoma mirę celės, o gal tik išsibalansavę. Bet viltis durnių motina, negali mums čia ant tiek sektis, todėl pradžioje ardome. Pats akumuliatorius visai ne mažas, ir sveria padoriai:
Užmačiau tokio akumuliatoriaus kainą Amazon parduotuvėje, 300-400 €, visai neblogai taip.
Išardžius vaizdelis nenustebimo, kaip visada, krūva celių, BMSas (Battery Management System) su termistoriumi ir viskas. Šiaip pats BMSas gan bukokas, iš Samsungo gal tikėčiausi daugiau.
Abi BMSo pusės. Viršutinė pusė kairėje, atsukus ją nuo korpuso pasimato ir apatinė pusė (dešinėje). Trumpai apie tai, ką mes čia matome. Viršutinėje pusėje du lygiagretinti jėgos tranzistoriai STB140NF75, prijungiantys minusą, kai su baterija viskas gerai, šalia mažiukas tranzistoriukas IRFR540Z – krovimui. Per vidurį komunikacijos jungtis, bet normaliam darbui ji nenaudojama, todėl spėju, kad skirta tik užprogramuoti valdiklius gamybos metu. Galbūt ir diagnostikai, jeigu akumuliatorius patenka į autorizuotą Samsung servisą. Ir visa kita smulkmė, apie kurią kol kas neverta rašyti. Kitoje pusėje didelis juodas blynas OKI L5208, BMS valdiklis. Apie jį daug informacijos neradau, tik forumuose probėgšmais užsimenama, kad jį iš OKI nupirko forma Lapis, iš jos Rohm Semiconductor. Aprašymo neturiu, taigi – nepasidalinsiu… Ok, tada mažesnis juodas blyniukas Renesas R2J24020F020, valdiklis su 16 bitų R8C procesoriumi. Jis, principe, ir turėtų daryti visą darbą, bet, turbūt, jis neturi kur prisijungti 10S tipo baterijų, tarkim, gali prisijungti tik 4S, todėl L5208 atlieka visą darbą su 10S baterija ir raportuoja valdikliui. Pats mažisuias, SOIC-8 aštuonkojis, tai Maxim Integrated MAX5024LASA+ įtampos reguliatorius, valgantis net iki +65VDC ir gaminantis iš jų 3,3V. 5V arba 2,5-11V (su papildomais rezistoriais).
Apie pagrindinius elementus tiek, toliau klausimas kodėl jie neveikia. Matavimai parodė, kad visos celės yra pakrautos ir balansavimas teisingas, bet valdiklių įtampos vis tiek nėra. Bandome prisiknisti prie to MAX5024 reguliatoriaus, jis kaip ir turėtų gaminti reikiamą įtampą visiems valdikliams, logikai ir t.t.
Štai tas MAX reguliatorius, pažymėtas U3. Analizuojam veikimą – takelis, pažymėtas P+ gauna maitinimą per prilituotą laidą, kuris per srovę ribojantį rezistorių R167 (330R) patenką į MAX’o pirmą kontaktą. Ok, žiūrim aprašymą:
Pirmas kontaktas ir yra maitinimo įėjimas – matuojam ir matom čia 40 su trupučių Voltų. Tai maitinimas yra. Kažkaip spėčiau, kad tas OUR prie 8 kontakto turėtų būti maitinimo išėjimas, bet jo nėra. Čia matome tik 0,6V, o tiek yra akivaizdžiai per mažai visai gaujai alkanų mikroschemų. Taigi, maitinimas ateina, bet reguliatorius nieko nereguliuoja, todėl išėjime tokia įtampa. Trumpo išėjime nėra, jei ką, patikrinau . Nuo šitos vietos galima viską daryti vyriškai (viską su3,14sti, o paskui skaityti datašytą) arba iš karto paskaityti mikroschemos aprašymą. Taigi, pradžiai tipinė jungimo schema:
Ją pamačius kyla natūralus klausimas – o tai kokia ta išėjimo įtampa ? Matuojame varžas ir turime, kad R1=69,5K, o R2=21,38K. Skaičiuojam:
Taigi, stabilizatorius turėtų gaminti apie 5V, apie – nes matavimas nėra tikslus, varžos irgi ne 1% tikslumo. Bet mums to užtenka, kad įsitikinti – 0,6V yra per mažai. Tai kodėl jis neveikia ? Galima būtų eiti bandymo keliu ir pakeisti stabilizatorių, tikintis, kad čia jis biškį pasprogo, bet tokio stabilizatoriaus po ranka nėra, o užsakinėti ir laukti užtruks, todėl ir vėl teks įjungti smegenis. Schemoje matome kontaktą, pažymėtą „EN”. Logika jau ne ne kužda, o grynai spardo į kepenis, kad čia įjungimo (ENable) kontaktas. Patikrinkime, kas jame gyvena. Visų prima vėl darome ne vyriškai – skaitome aprašymą. Taigi, mikroschema veikia, kai EN kontakte gyvena daugiau nei 2,4V, o daugiausia ten gali būti įėjimo įtampa ±0,3V, tai mūsų atveju panašiai 40V ±0,3V (šiaip dzin tie 0,3V krypavimai, kai matuojam net 40V). Matuojam – ir nieko nėra. Tai nėra ko stebėtis, kad MAXas neveikia, kai niekas jo nebaksnoja į šoną tai jis ir tinginiauja. OK, teks aiškintis, kas jam tą ENable signalą generuoja. Matuojam, dar biškį matuojam, žiūrim per lupą, pamurmam necenzūrinių burtažodžių, ir finale piešiam va tokią schemą:
Taigi, mūsų ENable signalo nėra, tuščia ir ant specialaus testavimo paduko TP15. O vat matuojant tranzistorių Q11 bazės įtampa 3,3 V, emiterio įtampa irgi 3,3 V. Kas per tranzistorius – neaišku, jokios markiruotės, todėl poliarumą tik spėjau pagal pajungimą. Taigi, jeigu bazės įtampa yra 3,3 V – tranzistorius uždarytas, todėl nėra ENable signalo. Kad tranzistorius atsidarytų, bazei reikia žemo lygio, 0 V. Kodėl jo nėra ? Žemą arba aukštą lygį tranzistoriaus bazei duoda U7 mikroschema. U7 – tai du loginiai NAND elementai viename korpuse:
O dabar matosi, kad reikai dar paanalizuoti schemą, todėl braižome ir matuojame:
Ir tuo pačiu iš schemos matosi, kad iš tų dviejų NAND loginių elementų yra suformuotas SR jungiklis (SR Latch arba SetReset Latch), kurio tipinė schema ir teisingumo lentelė yra tokia*:
Tokio tipo SR jungikliai valdomi žemu lygiu, t. y. didžiąją dalį laiko S ir R yra aukšto lygio, o prireikus atlikti Set arba Reset veiksmą į atitinkamą kontaktą paduodamas žemas lygis. Taigi, jeigu mūsų tranzistorius prijungtas prie Q̄, tuomet visi įtampų matavimai atitinka, ir, kad Q̄ būtų žemo lygio reikia paduoti žemą lygį į R įėjimą arba 2B kontaktą mikroschemoje. Tai kodėl kažkas to žemo lygio nepaduoda? Aiškinamės toliau.
Taigi, tranzistoriaus Q12 (SSM3K01F) atidarymas prijungia žemą lygį 2B įėjimui ir tuo turėtų padaryti žemą lygį Q̄ išėjime. Bet matyt niekas to tranzistoriaus neatidaro ir dėl to nevyksta baterijos įtampos paleidimas. Et, ok, važiuojam toliau, reikia išsiaiškinti, kad tą tranzistorių valdo, nes jis visgi geras – „rankiniu” būdu maktelėjus jo užtūrą į 3,36 V baterija pasileidžia ir išėjime turim 40 V. O valdo jį toks daugiakojis R2J240. Papildome schemą:
Tranzistorius valdomas iš mikroschemos U20 43 kontakto:
Štai ir priėjome liepto, t. y. schemos galą. Valdymas eina iš R2J240 valdiklio, o visa analoginė grandinė yra sveika. Aišku, turint valdiklio aprašymą ir programą (arba bent jau jos aprašymą), būtų galima galvoti, kas tam valdikliui netinka, kad jis nepaleidžia likusios grandinės dalies, o dabar neturiu kaip tikrinti ar išpildomos reikiamos sąlygos paleidimui, jei išpildomos tai blogas valdiklis, jei neišpildomos – kodėl ir ką padaryti, kad jos būtų išpildytos ir valdiklis paleistų likusią schemos dalį.
Taigi, galima būtų daryti išvadą, kad R2J240 valdiklis dėl tik jam vienam žinomų priežasčių užsiblokavo. Ar tai jau pabaiga ? O gal pabandom pažaisti su šitais kontakčiukais:
Ok, visgi užsisakiau tokį žaisliuką: CY3689 – Infineon Technologies. Programuojamas valdiklis, kurio pagalba galima gauti daug visokių komunikacinių galimybių, tame tarpe ir SMBus. Kai atvažiuos pabandysiu, gal pavyks nuresetuoti batareiką .
Dirbdamas vis atrandu naujų taisyklių, kurių reiktų laikytis, remontuojant baterijas arba keičiant Ličio jonų elementus naujais. Bandysiu jas rašyti čia, kad pats ilgainiui nepamirščiau arba būtų kur pasižiūrėti.
Ličio jonų elementus numontuojame / nulituojame nuo galinio pliusinio kontakto ir atjunginėjame paeiliui link galinio minuso kontakto. Sumontuojant / sulituojant elementus jungiame nuo galinio minusinio kontakto ir einame link galinio pliusinio kontakto.
Akumuliatorių valdiklio „pažadinimas” iš budinčio režimo atliekamas trumpam sujungiant akumuliatoriaus paskutinės celės pliusą su baterijos išėjimo pliusiniu kontaktu.
Toks labai paprastas ir lengvas remontukas tiems atvejams, kai jau gamykliškai ampermetro neįmanoma nustatyti ties nuline padala. Pavyzdyje kairys ampermetras dabar arčiausiai nulinės padėties pagal reguliavimo rankenėlę, bet vis tiek rodo 1,5A (5A skalėje). Dešinys – rodo nulį teisingai.
Ardome, tam reikia atsukti 2 varžtelius po kontaktinėmis jungtimis, nuimti nedideli dangtelį. Po dangteliu kontaktinių jungčių varžtai, juos atsukus korpusas atsidaro. Tuomet reiktų atsukti dar du mažiukus vartelius, kad nuimti priekinę skardelę. Dabar jau matosi rodyklės ašis, spyruoklė, ritė ir magnetukas. Įsitikiname, kad rodyklė tiesi. Pastačius reguliavimo kilpą vertikaliai, atlenkiame kairėje esantį stačiakampį metalinį daikčiuką (pažymėtas raudonu kvardatu) tiek, kad pakiltų iš savo griovelio ir sukame jį taip, kad rodyklė atsistotų į nulinę padėtį.
Viskas. Surenkame atgal, reguliavimo rankenėlė vis dar reguliuoja rodyklės padėtį, viskas kaip ir veikia.
Kodėl taip atsitiko ? Visai nebūtinai ampermetras gavo per daug srovės, pamatavo įtampą vietoje srovės ir panašiai, tiesiog – rusiškas daiktas, darytas kirviu ir 13 raktu, o dar ir mokykloms, ne karinei pramonei, tai toks ir tikslumas, ir broko kiekis. Va būtų truputį kitu kampu tą griovelį prafrezavę ir viskas gerai būtų.