Re ngola bootloader ea OTA bakeng sa ATmega128RFA1 (e le karolo ea sesebelisoa sa Smart Response XE)

Re ngola bootloader ea OTA bakeng sa ATmega128RFA1 (e le karolo ea sesebelisoa sa Smart Response XE)

Tsohle li qalile ha mongoli a reka sesebelisoa se khahlisang 'marakeng oa bobeli - Smart Response XE (tlhaloso e khuts'oane). E reretsoe likolo: moithuti e mong le e mong ka tlelaseng o fumana sesebelisoa se tšoanang le bukana ea elektronike kapa mofetoleli ho tloha lilemong tsa bo-802.15.4, mosuoe o botsa potso, 'me liithuti li ngola likarabo holim'a li-keyboards tsa lisebelisoa, tse amoheloang ka kanale ea seea-le-moea (XNUMX) ho moamoheli ea hoketsoeng ho PC ea mosuoe.

Lisebelisoa tsena li ile tsa khaotsoa lilemong tse 'maloa tse fetileng,' me seo likolo li rekileng $100-$200 se seng le se seng se se se hlaha ho eBay ka $10 kapa ka tlase ho moo. Thepa e teng moo e loketse haholo liteko tsa geeky:

  • 60 keybhoto
  • pontšo e nang le qeto ea 384×136, 2 bits ka pixel - e tšoanang le BC, CGA, empa 4 eseng mebala, empa likhahla tsa khanya
  • microcontroller ATmega128RFA1 (128 kB flash memory, 4 kB ROM, 16 kB RAM, 802.15.4 transceiver)
  • kantle (mabapi le microcontroller, eseng sesebelisoa kaofela) 1 megabit (128 kilobyte) memori ea flash e nang le sebopeho sa SPI
  • kamore ea likarolo tse 4 tsa AAA.

Ho tsoa lebitsong la microcontroller ho hlakile hore ke oa lelapa la AVR, ho bolelang ho etsa hore sesebelisoa sa Arduino se lumellane ke mosebetsi o fetang o sa reng letho ...

Ho tloha litabeng ho ea pele Hackaday mongoli o ile a fumana hore na ke eng e se e entse (sehokelo se tšoanang se u bolella hore na u hokahane hokae), ho ba le monyetla oa ho bapala lipapali tsa Arduboy:


Empa mongoli o thahasella haholo monyetla oa ho se bapale sesebelisoa, empa ho ithuta:

  • memori ea flash e nang le sebopeho sa serial SPI
  • li-bootloader tsa AVR
  • standard 802.15.4

Mongoli o qalile ka ho ngola lilaebrari (GPL v3), e u lumellang ho qala ponts'o, mongolo o hlahisoang le likhutlo li tharo, 'me u fihlelle mohopolo oa flash oa SPI. Eaba o qala ho hlahisa maikutlo a tšebeliso e sebetsang ea sesebelisoa: setsi sa pocket se lumellanang le VT-100, lipapali tsa libapali tse ngata. Ka mor’a hore a tsosolose lisebelisoa tse tharo, o ile a etsa qeto ea ho li “ruta” ho amohela litšoantšo “moeeng.” Ke eng e neng e ke ke ea thahasellisa feela, empa hape e le e loketseng haholo: nyeoe ea sesebelisoa e thata ho bula nako le nako, 'me tlas'a sekoahelo sa kamore ea betri ho na le likoti feela tse u lumellang hore u kopanye moqapi oa JTAG ho boto.

Re ngola bootloader ea OTA bakeng sa ATmega128RFA1 (e le karolo ea sesebelisoa sa Smart Response XE)

Sena se lekane ho kenya bootloader ea Arduino, empa eseng sketch - boema-kepe ba serial ha bo hokahane moo, ka hona o ntse o ke ke oa etsa ntle le ho bula nyeoe. Hape, mela ea TX0 le RX0 ea boema-kepe ba pele ba serial e kopantsoe le mela ea likhetho ea keyboard matrix, e leng e khethang linotlolo tsa ts'ebetso mahlakoreng a pontšo. Empa u ka etsa eng - mongoli o thehile sena:

Re ngola bootloader ea OTA bakeng sa ATmega128RFA1 (e le karolo ea sesebelisoa sa Smart Response XE)

O tlisitse li-line tsa JTAG moo, 'me joale ha ho na lebaka la ho bula karolo ea betri. 'Me e le hore litšoantšo li ka kenngoa, ke ile ka hokahanya likou tse peli tsa serial ho sehokelo se le seng, hape ke eketsa switch, hobane ka libeteri tse kentsoeng, ho ke ke ha khoneha ho tima sesebelisoa ka tsela efe kapa efe.

