Tikulemba bootloader ya OTA ya ATmega128RFA1 (monga gawo la chipangizo cha Smart Response XE)

Tikulemba bootloader ya OTA ya ATmega128RFA1 (monga gawo la chipangizo cha Smart Response XE)

Zonse zidayamba pomwe wolemba akugula chida chosangalatsa pamsika wachiwiri - Smart Response XE (kufotokozera mwachidule). Zapangidwira masukulu: wophunzira aliyense m'kalasi amalandira chipangizo chofanana ndi cholembera chamagetsi kapena womasulira kuyambira zaka za makumi asanu ndi anayi, mphunzitsi amafunsa funso, ndipo ophunzira amalemba mayankho pamakibodi a zida, zomwe zimalandiridwa kudzera pa wailesi (802.15.4) kwa wolandira wolumikizidwa ndi PC ya mphunzitsi.

Zida izi zidayimitsidwa zaka zingapo zapitazo, ndipo zomwe masukulu adagulidwa $100- $200 iliyonse tsopano akutulukira pa eBay kwa $10 kapena kuchepera. Zida zomwe zilipo ndizoyenera kwambiri kuyesa kwa geeky:

  • 60 kiyibodi
  • kuwonetsera ndi 384 Γ— 136, 2 bits pa pixel - zofanana ndi BC, CGA, koma 4 osati mitundu, koma gradations ya kuwala
  • microcontroller ATmega128RFA1 (128 kB flash memory, 4 kB ROM, 16 kB RAM, 802.15.4 transceiver)
  • kunja (mogwirizana ndi microcontroller, osati chipangizo chonse) 1 megabit (128 kilobyte) flash memory ndi mawonekedwe a SPI
  • chipinda cha 4 AAA zinthu.

Kuchokera ku dzina la microcontroller zikuwonekeratu kuti ndi za banja la AVR, zomwe zikutanthauza kuti kupanga chipangizo cha Arduino-compatible ndi ntchito yoposa yaing'ono ...

Kuyambira nkhani mpaka Tsiku lomaliza wolemba anapeza chomwe icho chinali mwachita kale (ulalo womwewo umakuuzani zomwe mungalumikizane komwe), kukhala ndi mwayi wothamanga masewera a Arduboy:


Koma wolembayo ali ndi chidwi kwambiri ndi mwayi wosasewera pa chipangizocho, koma kuphunzira:

  • flash memory yokhala ndi mawonekedwe a serial SPI
  • ma bootloaders a AVR
  • Mtengo wa 802.15.4

Wolembayo anayamba ndi kulemba malaibulale (GPL v3), yomwe imakupatsani mwayi woyambitsa zowonetsera, zolemba zotulutsa ndi ma rectangles, ndikufikira kukumbukira kwa SPI flash. Kenako anayamba kubwera ndi malingaliro ogwiritsira ntchito chipangizochi: thumba la thumba la VT-100, masewera ambiri. Atamanganso zida zitatu, adaganiza zowaphunzitsa kuti alandire zojambulajambula "pamlengalenga." Zomwe sizingakhale zosangalatsa zokha, komanso zosavuta kwambiri: chipangizo cha chipangizochi chimakhala chovuta kutsegula nthawi zonse, ndipo pansi pa chivundikiro cha chipinda cha batri pali mabowo okha omwe amakulolani kulumikiza pulogalamu ya JTAG ku bolodi.

Tikulemba bootloader ya OTA ya ATmega128RFA1 (monga gawo la chipangizo cha Smart Response XE)

Izi ndizokwanira kukweza Arduino bootloader, koma osati chojambula - doko la serial sililumikizidwa pamenepo, kotero simungathe kuchita popanda kutsegula mlanduwo. Komanso, mizere ya TX0 ndi RX0 ya doko loyamba la serial imaphatikizidwa ndi mizere yovotera ya matrix a kiyibodi, omwe amasankha makiyi ogwirira ntchito m'mbali mwachiwonetsero. Koma mungachite chiyani - wolemba adapanga izi:

Tikulemba bootloader ya OTA ya ATmega128RFA1 (monga gawo la chipangizo cha Smart Response XE)

Anabweretsa mizere ya JTAG kumeneko, ndipo tsopano palibe chifukwa chotsegula chipinda cha batri. Ndipo kuti zojambulajambula zitha kukwezedwa, ndidalumikiza madoko onse awiri ku cholumikizira chomwecho, ndikuwonjezeranso chosinthira, chifukwa ndi mabatire omwe adayikidwa, ndizosatheka kuzimitsa chipangizocho mwanjira ina iliyonse.

