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.

Dar vienas PC iš lobio :) 2021.11.21 at 17:36

Buvęs pirminiame remonte D530 SFF jau padėtas į lentyną, kai turėsiu laiko reikės pabaigti, nes jis toks keistesnis – nesvarbu kiek RAM bebūtų įdėta ir kokias RAM konfigūracijas bedaryčiau, visada mato 8 MB mažiau, nors iš SPD nuskaito teisingą RAM kiekį. IR dar lyg ir vidinė kolonėlė kartais ūžia, pagal kompiuterio darbą… Gal būti biškį blogai su pagrindine plokšte, tai palieku ateičiai, ilgėlesnis remontėlis. O dabar iš krūvos paėmiau HP Compaq DC5800 SFF. Kad buvo pilnas dulkių ir taip aišku, tai nefotografavau, bet išpūtus dulkes pasirodė visai gražus vaizdas:

Gėris tame, kad nėra blogų kondensatorių. Vienas toks įtartinas, bet labiau dėl to, kad kietoki laidai įsirėmę į jį ir gal truputį išvertė :D. Bet gal ir viskas OK. Bet jei darant bandymus bus kokių keistumų – jau signaliukas bus buvęs. Jame jau buvo įmontuotas CPU Intel Core 2 DUO SLA94:

Intel® Core™2 Duo Processor E4600
2M Cache, 2.40 GHz, 800 MHz FSB

Integruotas video ir RAM kontroleris Intel LE82Q33, ir čipsetas NH82801IB.

Visa tai sumontuota į Intel P70130D9VVZPGI pagrindinę plokštę:

Video kontroleris nekeičiamas, todėl tik nuvaliau seną termopastą, sutepiau tradicine Thermal Grizzly termopasta ir uždėjau aušintuvą. Reikės įsivertinti ir esamų karlsonų keliamą triukšmą, gal reiks pakeisti naujais. Procesorių bandysiu dėti maksimaliai palaikomą, ir, kaip visada, maksimalus kiekis RAM. Tikrai bus daugiau kaip 4 GB, reikės pasirūpinti 64 bitų operacine sistema. Prie čipseto matosi lydvietės specialiems radiatoriaus laikikliams (tokie, kaip video čipo) – sumontuosim ten tokius pat laikiklius ir čipsetas gaus savo asmeninį pasyvų aušintuvą.

Palaikomi procesoriai:

– Intel Celeron: 420, 430, 440, 450

– Intel Celeron Dual-Core: E1200, E1400, E1500, E1600

– Intel Pentium Dual-Core: E2180, E2200, E2220, E5300, E5400

– Intel Core 2 Duo: E4500, E4600, E4700, E6550, E6750, E7200, E7300, E7400, E7500, E8300, E8400, E8500, E8600

– Intel Core 2 Quad: Q6600, Q6700, Q8200, Q8300, Q9300, Q9400, Q9650

Maksimalus: Intel® Core™2 Quad Q9650, SLB8W – jeigu veiks, tai tikrai ryškus pagerėjimas bus. Maksimalus FSB dažnis pas Q9650 yra 1333 MHz, o VIDEO/RAM kontroleris palaiko 1333MHz / 1066MHz / 800MHz, taigi, turėtų veikti pilnu pajėgumu.


Palaikomi RAM:
PC2-6400 (DDR2-800 MHz) Non-ECC DIMM Memory, pagal RAM valdiklio aprašymą, palaikoma tik DDR2 667/800 MHz dažnio 8 GB RAM per du atminties kanalus. Bet Internetuose randu, kad veikia ir 16 GB, reikės pabandyti.

Galbūt dar bus įmontuota PCIx video korta, bet reiks ieškoti žemo profilio, o tai riboja pasirinkimą. SVARBU – nepamirštam, kad PC maitinimo blokas ne begalinės galios 😀 – tik 240W. Bet – aprašymas sako, kad gamykliškai yra buvę ir 300W maitinimo blokas, būtų gerai tokį gauti. Pasirodo, įmontuotas vietoje 3,5″ FDD diskasūkio atminties kortelių skaitytuvas – originalus, tokia gamyklinė opcija :).

Banymam naudosiu „sportinius“ Corsair XMS2 RAmus, kuriuos kažkada esu gavęs dovanų :). Tik 4 GB, bet primai pradžiai užteks. Pirma – atnaujinam BIOSą (buvo
01.04 2008.01.31, tapo
01.60 2015.10.26), bet BIOSas keikiasi, kad batareika nusėdus, reiks pakeisti.

Pratęsimas bus kai bus padaryti sekantys darbai.

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.

Ruduo… 2021.11.11 at 16:39

Beveik prieš 2 savaites pasidarėm iškylą į gamtą, oras gražus tai ir ruduo gražus, tik pasidalinu keliais vaizdeliais.

