Tiri kunyora OTA bootloader yeATmega128RFA1 (sechikamu cheSmart Response XE mudziyo)

Tiri kunyora OTA bootloader yeATmega128RFA1 (sechikamu cheSmart Response XE mudziyo)

Izvo zvese zvakatanga nemunyori achitenga chinonakidza chishandiso pamusika wechipiri - Smart Response XE (tsananguro pfupi) Inoitirwa zvikoro: mudzidzi wega wega mukirasi anogashira chishandiso chakafanana nebhuku remagetsi kana muturikiri kubva kumakore makumi mapfumbamwe, mudzidzisi anobvunza mubvunzo, uye vadzidzi vanonyora mhinduro pamakiibhodhi emidziyo, iyo inotambirwa kuburikidza ne redhiyo chiteshi (802.15.4) kune anogamuchira akabatana nePC yemudzidzisi.

Midziyo iyi yakamiswa makore akati wandei apfuura, uye izvo zvikoro zvakatengwa ne $100- $200 chimwe nechimwe chave kubuda paBay nemadhora gumi kana pasi. Iyo hardware iripo yakanyatsokodzera kuyedza geeky:

  • 60 kiyi kiyibhodhi
  • ratidza nechisarudzo che 384 Γ— 136, 2 bits pa pixel - yakafanana neBC, CGA, asi 4 kwete mavara, asi gradations yekupenya
  • microcontroller ATmega128RFA1 (128 kB flash memory, 4 kB ROM, 16 kB RAM, 802.15.4 transceiver)
  • zvekunze (zvichienderana neiyo microcontroller, kwete iyo yese mudziyo) 1 megabit (128 kilobyte) flash memory ine SPI interface.
  • kamuri ye4 AAA zvinhu.

Kubva pazita reiyo microcontroller zviri pachena kuti ndeyemhuri yeAVR, zvinoreva kuti kugadzira iyo Arduino-inoenderana ibasa rinopfuura diki ...

Kubva munhau zvichienda mberi hackaday munyori akaziva kuti chii vatoita (iyo link inokuudza zvekubatanidza kupi), uine mukana wekumhanyisa mitambo yeArduboy:


Asi munyori anonyanya kufarira mukana wekusatamba pachigadzirwa, asi kudzidza:

  • flash memory ine serial SPI interface
  • bootloaders yeAVR
  • chiyero 802.15.4

Munyori akatanga nekunyora raibhurari (GPL v3), iyo inokutendera kuti utange kuratidza, kuratidza mavara nemakona, uye kuwana SPI flash memory. Akabva atanga kuunza mazano ekushandisa kwekushandisa kwechigadzirwa: a VT-100-compatible pocket terminal, mitambo yevatambi vakawanda. Mushure mekuvakazve michina mitatu, akasarudza "kuvadzidzisa" kugamuchira mifananidzo "pamhepo." Izvo zvingave zvisingangofadzi chete, asi zvakare zvakanyanya nyore: iyo mudziyo kesi yakaoma kuvhura nguva dzese, uye pasi pebhatiri remukati chivharo pane maburi chete anokubvumira kuti ubatanidze JTAG programmer kubhodhi.

Tiri kunyora OTA bootloader yeATmega128RFA1 (sechikamu cheSmart Response XE mudziyo)

Izvi zvakakwana kurodha Arduino bootloader, asi kwete sketch - serial port haina kubatana ipapo, saka haugone kuita pasina kuvhura kesi. Zvakare, mitsara yeTX0 neRX0 yekutanga serial port inosanganiswa nemitsetse yekuvhota yekeyboard matrix, inova iyo inovhota makiyi ebasa pamativi echiratidziro. Asi chii chaungaite - munyori akavaka izvi:

Tiri kunyora OTA bootloader yeATmega128RFA1 (sechikamu cheSmart Response XE mudziyo)

Akaunza JTAG mitsara ipapo, uye ikozvino hapachada kuvhura kamuri yebhatiri. Uye kuti zvidhori zvigone kurodha, ndakabatanidza ese ari maviri serial ports kune imwechete yekubatanidza, nekuwedzera switch, nekuti nemabhatiri akaiswa, hazvigoneke kudzima chishandiso neimwe nzira.

