ARM:0003 arba LCD ekraniukas

Čia toks greitas pranešimas. Kai būna noras ir laikas, kartais paspaudžioju savo ARM devboardą. Kadangi ten viskas nuo nulio, tai visiškai įdomu. Ypač low-level bibliotekų rašymas. Pažiūrėjęs į savo ARM eksperimentus, nutariau parašyti tekstinio LCD ekraniuko biblioteka. Jos rašymui, kaip pagrindą panaudojau jau visam internetui žinomą Peter Fleury darbą. Tik reikėjo viską adaptuoti AT91F serijos ARM procesoriukui. T.y. perrašyti visą hardwarinę dalį. Taip pat kiek supaprastinau opcijas- dabar prie LCD ekrano galima jungtis tik 4 bitais.
Kadandingi pas šitą (AT91SAM7S256) nėra jokių kojų bankų, o visos PIO eina iš eilės, teko pedaryti iš esmės duomenų perdavimą. Užtat dabar galima jungti prie bet kurio PIO.

ARM SAM7 text LCD library

Prie bibliotekos eina paprasta testinė programa. Ji nekorektiška, nes LCD ekranas pajungtas grynai skaitmeniškai ir kontrastas (Ve) padarytas grubiu PWM ciklu. Gal ateityje, kai skaitysit kitus postus, bus atskiras straipsniukas apie PWM ir ekranas valdysis kitaip. ARMas yra 3V, tuo tarpu LCD 5V, bet puikiausiai veikia- vadinasi IO yra suderinamas įvairiom įtampom.

Biški apie biblioteką. Ji daug maž suderinta su Peterio darbu, pagrindiniai nustatymai faile “lcd.h”. Ten reikia aprašyti LCD displėjų, jo dydį. Svarbiausia aprašyti kokia koja kur eina- tai daroma, kaip įprasta pas mano matytus SAMų projektus hardware faile “board.h”.

#define LCD_RS (1 < < 17) //PA17 #define LCD_RW (1 << 18) //PA18 #define LCD_E (1 << 19) //PA19 #define LCD_D4 (1 << 20) //PA20 #define LCD_D5 (1 << 21) //PA21 #define LCD_D6 (1 << 22) //PA22 #define LCD_D7 (1 << 23) //PA23

Čia matosi, kad LCD pajungtas prie 18- 23 PIO kojos.
Dar paminėsiu, kad softas turi veikti prie bet kurio SAM7 serijos ARM procesoriuko, tik kad aš išbandyti galėjau tik su savo AT91SAM7S256.

Nu ir aišku:text LCD library for ARM source code and compiled hex file, hexas aišku sukompiliuotas Atmel AT91SAM7S256AU čipui.

P.S. prie “standartinių” paprogramių, LCD.C turi ir “user defined symbol” paprogramę. Peteris ją užmiršo.

Medžiagų medžioklė

Savadarbėm konstrukcijom ar darbam labai dažnai prisireikia medžiagų. Kartais keistų medžiagų, kartais jos naudojamos visai ne į temą. Šis postas ne šiaip apie kažkokių daiktų paiešką, bet rinkinys pačių keisčiausių medžiagų/daiktų įsigijimą ir naudojimą ne pagal paskirtį. Tikiuosiu komentaruose atskleisit savo keistus nutikimus susijusius su šia tema.

Taigi, pradeda sąrašą:

1 vieta. Kogero pats egzotiškiausias ir juokingiausias reikalas. Prireikė minkštos termoplastiškos gumos. Tai tokia guma kuri labai minkšta, elastinga, tačiau minkštėja nuo šilumos. Teoriškai pakaitinus, ji pasidaro skysta. Su tokia guma, pvz, galima nuimti formas nuo daiktų, hermetizuoti ir t.t. Mano tėvas kažkada tokią gumą tarybiniais laikais iš kažkur brangiai gaudavo. Tačiau turimas likutis parodė, kad guma nėra labai kokybiška.
Paieškos internetuose nieko gero nedavė- arba neradau, arba reikia pirkti bačką.

Sprendimas: pats pigiausias guminis bybis iš kinijos. 🙂 Padarytas iš pigaus smirdančio termoplastiko. Aišku pjaustyti jį griežinėliais buvo labai siurrealistiška… 😛

