Manoratra bootloader OTA ho an'ny ATmega128RFA1 izahay (ao anatin'ny fitaovana Smart Response XE)

Manoratra bootloader OTA ho an'ny ATmega128RFA1 izahay (ao anatin'ny fitaovana Smart Response XE)

Izany rehetra izany dia nanomboka tamin'ny fividianana fitaovana mahaliana amin'ny tsena faharoa - Smart Response XE (famaritana fohy). Natao ho an'ny sekoly izany: ny mpianatra tsirairay ao amin'ny kilasy dia mahazo fitaovana mitovy amin'ny kahie elektronika na mpandika teny tamin'ny taona 802.15.4, mametraka fanontaniana ny mpampianatra, ary ny mpianatra dia manoratra ny valiny eo amin'ny klavin'ny fitaovana, izay raisina amin'ny alΓ lan'ny a fantsona radio (XNUMX) mankany amin'ny mpandray mifandray amin'ny PC-n'ny mpampianatra.

Ireo fitaovana ireo dia natsahatra taona maromaro lasa izay, ary izay novidin'ny sekoly $100-$200 tsirairay avy dia mipoitra ao amin'ny eBay amin'ny $10 na latsaka. Ny fitaovana ao dia tena mety amin'ny fanandramana geeky:

  • Kitendry fanalahidy 60
  • fampisehoana miaraka amin'ny famahana ny 384 Γ— 136, 2 bit isaky ny piksel - mitovy amin'ny BC, CGA, fa 4 tsy loko, fa gradations ny famirapiratana
  • microcontroller ATmega128RFA1 (fahatsiarovana tselatra 128 kB, ROM 4 kB, RAM 16 kB, transceiver 802.15.4)
  • ivelany (mifandray amin'ny microcontroller fa tsy ny fitaovana manontolo) 1 megabit (128 kilobyte) fahatsiarovana tselatra miaraka amin'ny interface SPI
  • efitrano ho an'ny singa AAA 4.

Avy amin'ny anaran'ny microcontroller dia mazava fa an'ny fianakaviana AVR izy io, izay midika fa ny fanaovana ny fitaovana Arduino-compatible dia asa mihoatra noho ny tsy misy dikany ...

Avy amin'ny vaovao Hackday fantatry ny mpanoratra hoe inona izany efa nanao (io rohy io ihany no milaza aminao ny tokony hifandraisana amin'ny toerana misy azy), manana fahafahana manao lalao ho an'ny Arduboy:


Saingy ny mpanoratra dia liana kokoa amin'ny fahafahana tsy hilalao amin'ny fitaovana, fa hianatra:

  • Flash fahatsiarovana miaraka amin'ny serial SPI interface tsara
  • bootloaders ho an'ny AVR
  • fenitra 802.15.4

Nanomboka tamin'ny fanoratana ny mpanoratra trano famakiam-boky (GPL v3), izay ahafahanao manomboka ny fampisehoana, ny lahatsoratra mivoaka ary ny mahitsizoro, ary miditra amin'ny fahatsiarovana tselatra SPI. Avy eo dia nanomboka namoaka hevitra momba ny fampiasana azo ampiharina ny fitaovana: VT-100-compatible pocket terminal, lalao Multiplayer. Rehefa avy nanamboatra fitaovana telo izy, dia nanapa-kevitra ny "hampianatra" azy ireo handray sary "eny amin'ny rivotra". Inona no tsy ho mahaliana, fa tena mety ihany koa: sarotra ny manokatra ny raharaha ny fitaovana, ary eo ambanin'ny fonon'ny batterie dia misy lavaka izay ahafahanao mampifandray ny programer JTAG amin'ny solaitrabe.

Manoratra bootloader OTA ho an'ny ATmega128RFA1 izahay (ao anatin'ny fitaovana Smart Response XE)

Izany dia ampy ny mampakatra ny Arduino bootloader, fa tsy ny sketch - ny serial seranan-tsambo dia tsy mifandray, ka tsy afaka manao raha tsy manokatra ny raharaha. Ary koa, ny andalana TX0 sy RX0 amin'ny seranan-tsambo andiany voalohany dia mitambatra amin'ny tsipika fandatsaham-bato amin'ny matrice fitendry, izany hoe ireo manadihady ny fanalahidin'ny fiasa eo amin'ny sisin'ny fampisehoana. Fa inona no azonao atao - ny mpanoratra dia namorona izao:

Manoratra bootloader OTA ho an'ny ATmega128RFA1 izahay (ao anatin'ny fitaovana Smart Response XE)

Nentiny tany ny tsipika JTAG, ary tsy ilaina ny manokatra ny efitranon'ny bateria. Ary mba hampidirana sketches dia nampifandray ny seranan-tsambo roa tamin'ny mpampitohy iray ihany aho, ary nanampy switch, satria miaraka amin'ny bateria napetraka, dia tsy azo atao ny mamono ny fitaovana amin'ny fomba hafa.

