Posts Tagged ‘ARM’

ARM devboardukai

Posted: 2015-11-06 in Darbeliai
Žymos:, ,

Taigi vėl nusimato vienas elektronikos projektėlis, kur man reikės ARM procesoriukų. STM32F103C8 — per akis. Bet kadangi jau bandžiau su šiuo procesoriuku projektuoti plošktę ir nelabai gavosi, tai nusprendžiau elgtis, kaip ir su Arduino Nano — projektuoti periferiją prie veikiančio devboarduko. Todėl iš bičiuliškos Kinijos užsisakiau visą maišą nedidelių, minimalių ARM devboardukų su minėtu procesoriuku. Devboardukai turi Mini-USB jungtį, SWD derinimo jungtį ir krūvą išvadų. Neturi, tiesa, RTC kvarco, bet jį galima prilipdyti būsimoje periferijos plokštėje, jei tik tokio daikto prireiks. Turi, panašu, ir RTC kvarcą, kurio iš pradžių neatpažinau, bet vieno komentatoriaus paprotintas perskaičiau užrašėlį ir panašu, kad tas juodas daiktas šalia akivaizdaus 8 MHz kvarco yra 32768 Hz kvarciukas laikrodžiui. Taigi šis devboardukas dar geresnis, nei iš pradžių maniau!

(daugiau…)

Kaip jau buvo pas mane komentaruose minėta, šiais laikais daug ARM devboardų (o ir galutinių „produktų“) naudoja SWD, t.y. dviejų laidų debuginimą/flashinimą. Tai yra gerai dar ir tuo atžvilgiu, kad galima kitus JTAG naudojamus elektrodus atlaisvinti ir panaudoti savo reikmėms.

(daugiau…)

ARM: tekstas į USART’ą

Posted: 2015-09-23 in Darbeliai
Žymos:,

Kadangi vienas toks bandantis kažkaip maskuotis subjektas užklausė, ar man pavyko kažką išspausdinti iš ARM procesoriuko į GDB serverio konsolę, tai prisiminiau, kad buvau pradėjęs rašyti tekstuką apie teksto išvedimą į USART. Tačiau kai kas atminty uždulkėjo, o kai ko taip iki galo ir nesupratau. Bet pasidalinsiu tuo, ką turiu.

(daugiau…)

Maždaug nuo Kalėdų projektavau plokštę STM32F103C8T6 procesoriukui, kurį ruošiausi pridėti prie HP-21 skaičiuotuvo ekrano. Trumpai tariant, norėjau pasidaryti laikroduką. Ir labai norėjau, kad „motininė“ plokštė pasislėptų už ekranėlio, kuris gan mažas. Dėl to ir plokščių užsisakiau krūvelę, nes pačiam tokią pasidaryt gal tiesiog per sudėtinga.

(daugiau…)

ARM: debuginimas per SWD

Posted: 2015-01-07 in Darbeliai
Žymos:

Kadangi vienas naglas robotų konstruktorius prie mano įrašo apie flashinimą per USART užsiminė apie SWD (Serial Wire Debug) populiarėjimą ir privalumus, tai su savo kinišku devboarduku ir kinišku J-Link nusprendžiau šitą reikalą išbandyti. Kokie SWD privalumai? Ogi tokie:

  1. Flashinimas be jokių ten trumpiklių kaitaliojimų ir resetinimų.
  2. Pilnas debuginimas, kas yra labai naudinga.
  3. Tik keturi laideliai vietoj net ir sumažintos iki minimumo (8 elektrodų) JTAG kaladės.
  4. Suprojektuotos smulkios plokštės gali būti visai bet BOOT0 ir BOOT1 trumpiklių, o atitinkami elektrodai „įžeminti“ ir tiek. Sutaupoma vietos.

Taigi su šiais privalumais verta skaitytis.

(daugiau…)

ARM: Serial bootloader

Posted: 2015-01-03 in Darbeliai
Žymos:,