2 vieta pagal iškrypimą. Čia pusiau sprendimas, nes iki galo ir neprireikė visko daryti. Daugelis žino (ypač visokie aliektrykai), kad kartais laidus prakišti per kokias žarnas (vamzdelius) labai sunku. Laidai kimba ir panašiai. Tada naudojamas skystas muilas, fairy ir panašiai. Tačiau vieną dieną nepadėjo nei muilas… prisiminus porą nelabai padorių posakių buvo vaistinėje nupirktas vandens pagrindo lubrikantas. Nu čia kur putkom tepti ar šiaip smaukyti. Tik jis rupužė labai brangus, ar tik ne 30Lt traukia buteliukas. Tačiau ši medžiaga padėjo. O ji dar gera tuo, kad visiškai inertiška, vandens pagrindo ir kai sudžiūva, tai lieka kažkokie vos matomi miltukai. Kurie beja vėl atsistato į slydumą jei gauna vandens. (Šiaip tai ten kažkas panašaus į polietilenoksidą, dar vadinama polietilenglikoliu, PEG. Medžiaga naudojama visur. Nuo laisvinamųjų vaistų, dantų pastos, HP rašalo iki saldainių minkštiklio).
Kažkada šitą istorija papasakojau vienam pažįstamam veterinoriui. Jis tik šypetelėjo ir pasakė: -Jus geriau nusipirkit veterinorinio lubrikanto miltukų. Už tą pačią sumą galėsite užsimaišyti kibirą lubrikanto! Ir tą, 15 litrų kibirą. Ir visiškai jokio kvapo, nes ten grynas PEG ir kažkokie dar surišėjai. Tiesa, kelis kartus buvau užsukęs į veterinarinę vaistinę ir tokios medžiagos nemačiau, tačiau jaučiu, reikia ieškoti tokioje vaistinėje, kur karvytėm vaistus parduoda, o ne miestietiškose, kur chamiakams ir kačiukams.

3 vieta, jau visiškai be jokių iškrypimų. Prireikė tikros tvirtos odos diržo (arba jo dalies). Senų diržų spinta pasakė, kad arba diržai dar geri, arba jie fuflo. Trumpa apžiūra visokiose laisvės alėjose parodė, kad net ir “tikri odos” diržai kurie pigūs, yra tiktai gera imitacija. Kažkada net man padovanojo tokį ala odinį diržą, tai po pirmos savaitės, paaiškėjo, kad tai kažkos kartonas, škurlys, ir plonytis sluoksnis to, kas panašu į odą. Toks popieriaus storumo ir tvirtumo. Tuo tarpu normalus odinis diržas virš 100Lt kainuoja.
Sprendimas- Lytagra. Vaikščiodamas po parduotuvę, išpardavimo skyrelyje radau kažkokį BDSM rinkinuką. Ten daug diržų, sagčių, visokių šniūrų, sujungimų ir metalinių detalių. Teoriškai skirtas arkliui, bet kiek bevarčiau tai nesupratau kur čia tas arklys kišamas ir kur ištraukiamas. Bet reikia įsivaizduoti, kad odinių diržų kiekis stebėtinai didelis- nes galima apvynioti gyvulį. O ir tvirtumas analogiškai arkliškas. Ir kainavo tik 25Lt. Sprendžiant iš matomų lipdukų, Lietuvių ūkininkai BDSM neužsiima, nes nukainuota kokius 4 kartus per pusę.

Gal vėliau dadėsiu daugiau. Kol kas šitie trys buvo patys juokingiausi.

Dar postas apie nieką

Užkniso rutina, beveik nelieka laiko savo malonumams, jau nekalbant apie rašymą į šitą blogą. Net pradėti ir gana įdomūs projektai dulka nepaliesti…

Pirmiausia trugdo tiesioginis darbas- kažkaip po truputi, nepastebimai tapau chemiku. Nors kažkelintoje klasėje mokyklos cheminkė norėjo mane “sukirsti” ir palikti kartoti kursą. Tik kyšiai tada man padėjo. Nors manau, kad ta mokytoja taip užsidirbdavo pinigų, nes kažkaip save laikau nelabai durnu žmogum. Neminėsim jos pavardės nes ji gal jau mirusi arba labai jau garbingo amžiaus.