Naharitra ela ny niasa tamin'ny vy fametahana, antsy fampiasa ary basy lakaoly. Amin'ny ankapobeny, ny fandefasana sketsa "amin'ny rivotra" dia mety kokoa;

Ny Arduino IDE dia mampiasa ny programa handefasana sketsa avrdude. Izy io dia mifandray amin'ny microcontroller mampiasa ny protocol STK500, izay ahafahanao mamindra rakitra amin'ny lafiny roa. Tsy mifanaraka amin'ny fantsona misy fahatarana miovaova, fanodikodinana ary fahaverezan'ny angona. Raha misy zavatra mivaha na mikotrokotroka ao amin'ny fantsona serial, dia mety ho lasa adala ianao mitady ny antony. Indray mandeha ny mpanoratra nijaly nandritra ny antsasaky ny andro mandra-pahatsapany fa ny olana dia ratsy tariby, ary koa ny capricious CP2102 interface tsara mpanova. Na ny microcontroller misy mpanova interface tsara, ohatra, ATmega32u4, dia afaka manao toy izany indraindray. Ny mpampiasa Arduino rehetra dia nahatsikaritra fa tsy dia fahita firy ny lesoka rehefa mampakatra sketsa. Indraindray mandeha tsara ny firaketana, fa mandritra ny andrana mamaky dia misy fahadisoana hita. Tsy midika akory izany fa nisy lesoka teo am-panoratana - nisy tsy fahombiazana teo am-pamakiana. Eritrereto izao fa rehefa miasa "amin'ny rivotra" dia hitranga ihany koa izany, fa matetika kokoa.

Rehefa avy nanandrana fomba samihafa mba handresena an'io olana io ny mpanoratra dia namoaka ireto manaraka ireto. Ny fitaovana dia manana fahatsiarovana tselatra 128 KB miaraka amin'ny interface SPI - mandray angon-drakitra amin'ny tariby izahay (tadidio fa efa manana fitaovana iray misy mpampitohy eo amin'ny sisiny ny mpanoratra), ampiasao ity fahatsiarovana ity ho buffer, ary alefaso amin'ny radio ny angona. fantsona mankany amin'ny fitaovana hafa. Salama avy any Cybiko.

Rehefa avy nanoratra ny kaody hiasa amin'ny onjam-peo, ary koa ny endri-tsoratra, ny loader lasa lava kokoa noho ny 4 kilobytes. Noho izany, ny sandan'ny HFUSE dia tsy maintsy niova avy amin'ny 0xDA ho 0xD8. Ankehitriny ny bootloader dia mety hahatratra 8 kilobytes ny halavany, ary ny adiresy fanombohana dia 0x1E000 izao. Hita taratra ao amin'ny Makefile izany, fa tokony hodinihina koa rehefa mameno bootloader amin'ny avrdude.

Ny transceiver 802.15.4 ao amin'ny ATmega128RFA1 dia natao hampiasaina amin'ny fampiasana ny protocole. Zigbee, izay somary saro-takarina, ka nanapa-kevitra ny mpanoratra ny handefasana fonosana fotsiny. Izany dia ampiharina amin'ny fitaovana ao amin'ny ATmega128RFA1, noho izany dia kely ny kaody ilaina. Ary koa, noho ny fahatsorana, nanapa-kevitra ny mpanoratra ny hampiasa fantsona raikitra, tsy mamela anao hisafidy izany na dia amin'ny tanana aza. Ny fenitra 802.15.4 dia manohana fantsona 16 miaraka amin'ny isa 11 ka hatramin'ny 26. Tena feno olona izy ireo, misy koa ny fantsona WiFi mifanipaka (mena ny fantsona ZigBee, manga, maitso ary mavo ny WiFi).

Manoratra bootloader OTA ho an'ny ATmega128RFA1 izahay (ao anatin'ny fitaovana Smart Response XE)

Hita fa ny fantsona 15 sy 26 no kely indrindra amin'ny fitsabahana amin'ny WiFi. Disclaimer: tsy fantatry ny mpandika teny raha azo atao ny manatsotra ny ZigBee amin'ity fomba ity. Angamba tokony hanao fandaharana bebe kokoa isika ary hampihatra izany tanteraka?

Amin'ny fitaovana voalohany dia ilaina ny mampihatra milina fanjakana voafetra izay mamindra angona amin'ny alΓ lan'ny protocol STK500. Amin'ny ankapobeny, ny hafatra ampitaina sy voaray dia ampy, fa ny sasany dia mifamatotra amin'ireo izay nandalo tamin'ny fantsona teo aloha. Omena ny famaritana ny fifanakalozan-kevitra eto.