Zvakatora nguva yakati rebei kushanda nesimbi inosunga, banga rekushandisa uye pfuti yeglue. Kazhinji, kurodha zvidhori "pamusoro pemhepo" zviri nyore; isu tinofanirwa kukurumidza kugadzira chimwe chinhu cheizvi.

Arduino IDE inoshandisa chirongwa kurodha zvikeche avrdude. Iyo inopindirana neiyo microcontroller uchishandisa iyo protocol STK500, iyo inokutendera kuti utumire mafaera mumativi ese. Izvo hazvienderane nematanho apo kunonoka kwakasiyana, kukanganisa uye kurasikirwa kwedata kunogoneka. Kana chimwe chinhu chakasununguka kana kuti rustles mune serial chiteshi, unogona kupenga uchitsvaga chikonzero. Pane imwe nguva munyori akatambura kwehafu yezuva kusvikira aona kuti dambudziko raive rakaipa tambo, pamwe necapricious CP2102 interface inoshandura. Kunyangwe iyo microcontroller ine yakavakirwa-mukati interface inoshandura, semuenzaniso, ATmega32u4, dzimwe nguva inogona kuita seizvi. Wese mushandisi weArduino akaona kuti zvikanganiso kana uchirodha sketches hazvisi zvishoma. Dzimwe nguva kurekodha kunofamba zvakanaka, asi panguva yekuedzwa kuverenga kukanganisa kunoonekwa. Izvi hazvireve kuti pakange paine chikanganiso panguva yekunyora - pane kutadza panguva yekuverenga. Iye zvino fungidzira kuti kana uchishanda "pamusoro pemhepo" chinhu chimwe chete chichaitika, asi kakawanda.

Mushure mekuedza nzira dzakasiyana dzekukunda dambudziko iri, munyori akauya nezvinotevera. Chishandiso chine 128 KB flash memory ine SPI interface - tinogashira data pamusoro pewaya (rangarira kuti munyori atova nechigadzirwa chimwe chine chinongedzo padivi), shandisa iyi ndangariro sebuffer, uye tumira iyo data paredhiyo. chiteshi kune imwe mudziyo. Mhoro kubva Cybiko.

Mushure mekunyora kodhi yekushanda neredhiyo chiteshi, pamwe nefonti, iyo loader yakave yakareba kupfuura 4 kilobytes. Naizvozvo, kukosha kweHFUSE kwaifanira kuchinjwa kubva pa0xDA kuenda ku0xD8. Ikozvino bootloader inogona kusvika ku8 kilobytes kureba, uye kero yekutanga ikozvino 0x1E000. Izvi zvinoratidzwa muMakefile, asi zvinofanirwa kuverengerwa kana uchizadza bootloader via avrdude.

Iyo 802.15.4 transceiver iri muATmega128RFA1 yakagadzirwa kuti ishande ichishandisa protocol. Zigbee, izvo zvakaomesesa, saka munyori akafunga kungoendesa mapaketi panzvimbo. Izvi zvinoitwa muhardware muATmega128RFA1, saka kodhi diki inodiwa. Zvakare, kuti zvive nyore, munyori akafunga kushandisa chiteshi chakamisikidzwa, asingakubvumidzi kuti usarudze kunyange nemaoko. Iyo 802.15.4 yakajairwa inotsigira 16 migero ine nhamba kubva pa11 kusvika 26. Dzakazara vanhu, dzimwe dzinopindiranawo neWiFi migero (dzvuku iZigBee chiteshi, bhuruu, girini uye yero iWiFi).

Tiri kunyora OTA bootloader yeATmega128RFA1 (sechikamu cheSmart Response XE mudziyo)

Zvakaitika kuti chiteshi 15 ne26 hachinyanyi kukanganiswa kubva kuWiFi. Munyori akasarudza yechipiri yacho. Disclaimer: mushanduri haazive kana zvichitenderwa kurerutsa ZigBee nenzira iyi. Zvichida isu tinofanirwa kuita zvishoma hurongwa uye kuishandisa zvizere?

Pamudziyo wekutanga, zvinodikanwa kushandisa finite state muchina unotumira data kuburikidza ne STK500 protocol. Kazhinji, mameseji anofambiswa uye anogashirwa anozvikwanira, asi mamwe akasungirirwa kune ayo akapfuura nepachiteshi kare. Tsanangudzo yenhaurirano inopiwa pano.

