Category / Elektronika

HT12E enkoderio emuliatorius 2021.11.22 at 12:51

Tęsiame eksperimentus su HT12E, dabar bandysime sumesti jo emuliatorių. Kad jau reikia greitai, paprastai ir suprantamai net lameriams – jamam Arduino Uno. Beje, pasigirsiu, kai tik gausiu NUCLEO-F446RE pereisiu prie Kūbo ir STM32F446RE. Kažkurias savo programas gal išportinsiu iš Arduino į normalų C, bet ir savarankiškai jas perrašyti yra labai paprasta. O šitų bandymų rezultatas jau realizuosis, greičiausiai, su STMu. Ok, važiuojam. Pradžiai sumaniau pabandyti koks gali būti maksimaliai greitas meandras pas Uno:

Štai, apie 3,4 us, tai beveik 100 kartų greičiau negu mums reikia, panaudojant D2 arba PD2 kontaktą. Nepabandžiau dedikuoto PWM išėjimo, kitą kartą… O kol kas reikia pristabdyti Atmegą panaudojant delayMicroseconds(Pause) funkciją, kur Pause yra laikas mikrosekundėmis. Rašome 328 us, nors reiktų 330 us – 2 us paliekam prievado junginėjimo laikui. Oscilografas patvirtina sprendimą:

Štai, loginis 1 turėtų trukti 330 us, dėl tikslumo paėmiau 5 loginius 1 ir 5 loginius 0, trukmė 3,340 ms = 3340 us, vieno bito trukmė 3340/10 = 334 us, panašiai :). Kadangi jau sureguliavom bito trukmę, sumetam bitbanginimui programėles:

void one () {

digitalWrite (Data_Out, LOW);
delayMicroseconds(Pause);
digitalWrite (Data_Out, LOW);
delayMicroseconds(Pause);
digitalWrite (Data_Out, HIGH);
delayMicroseconds(Pause);

}

void zero () {

digitalWrite (Data_Out, LOW);
delayMicroseconds(Pause);
digitalWrite (Data_Out, HIGH);
delayMicroseconds(Pause);
digitalWrite (Data_Out, HIGH);
delayMicroseconds(Pause);

}

void one () padarys vienetuką, t.y. išsiųs 001, o void zero () padarys nuliuką, t. y. išsiųs 011.

Dešinėje loginio 1 trukmė, nors ir nuliai ne iš tos pusės – 990 us, idealu.

Kairėje HT12D signalas, dešinėje sugeneruotas programiškai, visi loginiai 1. Jau galima jungti maketinę plokštė ir paduoti į ją mūsų signaliuką.

Pajungiau, niekas nesprogo, net nekaista, netgi veikia. Tuoj padarysiu video kaip mirksi LEDukai.

Programėlė labai paprasta, visų pirma inicializuojam LEDus, t. y. siunčiam visų LED užgesinimo signalą (arba uždegimo, priklausomai nuo SINK ar SUORCE pasirinkimo). To reikia, nes HT12E atsimena siųstus duomenis, taigi, jeigu tarkim buvo įjungtas pirmas LED ir nutraukiam duomenų siuntimą – jis lieka šviesti. Šiaip, principe, kol kas nesvarbu kokia LED būklė buvo prieš sekantį duomenų paketą, bet dėl tvarkos tiesiog inicializuojam ir tiek. Po inicializavimo luktelname 1 sekundę ir pradedam junginėti po vieną LED iš eilės. 5 mm žalias LED mirktelna, kad Transmission Valid (VT). Perjungus trumpiklius LED veikimas invertuojamas. Taip yra todėl, kad HT12D pagal komandą paduoda arba pliusą, arba minusą, t. y. srovę tiekia arba priima, jei taip galima sakyti, o vienas LED prijungtas prie pliuso, o kitas prie minuso. Kadangi HT12D nemoka pakabinti išėjimo ore, neduoti nei pliuso nei minuso, gaunasi, kad LED visada turi maitinimą, tik jeigu į LED ateina iš abiejų pusių pliusai arba abu minusai – LED neveikia. Toliau greitaveikos bandymas. Kaip mes visi žinome, visokie NOP, Pause, Delay ir panašūs dalykai yra blogis, kurio reiktų vengti, bet tokiai paprastai programėlei arba pritaikymui bus gerai. Greitaveikai nelabai turi įtakos normalūs kontrolerio veiksmai (čia tik vienas toks – digitalWrite, rašymas į prievadus), tai to nepatestuosim, bet užtai yra nemažai laukimo (delay ir delayMicroseconds), o tuos būtų galima mažinti. Aišku, jeigu taip parašyti programą Asembleriu, būtų galima patiuninguoti ir rašymą į prievadus bei visą kitą inicializaciją. Bet nafik, vis tiek HD12x bus didesni stabdžiai, net naudojant standartines Arduino komandas. Kaip žinome, kad kažkas atsitiktų, reikia 4 žodžių, taigi, bus laikas tarp žodžių. Pats žodis generuojamas programiškai, taigi, bus 1 ir 0 trukmė. Iš HT12E bandymų žinome, kad bito trukmė yra 330 us (programoje 328 us), o laikas tarp žodžių 10 ms. Bandymai parodė, kad vis dar stabiliai veikia prie 90 us bito trukmės ir 2 ms pauzės tarp žodžių. Sumažinus labiau – arba veikia nestabiliai arba neveikia.

Arduino programa yra čia.

HT12E enkoderio duomenų srauto savybių tyrimas 2021.11.19 at 14:44