Ny singa iray manan-danja amin'ity fifanakalozan-kevitra ity dia ny fandefasana fonosana natao hosoratana amin'ny fitadidiana tselatra ho an'ny fitaovana halehana. Ho an'ny microcontrollers tsotra ao amin'ny fianakaviana AVR, ny haben'ny pejy dia 128 bytes, fa ho an'ny ATmega128RFA1 dia 256. Ary ho an'ny fahatsiarovana tselatra izay mifandray amin'ny protocol SPI dia mitovy. Ny programa amin'ny fitaovana voalohany, rehefa mampakatra sketch, dia tsy mamindra izany avy hatrany amin'ny faharoa, fa manoratra izany amin'ity fahatsiarovana ity. Rehefa manamarina ny fahamarinan'ny fidirana ny Arduino IDE dia alefa izay voasoratra ao. Ankehitriny dia mila mampita ny angona voaray amin'ny alalan'ny onjam-peo mankany amin'ny fitaovana faharoa isika. Amin'izay fotoana izay ihany koa dia mitranga matetika ny fiovan'ny fandraisana mankany amin'ny fandefasana sy miverina. Ny protocol STK500 dia tsy miraharaha ny fahatarana, fa tsy mandefitra ny fahaverezan'ny angona (hafahafa, fa voalaza etsy ambony fa misy fiantraikany amin'ny famindrana angon-drakitra ihany koa ny fahatarana). Ary tsy azo ihodivirana ny fatiantoka mandritra ny fifindran'ny Wireless. Ny ATmega128RFA1 dia manana fampiharana fitaovana miverimberina amin'ny fangatahana miverimberina rehefa misy fisalasalana momba ny fahamarinan'ny famindrana, fa ny mpanoratra dia nanapa-kevitra ny hampihatra izany amin'ny rindrambaiko. Namorona protocole izay misy angon-drakitra betsaka kokoa mikoriana amin'ny fomba iray noho ny iray hafa.

Tsy tonga lafatra fa miasa. Ny pejy 256-byte dia mizara ho fizarana efatra, izay samy ampitaina amin'ny rivotra toy ny fonosana. Ny fonosana iray dia afaka mitazona angon-drakitra hatramin'ny 125 byte miampy bita iray amin'ny halavany ary bita roa ho an'ny CRC. Noho izany dia apetraka ao ny sombiny 64 bytes miaraka amin'ny laharan'ny pejy sy fizarana (avy amin'ny 0 ka hatramin'ny 3). Ny fitaovana fandraisana dia manana fari-pitsipika ahafahany manara-maso ny isan'ny fizarana voaray, ary rehefa tonga izy efatra dia mahazo fanamafisana ny fitaovana fandefasana fa voaray ny pejy iray manontolo. Tsy misy fanamafisana (CRC tsy nifanaraka) - alefaso indray ny pejy manontolo. Ny hafainganam-pandeha dia mihoatra noho ny amin'ny fampitana amin'ny alalan'ny tariby. Jereo:


Saingy amin'ny ankapobeny dia ilaina ny manome fomba mety hampifandraisana ny tariby amin'ireo fitaovana handefasana sketches sy amin'ny alΓ lan'izany. Ohatra, apetraho ao anatin'ny converter interface tsara toy izany ny CP2102, toy ny eo amin'ny sary, ary apetaho eo amin'ny solaitrabe izany mba hahazaka ny hery rehefa mampifandray sy manapaka ny tariby Micro USB.

Manoratra bootloader OTA ho an'ny ATmega128RFA1 izahay (ao anatin'ny fitaovana Smart Response XE)

Izy io koa dia manana stabilizer 3,3-volt (sy ny fomba fampiasana azy amin'ny fitaovana misy famatsiana herinaratra 6-volt - raha toa ka manana stabilizer mitovy ihany izy, ary azonao ampiana diode roa mba hisafidianana ho azy hoe iza amin'izy ireo no hanome hery ny fitaovana) . Ny LED telo rehetra dia tsy maintsy apetraka amin'ny birao mpanova interface tsara, raha tsy izany dia hampiditra ny bateria koa izy ireo rehefa miasa amin'izy ireo, ary hanelingelina ny fandatsaham-bato ary hiasa miaraka amin'ny fahatsiarovana tselatra miaraka amin'ny interface SPI.

Ny fanenjehana tanjona iray dia nanjary nahaliana kokoa noho ny fanatrarana azy (ary tsy mila izany vazivazy momba ny fiara fitateram-bahoaka izany). Ny mpanoratra dia nianatra betsaka momba ny bootloaders AVR, ny fahatsiarovana tselatra SPI, ny protocol STK500 ary ny fenitra 802.15.4.

Ny kaody hafa rehetra ankoatry ny tranomboky voalaza etsy ambony dia βˆ’ eto, ary eo ambanin'ny GPL v3. Twitter an'ny mpanoratra - eto.

Source: www.habr.com

Add a comment