Ho ile ha nka nako e telele ho sebetsa ka tšepe e sollang, thipa e sebetsang le sethunya sa sekhomaretsi. Ka kakaretso, ho kenya litšoantšo ka "moea" ho bonolo haholoanyane; re hloka ho qapa ho hong bakeng sa sena.

Arduino IDE e sebelisa lenaneo ho kenya litšoantšo sehla. E sebelisana le microcontroller e sebelisa protocol STK500, e u lumellang ho fetisetsa lifaele ka mahlakore ka bobeli. Ha e tsamaellane hantle le likanale moo tieho e fapaneng, ho sotha le tahlehelo ea data e ka khonehang. Haeba ho na le ntho e hlephileng kapa e rustle ka seteisheneng sa serial, o ka hlanya o batla sesosa. Hang ha mongoli a utloa bohloko ka halofo ea letsatsi ho fihlela a hlokomela hore bothata e ne e le mohala o mobe, hammoho le converter ea CP2102 ea capricious. Esita le microcontroller e nang le sesebelisoa sa ho fetolela sebopeho, mohlala, ATmega32u4, ka linako tse ling e ka sebetsa tjena. Mosebelisi e mong le e mong oa Arduino o hlokometse hore liphoso ha u kenya litšoantšo ha li tloaelehe haholo. Ka linako tse ling ho rekota ho tsamaea hantle, empa nakong ea tlhahlobo ea tlhahlobo ho fumanoa phoso. Sena ha se bolele hore ho bile le phoso nakong ea ho ngola - ho bile le phoso nakong ea ho bala. Joale nahana hore ha u sebetsa "moea" ho tla etsahala ntho e tšoanang, empa hangata haholo.

Kamora ho leka mekhoa e fapaneng ea ho hlola bothata bona, mongoli o ile a tla ka tse latelang. Sesebelisoa se na le memori ea flash ea 128 KB e nang le sebopeho sa SPI - re fumana data holim'a lithapo (hopola hore mongoli o se a ntse a e-na le sesebelisoa se le seng se nang le sehokelo ka lehlakoreng), sebelisa mohopolo ona e le buffer, 'me u romelle data ka seea-le-moea. kanale ho sesebediswa seseng. Hello from Cybiko.

Ka mor'a ho ngola khoutu ho sebetsa le mocha oa seea-le-moea, hammoho le fonte, mojaro o ile oa fetoha nako e telele ho feta 4 kilobytes. Ka hona, boleng ba HFUSE bo ne bo tlameha ho fetoloa ho tloha ho 0xDA ho ea ho 0xD8. Hona joale bootloader e ka ba bolelele ba lik'hilograma tse 8, 'me aterese ea ho qala hona joale ke 0x1E000. Sena se bonahala ho Makefile, empa hape se lokela ho tsotelloa ha ho tlatsa bootloader ka avrdude.

Transceiver ea 802.15.4 ho ATmega128RFA1 qalong e etselitsoe ho sebetsa ho sebelisoa protocol. Zigbee, e thata haholo, kahoo mongoli o ile a etsa qeto ea ho fetisetsa lipakete ho e-na le hoo. Sena se kengoa ts'ebetsong ka har'a lisebelisoa tsa ATmega128RFA1, kahoo khoutu e nyane ea hlokahala. Hape, bakeng sa ho nolofatsa, mongoli o ile a etsa qeto ea ho sebelisa mocha o tsitsitseng, o sa u lumelle ho o khetha esita le ka letsoho. Tekanyetso ea 802.15.4 e ts'ehetsa likanale tse 16 tse nang le linomoro ho tloha ho 11 ho isa ho 26. Li tletse haholo, tse ling li boetse li fetana likanale tsa WiFi (tse khubelu ke likanale tsa ZigBee, boputsoa, ​​botala le bosehla ke WiFi).

Re ngola bootloader ea OTA bakeng sa ATmega128RFA1 (e le karolo ea sesebelisoa sa Smart Response XE)

Ho ile ha fumaneha hore likanale tsa 15 le 26 li kotsing ea ho sitisoa ke WiFi. Mongoli o khethile ea bobeli ho tsona. Boitlhotlhollo: mofetoleli ha a tsebe hore na ho lumelloa ho nolofatsa ZigBee ka tsela ena. Mohlomong re lokela ho etsa lenaneo le leng hape le ho le kenya tšebetsong ka botlalo?

Sesebelisoa sa pele, hoa hlokahala ho kenya ts'ebetsong mochine oa boemo bo fokolang o fetisang data ka protocol ea STK500. Hangata, melaetsa e fetisetsoang le e amoheloang e ikemela, empa e meng e tlameletsoe ho e fetileng mocha pejana. Tlhaloso ea moqoqo e fanoe mona.

