Atominis šlamštas

May 24th, 2017

Netikėtas radinys iš atominės elektrinės:
atominis slamstas: тшв 24-у3 трансформатор тока

Read the rest of this entry »

Surströmming

April 27th, 2017

Gimimo dienos proga gavau silkutės kuri vadinasi Surströmming. Žodelis “Hel" reiškia kad silkė ciela.

Surstromming silkute
Read the rest of this entry »

Apple Cinema irgi genda

April 22nd, 2017

Abuoliai irgi genda. Ypač, kai baigiasi garantinis. Buvo čia toks ligonis, vienas iš Apple Cinema serijos monitorių. Ir jis biški ėmė ir neberodė vaizdo.
Apple cinema LED refurbishing
Čia jis taip atrodo visas. USB, display port laideliai ir laidelis pajungti abuolinio notebuko krovimą. Jokių mygtukų. Gedimas paprastas- neveikia pašvietimas (pasitikrino su prožektorium). Buvau užterorizuotas- diagnostiką pratesiau ir nustačiau, kad viena LED eilutė pradėjo svilti- jos užsižiebimo įtampa stipriai paaugo. Toliau remontuoti atsisakiau. Vėliau buvo visa epopėja netgi su oficialiu servisu ir kažkoks meistrelis tipo pataisė. Monitorius kurį laiką veikė, tik atsirado vertikali juosta. Matyt lindo į matricą… Monitorius kiek paveikė, bet gana greitai vėl nustojo šviesti. O čia buvau užšantažuotas ir monitories atsidūrė pas mane. Remontas buvo daromas su tokiom sąlygom: kada kils noras remontuoti, darau bet ką, neatsakau už kokybę ir nebūtinai suremontuoju. Taigis monitorius pragulėjo gal metus, o gal daugiau :) .
Read the rest of this entry »

AVR87: TXC101 UHF siustuvėlis

March 16th, 2017

Tai mano pirmas eksperimentas radio dažnių generavime. Todėl labai jau nekritikuokite. Viskas prasidėjo nuo signalizacijos siustuvėlio, kurio nesugebėjau paleisti. Poto iš kinijos nusipirkau pirmą pasitaikiusi mikroscheminą kuris generuoja aukštus dažnius. Tai buvo TXC101, 300-1000MHz transmitter. Kuris gali veikti kaip savarankiškas prietaisas, o gali veikti valdomas mikrokontrolerio. Poto vėl buvo viskas užmiršta, kol kitame projekte liko vietos PCB (nes jos dabar didelės). Taip ir gimė šis visiškai žalias projektas su klaidom.
Schema paprasta- MCU (ATMEGA8), sintezatorius TXC101, biški pasyvių element ir dviejų tranzų stiprintuvas. Mažesnis tranzistorius tai kažkas su užrašu “7Y 1″, kas savo ruožtu gali būti: MMBR941, MMBR951 kas visai tinkama (arba ten visai ne tokia detalė, nors lupau iš kažko aukštadažnio), o didesnis buvo BLT50, kas gerai 470MHz, bet tikriausiai negerai prie 900MHz. Tačiau visiškai tranzo patikrinti prie aukštesnio dažnio nepavyko, nes traukiojant laidus ir jungiant visokiausias apkrovas tranzistorius biški užkaito ir jau nebeveikė. Toliau eksperimentus dariau be galinio tranzo…
TXC101 transmitter and AVR ATMEGA8
(foto pasididina)
Read the rest of this entry »

ARM:0002 versija B, TXT LCD

March 6th, 2017

Kol kas visiškai neapsisprendžiau kokia “baze" remtis programuojant STM32 mikroschemą. Dabar tik eksperimentuoju ir paprasčiausiai pakartojau senesnį ARM projektą su tekstiniu LCD ekranėliu. Kol kas nebraidžiojau optimizacijos pinklėse ir naudojausi kažkieno sukurtais primityvais, kurie gana griozdiški viduje. Tačiau šaip - ne taip pavyko paleisti.

STM32 LCD tXT
(dešinėje skaičiukas kur neaiškus tai fotikas pagavo momentą kai keičiasi reikšmė)