Car
Continue reading →

Arkliai ir svastikos

Išskyriau kiek daugiau laiko senovės tyrimams ir specialiai šiam blogui parinkau teminių nuotraukų… 🙂
Kas daugiau mane žino, tas tikrai atsimena, kad aš nuo vaikystės mėgstu paišyti svastikas 卐 (ir net turėjau dėl to nedidelių problemų mokykloje). Ir dar kad man patinka arkliai- vieną netgi kokius septynius metus net auginau.
Taigi šio straipsnio tema- svastika ir arkliai. Crazy.
Vien tik dėl to, kad kažkoks durnelis pasinaudojo šiuo simboliu tai nereiškia, kad reikia dabar imti ir užbaninti visam laikui.
Tikrai daugelis žino, kad svastika naudojama daug kur tolimuosiuose rytuose. Gal kas mažiau žino, kad braliai Latviai labai irgi naudojo šitą simbolį. Ir tikrai daug jų senovinių akmenų su įvairiom svastikom buvo sunaikinta po paskutinio karo. Pakeliui ir akmenys su semi-svastikom- įvairiais geometriniais ornamentais ir … žirgeliais. Iš Lietuviškų svastikų mums labiausiai žinomi būtent tie žirgeliai, kurie kalami prie stogo kraigo. O pilnai stilizuota iki minimumo- tai svastika be detalių ir kiek kitaip nupaišyta.
Šita sofistika ir sujungėm arklius su svastikom. O dabar važiuojam laiku atgal, maždaug 600 … 800 metų iki žydelio gimimo. Tai graikiško geometrinio meno periodas.

kudas arklys ir mazos svastikos
Continue reading →

Biški softo CNC motoriukams

Tai rezervinė kopija mano ala “cnc” projektui- AVR source kodas bei sukompiliuoti hex failai. Taip pat exe failas windowsams kuris valdo visą šitą mašineriją. Tiesa nežinau ar tai 32 ar tai 64 bitų versija.

Vienas AVR soursas skirtas valdyti steperius per paprastus mosfet raktus. Antra versija naudoja du Freescale/Motorola čipus MC34922. Teoriškai abi versijos turi veikti vienodai, viena skirta unipoliariniams motoriukams, kita bipoliariniam. Senesnė versija išbandyta praktiškai, tuo tarpu naujesnė tik prie palaido motoriuko.
Softas kiek skiriasi- nauja versija turi srovės nustatymo komandas. Tačiau senesnis softas paprasčiausiai ignoruoja šias komandas.

Softas.

Tai negalutinė versija, todėl skirta tik eksperimentams.

Kleve

Kad pagerinti darbą su SpectraBlue spektrometru, darbdaviai išgrūdo mane ir dar vieną darbuotoją į snuduriuojantį miestuką Kleve. Kadangi lėktuviukai tą dieną tiesiogiai neskrido, tai teko sėsti į dar mažesnį lektuvėlį ir aplankyti keliom valandom braliukus Latvius.
Latviai
Ten apžiūrėjom jų 3D pagrindinį simbolį, pavažiavom tramvajum nauju ir viskas. Pas Latvius tik patiko, kad bent jau jų pagrindinio miesto transporto sistema unifikuota ir bilietai su RFID sistema.
Continue reading →

Sincgars Nokia SMS terminalas

Čia toks karinis kriptoterminalas kurį naudojo amerikonai ir NATO kariai (Nokia PARSA – Partiosanomalaite). Šitas SMS aparatas jungiasi prie SINCGARS racijų (komentaruose parašyta kad tokią turiu) ir ten galima siuntinėti koduotas žinutes. Dar yra ir maži printeriukai, kad atspausdinti čekutį. O pati racija dargi dirba šokinėjančio dažnio režimu. Kad dar sumažinti galimybę nuskaityti informaciją, ji siunčiama “burst” režimu. T.y. piršteli tuos kelis baitus vienam dažnyje, kelis kitame ir išsijungia.

NOKIA SINCGARS crypto terminal
Toks teoriškai nieko nebijantis korpusas. Maitinimui reikia net 6 AA tipo batareikų arba gali maitintis iš racijos.
Continue reading →

