Kei te tuhi matou i te OTA bootloader mo ATmega128RFA1 (hei waahanga o te taputapu Smart Response XE)

Kei te tuhi matou i te OTA bootloader mo ATmega128RFA1 (hei waahanga o te taputapu Smart Response XE)

I timata katoa i te hoko a te kaituhi i tetahi taputapu whakamere i runga i te maakete tuarua - Smart Response XE (whakamārama poto). Ko te tikanga mo nga kura: ka whiwhi ia akonga o te karaehe he taputapu rite ki te pukamahi hiko, he kaiwhakamaori ranei mai i te iwa tekau, ka patai te kaiako i tetahi patai, ka patohia e nga akonga nga whakautu ki nga papapātuhi o nga taputapu, ka riro ma te hongere reo irirangi (802.15.4) ki te kaikawe e hono ana ki te PC o te kaiako.

I whakamutua enei taputapu i etahi tau ki muri, a ko nga mea i hokona e nga kura mo te $100-$200 kei te puta ake i runga eBay mo te $10 iti iho ranei. Ko te taputapu kei reira he tino pai mo nga whakamatautau geeky:

  • 60 papapātuhi matua
  • whakaatu me te taumira o 384×136, 2 paraka mo ia pika - he rite ki te BC, CGA, engari 4 ehara i nga tae, engari nga karaehe o te kanapa.
  • microcontroller ATmega128RFA1 (128 kB mahara flash, 4 kB ROM, 16 kB RAM, 802.15.4 transceiver)
  • waho (e pa ana ki te microcontroller, kaua ki te taputapu katoa) 1 megabit (128 kiropaita) mahara uira me te atanga SPI
  • waahanga mo nga waahanga AAA 4.

Mai i te ingoa o te microcontroller e marama ana no te whanau AVR, ko te tikanga ko te hanga i te taputapu Arduino-hototahi he mahi iti noa atu...

Mai i nga korero Hackaday i kitea e te kaituhi he aha tena kua oti kē (ko taua hononga e whakaatu ki a koe he aha te hono ki hea), ka whai waahi ki te whakahaere keemu mo Arduboy:


Engari he nui ake te hiahia o te kaituhi ki te whai waahi kia kaua e takaro i runga i te taputapu, engari ki te ako:

  • mahara flash ki te atanga SPI rangatū
  • bootloaders mo AVR
  • paerewa 802.15.4

I timata te kaituhi ma te tuhi whare pukapuka (GPL v3), ka taea e koe te arawhiti i te whakaaturanga, te tuhinga whakaputa me nga tapawha, me te uru ki te mahara flash SPI. Na ka timata ia ki te whakaputa whakaaro mo te whakamahi tika i te taputapu: he tauranga pukoro hototahi VT-100, nga keemu maha. I muri a‘e i to ’na hamani-faahou-raa e toru mau matini, ua faaoti oia e “haapii” ia ratou ia farii i te mau hoho‘a “i nia i te reva”. He aha te mea e pai ana, engari he tino watea hoki: he uaua ki te whakatuwhera i te keehi taputapu i nga wa katoa, a kei raro i te uhi o te waahanga pākahiko he kohao anake ka taea e koe te hono atu i tetahi kaitakataka JTAG ki te poari.

Kei te tuhi matou i te OTA bootloader mo ATmega128RFA1 (hei waahanga o te taputapu Smart Response XE)

He nui tenei ki te tuku i te Arduino bootloader, engari ehara i te huahua - kaore i te hono te tauranga rangatū ki reira, na reira kaore e taea e koe te mahi me te kore e whakatuwhera i te keehi. Ano, ko nga rarangi TX0 me RX0 o te tauranga rangatū tuatahi ka honoa ki nga rarangi pooti o te matrix papapātuhi, ara ko era e pooti ana i nga taviri mahi i nga taha o te whakaaturanga. Engari me aha koe - na te kaituhi tenei i hanga:

Kei te tuhi matou i te OTA bootloader mo ATmega128RFA1 (hei waahanga o te taputapu Smart Response XE)

I mauria mai e ia nga raina JTAG ki reira, a inaianei kaore he take ki te whakatuwhera i te waahanga pākahiko. Na kia taea ai te tuku huahua, ka honoa e ahau nga tauranga rangatū e rua ki te hono kotahi, me te taapiri i te whakawhiti, na te mea kua whakauruhia nga pākahiko, kaore e taea te whakaweto i te taputapu ma tetahi atu huarahi.