Kokios iškilo bėdos? Pagrindinė bėda buvo suvokti kaip galima duomenų pinus operatyviai perprogramuoti iš OUTPUT į INPUT. Pas mano naudojamas bibliotekas ten naudojamos griozdiškos struktūros. Ir aišku tingėjau skaityti instrukcijas.
Pradinė užduotis buvo, kad LCD gali būti prijungtas prie bet kurios kojos, bet poto teko supaprastinti, kad visdėlto jungiasi prie to pačio banko. Čia išlindo pirmas skirtumas tarp atmelio SAM7 ir STM32. Pas atmelį PIO kojos bent jau 32, priklauso vienam bankui. Gana logiška- CPU tai 32 bitų ir vienu smūgiu galima pakeisti 32 kojas. Pas STM32 kojos suskirstytos po 16 kiekvienam bankui. Kas baisiau, rodos viduje ten dar suskirstyta po 8 bitus ir išmaukyti tie bitai kažkokia tvarka. Aišku, gal galima skirtingus bankus valdyti skirtingais laikrodukais, o gal taupyti elektrą ir gal juos išjunginėti? Tačiau dingsta paprastumas… Kodėl taip padaryta aš nežinau. Bet man nepatiko.

A! dar kažkaip užmiršau, kad mano LCD tai 5V technologija, o STM32 tai 3V. Tai vieną vakarą prasikankinau be reikalo. Kažkaip galvojau, kad mano testinis ekranėlis veikia su 3V maitinimu.

ARM STM32F103 TXT LCD source code.

ARM:0001 versija B arba STM32

March 1st, 2017

Kažkada gavau Atmelio ARM šroto. O dabar gavau ST produkcijos beveik šroto. Tiksliau pamačiau, kai metė į šiukšlyną “paletėlę"* su STM32 čipais. Dalis čipų nukrito neatgaunamai, o keliasdešimt buvo sugauta ir parkeliavo namo. Tai buvo STM32F103RET6 - 512kB flash ROM, 64kB RAM ir 64 plonos kojos (gana daug kojų palinko gelbėjimo operacijos metu) … LEDų mirkčiojimui pats tas čipukas. :)

STM32F103RE
Gryni čipai neveikia, todėl sukurpiau savo PCB. Ji gavosi kraupiai raudona. Dar pakeliui nupirkau kinišką dev boarduką su mažesniu čipuku. Bet PCB iš kinijos atėjo greičiau. Į tą UNIBUS dalį nereikia kreipti dėmesio, čia eksperimentai- ten nebesiekia Eagle free softas ir ta dalis PCB kaip ir nesinaudojasi. Ten “menas" gerberiuose.
Aišku padariau kaip minimum dvi klaidas. Abi gana lengvai pataisomos- užmiršau RESET liniją patempti į pliusą. Ir panašus patempimas reikalingas prie USB jei jį naudoti. Ten reikėtu statyti gal net tranzu valdomą pull-up.

Apie softą kita šneka. Kažkaip seniokiškai piktybiškai nenorėjau jokio IDE. Man užteko tų “user friendly" nesamonių. Tik oldskūlas, tik hardkoras. Žodžiu dabar kompiliuojasi iš to pačio notepado- ir AVR ir STM ir atmelio ARMas. Ir iš ten pat ir programuojasi.

Kad ir ką nešnekėtu vartotojai- nėra labai patogaus softo. Kažkaip eina tendencija, kad jei reikia pamirksėti LEDą, tai reikia į čipuką supusti visa operacinę sistemą ir krūvas pričindalų… Aišku periferiją reikia suprogramuoti ir kuo toliau, ji sudėtingesnė. Bet dėti šimtus eilučių chaotiško kodo? ST išleido gerą įdėją- grafinį periferijos konfiguratorių STM Cube, ten aš jo sugeneruoto kodo nesugebėjau netik suprasti, bet ir sukompiliuoti su gcc. Poto skaičiau nemūsiškus forumus ir atsiliepimai buvo ne kokie… Matyt tokie oldfagai rašė.

Todėl teko pažaisti kokius trys vakarus ir pavyko visdėlto paleisti MCU kojas taip, kad jos duotu kažkokius signalus.
Deja, nepavyko svetimų bibliotekų privesti tiek, kad nerodytu nei vieno warning. Man nepatinka warningai…


gcc version 5.4.1 20160919 (release) [ARM/embedded-5-branch revision 240496] (GNU Tools for ARM Embedded Processors)
Building file: stm32f10x_vector.o
Invoking: MCU C Compiler
arm-none-eabi-gcc -Os -Wall -fno-strict-aliasing -fmessage-length=0 -fno-builtin -mthumb -mcpu=cortex-m3 -MMD -MP -ffunction-sections -fdata-sections -I ../src -I ../src/includes -I ../libSTM32F103 -I ../libSTM32F103/inc -MF objs/stm32f10x_vector.d -MT objs/stm32f10x_vector.d -c ../src/includes/stm32f10x_vector.c -o objs/stm32f10x_vector.o
../src/includes/stm32f10x_vector.c:114:4: warning: taking address of expression of type 'void'
&_estack, // The initial stack pointer
^
Finished building: stm32f10x_vector.o