Zinatenga nthawi ndithu kuti tigwire ntchito ndi chitsulo chosungunula, mpeni wothandiza komanso mfuti ya glue. Nthawi zambiri, kukweza zojambula "pamlengalenga" ndikosavuta; tifunika kupanga china chake pa izi.

Arduino IDE imagwiritsa ntchito pulogalamuyi kukweza zojambula avrdude. Imalumikizana ndi microcontroller pogwiritsa ntchito protocol STK500, zomwe zimakulolani kusamutsa mafayilo mbali zonse ziwiri. Simayenderana bwino ndi ma tchanelo omwe kuchedwa kosinthika, kusokoneza komanso kutayika kwa data ndikotheka. Ngati china chake chitamasuka kapena chipwirikiti mumsewu, mutha kupenga kufunafuna chomwe chimayambitsa. Kamodzi wolemba anavutika kwa theka la tsiku mpaka anazindikira kuti vuto linali chingwe zoipa, komanso capricious CP2102 mawonekedwe Converter. Ngakhale microcontroller yokhala ndi chosinthira chokhazikika, mwachitsanzo, ATmega32u4, nthawi zina imatha kuchita motere. Wogwiritsa ntchito aliyense wa Arduino adawona kuti zolakwika pakukweza zojambula sizosowa kwambiri. Nthawi zina kujambula kumayenda bwino, koma pakuyesa kuwerenga cholakwika chimadziwika. Izi sizikutanthauza kuti panali cholakwika polemba - panali kulephera pakuwerenga. Tsopano taganizirani kuti pamene mukugwira ntchito "pamlengalenga" chinthu chomwecho chidzachitika, koma nthawi zambiri.

Atayesa njira zosiyanasiyana zothetsera vutoli, wolembayo adapeza zotsatirazi. Chipangizocho chili ndi 128 KB flash memory ndi mawonekedwe a SPI - timalandira deta pa mawaya (kumbukirani kuti wolembayo ali ndi chipangizo chimodzi chokhala ndi cholumikizira kumbali), gwiritsani ntchito kukumbukira uku ngati buffer, ndikutumiza deta pawailesi. njira ku chipangizo china. Moni kuchokera ku Cybiko.

Pambuyo polemba kachidindo kuti mugwire ntchito ndi wailesi, komanso font, chojambuliracho chinakhala chotalika kuposa ma kilobytes 4. Chifukwa chake, mtengo wa HFUSE udayenera kusinthidwa kuchoka ku 0xDA kupita ku 0xD8. Tsopano bootloader imatha kukhala mpaka 8 kilobytes kutalika, ndipo adilesi yoyambira tsopano ndi 0x1E000. Izi zikuwonetsedwa mu Makefile, koma ziyeneranso kuganiziridwa podzaza kutsegula kudzera avrdude.

Transceiver ya 802.15.4 mu ATmega128RFA1 idapangidwa kuti izigwira ntchito pogwiritsa ntchito protocol. Zigbee, zomwe ndizovuta kwambiri, kotero wolembayo adaganiza zongotumiza mapaketi m'malo mwake. Izi zimayikidwa mu hardware mu ATmega128RFA1, kotero kuti code yaying'ono ikufunika. Komanso, kuti zikhale zosavuta, wolembayo adaganiza zogwiritsa ntchito njira yokhazikika, osakulolani kuti musankhe ngakhale pamanja. Muyezo wa 802.15.4 umathandizira mayendedwe a 16 okhala ndi manambala kuyambira 11 mpaka 26. Amakhala odzaza kwambiri, ena amakhalanso ndi njira za WiFi (zofiira ndi njira za ZigBee, buluu, zobiriwira ndi zachikasu ndi WiFi).

Tikulemba bootloader ya OTA ya ATmega128RFA1 (monga gawo la chipangizo cha Smart Response XE)

Zinapezeka kuti njira 15 ndi 26 ndizosavuta kusokonezedwa ndi WiFi. Wolembayo adasankha yachiwiri mwa iwo. Chodzikanira: womasulira sadziwa ngati akuloledwa kufewetsa ZigBee motere. Mwina tiyenera kuchita pang'ono mapulogalamu ndi kukhazikitsa kwathunthu?

Pachida choyamba, m'pofunika kukhazikitsa makina owerengeka omwe amatumiza deta kudzera mu protocol ya STK500. Kwa mbali zambiri, mauthenga omwe amatumizidwa ndi kulandiridwa amakhala odzidalira okha, koma ena amamangiriridwa ndi omwe adadutsa pa tchanelo kale. Kufotokozera kwa zokambirana kwaperekedwa apa.