Super magnetinė lenta

Tikriausiai daugelis matė, ir manau kažkas iš skaitytojų turi tokį magnetinį gadžetą virtuvėje- metalinių įrankių laikiklį. Ten visokios šakutės ir peiliai prisiklijuoja ir panašiai. Turi ir aš namie tokia “liniuote”, tačiau ta liniuotė tikras šlamštas- kartais įrankiai nukrenta, veikia tik viena juostelė ir šiaip ji silpna.
Vieną dieną atsibeldė Linas su savo projektu- magnetinė lenta. Tačiau tokių pastiprintu- super magnetinė lenta. Skiriasi nuo paprastos tik tuo, kad naudojami gana stiprūs neodimo magnetai (šiaip “gana stirprūs” yra pasakyta labai labai švelniai).
Buvo visokių minčių kaip tai padaryti- logiškiausia matyt būtų paimti fanieros gabalą ir išgręžioti skylutes. Tačiau ta mintis kažkur pasislepė ir buvo padaryta ekstremaliai ir gana brangiai.

Taigi buvo nupirkta apie penkiasdešimt magnetėlių maždaug už 100€. Poto epoksidkės ir stiklo audinio. O poto viskas maždaug taip vaizdiškai gavosi:

super magnetine lenta irankiams peiliams sakutem petelnem
Magnetai suklijuoti prie metalinių juostų. Kadangi magnetai stiprūs, tai tos juostos pašoka ir susiklijuoja. Todėl panaudoti aliuminiai radiatoriai (kurie renkami vienam žmogui iš newsgrupo) ir keletas sunkesnių objektų.
Continue reading →

ARM:0002 arba Hello World aka mirksiukas

Pirmas darbas programuojant bet kokia programavimo kalba kompiuteryje yra parašyti “Hello World” programą. Visokiuose mikrokontroleriuose tai mirksiukas. T.y. kažkokia koja turi mirksėti kažkokiu priimtinu ir detektuojamu dažniu. Nu koja nemirksi, bet koks nors šviesos diodas tai tikrai. Labiau “advanced mirksiukas” tai mirksiukas kuris reaguoja į kokį nors išorinį vaiksmą. Šiuo atveju į kitos kojos būklę.

SAM7 mikrokontroleris turi gana daug kojų. Kai kurios turi ne vieną paskirtį. Tačiau męs čia giliai nekapstysim- PA1 koją panaudosim kaip išėjimą, o PA2 kaip įėjimą. Mano PCB visos kojos išestos į standartinio (0.1″) žingsnio skylutes. Pačios skylutės kiek didesnio diametro, tai ten puikiausiai laikosi oscilografo čiupiklis.
Kol kas nesinagrinėjau aš to MCU hardwarės, tai nieko protingo nepadariau- tik užprogramavau vieną koją išėjimui. Kitos tikriausiai pagal nutylėjima pasidaro kaip įėjimai. Kaip ten organizuojami pull-up aš nežinau, bet po standartinės inicializacijos viskas veikia.

Kuo šitas skiriasi nuo paprastos ATMEGOS iš softo pusės? Dar nežinau daug, bet pirmas bugas kuris man pasirodė nesuprantamas, tai kad reikia paprogrames daryti STATIC. Jei neparašai, viskas susikompiliuojasi, bet kažkaip neveikia. Čia jau aš dar nesupratau. Dar klaustukas dėl VOLATILE kintamųjų. Bet kadangi viskas nudrožta nuo oficialaus Atmelio pavyzduko, tai matyt taip turi būti.

ARM mirksiukas
Softas veikia taip- amžinam cikle sėdi kitas ciklas kuris skaičiuoja pauzės dydį. Nuo minimalios iki kiek didesnės. Nuo PIN2 reikšmės priklauso pauzė vienokia ar didesnė 10 kartų.
T.y. kai nenuspaustas (kaip foto) pauzė keičiasi nuo 0 iki 9*5 tuščių ciklų. Pauzė ir mygtuko tikrinimas daromas prieš kiekvieną signalo pokytį.

Per nuotraukoje apibrėžtas 800ns įvyksta: signalo pakeitimas iš 0 iki 1, mygtuko reikšmės nuskaitymas per paprogramę, pauzės skaičiavimas =0*5*1, pačios pauzės paprogramės iškvietimas ir nepavykęs for ciklas, važiavimas atgal iš paprogramės ir signalo pakeitimas iš 1 į 0.