Karolo ea bohlokoa ea puisano ena ke phetiso ea lipakete tse reretsoeng ho ngolloa mohopolong oa flash oa sesebelisoa seo u eang ho sona. Bakeng sa li-microcontrollers tse bonolo tsa lelapa la AVR, boholo ba leqephe ke li-byte tse 128, empa bakeng sa ATmega128RFA1 ke 256. 'Me bakeng sa memori ea flash e kopantsoeng ka protocol ea SPI, e tšoana. Lenaneo le sesebelisoa sa pele, ha le kenya sketch, ha le e fetisetse hang-hang ho ea bobeli, empa le e ngolla mohopolong ona. Ha Arduino IDE e hlahloba ho nepahala ha ho kena, e romelloa se ngotsoeng moo. Hona joale re hloka ho fetisetsa data e amoheloang ka mocha oa seea-le-moea ho sesebelisoa sa bobeli. Ka nako e ts'oanang, ho tloha ho amohela ho ea ho ho fetisetsa le ho khutlela morao ho etsahala hangata. Protocol ea STK500 ha e tsotelle ho lieha, empa ha e mamelle tahlehelo ea data (e makatsang, empa ho boletsoe ka holimo hore ho lieha ho boetse ho ama phetiso ea data). 'Me tahlehelo nakong ea phetisetso ea waelese e ke ke ea qojoa. ATmega128RFA1 e na le ts'ebetsong ea hardware e hahiloeng ka har'a likōpo tse phetoang hangata ha ho e-na le lipelaelo mabapi le ho nepahala ha phetisetso, empa mongoli o ile a etsa qeto ea ho kenya ts'ebetsong se tšoanang ho software ka boeena. O thehile protocol eo ho eona lintlha tse ngata li phallang ka tsela e 'ngoe ho feta tse ling.

Ha e ea phethahala, empa ea sebetsa. Leqephe la 256-byte le arotsoe ka likarolo tse 'nè, tseo e' ngoe le e 'ngoe ea tsona e fetisoang moeeng e le pakete. Pakete e ka boloka data e fihlang ho li-byte tse 125 hammoho le byte e le 'ngoe bakeng sa bolelele le li-byte tse peli bakeng sa CRC. Kahoo likhechana tse bolelele ba li-byte tse 64 hammoho le linomoro tsa maqephe le likarolo (ho tloha ho 0 ho ea ho 3) li behiloe moo. Sesebelisoa se amohelang se na le phetoho e e lumellang ho latela hore na ke likarolo tse kae tse amohetsoeng, 'me ha tse 'nè li fihla, sesebelisoa sa ho romela se fumana tiiso ea hore leqephe lohle le amohetsoe. Ha ho netefatso (CRC ha e amane) - romella leqephe lohle hape. Lebelo le leholo ho feta ha o fetisa ka thapo. Bona:


Empa ka kakaretso, ho tla hlokahala ho fana ka mokhoa o loketseng oa ho hokahanya thapo ho lisebelisoa tsa ho kenya litšoantšo le ka eona. Mohlala, beha ka har'a sesebelisoa se joalo sa sehokelo ho CP2102, joalo ka setšoantšong, 'me u se khomarele botong e le hore e ka mamella matla ha o hokela le ho hakolla thapo ea Micro USB.

Re ngola bootloader ea OTA bakeng sa ATmega128RFA1 (e le karolo ea sesebelisoa sa Smart Response XE)

E boetse e na le 3,3-volt stabilizer (le mokhoa oa ho e sebelisa ka sesebelisoa se nang le matla a 6-volt - haeba feela e na le stabilizer e tšoanang, 'me u ka eketsa diode tse peli ho ikhethela hore na ke efe ho tsona e tla matlafatsa sesebelisoa) . Li-LED tsohle tse tharo li tlameha ho tlosoa botong ea converter ea interface, ho seng joalo li tla kenya libeteri ha li sebetsa ho tsona, hape li kena-kenane le khetho ea keyboard le ho sebetsa ka memori ea flash e nang le sebopeho sa SPI.

Ho phehella sepheo ho ile ha thahasellisa le ho feta ho e fihlela ('me ha ho hlokahale motlae oo ka bese). Mongoli o ithutile ho hongata ka li-bootloader tsa AVR, SPI flash memory, STK500 protocol le 802.15.4 standard.

Likhoutu tse ling kaofela ntle le laeborari e hlalositsoeng ka holimo ke − mona, hape e tlas'a GPL v3. Twitter ea Mongoli - mona.

Source: www.habr.com

Eketsa ka tlhaloso