Rašiau apie HT12x enkoderio ir dekoderio maketinę plokštę, toliau tęsiu savybių tyrimą reikiamam tikslui pasiekti. Visų pirma HT12E, enkoderio, arba dar jį vadinsime siųstuvu, nors tai nėra visai tikslu – galutiniam prietaise siųstuvas bus RF transyveris, t.y. radijo dažnio siųstuvas su duomenų kodavimo funkcija (dėl atsparumo trukdžiams, ne dėl šifravimo paranojos), o HT mikroschema tik suformuoja signalą kurį reikia siųsti… Nu gerai, gana beletristikos, dirbam.

Pradedam nuo nulio, t. y. – siųstuvas nedaro nieko, t.y. visi adresai loginiam 0, mygtukai nepaspausti. Vienintelis įjungtas dalykas – TE (Transmission Enable), nes be jo čia būtų tik tiesi linija ties nuline įtampos padala. Beje, TE įjungtas trumpam, tik suliečiu trumpiklį ir paleidžiu.

Taigi, siųstuvas išspjauna 8 duomenų blokus, bendra trukmė ~180 ms, vieno bloko trukmė ~13 ms, pauzė turbūt 10 ms. Kodėl turbūt – paaiškės vėliau. Teorija tokia – gavęs TE signalą siųstuvas siunčia 4 žodžius (word) duomenų arba kol TE signalas yra siuntimas vyksta nenutrūkstamai:

Įprastai žodžio (word) dydis yra nusakomas maksimaliu bitų skaičiumi, kuriuos gali apdoroti procesorius vienu metu. Kompiuteriams tai 32 arba 64 bitai. Aprašymas sako, kad turi būti 4 žodžiai, t. y. 4 bitų paketai, tačiau mūsų oscilogramoje jie 8. Kodėl ? Čia reiktų žiūrėti į siuntimo grafiko dešinę dalį, kur parodyta TE ilgesniame žemame lygyje (žemas = aktyvuotas). Reikalas tame, kad nors aš ir trumpai pyptelnu trumpiklio kontaktus, visgi siuntimas yra greitesnis ir spėja pradėti antrą siuntimo ciklą. Dėl to, manyčiau, oscilogramoje matome ne 4 žodžius, o 8. Kadangi jau žinome, kad turi būti 4 žodžiai, ir jie turi būti vienodi (kartojimas duoda atsparumą trugdžiams, perdavimo patikimumą ir t.t.), galime analizuoti tik vieną žodį:

Taigi, turime 13 aukštų lygių ir, panašu, kad po du loginius 0 tarp jų. Vėliau susitikrinsime su aprašymu, o dabar lyg ir duomenų eilutė tokia:

Impulsų trukmės:
Loginis 1 ~ 330 us
Loginis 0 ~ 330 us
1 sąlyginis bitas ~ 990 us

Taigi, vienas duomenų blokas arba žodis yra toks, primenu, kai adresai 0, mygtukai nepaspausti, TE = 1:

1001001001001001001001001001001001001

Toliau žiūrim aprašymą:

Taigi, loginis 1 arba 0 sudaromi iš trijų bitų, arba trijų osciliatoriaus ciklų. 001 = loginis 1, 011 = loginis 0. Tada mūsų eilutę galima parašyti taip:

001 001 001 001 001 001 001 001 001 001 001 001 001 = 1 1 1 1 1 1 1 1 1 1 1 1 1

Tą žinoti gerai, bet rašant programą valdikliui, reikės turėti galvoje, kad siųsti turim 3 bitus, o ne 1. Raudonai pažymėjau anksčiau nepaminėtus nuliukus. Pasirinkus kurį nors adresą arba paspaudus mygtuką, atitinkamose vietose keičiasi ir reikšmės. Štai, pasirinkti A0 ir A1 adresai, visa kita neaktyvu:

Akivaizdžiai matosi, kad loginių 1 yra dviem daugiau. O kad būtų visai paprasta, pasitelkiame skaičiuoklę:

Skaičuoklę galima parsisiųsti iš čia. Tereikia surašyti bitų eilę pilkuose ir žaliuose langeliuose ir gausime jų reikšmes bei oscilogramą. Principe, tiek žinant jau galima būtų rašyti programą, bitbanginančią reikiamus duomenis vietoje HT12E, ką mes padarysime sekančiame straipsnelyje. Svarbiausia nepamiršti, kad signalai čia tokie invertuoti, nes kai jungikliai nesujungti išėjime turim loginį 1 (nes visi įėjimai pull-up’inti), tai sakant, kad išėjimas įjungtas realiai turime loginį 0.

HT12E – HT12D bandymų plokštė – nuotolinio valdymo pradžia 2021.11.17 at 15:01

Čia toks senesnis projektukas, bet lyg nerašiau tai štai.

Iš tikrųjų dabar jau yra daug visokių gatavų moduliukų, kurie iš karto moka belaidžiu ryšiu valdyti nuotolinę relytę ar kokį kitą prietaisiuką, netgi gražus pultelis jau įeina į komplektą. Bet mano tikslas – turėti specifinį ir tik tai paskirčiai dedikuotą prietaisą, o tam gatavi moduliukai netinka, nebent juos ardyti, panaudoti jų schemas su čingliš datašytais ir bandyti kapstytis… Todėl pasirinkau kiek lengvesnį kelią – senas geras Holtek’o HT serijos mikroschemas, enkoderius, kurie formuoja perduodamą signalą. Jį po to reikia dar paversti RF signalu, o kitoje pusėje RF pagauti ir perduoti HT mikroschemai, kuri jį dekoduos. Su tais HT12x ten yra toks niuansas, kad reikia išorinio rezistoriaus dažniui nustatyti. Ta vieta man truputį neaiški, todėl sugalvojau sukurti maketinę plokštę, kurios pagalba galima išbandyti visus variantus, tuo pačiu pasitikrinant perdavimą, matuojant signalo formas (galbūt siunčiantį HT pakeisti valdikliu, formuojančiu tą signalą).