Chinhu chakakosha chenhaurirano iyi kufambiswa kwemapaketi anoitirwa kunyorwa kune flash memory yechishandiso chekuenda. Kune ma microcontrollers akareruka emhuri yeAVR, saizi yepeji ndeye 128 bytes, asi kune ATmega128RFA1 ndeye 256. Uye kune flash memory yakabatana kuburikidza neSPI protocol, yakafanana. Iyo purogiramu iri mumudziyo wekutanga, kana uchiisa sketch, haisati ichiendesa kune yechipiri, asi inonyora kune iyi ndangariro. Kana iyo Arduino IDE ichitarisa kurongeka kwekupinda, inotumirwa izvo zvakanyorwa ipapo. Zvino isu tinoda kufambisa iyo yakagamuchirwa data kuburikidza neredhiyo chiteshi kune yechipiri mudziyo. Panguva imwecheteyo, kuchinja kubva pakugamuchira kuenda kune kutumira uye kumashure kunoitika kazhinji. Iyo STK500 protocol haina hanya nekunonoka, asi haibvumiri kurasikirwa kwedata (zvinoshamisa, asi zvakataurwa pamusoro apa kuti kunonoka kunokanganisawo kutumira data). Uye kurasikirwa panguva yekufambisa isina waya hazvidzivisiki. Iyo ATmega128RFA1 ine yakavakirwa-mukati mashandisirwo ekushandisa kwezvikumbiro zvinodzokororwa kana paine kusahadzika nezvekurongeka kwekutamisa, asi munyori akasarudza kuita zvakafanana musoftware pachake. Akagadzira protocol umo data rakawanda rinoyerera nenzira imwe kupfuura imwe.

Haina kukwana, asi inoshanda. Peji ye256-byte yakakamurwa kuita zvikamu zvina, chimwe nechimwe chinofambiswa pamusoro pemhepo sepaketi. Pakiti inogona kubata kusvika 125 bytes yedata pamwe nebhaiti imwe pakureba uye maviri mabhayiti eCRC. Saka zvidimbu 64 byte kureba pamwe nenhamba dzepeji nezvikamu (kubva pa0 kusvika pa3) zvinoiswa ipapo. Iyo yekugamuchira mudziyo ine shanduko inobvumira kuti itarise kuti mangani zvikamu zvakagamuchirwa, uye kana ese mana asvika, mudziyo wekutumira unogamuchira humbowo hwekuti peji rese ragamuchirwa. Hapana tsindidzo (CRC haina kufanana) - tumirazve peji rese. Iyo yekumhanyisa yakatokura kupfuura kana uchitumira netambo. Ona:


Asi kazhinji, zvingave zvakafanira kupa nzira iri nyore yekubatanidza tambo kumidziyo yekuisa sketches uye kuburikidza nayo. Semuenzaniso, isa mukati meiyo interface inoshandura paCP2102, sepamufananidzo, uye namira kubhodhi kuitira kuti igone kumira nesimba paunenge uchibatanidza nekubvisa Micro USB tambo.

Tiri kunyora OTA bootloader yeATmega128RFA1 (sechikamu cheSmart Response XE mudziyo)

Iyo ine zvakare 3,3-volt stabilizer (uye mashandisiro ayo mumudziyo une 6-volt simba rekupa - kana chete iine yakafanana stabilizer, uye iwe unogona kuwedzera madhiodhi maviri kuti uzvisarudzire otomatiki kuti ndeupi wavo achasimbisa mudziyo) . Ese matatu ma LEDs anofanirwa kunge asina kuvharwa kubva kune interface inoshandura bhodhi, zvikasadaro ivo vanozowedzera kutakura mabhatiri kana vachishanda paari, uye zvakare kukanganisa kuvhota kwekhibhodi uye kushanda neflash memory ine SPI interface.

Kutsvaga chinangwa kwakazonyanya kunakidza pane kuzadzisa (uye usade iyo joke nezve bhazi). Munyori akadzidza zvakawanda nezve AVR bootloaders, SPI flash memory, STK500 protocol uye 802.15.4 standard.

Imwe kodhi yese mukuwedzera kuraibhurari yakatsanangurwa pamusoro ndeye - pano, uye zvakare iri pasi peGPL v3. Twitter yemunyori - pano.

Source: www.habr.com

Voeg