Building target: blinky_stm32f103.elf
Invoking: MCU Linker
arm-none-eabi-gcc -Wl,--gc-sections,-Map=blinky_stm32f103.map -Os -Wall -fno-strict-aliasing -fmessage-length=0 -fno-builtin -mthumb -mcpu=cortex-m3 -MMD -MP -ffunction-sections -fdata-sections -L ../ -T ../loaders/stm32.ld -I ../src -I ../src/includes -I ../libSTM32F103 -I ../libSTM32F103/inc objs/main.o objs/stm32f10x_it.o objs/stm32f10x_vector.o ../libSTM32F103/Release/libstm32f103.a -oblinky_stm32f103.elf
Finished building target: blinky_stm32f103.elf

Visas source kodas čia, su visom bibliotekom.

*) jei kas nesuprato, “paletelė" tai toks plastikinis laikiklis mikroschemom. Kaip šitas iš to pačio šaltinio:
STM32F205ZGT6
Tik čia daugiau kojų turinti mikroschema STM32F205ZGT6 (1M flash, 132kb RAM ir 144 kojos…) biški per daug.

Vieno nixio laikrodis

February 4th, 2017

Per naujų metų sveikinimą panaudojau šią iliustraciją:

2017 year nixie in-18

Tai vieno nixio laikrodis. Visos detalės tipinės, hardwarėje nieko specifinio. Vienintelė naujovė- viskas valdoma vienu mygtuku. Kadangi reikia daugiau funkcijų, tai mygtukas atskiria “trumpą" ir “ilgą" paspaudimą.
Dar vienas skirtumas- RTC panaudotas iš kažkokio DVRo. Tai Dallas Semiconductors/Maxim čipas DS1338. Jis turi “tick" išėjimą kuris užprogramuotas 1s impulsams ir aktyviai naudojamas programos. Dar naudojama IPS511G mikroschema- smart switch, kuri tik reikiamu metu įjungia aukštos įtampos šaltinį. Lempa didoka, o ir keitiklis nėra labai ekonomiškas. Todėl kai nenaudojama lempa, iš ~7V maitblokio srebia apie 14mA srovės, tačiau kai užsikuria lemputė, srovė užkyla iki maždaug 290mA. Jei neišjunginėti maitinimo, tai raktinis FETas kiek kaista ir jaučiasi šiluma per korpusą. Naudojant atjungimą viskas spėja ataušti.

Laikrodis kokias 7 sekundes nieko nerodo, poto parodo valandas ir minutes nuosekliai. Kiekvienas skaičius rodomas vieną sekundę.Daromos nedidelės pauzelės, kad matytusi kaip keičiasi skaičiai net tada, kai laikrodis turi rodyti tą patį skaitmenį.
Norint iš karto pažiūrėti laiką, reikia nuspausti trumpam mygtuką, tada laikrodis pradeda skaičių rodymo ciklą. Jei niekas neliečiama, skaičiai atsiranda savaime.
Norint nustatyti laiką, reikia spausti ir palaikyti mygtuką. Tada laikrodis rodo visus skaičius iš eilės ir nesiblaško tarp jų. Tada trumpu nuspausdimu galima padidinti skaičius. Penktas ilgas nuspaudimas išjungia nustatymo režimą. Tai indikuojama “vaiduoklišku" švytėjimu (ne visos nixies tai padaro)- visa lempa truputi švyti, bet konkrečių skaičių nerodo. Tai gaunama paduodant aukštą įtampą, bet nejungiant jokio segmento. Per parazitines talpas ir rezistorius yra įtampos nutekėjimas ir lempa švyti.

Kiek apie softą: naudojami trys darbiniai algoritmai vienu metu:
Pirmas- sekundinis “tick" iš RTC mikroschemos per INT0 koją. Čia beveik viskas ir atliekama: nuskaitomas RTC, pagal mygtuko reikšmę atliekamos funkcijos, rodomas laikas.
Antras- taimeris. Čia, neatsimenu kokiu intervalu dirba, bet čia pagal mygtuko rezultatą persijungia režimai. Taip pat generuojama “kintama" įtampa nixio uždegimui per kondensatorių. Taip uždegiamas indikatorius, nes išjungiant aukštos įtampos šaltinį įtampa “pasibaigia" ne iškarto, o poto, kai išsikrauna kondensatorius. O dar, čia galima reguliuoti nixio švietimo ryškumą.
Trečias- pagrindinis ciklas. Čia tikriausiai reikėtu irgi panaudoti kitą taimerį, bet šioje softo versijoje daromas sisteminis mygtukų būklės apklausimas kas 10ms.

Ir aišku:
Single nixie RTC clock with single button control. Source code and hex.

Kiniškos PCB, pigiau ir spalvingiau

January 25th, 2017