Kaip enkoderį pasirinkau HT12E – maitinimas nuo 2,4V iki 12V, nedidelis apetitas kei nesiunčia duomenų (0,1 µA prie 5V), adresuojamas. Išvadų reikšmės:

Plačiau apie išvadų reikšmes pakalbėsim kai aiškinsimės schemą.

Taigi, tikslas yra valdyti 4 atskirus arba 2 atskirus kanalus po 2 nesusietus prietaisus, tarkim lemputes. Tam reikėtų vieno enkoderio išsiuntimui ir 4 dekoderių signalo priėmimui. Pagal nustatytus adresus galima būtų atskirai valdyti visus keturis imtuvus. Bet naudojant HT12E enkoderį reiktų sugalvoti, kaip keisti adresus prieš siunčiant duomenis, todėl reikės bandyti nenaudoti pačio HT12E, bet naudoti jo siuntimo protokolą. Tada siunčiantis mikroprocesorius galėtų nesudėtingai formuoti duomenų paketą kuriame jau bus reikalingi adresai. Pradeda maketinės plokštės kūrimą. Tik pupt ir štai jau schema yra (didinasi):

Kaip visada, analizuoti pradedame iš kairės į dešinę. J1 – maitinimo lizdas. Galima naudoti, o galima ir nenaudoti, nes yra JP2 jungtis, į kurią irgi galima paduoti maitinimą. JP1 ir JP4 skirti pasiimti maitinimą papildomai įrangai, priklausomai nuo bandymo (valdikliui, RF įrangai ir t.t.). Toliau IC1 – enkoderis HT12E. Išvadai su Ax skirti adresavimui, koks bus nustatytas čia, toks pat turi būti ir dekoderyje. Išvadai turi vidinius pritempimus prie teigiamo maitinimo poliaus (pull-up), taigi išorėje jie jungiami prie minuso. Paprastam adresavimo pasirinkimui dedam mažų jungikliukų bloką. Sujungtu JP3 trumpikliu gaunamas „Transmission Enable“, leidimas siųsti duomenis. Tarp OSC1 ir OSC2 išvadų jungiamas reikiamo nominalo rezistorius, bet bandymo tikslais rezistoriaus nelituosiu, vietoje jo bus naudojamas precizinis dviejų kontaktų lizdas JP5. Ten bus galima lengvai dėti įvairius rezistorius bandymui. Ir belieka AD11, AD10, AD9 ir AD8. Šiuos išvadus naudojam kaip signalo perdavimo įėjimus, prikabinant prie jų po mygtuką, sujungiantį su minusu. Elektrinių parametrų lentelė iš datašyto:

Kol kas viskas paprasta, tuo labiau, kad panaudota standartinė schema iš aprašymo:

Čia reikia žinoti, kad siuntimas vyksta visą laiką, kol TE yra žemame lygyje, bet man to ir reikia. Ir dar trumpai apie Rosc. Jo parinkimas yra susijęs su dekoderio osciliatoriaus dažniu, todėl formulė yra tokia:

f(OSC dekoderio) ≈50 × f(OSC enkoderio HT12E)

O tada grafikas rezistoriaus nominalui:

Vėliau pabandysim pamatuoti ir parodyti, kad teorija atitinka praktiką.

Ok, važiuojam toliau. O toliau – JP6. Šito trijų kontaktų trumpiklio paskirtis – atjungti arba sujungti perduodamą signalą naudojant 2 ir 3 kontaktus, o 1 kontaktas paliekamas oscilografo arba kokios kitos įrangos pajungimui. Štai ir dekoderis HT12D.

Čia irgi viskas paprasta, Ax skirti adresavimui, jis, natūralu, turi būti toks, kaip ir enkoderyje, taip pat jungiklių pagalba prijungiami prie minuso adreso nustatymui, išvadas taip pat gali būti laisvas ir jam nereikia išorinio patempimo link maitinimo pliuso. OSC1 ir OSC2 irgi skirti rezistoriui, o DIN reiškia „Data IN“, duomenų įėjimas. Makete jis bus tiesiai iš enkoderio, bet atjungus JP6 ir į trečią kontaktą galima būtų paduoti signalą iš kitų šaltinių (pvz., valdiklio). D8-D11 išėjimai, suveikiantys atitinkamai AD8-AD11. Išėjimui suveikus gaunamas loginis 0, kitu atveju loginis 1. Išvadas VT – „Valid Transmission“, išėjimas, pažymintis, kad teisingai gauti duomenys. Pas mus jis mirktels LEDuką LED1, bet gali būti naudojamas ir imtuvo valdikliui. LED1 gali būti atjungiamas JP7 trumpikliu, prie to pačio trumpiklio patogu ir prisijungti oscilografą arba valdiklį. O toliau elektrinių parametrų lentelė:

Taigi, ir čia panaudota standartinė schema:

Ir rezistoriaus parinkimo lentelė:

O skaičiavimo formulė ta pati:

f(OSC dekoderio) ≈50 × f(OSC enkoderio HT12E)

Taigi, mūsų atveju R(enkoderio) = 1 MΩ, R(dekoderio) = 51 kΩ, Umait =3,6VDC. Enkoderio lentelėje gauname panašiai 2,75 kHz dažnį. f(OSC dekoderio) ≈50 × 2,75 kHz = 137,5 kHz. Žiūrim į dekoderio lentelę, toks dažnis prie 3,6 VDC…

Man gaunasi labiau 47 kΩ, bet datašyte rekomenduojama prie 1 MΩ naudoti 51 kΩ. Bet čia gal neatitikimas dėl grafiko skalės netikslumo ir apytikslių verčių, veikia ir su 47 kΩ. Štai turim ir abu rezistorius. Toliau indikacija – tam parinkti 0805 dvigubi LED emiteriukai, per balastinius rezistorius prijungti tiesioginiu ir priešingu poliarumu, išėjimui iš enkoderio indikuoti pasirenkant srovės priėmimą arba tiekimą (sink arba suorce) į LED. Poliatumas pasirenkamas trumpikliais JP9-JP12. Tai turbūt tiek tos teorijos. Schemą jau turim, belieka sutrasuoti plokštę.

Užsakymas gamybai, gamyba, surinkimas ir štai finalinis produktas:

Belieka tik nuplauti fliusą ir pradėti bandymus. AutoCAD Eagle failiukai čia.

Onkyo TX-NR3008 remontas 2021.11.08 at 09:06

Nors paskutiniu metu ir užsivertęs su rimtais darbais, vis dėl to pasirašiau pažiūrėti ir šitą žaisliuką. Nes didelis, geras ir tikėjomės, kad tiesiog galinukai prašauti.

Dangčio nuėmimas nėra sudėtingas, o vat išmontuoti radiatorių su galinių tranzistorių ir draiverių blokais viename (pažymėjau raudonai) – jau buvo nemažai laiko suvalgęs iššūkis.

Aštuonis viršuje esančius tranzistorius pamatuoti nebuvo sudėtinga, bet jų komplementarinės poros sumontuotos apačioje, po visa konstrukcija… Ir dar nors kad būtų bent vienas sudegęs – ne, tiek galiniai, tiek ir draiveriai matuojasi teisingai. Teko viską gražiai surinkti atgal ir įjungti smegenis. Bet pirma reikia pajungti maitinimą resyveriui. Bandymas parode, kad niekas nepasikeitė – budintis maitinimas pasileidžia, bet pirminio maitinimo relė vis dar spragsi ~1Hz dažniu, tuo pačiu užsidega ir „Zone 2“ LED indikatorius. Ok, kadangi nieko nesugadinom stiprintuvinės dalies ardymo-testavimo-surinkimo procedūra, dabar jau teks galvoti. Taigi, pirminį maitinimą įjungia pagrindinis procesorius:

Čia pirminio maitinimo šaltinio schemos dalis. Per jungties JL901A pirmą kontaktą paduodamas signalas MPOWER (Main Power?) į Q9200 tranzistoriaus bazę, tranzistorius atsidaro ir įjungia RL9200 relę. Ji permeta tinklo įtampą į pirminio maitinimo transformatorių T904. Normaliai viskas taip ir turėtų likti įjungta. Bet tas MPOWER signalas tai yra, tai jo nėra, tai vėl yra, tai vėl nėra – ir taip relė spragsi be sustojimo. Toks keistas procesoriaus elgesys įprastai yra ženklas, kad jam biškį negerai su galvele. Ir tai pats blogiausias remontas – procesorių pakeisti galbūt dar ir galima, bet programos jam tai jau tikrai niekur negausi. O paskutinis bandymas pradangino ir likusią vilties kibirkštėlę – atjungiau visus galus, apsaugas, nu ir „на пролом“, kad užsikurtų tik procesorius, displėjus ar bent jau nespragsėtų relė. Spragsi. Ties ta vieta jau kaip ir tenka pripažinti, kad pagrindinis procesorius muštas, bet tas neatsako į klausimą kodėl ir kaip visada lieka abejonė, o gal kažkas kitas. Taigi, važiuojam toliau. Pirminio maitinimo transformatorius gamina 3 įtampas, kurias, per P9301A jungtį pašeria į nuolatinio maitinimo formavimo modulį U0065:

Kaip visada, iš kairės paduodamas maitinimas, tie patys 6 kontaktai su 3 maitinimo įtampų porom. DSP_AC1 ir DSP_AC2 po saugiklio ir tiltelio dar skirstosi į du maitinimus. Vienas +9VDC bėga tiesiai į jungtį, o kitas stabilizuojamas Q9350 į 5,9VDC. Abu šitie maitinimai geri, vietoje 9V turim apie 8,6V, o 5,9V tokie ir yra – DC/DC konverteris SI8008TM veikia teisingai. Pereinam prie apatinės schemos dalies. FLAC1 ir FLAC2 nėra ką matuoti – kaip ateina iš transformatoriaus, taip be pakeitimų ir nueina toliau. O vat spėkit, kokia įtampa yra tarp +3.3VMPU ir -VP? Logiška būtų manyti, kad 3,3V, nu taip, logiška 😀 bet yra tai apie 45V. Ne ne, kablelio nepamiršau, keturiasdešimt penki voltai. Ties ta vieta apėmė negera nuojauta, tas +3.3VMPU greičiausiai išsišifruoja taip – 3,3V maitinimas MikroProcesoriams (taip, jų juk čia ne vienas – pagrindinis, DSP, displėjaus ir dar krūvelė kitų. Ir taip, visi žinome, kad procesoriai maitinami 3,3V įtampa, nu galbūt atlaikytų dar kokius papildomus 0,2-0,5V, bet jau tikrai ne papildomus daugiau kaip 40V. O dabar sąrašiukas, kurie procesoriai, valdikliai ar panašūs, kritiniai veikimui, daikčiukai maitinasi nuo tos įtampos ir bus išėję į vėsių temperatūrų, tikslių signalų ir amžino teisingos įtampos maitinimo lankas:

Q7502 — M66005-0001AHP — Slave upper
Q7501 — M66005-0001AHP — Master lower
Q8701 — MPD70F3740GC-UEC-AX — Vienas iš video procesorių
Q7500 — HNA-16SL04T — panašu į fluorescencinio displėjaus valdiklį
Q7016 — µPD70F3746GJ-GAE-AX — video procesorius


Turbūt dar ne visi, plius dar sauja operacinukų ir kitos smulkmės… Gaila, panašu, kad laikas sugaištas, pastangų įdėta, o rezultatas – pšššt, neremontuotinas. Principe tektų keisti visas PCB su tais procesoriaus į naujas/kitas, o jos taip nesimėto pakampėm, net eBay kukliai tyli. O ir kaina, nujaučiu, bus netoli naujo resyverio.

O dabar, kad gyvenimas neatrodytų toks paprastas – mįslė. Pagal schemą tranzistoriaus bazę valdo ir galutinę įtampą nustato du stabilitronai, a.k.a. Zenerio diodai – UDZS16B ir UDZS30B. Pagal datašytą jų įtampos 16V ir 30V, kadangi sujungti nuosekliai, tai stabilizacija būtų 46V. Panašiai tiek ir turime išėjime. Tai kas čia vyksta 😀 ? Kodėl gamykliškai visi 3,3V procesoriai maitinami 46V ? O vat štai procesoriaus maitinimo lentelės:

Taigi, absoliutus maitinimo maksimumas +4,6V, standartinis darbinis maitinimas 2,85-3,6V, t.y. 3,3V pats tas.

Taigi – tęsiam teisybės paieškas 😀 Dėl visa ko užmečiau akį į kai kurias montažines plokštes, kur galėtų būti tų 46V konvertavimas į 3,3V. Nėra…

Naujo guoliai karlsonui 2021.10.25 at 11:00

Laboratorijoje turiu tokį senuką kompiuką, Compaq D520 SFF, jis, nors ir visas papiktintas max RAMu ir SSD, bet vis labiau burzgina savo CPU ventiliatorių. Pagalvojau, kad visgi reiktų kažkaip pritildyti tą garsą. O ventiliatorius ten toks specifinis, šoninio išpūtimo, BFB1012H. Ir seniai nebegaminamas. Iš tokios formos vis dar gaminamų ventiliatorių netiko nei vienas bandytas – juose per daug elektronikos (užstrigimo apsauga, lėto paleidimo ir pan funkcijos). Todėl teko bet šiek tiek restauruoti jau esamą ventiliatorių.

Po lipduku gyvena ašies fiksatorius, jį atsegus nusiima sparnuotė su magnetu ir lieka ašis su guoliais. Kas keisčiausia – tiek visiškai naujame tokio tipo ventiliatoriuje BFB1012HH tiek ir šitame guoliai ganėtinai nesunkiai išsiima. O kad jau pavyko išimti – lekiam į Dagmitą ir perkam naujus guolius (apie 2,5 € vnt.).

Dešinėje nauji guoliukai, kairėje seni. Matosi, kad vienas senas gerokai kaitęs, net spalvą pakeitęs. Dešiniam viršutiniam kampe ne fokuse bet ašies fiksatorius. Surinkimas paprastas, ventiliatorius veikia. Ūžimo mažiau, tai dar kurį laiką pasinaudosiu tuo senuku :).

Pirmasis iš lobio :D 2021.10.22 at 11:40

Jau rašiau, kad gavau dovanų kokį centnerį elektronikos, taigi, pradėjau nuo kietųjų diskų. Aišku, perspėjo, kad visi jie su blogais sektoriais arba neveikiantys, bet man tinka – papildys neodiminių magnetukų atsargas. Bet įdomumo dėlei juos ir pratestavau. Testavimui naudoju Victoria 5.36 programą. Taigi, HDD numeris vienas:

SATA diskas, todėl pajungtas tiesiogiai prie PC, matom kaip gražiai ir tolygiai mažėja greitis. Bet yra dvi didelės greičio „duobės“ – toje vietoje diske rasti blogieji sektoriai. Programa gali juos „remapinti“ – pažymėti kaip blogus ir peradresuoti duomenis, todėl daugiau į tas vietas duomenys nebūtų rašomi, bet tai negarantuoja, kad neatsiras naujų blogų sektorių. Seniau, kai diskai dar būdavo maži, o dideli labai brangūs, naudodavau tokį triuką – padarydavau disko skirsnį gerokai iki blogųjų sektorių. Šiuo atveju turim 2TB diską, taigi, galima būtų naudojimui atskelti pusę disko, porą GB iki pirmosios duobės ir gauti dar neblogai veikianti apie 1 TB diską. Kadangi toliau diskas nebūtų formatuojamas – operacinė ten nebelįstų ir duomenų nerašytų. O paliekant su atsarga dar ir blogieji sektoriai ne taip greitai išlystų. Tekstinė ataskaita:

Victoria 5.36 HDD/SSD | Device 1 log file. 2021-10-16
11:52:54 : Starting Victoria 5.36 HDD/SSD. 8xCPU, 3460,28 MHz, Windows 10 x64 found.
11:52:54 : [Hint] Recommend 32-bit Windows XP for a best work!
11:52:54 : Warning! Windows x64 detected! PIO mode supported on Windows x86 only.
11:52:54 : API access enabled, device #0
11:52:55 : Get drive passport… OK
11:52:55 : Model: WDC WD2000FYYZ-01UL1B0; Capacity 3907029168 LBAs; SN: WD-WMC1P0160214; FW: 01.01K01
11:52:55 : Press F1 to About/HELP
11:52:57 : Get drive passport… OK
11:52:57 : Model: WDC WD2000FYYZ-01UL1B0; Capacity 3907029168 LBAs; SN: WD-WMC1P0160214; FW: 01.01K01
11:52:58 : Get S.M.A.R.T. command… OK
11:52:58 : SMART base updated.
11:52:59 : SMART status = GOOD
11:53:04 : Get drive passport… OK
11:53:04 : Get S.M.A.R.T. Log directory… OK.
11:54:09 : Get drive passport… OK
11:54:10 : Recallibration… OK
11:54:10 : Starting surface scan, LBA=0..3907029167, FULL, sequential access w. REMAP, tio 250ms
11:55:19 : Block start at 20981760 auto reassign… OK
11:55:20 : Block start at 20987904 auto reassign… OK
11:55:23 : Block start at 20992000 auto reassign… OK
11:56:21 : Block start at 38598656 auto reassign… OK
11:56:24 : Block start at 38602752 auto reassign… OK
14:43:44 : LBA 2836366502 try REMAP… complete
14:43:48 : LBA 2836366503 try REMAP… complete
14:43:52 : LBA 2836366504 try REMAP… complete
14:46:49 : LBA 2875931668 try REMAP… complete
14:46:52 : LBA 2875931669 try REMAP… complete
16:15:17 : *** Scan results: Warnings – 10, errors – 0. Last block at 3907029167 (2,0 TB), time 4 hours 21 minutes 7 seconds.
16:15:17 : Speed: Maximum 168 MB/s. Average 88 MB/s. Minimum 9 MB/s. 1513 points.

Po remapinimo antras testas atrodo žymiai gražiau (skiriasi mastelis, todėl žalias grafikas žemiau):

Dar vienas, dabar jau 500 GB diskas:

Testas ir SMART’as neblogi, pasidėsiu, mažu dar kur pravers.

O čia klaksinčio HDD SMART’as:

Kas keisčiausia, rašo, kad „GOOD“, bet diskas tai miruolis.

O dar vienas diskas buvo PATA, toks dabar jau retesnis, o neveikimas toks įdomesnis – apžiūrint PCB pasimatė nusprogusių detalių:

Foto neryški, bet viršuje, prie vartelio, matosi, kad trūksta detalės, ten buvo sprogęs Zenerio diodas, tik jau numontavau. PATA diskų maitinimas yra 12V ir 5V, abi įtampos turi savo Zenerius, apsaugai nuo viršįtampių. Čia, matyt, 5V Zeneris gavo daug ir aukštesnės įtampos, galbūt del maitinimo bloko gedimo čia pateko 12V, pats Zeneris sprogo, bet pagalvojau „o gal jis apsaugojo elektroniką už jo, pabandom mini remontą :)“. Bet pirma – patikrinam ar verta. Numontavus Zenerį pajungiam prie PC per USB adapterį – nu veikia :D. Be Zenerio jungti galima, tik jeigu ateis viršįtampis – niekas nesaugo schemos elementų, bet testui bus gerai. Taigi, tą numontavus šrotelyje nusičiupau pirmą papuolusią PCB nuo kito disko ir permontavau atitinkamą Zeneriuką. Štai, donoras ir recipientas:

Ir tik įkėlęs šitą foto pamačiau, kad yra dar viena nusprogusi detalė, šalia naujojo Zenerio. Bet Viktorija padarė testą ir su tokia:

Greitis čia stabilus, nes jungta per USB, riboja adapterio galimybės, tai maksimalaus greičio nepasiekia, bet „duobes“ parodo. Pabaigoje greičio kritimas buvo labai didelis, vidurkis pasidarė ~80 KB/s, tai jau nusibodo laukt ir išjungiau. SMART’as lyg ir neblogas šito disko, bet dėl blogų sektorių, PATA jungties ir mažo dydžio (40 GB berods) jis tavo magnetukų donoru.

Elektronikos gamintojų logotipai 2021.04.03 at 18:29

Šitame puslapyje radau labai naudingą dalyką :). Pravers tiems, kam reikia atpažinti visokius įvairių mikroschemų ir kitokios elektronikos gamintojus.

Resident DJ 21 mikšerio tobulinimas 2021.02.16 at 17:17

