Category Archives: Betkas

Automobilistas: LEDinis gabaritas

Eilinį kartą perdegė automobilio gabaritų galinis žibintas. Originali lemputė dar laiko, o piguva iš degalinės ėmė ir perdegė. Ir išlaikė tik nuo vasaros. Automobilio borto įtampa teisinga ir normos ribose. Todėl nutariau atgaivinti seną įdėją apie šviesos diodinį gabaritą. Tam tikslui panaudojau pigų diodą iš dealextrymo. Visa bėda, kad šitas diodas naudoja 0.3A darbinę srovę prie maždaug 3.4V įtampos kritimo. Kaip balastą panaudoti kokį rezistorių ar net LM317 nėra protinga nes prie automobilio borto įtampos, toks energijos švaistymas yra kiek sudėtingas ir neekonomiškas 🙂 (10V * 0.3A= ~3W šilumos). Taip pat netinka mano seniau naudoti LED draiveriai (1, 2, 3, 4), nes jie nepritaikyti maitintis nuo 12…14V šaltinio. Šį kartą nutariau pasinaudoti firmos National Semiconductors produktais. Pasirinkau mikroschemą LM3405A – tai kaip tik tokiam reikalui skirta mikroschema. Schemą jungiau pagal gamintojo pateiktą datasheetą ir jokių savo tobulinimų nedariau, gal tik visur naudojau keraminius kondensatorius.

Va senos, perdegusios lempos patronas ir jau pagaminta PCB:
LED gabaritas

Visos detalės jau sulituotos ir plokštė išbandyta. PCB dvisluoksnė, bet apačioje tik 33uH induktyvumas ir išėjimo kondikas, rodos 22uF keramika:
LED gabaritas

Šioje, nekokybiškoje nuotraukoje jau matosi surinkta šviesos diodų lemputė. Pats LEDas pritvirtintas prie nedidelio varinio radiatoriaus, kuris prilituotas prie lempos patrono. PCB taip pat prilituota prie patrono. Dėl galvaninio ryšio (nesu tikras ar aš čia nekaltas), diodo padas priglaustas per silikoninę izoliacinę tarpinę prie radiatoriaus. Visa diodo šiluma perduodama per radiatoriaus kojeles į lempos patroną. Manau užteks ploto, kad ataušinti 1W diodą. Viskas apsnargliuota termo klijais- jie hermetizuoja elektroniką, kiek sklaido šviesą ir šilumą:
LED gabaritas

Surinktos lemputės testas “laboratorijoje”:
LED gabaritas

Lempa įkišta į mano golfiuką:
LED gabaritas

Išorinis testas. Lempa kairėje- 1W šviesos diodas originalioje VW armatūroje. Dešinėje- standartinė 5W lemputė.
LED gabaritas
Fotografuojant lempos šviečia maždaug vienodai. Žiūrint žmogaus akimis, LEDinė lemputė labiau raudona. Originali lemputė kiek gelsvesnė.

SAVEL ir Levas nerekomenduoja keisti automobilio konstrukciją ir modifikuoti apšvietimą. Tokie pokyčiai galimi tik atlikus sertifikavimą ir gavus E ženklą. Važinėjimas su tokiom lemputėm kogero pažeidžia kokius nors įstatymus. Šis eksperimentas padarytas tik pažintiniais tikslais ir dar nereiškia, kad aš važinėju su LED žibintais.

Extrymas 2: motininės remontas

Kai pagaliau atsirado laiko kiek palituoti, nutariau pabaigti straipsniuką apie kompiuterio motininės plokštės remontą.
Pradėjau nuo plokštės ant kurios gedimas tiesiog badė akis. Motininė, tai pigi, PGA478 procesoriaus plokštė ASRock GE PRO-M2. Su vienu AGP, dviem PCI, dviem DDR ir vienu AMR lizdais. Gedimas standartinis- išsipūtė kondensatoriai. Šį kartą, išsiputė ne CPU antrinio maitinimo šaltinio kondensatoriai (Rubycon), bet 5V (ir kogero 3.3V) grandinės kondikai išmėtyti po visą plokštę:

Motinine remontas
Viso reikia pakeisti 12 kondensatorių. Visi kondikai TAICON firmos, 1000uF x 6.3V. Beja, šiandien sutvarkiau ir COBA King 420W ATX maitblokį su išsipūtusiais budinčio režimo kondikais- 1000uF x 10V- pakeičiau į 470uF x 16V prieš droselį ir 1500uF x 10V už droselio… nesvarbu… Spauskit toliau, kad pamatyti daugiau: Continue reading →

Extrymas: motininių plovimas ir remontas

Trumpas foto-video pasakojimas kaip bovijamės su kompiuterių motininėm plokštėm. T.y. kaip jas grubiai reikia plauti ir remontuoti. Čia pirma dalis kuri aprašo plovimo-džiovinimo procedūras.

Sumetam į vonią, biški indų ploviklio…
Mainboard cleaning and repairing

Geriau vieną kartą pamatyti, nei šimtą kartų išgirsti- va filmukas:

(Dėl kokybės nepykit, filmavau su fotiku, o ir vonioje tamsu kaip šiknoje).

Daugiau fotkių ir teksto: Continue reading →

Fakyrui fokusas (ne)pavyko

Jau senai norėjau pabandyti tokį fokusą- perlituoti DIMM mikroschemas ant kitos, laisvos pusės ir pabandyti padvigubinti atmintį. Kol SDRAM DIMM atmintys buvo brangios ir sudeginti kompiuteriai buvo didelė bėda, tol nenorėjau daryti šį eksperimentą. Dabar, tiek atmintis, tiek tokio lygio kompai nieko nekainuoja, todėl pabandžiau…

Pradžiai susiradau donorus- du vienetus po 128Mb ir vieną DIMMą po 256Mb. Visi DIMMai visiškai vienodi, to pačio gamintojo, atminties mikroschemos visiškai vienodos: PQ3S168E75 – tai permarkiruotos mikroschemos, todėl neaiškus nei gamintojas, nei jų parametrai. Greičiaisiai tai koks nors Synchronous DRAM 128Mb x 4, x8 ar x16.
SDRAM DIMM HACK

Pradžiai “nurengiam” čipukus:
SDRAM DIMM HACK

Prilituojam, pagal pavyzdį perlituojam jumperius- rezistorius. Perrašom Serial Epromą, kad kompas žinotu, kad čia 256M DIMMas.

SDRAM DIMM HACK

Deja, fakyrui fokusas nepavyko 🙂 Kompas visiškai nemato DIMMo ir visiškai nereaguoja. Ismeigus kartu su kitu, geru DIMMu nieko geresnio nepasiekiam- kompas nepasileidžia. Čipai visi šalti, trumpo jungimo tarp kojyčiu nėra. Matyt, visdėlto, perkaitinau aš tuos SDRAM čipus.

Papildymas po valandos- pavyko! Continue reading →

Kamertonas

Va kokį daiGčiuką radau:

Kamertonas

Tai kamertonas. Tai plieninis daikčiukas, kuris virpa pastoviu dažniu. Dėl konstrukcijos ypatybių, stuktelėtas kamertonas gana greitai pradeda skambėti tik pagrindinių tonu- visos kitos harmonikos labai greitai užslobsta. (Šiaip kamertonas turi tik 6 1/4 eilės harmonikas- dvi su puse oktavos aukštyn, palyginkit su plienines styga, kurios harmonikos kartojasi kas viena oktava ir dėl to gražiai skamba visokiuose pianinuose) .
Tai kaip ir garso etalonas- pagrindinio tono dažnis labai stabilus nes priklauso tik nuo fizinių kamertono išmatavimų ir metalo sudėties. Metalas specialiai parenkamas, kad kiek galima mažiau plėstusi nuo temperatūros.

Ant mano kamertono parašyta C3 ir 1024. Skambėjimo dažnis labai artimas (pagal klausa) 1Khz. Neradau mikrofono, kad pajungti prie dažnimačio, o oscilografas rodo, kad virpėjimo dažnis daugiau už 1000Hz ir mažiau už 1048. Kogero tai 1024Hz dažnis kaip ir parašyta ant kamertono… Tik įdomu, kodėl parinktas toks “binarinis” dažnis? Juk šitas kamertonas pagamintas prieš 30…40 metų.

Engineering Sample… WTF?

Norėjosi į vieną mikroschemą įpūsti kodą ir staiga pasipylė klaidos:

Info: Device 1 contains JTAG ID code 0x020A30DD
Info: Device 1 silicon ID is ALTERA04-0
Error: Operation failed
Info: Ended Programmer operation at Sat Feb 14 21:28:57 2009