Kaip ir žadėjau, kai tik gavau PCB iš Kinijos, tai iš karto dedu kelias nuotraukas ir kiek komentarų.

kiniska PCB plokste

Pirmiausia- seniau buvo 5×5 ir tik žalios. Dabar, dėl konkurencijos, mažiausia PCB tai 10×10 ir bet kokios spalvos. Teoriškai galima jas panelizuoti ir frezuoti, bet tada kaina pasidaro nebe pigi. Ši kainuoja ~10$ (10vnt) plius siuntimas (apie 5$). Pagamina iš gerberių per kelias dienas, deja siuntimas užtrunka Kinišką mėnesį. Tai kiek ištemptas ir neapibrėžtas laiko tarpas kiek panašus į kalendorinį mėnesį.
Read the rest of this entry »

Drėlės akumuliatoriaus perdarymas

January 14th, 2017

Nors ir žiemos metas, laikas nuo laiko važiuoju į fazendą ir ten ką nors statau ar remontuoju. Palyginus su remontais Kaune (kur kaimynai užliejo sienas- lubas ir rusį, bet pas “juos nebėga"), šis fazendinis remontas ramina nervus. Ten kovojama su sena sienų izoliacija ir dabar reikia įsukti vieną kitą milijoną medvaržčių… Buvau pasiskolinęs normalų suktuką iš darbo, bet ji reikia atiduoti atgal. Pirkti naują kažkaip nenoriu. Aš prisiminiau, kad kai stačiau garažiuką arkliui, buvau nusipirkęs kinišką suktuką. Jo akumuliatorius jau kokį dešimt metų kažkodėl padėtas ant palangės iš kiemo pusės… Taigis, jis tikriausiai jau nebeveikia :) Todėl nutariau akumuliatoriau elementus pakeisti į kitus, juolab mėtosi visas kalnas ličio bačkučių iš “garantinių" kompų akumuliatorių. Garantiniai reiškia, kad tie akumai susifeilino dėl gamyklinio defekto ir ten dažniausiai 66,66% ličio elementų visiškai geri ir beveik nauji. Paėmiau vieną samsung akumą ir jo skrodimas parodė, kad 100% “bačkelių" geros- paprasčiausiai kontrolerio PCB perlūžusi per pusę.

Akume buvo 6 elementai, sujungti pagal 3S2P schemą. Elemento talpa kažkur 2Ah (teoriškai, naudojami samsungėliai, nors ir nauji kogero bus 1.8Ah talpos). Įtampa kažkur gausis apie 12V. Norėjau pažiūrėti kas parašyta ant suktuvo… bet suktuvo neradau. Prisiminiau, kad darbe kažkur mėtėsi suktuvas (aišku kiniškas) be akumo kur radau šiukšlėse ir pasiėmiau dėl patrono… laime, kad ta vieta nelankoma vos ne penkmečiais, tai drėlę radau :) . Ji buvo be jokių užrašu… dzin.

dreles akumuliatoriaus remontas
Mechaniškai sutvirtinti elementus patodu su kiniškai akumų laikikliais, kurie kaip kokios lego kaladėlės susijungia viena su kita. Nuotraukoje kitos celės, nes fotkinau po eksperimento.
Read the rest of this entry »

Nauji metai, vėl

December 31st, 2016

Pagaliau baigėsi šie kiek bjauroki 2016 metai, kurie prasidėjo Buviu, Princu, o baigėsi princese Lėja su jos motina… Asmeniškai man šie metai buvo sunkoki, tačiau gal jau baigsis šis juodumo periodas. Todėl linkiu visiems ir sau, kad sekantys metai būtų geresni, šviesesni ir laimingesni.

Ta proga suklijavau animuotą gifą:

2017 year nixie in-18

Tai pačios didžiausios ir gražiausios tarybinės indikatorinės lemputės- ИН-18. Ir pačios brangiausios :)
Nei softas, nei hardwaras nevertas paminėjimo. Tai panaudotos standartizuotos mano PCB. O jei prašnekom apie PCB, tai nežinau ar tai jau po visam, ar tai tik akcija: seeedas atpigino PCB gamyba keturis kartus ir už tą pačią kainą leidžia pasirinkti bet kokią PCB spalvą. Dabar vietoje 5×5 PCB už tuos pačius 10 doleriu daro 10×10cm. Visa bėda, kad demo Eagle neleidžia išnaudoti visą plotą- max paišomas dydis 8×10cm free versijoje. O dar Eagle nupirko autokadas… Kai jie ten spręs toliau licenzijavimą aš nežinau, jaučiu padarysis kokį nors “cloud" nesusipratimą ir dar pagėjins visą dizainą… Kai gausiu PCB, parašysiu atskirai.

Švęskit šventes!

Unhappy Tikbalang