Chinthu chofunika kwambiri pa zokambiranazi ndi kutumiza mapaketi omwe amalembedwa ku flash memory ya chipangizo chomwe akupita. Kwa ma microcontrollers osavuta a banja la AVR, kukula kwa tsamba ndi 128 byte, koma kwa ATmega128RFA1 ndi 256. Ndipo kwa kukumbukira kwa flash komwe kumalumikizidwa kudzera pa protocol ya SPI, ndizofanana. Pulogalamu mu chipangizo choyamba, pokweza sketch, sichimasamutsira chachiwiri, koma imalemba kukumbukira uku. Pamene Arduino IDE ikuyang'ana kulondola kwa kulowa, imatumizidwa zomwe zinalembedwa pamenepo. Tsopano tikufunika kufalitsa zomwe talandira kudzera pawailesi ku chipangizo chachiwiri. Panthawi imodzimodziyo, kusintha kuchokera ku kulandira kupita ku kutumiza ndi kubwereranso kumachitika kawirikawiri. Protocol ya STK500 ilibe chidwi ndi kuchedwa, koma sikulekerera kutayika kwa deta (zachilendo, koma zinanenedwa pamwambapa kuti kuchedwa kumakhudzanso kusamutsa deta). Ndipo zotayika panthawi yotumizira opanda zingwe ndizosapeweka. ATmega128RFA1 ili ndi kukhazikitsidwa kwa zida zomangidwira zopempha mobwerezabwereza pakakhala kukayikira kulondola kwa kusamutsa, koma wolembayo adaganiza zogwiritsanso ntchito pulogalamuyo. Adapanga protocol momwe zambiri zimayendera njira imodzi kuposa inzake.

Si zangwiro, koma zimagwira ntchito. Tsamba la 256-byte lagawidwa m'magawo anayi, omwe amafalitsidwa pamlengalenga ngati paketi. Phukusi limatha kusunga data mpaka ma byte 125 kuphatikiza ma byte amodzi kutalika ndi ma byte awiri a CRC. Chifukwa chake zidutswa 64 zautali pamodzi ndi manambala amasamba ndi magawo (kuyambira 0 mpaka 3) zimayikidwa pamenepo. Chipangizo cholandirira chimakhala ndi kusintha komwe kumalola kuti azitha kuyang'anira kuchuluka kwa magawo omwe alandilidwa, ndipo onse anayi akafika, chipangizo chotumizira chimalandira chitsimikizo kuti tsamba lonse lalandiridwa. Palibe chitsimikizo (CRC sinafanane) - tumizaninso tsamba lonse. Liwiro ndilokulirapo kuposa potumiza kudzera pa chingwe. Onani:


Koma kawirikawiri, zingakhale zofunikira kupereka njira yabwino yolumikizira chingwe kuzipangizo zokopera zojambula ndikudutsamo. Mwachitsanzo, ikani mkati mwa chosinthira cholumikizira chotere pa CP2102, monga pachithunzichi, ndikumata pa bolodi kuti chithe kupirira mphamvu polumikiza ndikudula chingwe cha Micro USB.

Tikulemba bootloader ya OTA ya ATmega128RFA1 (monga gawo la chipangizo cha Smart Response XE)

Ilinso ndi 3,3-volt stabilizer (ndi momwe mungagwiritsire ntchito mu chipangizo chokhala ndi mphamvu ya 6-volt - ngati ili ndi stabilizer yomweyi, ndipo mukhoza kuwonjezera ma diode awiri kuti musankhe okha omwe angagwiritse ntchito chipangizocho) . Ma LED onse atatu ayenera kukhala osasunthika pa bolodi yosinthira mawonekedwe, apo ayi adzawonjezera mabatire akamagwira ntchito pa iwo, komanso kusokoneza kuvota kwa kiyibodi ndikugwira ntchito ndi flash memory yokhala ndi mawonekedwe a SPI.

Kutsata cholinga kunakhala kosangalatsa kwambiri kuposa kukwaniritsa (ndipo osafunikira nthabwala za basi). Wolembayo adaphunzira zambiri za AVR bootloaders, SPI flash memory, STK500 protocol ndi 802.15.4 standard.

Ma code ena onse kuphatikiza laibulale yomwe yafotokozedwa pamwambapa ndi βˆ’ apa, ndipo ilinso pansi pa GPL v3. Wolemba Twitter - apa.

Source: www.habr.com

Kuwonjezera ndemanga