Kažkada seniai, pačioje pradžioje, žadėjau pabandyti ir pademonstruoti STM32 procesoriaus flashinimą per nuosekliąją jungtį (USART). Tai padaroma visai lengvai, nes STM32 procesoriai iš gamyklos iškeliauja turėdami specializuotą bootloader’į. Tiesa, nėra viskas su tuo nuosekliuoju bootloaderiu taip gerai, kaip norėtųsi, bet jis iš bėdos tinka projektuojant smulkias plokštes, kuriose tiesiog negalime sau leisti tokios prabangos, kaip JTAG prijungimo kaladė. Labai pasistengus net ir be nuosekliosios jungties turėtų būti įmanoma prasisukti ir padaryti programos įkėlimą per USB. Bet su USB yra kito vargo: reikia keisti bootloaderį ir keisti sukurtą dvejetainį programos failą. Trumpai tariant, su USB įkėlimu galima netyčia prisidirbti. Aš USB įkėlimu iki galo domėtis tingėjau, nes USART pasirodė labai gražu ir paprasta.

(daugiau…)

ARM: sisteminis laikmatis

Posted: 2014-12-20 in Darbeliai
Žymos:,

ARM architektūroje numatytas sisteminis laikmatis, vadinamas SysTick. Jis yra bendras visiems ARM procesoriams nepriklausomai nuo gamintojo, o jo visi registrai ir kita chernia yra CMSIS bibliotekoje. CMSIS, kaip kadaise rašiau, yra bendrinė ir esminė ARM konsorciumo biblioteka. Taigi, kas joje yr, yra visuose ARM procesoriuose — ar tai būtų LPC, ar STM32, ar Atmel ARM.

SysTick’as yra visiškai „tūpas“ laikmatukas. Jis tik tiek ir moka: „įsižiebti“ kas nurodytą laiko tarpą. Vidinis jo skaitliukas yra 24 bitų. Laikmatuką gali valdyti tiek procesoriaus taktinis dažnis, tiek specialus dažnio etalonas (na, gal koks nors labai tikslus kvarcas kartais įsiūtas gamintojo, jei to reikia).

Sisteminiai laikmačiai paprastai naudojami operacinėse sistemose įjunginėti pagrindinį visų užduočių dispečerį. Primityvių OS yra nemažai sukurta ir šiems mažiems procesoriukams ir perjunginėjimą tarp įvairių „gijų“ atlieka būtent dispečeris pagal sisteminį laikmatį. Man, tuo tarpu, norisi paprasčiausio dalyko: milisekundžių skaitliuko ir „busy-wait“ pauzės funkcijos, kuri pagal milisekundžių skaitliuką užlaikytų kodo vykdymą. Be abejo, „busy-wait“ yra labai negeras dalykas, bet primityviems darbeliams jis yra parankus ir patogus. Dar man norisi turėti patogų programinį laikmatį, pagrįstą JeeLabs MilliTimer. O štai ką aš toliau iš to sisteminio laikmačio išvystysiu — bus matyt. Šiandienai — primityvus skaitliukas, pora funkcijikių ir funkcinė C MilliTimer adaptacija.

(daugiau…)

Praėjo daugiau, kaip pusė metų nuo mano paskutinio ARM pakrapštymo. Tai laiko nebuvo, tai noro, tai ten vienas bandymas su ARM neišdegė… kurio ir neaprašiau, beje.

Bet štai praėjusią savaitę užėjo mirtinas noras kažkiek ARM pakrapštyt. Motyvacija yra tame, kad man jau beveik mirtinai reikia gudraus skydelio savo Avietei, o AVR procesoriaus tam tinkamo neturiu. Na, galėčiau Atmega2560 ar panašų nusigriebt, bet ten irgi ne viskas taip, kaip man norėtųsi. Todėl nusprendžiau, kad bent jau šiek tiek pasikapstysiu po ARM galimybes.

(daugiau…)

Žadėjau praeitame įraše tobulinti mirksiuką, bet šiek tiek persigalvojau. Visgi pradžiai nusprendžiau pasigilinti į ARM GPIO galimybes, kurios smarkiai platesnės už AVR. Ir, tiesą sakant, tiek platesnės, kad kelia milžinišką pagarbą STMicroelectronics inžinieriams. Na, o gal ARM projektuotojams, nežinau, kurie čia atsakingi už visą tą gėrį.

(daugiau…)

Kadangi pavyko sujungti J-Link ir mažą ARM devborduką, tai reikia ir „Hello, World“ atitikmenį padaryti. Mikrovaldikliams „Hello, World“ yra, be abejo, mirksintis šviesos diodas.

(daugiau…)