Senuko PC gaivinimas iš „lobio“ arba man reikia „pyrago“ at 16:30

Visų pirma apie kompiuterį, čia vienas iš to lobio, HP Compaq D530 SSF. O pirmas jis todėl, kad toks pats jau sukasi pas mane ant stalo. Nusprendžiau, kad reikia atgaivinti, patobulinti ir padėti į archyvą :). Atsidarius vaizdelis dulkėtas:

Visa tai pučiam, plaunam, dar pučiam ir po to įdėmiai apžiūrim, gal dar kas blogo išlįs.

Nagi nagi, jau matau, kad kondensatoriai papūsti…

Štai jie, broliai šaunuoliai:

Dar prasiardžiau ir maitinimo bloką – jame esantys kondensatoriai irgi mėgsti pūstis, bet su kondensatoriais viskas gerai. Maitinimo blokas nors ir tokios pat formos, kaip mano turimam senuke – šitas jau naujesnis, patobulintas (arba papigintos gamybos) – korpusas be vyriukų, viskas sutvirtinta tik varžteliais. Karlsono „ortakis“ toks irgi iš didelio rašto išėjęs… O bet tačiau, kondensatoriai geri, ventiliatorius ūžia – keičiam :). Beje, nepirkite prašmatnių ventiliatorių su integruotomis apsaugomis, minkštais paleidimas ir kitais monais – nesuveikia. Paprastas elementarus ventiliatorius, gal tik su prabangesniais guoliais tipo MagLev bus idealu.

Kad jau užsiėmiau ventiliatoriumi, tai tuo pačiu pasikeičiam guolius ir CPU aušinimo ventiliatoriuje:

Seni žemiau, vienas jų pakeitęs spalvą, kaitęs 😀 Taigi, dedam naujus. Šiaip ar taip ventiliatorius truputį burzgia, bet net akimis matosi, kad reikia balansuoti. Kažin, daro kas tokį dalyką Lietuvoje :D?

Viską patikrinus ir pakeitus, pradedamas surinkimas. Kompiuteris buvo be RAM, taigi gavo originalius, vardinius ir gal net kilmingus HP RAM kauliukus, kondensatoriai irgi prabangesni – OST gamybos.

Kadangi jau pridėjau maksimaliai palaikomą greičiausia RAM, esamas procesorius Pentium 4 2,4 GHz 512 KB L2 atminties ir 533 KHz šynos dažnio, D1 versija irgi norėtų būti pakeistas, šitas ne pats galingiausias šiai pagrindinei plokštei. Todėl užsakiau porą Intel Pentium 4 SL6WG 3.20GHz/512KB/800MHz Socket/Sockel 478 Hyper-Threading CPU. Porą, nes pasikeisiu ir darbiniam kompiukui, bus raketa :D. O šitas dar gaus ir Crucial MX500 512GB SSD (yra SATA). Gražu pažiūrėti.

O dabar apie pyragą, stringančius darbus ir t.t. Tas posakis, kad reikia pyrago, atsirado po filmo „Žmonės juodais drabužiais“, trečios dalies. Va ta ištrauka apie pyragą:

O pyrago esmė – kai kažkas nesiseka reikia padaryti pertraukėlę, kad ir pyragui. Smegenys pailsi, mintys persijungia nuo užsiciklinusio neveikiančio sprendimo, atsipalaiduoja, o po to tik pyst ir dingteli teisinga mintis ar atsiranda koks naujas požiūris į problemą ir panašiai. Tai va, kad truputį pabėgti nuo nesisekančių darbų reikėjo man tokio pyrago, kuriuo šiuo atveju buvo to kompiuko perrinkimas. Ir emocijos geros, kad veikia, dar Win XP instaliuot išbandyt – vien malonumai. Po tokios terapijos galima bus vėl kibti į sunkumus :).

Blogumas – kompiuteris nemato 8 MB iš bet kokio įdėto RAM.

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.

„Lobis“ :) 2021.10.19 at 14:09

Nujaučiu bus straipsnelių serija apie šitą visą gėrį, kurį gavau dovanų. Asmeninių duomenų iš ko gavau neviešinsiu, bet viešai dėkui, bus įdomiai praleisto laiko.

Čia 5 seni kompiuteriai, iš kurių vienas gan specifinis, su penkiais RS-232 fiziniais prievadais. Visi kiti turi tik po porą tokių prievadų. Keletas klaviatūrų su PS-2 jungtimis, maišas aušintuvų, dėžės su HDD, pelėmis, laidais, kompaktais ir kitais, susijusiais su PC, dalykais. Kol kas tiek, o dėžių kraustymo eigoje bus daugiau :).