Taktinis procesoriuko dažnis kažkoks defaultinis skirtas USB. Kažkur apie 48MHz. Bent jau toks turi būti. Čia jau labiau patyrę turi pakomentuoti ar gerai man gavosi.

Ir aišku: Source code ir hex.

ARM:0001, softas

Jau praėjo kelios dienos nuo pirmo bandymo. Iki tol aš net neieškojau softo, nes tikėjausi, kad gamintojas turi pilną free paketą. Deja aš klydau.
Teko biški pasukti galvą… Prie J-Link, kinai pridėjo warezų kompaktą, kuriame buvo Segger programinė įranga kuri dar dirba su mano padirbta hardware. Kiek supratau iš visokių forumų, naujausias softas jau žino, kad tai kiniškas reikalas ir užsilenkia. Todėl J-Linkas dirba su senu softu- versija tikriausiai ARM V4.64a.
Dar tame kompakte buvo crackai, serial generatoriai visokiems komerciniams ARM kompiliatoriams ir toolchainams. Buvo mintis tai daryti, bet kažkai užsimiršau aš apie tą kompaktą ir pradėjau guglinti. Keli rusiški forumai ir pats guglė išmetė tokį dalyką kaip YAGARTO, sprendžiant iš to, kad softas guli sourceforge, tai jis tikrai free. O last update stovi 2013-04-24 , tai vadinasi kažkas dar dirba su šiuo paketu. Ir dar gerai, kad šitas paketus turi kažkokį installerį kuris viską sumetą į windows kietą diską.
Tačiau tai plikas command line įrankis. Tačiau gal man tai ir patiko, nes man kiek nepatinka eclipsė (ypač prisiminus kaip ji gliučino ant seno kompo). Kaip gi tada tuom paketu naudotis? Ogi pas mane yra suinstaliuotas WinAVR paketus, kuriam buvo susiinstaliuotas “make” ir man jau įprastas “programmers notepad”. Vadinasi teoriškai “make” turi veikti. Nusikroviau “mirksiuko” projektą iš interneto. Ten rodos oficialus pavyzdinis projektas SAM7S64 procesoriukui.
Pasileidžiam make ir … vaje neranda mano gcc tinkamo. Reikia pakeisti biški makefile:

Iš:

# Define programs and commands.
SHELL = sh
CC = arm-elf-gcc
CPP = arm-elf-g++
OBJCOPY = arm-elf-objcopy
OBJDUMP = arm-elf-objdump
SIZE = arm-elf-size
NM = arm-elf-nm

Į:

# Define programs and commands.
SHELL = sh
CC = arm-none-eabi-gcc
CPP = arm-none-eabi-g++
OBJCOPY = arm-none-eabi-objcopy
OBJDUMP = arm-none-eabi-objdump
SIZE = arm-none-eabi-size
NM = arm-none-eabi-nm

Dabar padarius make, atsiranda hex failas. Valio.
Bet čia 64 kilobaitų procesoriukui. Maniškis šrotas turi kiek daugiau- 256kb.
Iš visokių oficialių ir neoficialių puslapių ir projektų susirankiojau reikalingus failus:

AT91SAM7S256-RAM.ld, AT91SAM7S256-ROM.ld, at91sam7s256.h, lib_AT91SAM7S256.h. Tuo tarpu Cstartup.S ir Cstartup_SAM7.c tiko iš mažesnio procesoriuko. Nu dar make file ir dar kažkur reikia pakeisti 64 į 256 failų ir MCU pavadinimuose. Ir mirksiukas vėl susikompiliavo.
O minėtą hex failą sumaitino J-Linkas į mikroschemą ir oscilografas parodė, kad tikrai kojos kaitaliojasi pagal mano norus. Tiesa ne iš karto.

Tai tiek buvo sugalvota per tuos du ar trys vakarus. Tiesa paskutinis vakaras buvo tūpai praleistas debuginant ir krapštant galą. Tiesiog ten kažkaip nesigavo ir manau tai aprašysiu sekančiam poste, kur busi minima pirma programa.