He roa te wa ki te mahi me te rino whakapiri, te maripi whaipainga me te pu kapia. I te nuinga o te waa, he pai ake te tuku huahua "i runga i te rangi"; me tere taatau ki te hanga i tetahi mea mo tenei.

Ka whakamahia e Arduino IDE te papatono ki te tuku huahua kaare. Ka mahi tahi me te microcontroller ma te whakamahi i te kawa STK500, ka taea e koe te whakawhiti i nga konae ki nga taha e rua. He kino te hototahi ki nga hongere ka taea te whakaroa taurangi, te korikori me te ngaronga raraunga. Mena ka wetekina tetahi mea, ka haruru ranei i te hongere rangatū, ka porangi koe ki te rapu i te take. I te wa i mamae te kaituhi mo te haurua o te ra tae noa ki tana mohio ko te raruraru he taura kino, me te kaitahuri atanga CP2102. Ahakoa ko te microcontroller me te kaitahuri atanga hanga-i roto, hei tauira, ATmega32u4, ka taea te mahi penei i etahi wa. Kua kite nga kaiwhakamahi Arduino katoa ko nga hapa i te wa e tuku ana i nga huahua ehara i te mea onge. I etahi wa ka pai te tuhi, engari i te wa o te whakamatautau ka kitea he hapa. Ehara i te mea he hapa i te wa e tuhi ana - i rahua te panui. Whakaarohia ka mahi "i runga i te rangi" ka puta ano te mea, engari he maha ake.

I muri i te whakamatau i nga huarahi rereke ki te hinga i tenei raruraru, ka puta mai nga korero e whai ake nei. He 128 KB te mahara flash o te taputapu me te atanga SPI - ka whiwhi tatou i nga raraunga i runga i nga waea (me mahara kua kotahi te taputapu a te kaituhi me te hono ki te taha), whakamahia tenei mahara hei parepare, ka tukuna nga raraunga ki runga i te reo irirangi. hongere ki tetahi atu taputapu. Kia ora mai i a Cybiko.

I muri i te tuhi i te waehere hei mahi me te hongere reo irirangi, me te momotuhi, ka roa ake te kaitautai i te 4 kiropaita. No reira, me huri te uara HFUSE mai i te 0xDA ki te 0xD8. Inaianei ka eke ki te 8 kiropaita te roa o te bootloader, a ko te wahitau timata ko 0x1E000 inaianei. Ka kitea tenei i roto i te Makefile, engari me whai whakaaro ano ina whakakiia kaikawe mā avrdude.

Ko te 802.15.4 transceiver i roto i te ATmega128RFA1 i hangaia i te tuatahi ki te mahi ma te whakamahi i te kawa Zigbee, he tino uaua, no reira ka whakatau te kaituhi ki te tuku noa i nga paatete. Ka whakatinanahia tenei i roto i nga taputapu i roto i te ATmega128RFA1, no reira he iti te waehere e hiahiatia ana. Ano hoki, mo te ngawari, i whakatau te kaituhi ki te whakamahi i tetahi hongere kua whakaritea, kaore e taea e koe te kowhiri ma te ringaringa. Ko te paerewa 802.15.4 e tautoko ana i nga hongere 16 me nga nama mai i te 11 ki te 26. He tino kikii, ko etahi hoki e inaki ana i nga hongere WiFi (he whero nga awa ZigBee, he puru, he kaakaariki me te kowhai he WiFi).

Kei te tuhi matou i te OTA bootloader mo ATmega128RFA1 (hei waahanga o te taputapu Smart Response XE)

I puta ko nga hongere 15 me te 26 he iti rawa te whakaraerae ki te wawaotanga mai i te WiFi. I tohua e te kaituhi te tuarua. Whakakahoretanga: kaore te kaiwhakamaori e mohio mena ka whakaaetia kia whakangawarihia a ZigBee penei. Tena pea me mahi i etahi atu kaupapa me te whakatinana katoa?

I runga i te taputapu tuatahi, he mea tika ki te whakatinana i tetahi miihini ahua mutunga ka tuku raraunga ma te kawa STK500. Ko te nuinga, ko nga karere ka tukuna, ka riro mai he mea e tika ana, engari ko etahi e herea ana ki era i haere i te hongere o mua. Ka hoatu he whakaahuatanga mo te korerorero konei.