Anksčiau rašiau apie mikšerio remontą, iki šiol naudojamės ir džiaugiamės šituo prietaisu. Atėjo laikas jį truputį patobulinti, nors gal ir nėra visai labai labai būtina, bet būtų privaloma jeigu įranga naudojama ilgą laiką. esminis patobulinimo dalykas – linijiniai maitinimo stabilizatoriai L7805CV turėtų būti pakeisti geros kokybės impulsiniais maitinimo šaltiniais. Pirminė to priežastis – visiškas linijinių stabilizatorių neekonomiškumas, o tai pasireiškia perdėtu kaitimu. Pakeitimo sąlygos:

  1. Maitinimo įtampa 16V (taip taip, svilino nuo 16V iki 5V)
  2. Maksimali srovė – 1,5A. Tiek nereikia, bet L7805 tiek maksimaliai gali palaikyti, o juk pakeitimą ieškom ne tik šitam mikšeriui – kitam prietaisui jau gali prireikti ir 1,5A.
  3. Išėjimo įtampa 5V.

Sąlygos paprastos, iš pačio L7805 aprašymo. Toliau galima truputį paskaičiuoti.

P = U×I;

P = (16V – 5V)*1,5A = 16,5 W;

Taigi, prie maksimalios apkrovos ir 1,5A srovės tas stabilizatorius veiks kaip 16,5W šildytuvas. Toliau iš L7805 aprašymo, TO220 korpusui be radiatoriaus:

RthJA = 50 °C/W;

Iš čia – esant standartinei aplinkos temperatūrai 25 °C, pačio stabilizatoriaus temperatūra bus 850 °C. Akivaizdu, kad tokiomis sąlygomis jam privalomas radiatorius ir gan didelis. Imkime realesnę srovę – USB standartas, 0,5A. Tuomet šildys kaip 5,5W ir kais iki ~300 °C. Panašu, kad net ir su 0,5A tam čipui nedaug šansų ilgai išgyventi. Taigi, matom, kad to daikto efektyvumas žemiau plintuso. Todėl jamam tikrą japoną, Murata firmos OKI78SR5/1.5-W36C stabilizatorių.

Dydis beveik toks pats kaip ir 7805, o efektyvumas net 90,5%, t.y. prie maksimalių 7805 apkrovų jis šildyt tik už maždaug 1W.

Trumpa parametrų suvestinė:

Sumontavus tikrai neužima daugiau vietos nei 7805. Palyginimui vienas iš dviejų 7805 vis dar vietoje.

Toliau bandymas. Po poros valandų ties ta vieta kur yra reguliatoriai gal truputį ir šilta… Su 7805 ten jau buvo juntamai karšta. Reiktų žinoti, kad prie didelio įėjimo ir išėjimo įtampų skirtumo 7805 ar bet koks kitas linijinis stabilizatorius valgys daugiau galios nei jo maitinamas prietaisas.

Ir – reziumė. Nenaudokite, vaikai, tų senųjų technologijų, krenų (KPEH) ir panašaus šroto – yra puikiausių, mažų ir galingų stabilizatorių.

DELL Inspiron 15 Series 3000 pagrindinės plokštės remontas at 16:05

Neilgas, bet, tikiuosi, pažintinis straipsnelis, apie nešiojamų kompiuterių pagrindinių plokščių diagnostiką, todėl tik tai kas į temą, be lyrinių nukrypimų. Simptomas – neįsijungia, tikimės lengviausio – kas nors su maitinimo grandinėmis. Išrengiam pagrindinę plokštę:

Greitai susimatuojam varžas tarp masės ir visų maitinimo šaltinių (principe, visų droseliukų). Viskas kaip ir normos ribose, išskyrus didžiausią droselį prie procesoriaus. Čia varža tik 0,4 Ω, turint galvoje, kad testerio laidų varža ~0,2 Ω, lieka visai visai nedaug. Nukėlus droselį trumpas lieka procesoriaus pusėje… O tas maitinimo šaltinis skirtas procesoriaus branduolio maitinimui. Šitas Haswell’as yra mažos įtampos, bet kažkaip nujaučiu, kad 0,2 Ω branduolio varža jau yra per maža. Nors ir nebūtinai… Bet jau pirmieji maitinimo šaltinių matavimai nuliūdino – viskas su jais yra gerai… Pirmas ženklas, kad viskas blogai. Todėl tik dėl straipsnelio pratęsiau bandymus. T.y. tolimesnės diagnostikos procedūra. Tam mums reikės schemos ir oscilografo. Ir nereikia čia man tų „ūūū, iš kur pas mus, paprastus elektronščikus, oscilografai“. Oscilografo reikia, gi ne kavamalę remontuojam, o kompą. Taigi, schema yra čia. Pirmoje eilėje susirandam vadinamą „power up sequence“ – įsijungimo tvarką. Štai:

Šitoje schemoje nepasakyta, kodėl kai kurie skaičiai neigiami, taigi, priimam, kad jie atspindi dalykus, kurie įvyksta iki įjungimo mygtuko paspaudimo, o teigiami – po mygtuko paspaudimo. Nes mygtukas pažymėtas pirmu numeriu :). Taigi, patikrinam įtampas ties kiekvienu mėlynu burbuliuku ir mūsų atveju viskas gerai, kol neateinam iki 4 numerio. O ten – šnipštas. Antras ženklas, kad viskas blogai – 4 numerį valdo procesorius. Bet negi mes taip ir nusiraminsim, reikia gi įsitikinti, kad tikrai tikrai viskas gerai iki 4 numerio. Tam naudojam va šitą diagramą:

O čia, taip sakant, grafiškai pavaizduoti tie mėlyni burbuliukai su skaičiais. Kiekvieną iš tų loginių lygių galima atrasti schemoje, tuo pačiu randant ir jų pamatavimo tašką. Čia jau reiktų naudotis oscilografu. Pradedam nuo +RTC_VCC, kas būtų BIOSo baterijos įtampa ir einam paeiliui per visus punktus – nes kol bent vienas iš punktų neatitiks nustatytos vertės – procesorius nepaleis kompiuterio. Mano atveju viskas atrodė va taip:

Taigi, viskas OK, net ir mygtuko paspaudimas gerai veikia. Keista buvo tik dėl +VA_PCH_VCC5REFSUS – tokio schemoje iš viso neradau, bet su 5V viskas OK, tai priėmiau už gerą, PM_RSMRST# irgi neradau, kažko perkrovimo signalas… PCH_SUSCLK_KBC irgi nepereina į grynai aukštą lygį, lieka toks meandras. Bet kadangi čia irgi kažkoks CLK (clock) signalas klaviatūrai ar jos kontroleriui (KBC), primečiau, kad clockas ir turėtų būti clockinantis, t. y. meandras, 33,33 kHz. Taigi, vėl grįžome į pradžią – nors viskas kaip ir gerai, procesorius neišduoda PM_SLP_S4# ir PM_SLP_S3#. Bet pasakysiu jums kaip paslaptį, Haswell’ai taip patyliukais ir numiršta. O pakeitimas komplikuotas – procesorius tiesiogiai prilituotas prie pagrindinės plokštės.

O toliau susumuojam – reikia keisti procesorių, kuris yra šiaip sau toks, i3 kažkuris, ekrano vyriai išlaužti iš korpuso, klaviatūroje trūksta kelių klavišų… Summa summarum – remontas nerentabilus ir dalys keliauja šrotelin, laukti geresnių dienų.

Rigol DS2072A opcijų atrakinimas 2020.12.19 at 12:06

Ok, gerbiamieji, nesakau, kas esu super-duper 31337 H4XØR, bet visgi tas reikalas po truputį vyksta dar nuo mokyklos laikų, plius be jo neįmanomas progresas, mokymasis, pažinimas ir naujų išradimų darymas. Dabar jau turbūt nelabai kas pamena, kad 31337 buvo vienos, visai neblogos, programėlės veikimo portas, prievadas lietuviškai. O kas pirmas ras kokia tai buvo programėlė 🙂 ? O Internetiniam folklore 31337 = ELEET, pirmoji paskirtis buvo truputį kita, bet ilgainiui peraugo į bendrinį Internetinio elito – hakerių, ženklą. Taigi, kad nebūtumėm lameriais, būtinai reikia kažką padaryti. Dabar po ranka pasipainiojo Rigol DS2072A su demonstracinėms galimybėmis:

Ir tos demonstracinės galimybės visai naudingos hakinant kitus dalykus, todėl visai norėčiau, kad jos nesibaigtų. Gerai, kad Rigol’is nespaudžia – visus prietaisus gamina vienodu hardwaru, o apriboja tik programiškai. Nu beveik. Taigi, pirmu žingsniu reikia parsisiųsti oscilografo programos dump’ą. Tam reikia oscilografui nusiųsti komandą:

:SYST:UTIL:READ? 1,33554432

Ir geriausia, kad ją galima nusiųsti per firminę Rigol programą Ultra Sigma:

Arba pasinaudoti kokia tai vokiška programa, kuri moka tą patį – Rigol Bildschirmkopie (ten prisijungti rekomenduoju per LAN – paprasčiau). Tada per SCPI meniu nusiųsti tą pačią komandą.

Taigi, finale turim pavadinimas.scpi failą, kuriam, pervadinimo būdu, reiktų pakeisti galūnę iš scpi į bin. Po to bus pavadinimas.bin. Tą failą reikia sušerti programėlei, sugeneruosiančiai kodus. Pasinaudojau Rigup 0.4 versija (Internete galima rasti ir kitų versijų, bet suveikė, tai ir neieškojau). Taigi, įmetam tą savo gautą 32MB .bin failą į rigup’o papkę, atsidarom ten CMD ir rašom komandą:

rigup ds2072a 1.bin

Čia: rigup – programos pavadinimas, ds2072a – jūsų oscilografo modelis (nebūtinai ds2072a), 1.bin – mano išsaugotas bin failiukas (jo pavadinimas gali būti bet koks, svarbu gale būtų .bin). Spaudžiam Enter ir žiūrim rezultatą:

Heh, iš karto griebiam geriausią, tą apatinį. Rašiau kokius tris kartus į oscilografo įvedimo meniu, netiko. Ok, galvoju, bandom truputį prastesnį variantą, antrą nuo apačios, vis tiek 300 MHz man nereikia. Bet kadangi jau tingėjau sukiojant ratuką rinkti kodą – nusiunčiau jį per Delta Sigma SCPI. Tos programos ir komandos vaizdas jau įkeltas, antras paveiksliukas nuo viršaus. Pati komanda:

:SYSTEM:OPTION:INSTALL 2G4UK346HWZKMZBRSZHZDA8QCYVM

Čia išlieka :SYSTEM:OPTION:INSTALL, o po tarpelio įkopijuokite sugeneruotą kodą, be tarpų, brūkšniukų ir t.t. Nu kaip ir viskas – siunčiam komandą, jeigu kodas tinka oscilografas pyptelna, kažką parašo, persikrauna ir voilà:

Raskit 3 skirtumus :D. Programėlių nededu – jos laisvai prieinamos Internete. Delta Sigma iš Rigolio, visa kita dėdė Googlas suras.

Chm, kažkaip po šito dar nesijaučiu hakeresnis… Labiau „script kiddie“… Nieko, yra ir daugiau ką хакнуть.