Pasinaršius internete radau užuominą apie problemą. Žiū fotkę:
Altera engineering sample

Raidelės “ES” reiškia “Engineering Sample” ir šios mikroschemos ID skiriasi nuo paprastos, serijinės. Todėl paprasti fuse bit .pof failai netinka. Tačiau Quartuso mikroschemų saraše tokios nėra. Yra tik standartinė. Jokių problemų- softe ta mikroschema yra, tik nesimato. Pradedam projektą “retail” versijai. Poto atsidarom projekto direktoriją ir susirandam faila “projekto-pavadinimas.qsf”. Oten viduje, kažkur yra eilutė:
set_global_assignment -name DEVICE EPM1270F256C5
Šią eilutę pataisom į:
set_global_assignment -name DEVICE EPM1270F256C5ES
ir perkompiliuojam projektą. Ir jokių problemų. Aišku, gali kilti problemos jei nėra source code, o turim tik programinimo failus. Bet turiu didelį itarimą, kad ten skiriasi tik vienas baitas.

Small peek: kas dabar guli ant stalo…

Šiuo metu ant mano stalo guli štai toks kurinys:

3 PHASE DRIVE

Čia ant mažos PCB prilituoti 6 maži mosfetai, GAL16V8 mikroschema. Vertikaliai kabo viena iš ATMEGA16 testinių ploksčių. Juodulys- 2.5″ kieto disko likučiai.
Šiuo metu skaitom Atmel firmos straipsnius apie 3 fazių variklių valdymą su AVR mikrokontroleriais. Kol kas nelabai gaunasi, tiksliau ir neturi gautis, nes nesumontavau nei vieno atbulinio ryšio elemento: nei holo daviklio, nei trifazės įtampos nuskaitymo.
GAL mikroschema užprogramuota PWM valdymui per visas tris fazes ir dar kaip papildoma funkcija- apsauga nuo vienos fazės abiejų raktų įjungimo vienu metu. Tačiau ši mikroschema pati įnešė nenustatytą bugą- įjungimo metu, kažkodėl būtent ir įsijungia du tos pačios fazės raktai- matyt kažkoks pereinamasis procesas daro įtaką. Gerai, kad visas prietaisas maitinamas iš USB lizdo ir per kelis apsauginius diodus- MOSFETai įkaista tiek, kad pradeda rūkti dūmai ir išsilydo lydmetalis po raktu. Tačiau raktai neperdega- nes lieka vos pora voltų ant rakto. 🙂
Manau, kad iki sekmadienio perskaitysiu dokumentaciją ir paleisiu trifazį variklį pilnu greičiu.

ATMEGA USB 22: RTC laikrodis

Kažkaip neparašau apie laikrodžių darymą. Kiekvienas bent kiek įvaldęs kontroleriuką kada nors pradeda gaminti laikrodį. Aš irgi 🙂 Labai labai seniai dariau RTC laikrodį su PIC procesorium. Rašiau aš jį asembleryje… ir labai nervinaus, nes buvo sunku ir tas PICas turėjo savo bjauriu niuansu. Šiaip internete pilna laikrodžių- visokiems procesoriams, visokiems ekranams. Pasibandžiau keletą, kai kurie patiko, kai kurie ne. Pagaliau vieną dieną pasakiau- va ateis savaitgalis ir pradėsiu rašyti laikrodį nuo nulio.

Pagrindinės užduotis kurias sau pastačiau:

  • RTC nepriklausantis nuo maitinimo. T.y. atjungiam maitinimą, o laikrodis sau toliau veikia.
  • Hardwarinis laikrodis- tikras nesusipratimas smaukytis su procesoriaus kodu, kad skaičiuoti kiekvieną pirstelėjimą ir apsakaičiuoti laiką. Laika turi skaičiuoti RTC čipas- procesorius užsiima grožiu ir User Interface.
  • Valdymas turi būti aiškus, o ne su vienu nupiepusiu mygtuku. Naudojam kaip minimum 6 klavišus (juolab kad naudojant ADC mygtukus, jų skaičiaus kaitaliojimas nėra nei hardwariškai, nei softwariškai sudėtingas). Mygtukai: kairėn, dešinėn, aukštyn, žemyn, OK ir Cancel. Kaip bet kuriame teliko distanciniam.
  • Jokių asemblerių, advanced dalykėlių (ir atminties taupymo). Turi kompiliuotis su gcc.
  • Laikrodžio variklis (core) turi lengvai persikelti ant kito “displėjaus”. T.y. dabar rašau naudojant LCD ekraniuką, bet su minimaliu pokyčiu, softas turi persikelti kad ir į LED matricą ar kokį rotary clock displėjų.