Ko tetahi waahanga nui o tenei korero ko te tukunga o nga paatete e kiia ana kia tuhia ki te mahara flash o te taputapu e haere ana. Mo nga microcontrollers ngawari o te whanau AVR, ko te rahi o te wharangi he 128 paita, engari mo te ATmega128RFA1 he 256. A mo te mahara flash e hono ana ma te kawa SPI, he rite tonu. Ko te kaupapa i roto i te taputapu tuatahi, i te wa e tuku ana i te huahua, kaore i te whakawhiti tonu ki te tuarua, engari ka tuhia ki tenei mahara. Ina tirohia e te Arduino IDE te tika o te urunga, ka tukuna nga mea i tuhia ki reira. Inaianei me tuku nga raraunga kua riro mai ma te hongere reo irirangi ki te taputapu tuarua. I te wa ano, he maha nga wa ka huri mai i te whiwhi ki te tuku me te hoki mai. Ko te kawa STK500 kaore e aro ki nga whakaroa, engari kaore e aro ki te ngaro o nga raraunga (he rerekee, engari i kii i runga ake ko nga whakaroa ka pa ki te whakawhiti raraunga). A ko nga mate i te wa o te tuku ahokore kaore e taea te karo. Ko te ATmega128RFA1 he whakaurunga taputapu i roto i nga tono tukurua i te wa e ruarua ana mo te tika o te whakawhitinga, engari i whakatau te kaituhi ki te whakatinana i taua mea i roto i te raupaparorohiko. I whakawhanakehia e ia he kawa he nui ake nga raraunga e rere ana i tetahi huarahi i tera atu.

Ehara i te mea tino pai, engari e mahi ana. Kua wehea te wharangi 256-paita ki nga wahanga e wha, ka tukuna atu ia waahanga ki runga i te rangi hei paatete. Ka taea e te paita te pupuri ki te 125 paita o nga raraunga me te kotahi paita mo te roa me te rua paita mo te CRC. Na ko nga kongakonga 64 paita te roa me nga tau wharangi me nga waahanga (mai i te 0 ki te 3) ka tuu ki reira. He taurangi to te taputapu whiwhi ka taea e ia te whai i te maha o nga waahanga kua riro, a ka tae mai nga wha katoa, ka whiwhi te taputapu tuku i te whakapumautanga kua riro katoa te wharangi. Karekau he whakau (kare i rite te CRC) - tukuna ano te wharangi katoa. He nui ake te tere i te wa e tuku ana ma te taura. Tirohia:


Engari i te nuinga o te waa, me whakarato he huarahi watea ki te hono i te taura ki nga taputapu mo te tuku huahua me te whakauru. Hei tauira, tuu ki roto i taua kaitahuri atanga i runga i te CP2102, pera i te whakaahua, ka whakapiri ki te papa kia taea ai te tu atu i te kaha ina hono me te momotu i te taura Micro USB.

Kei te tuhi matou i te OTA bootloader mo ATmega128RFA1 (hei waahanga o te taputapu Smart Response XE)

He 3,3-volt hoki te whakapumau (me pehea te whakamahi i roto i tetahi taputapu whai mana hiko 6-volt - mena he rite tonu te whakapumau, a ka taea e koe te taapiri kia rua nga diodes hei kowhiri aunoa ko wai o raatau ka hiko te taputapu) . Ko nga rama rama e toru me whakakorehia mai i te papa whakawhiti atanga, ki te kore ka utaina e ratou nga pākahiko i te wa e mahi ana ki runga, ka pokanoa hoki ki te pooti papapātuhi me te mahi me te mahara uira me te atanga SPI.

Ko te whai i tetahi whainga i puta ake he mea whakamere atu i te whakatutuki (kaore e hiahiatia he kata mo te pahi). He maha nga ako a te kaituhi mo nga AVR bootloaders, te mahara flash SPI, te kawa STK500 me te paerewa 802.15.4.

Ko etahi atu waehere hei taapiri atu ki te whare pukapuka kua whakaahuatia i runga ake nei ko − konei, a kei raro ano i te GPL v3. Twitter a te Kaituhi - konei.

Source: will.com

Tāpiri i te kōrero