Konstravimui panaudota esama hardwarė. Tik papildomai, prie I2C porto pajungta RTC mikroschema, kurią man maloniai padovanojo Intersil semiconductors: isl1208.
RTC ATMEGA clock

Čia kiek geriau matosi analoginių mygtukų “matrica” kuri pajungta prie MCU tik trim laidais: Vcc, GND ir analog. Tai pat matosi, kad RTC turi savo rezervinį energijos šaltinį: Ličio batareiką CR2025 (čia iš seno kompo išlupau).
RTC ATMEGA clock

Visas kodas dar neparašytas. Jau galima užprogramuoti laiką ir datą, beveik pabaigtas žadintuvas ir konfiguracinis modulis.
Pats žadintuvas irgi nedaromas su ATMEGA16, o jis tupi RTC mikroschemoje- netgi yra speciali kojytė, kuri gali generuoti žadinimo signalą be MCU pagalbos. Arba paprasčiausiai MCU nuskaito būklės registrą ir pradeda čirškėti. Įdomumas tame, kad žadintuvas gali suveikinėti kiekvienos valandos kažkurią minutę, arba galima nustatyti kad žadintuvas skambėtu tik pirmadieniais, trečią valandą penkiolika minučių ir 27 sekundės, arba kad skambėtu kiekvienos valandos 3 minutę tik balandžio 23 dieną ir jei ta diena išpuola sekmadienį… 🙂 Ten daug navarotų turi tas čipukas. O jei dadėti ir MCU navarotus, tai tikras CRON daemonas gaunasi. Nekalbant apie tai, kad softas pats žino, kelintadienis bus bet kurią 21 amžiaus dieną ir taip pat puikiai susipažinęs su keliamųjų metų skaičiavimais.
Softas turi bent trijų lygių menių sistemą. Meniu sistema automatiškai išsijungia, jei vartotojas ilgai neliečia klavietūros. Su minimaliais pokyčiais si sistema modifikuojasi ir galima konstruoti kokį nors termostatą- juk užtenka pajungti prie to pačio I2C kad ir FM75 mikroschemą. Arba galima valdyti kokią nors periferiją… Čia tik reikia įjungti fantaziją. Šiaip viskas sugrūsta į TIMER0 pertraukimą- visą kitą laiką ATMEGA dinderį muša.

Softas neskirtas “C” kalbos puristams ir specialistams. Aš iškarto pasakau, kad niekada nesimokiau “C” programavimo. Todėl daugelis momentų padaryta kvailai. Tik žinau, kad gerasis gcc nerado nei vienos priekabės prie šios programos- kompiliuojasi be jokių warning…

Štai jis: RTC clock core source code. Dalinamas pagal GNU GPL licenzija- imkit ir naudokit.

PHP programavimas: vienas iš mano tiesioginių darbų

Kartais nuo karto klausiat ką aš dirbu ne poilsio metu. Vienas iš mano darbų yra web programavimas. Paskutinis, dar nepabaigtas projektas tai UAB Vitra TVS (CMS) su prekių žinynu. Programos nuo nulio nerašiau- kaip pagrindą panaudojom kažkokį komercinį produktą kurį buvo nupirkusi kompanija. Tačiau ta sistema visiškai morališkai paseno, o “gamintojai” pradėjo šnekėti apie kažkokius kosminius skaičius. Teko pasinagrinėti svetimą kodą ir gana stipriai jį perrašyti. Taip gavosi tokia pusiau CMS, pusiau prekių katalogas.

Vitra.lt

Kadangi jau beveik žinau ką daro kiekvienas kodo pirstelėjimas, dabar labai lengva tobulinti sistemą. Ypač kai įdėjas laikas nuo laiko pageneruoja bendradarbiai. “Dizainą” tikrai pats nedariau, čia paprasčiausias free template. Tačiau CMSas lengvai apvelkamas bet kokiu drabužėliu.