Kupanga Arduino Juu ya Hewa (OTA) - Ameba Arduino: Hatua 4
Kupanga Arduino Juu ya Hewa (OTA) - Ameba Arduino: Hatua 4
Anonim
Kupanga Arduino Juu ya Hewa (OTA) - Ameba Arduino
Kupanga Arduino Juu ya Hewa (OTA) - Ameba Arduino

Kuna microcontroller nyingi za Wi-Fi huko nje kwenye soko, watengenezaji wengi hufurahiya kuandaa microcontroller yao ya Wi-Fi wakitumia Arduino IDE. Walakini, moja wapo ya vitu baridi zaidi ambayo dhibiti ndogo ya Wi-Fi inapaswa kutoa huwa haionyeshwi, hiyo ni programu na kupakia nambari yako kwa mbali na bila waya kutumia kazi ya OTA (Zaidi ya Hewa).

Katika Agizo hili, nitakuonyesha jinsi ya kuanzisha OTA kwenye microcontroller yako ya Wi-Fi ukitumia Arduino IDE ya kila mahali kwenye Mdhibiti Mdhibiti wa Wi-Fi wa Ameba Arduino!

Vifaa

Ameba Arduino x 1

Hatua ya 1: OTA

OTA
OTA

OTA (Zaidi ya Hewa) inahusu utaratibu wa kuboresha mkondoni kupitia mtandao.

Arduino IDE inatoa huduma ya OTA, ambayo inafuata mtiririko wa kazi kwenye takwimu hapo juu.

(i) Arduino IDE hutafuta kupitia mDNS kwa vifaa vilivyo na huduma ya Arduino IDEOTA katika mtandao wa ndani.

(ii) Kwa kuwa huduma ya mDNS inaendesha Ameba, Ameba hujibu utaftaji wa mDNS na kufungua bandari maalum ya TCP kwa unganisho.

(iii) Mtumiaji huendeleza programu katika Arduino IDE. Ukikamilisha, chagua bandari ya mtandao.

(iv) Bonyeza pakia. Kisha Arduino IDE inapeleka picha ya OTA kwa Ameba kupitia TCP, Ameba huhifadhi picha hiyo kwa anwani maalum na kuweka chaguo la boot kuanza kutoka kwenye picha hii wakati ujao.

Utiririshaji wa kazi una sehemu tatu: mDNS, TCP na mchakato wa picha ya OTA. Maelezo yanayohusiana na mDNS imeelezewa kwenye mafunzo ya mDNS. Programu ya tundu la TCP hutumiwa katika kuhamisha picha na tayari imetolewa katika OTA API.

Katika sehemu inayofuata, tutajadili juu ya jinsi ya kusindika picha ya OTA, na kuanzisha maarifa ya kimsingi juu ya mpangilio wa kumbukumbu ya Ameba na mtiririko wa buti.

Hatua ya 2: Mpangilio wa Kumbukumbu ya Ameba Flash

Mpangilio wa Kumbukumbu ya Ameba Flash
Mpangilio wa Kumbukumbu ya Ameba Flash

Ukubwa wa kumbukumbu ya Ameba RTL8195A ni 2MB, ni kati ya 0x00000000 hadi 0x00200000. Walakini, saizi ya kumbukumbu ya Ameba RTL8710 ni 1MB. Ili kutoshea matumizi ya bodi tofauti, tunachukulia mpangilio wa kumbukumbu ya flash ni 1MB.

Kama inavyoonyeshwa kwenye takwimu hapo juu, mpango wa Ameba unachukua sehemu tatu za kumbukumbu ya flash:

- Picha ya Boot:

Hiyo ni, bootloader. Wakati Ameba anainua juu, huweka picha ya boot kwenye kumbukumbu na hufanya uanzishaji. Kwa kuongezea, huamua wapi kuendelea baada ya bootloader. Bootloader inaangalia anwani ya OTA na pini ya kupona katika eneo la data ya mfumo na huamua ni picha ipi itatekelezwa baadaye. Mwisho wa bootloader, inaweka picha kwenye kumbukumbu na inafanikiwa kuitekeleza.

- Picha chaguo-msingi 2:

Nambari ya msanidi programu imewekwa katika sehemu hii, anwani huanza kutoka 0x0000B000. Baiti 16 za kwanza ni kichwa cha picha, 0x0000B008 ~ 0x0000B00F inajumuisha Saini, ambayo hutumiwa kudhibitisha ikiwa picha ni halali. Sehemu ya saini ina maadili mawili halali ya kutofautisha picha mpya na picha ya zamani.

- Picha ya OTA:

Takwimu katika sehemu hii pia ni msimbo wa msanidi programu. Kwa chaguo-msingi, sehemu hii ya kumbukumbu huanza kutoka 0x00080000 (inaweza kubadilishwa). Tofauti kuu kati ya picha ya OTA na Picha chaguomsingi 2 ni anwani ya kumbukumbu ya flash na thamani ya Saini.

Mbali na nambari hiyo, kuna vizuizi vya data:

- Takwimu za Mfumo:

Kuzuia data ya mfumo huanza kutoka 0x00009000. Kuna data mbili zinazohusiana na OTA:

1. Anwani ya OTA: data 4 ka kuanzia 0x00009000. Inasema anwani ya Picha ya OTA. Ikiwa thamani ya anwani ya OTA ni batili (yaani, 0xFFFFFFFF), picha ya OTA katika kumbukumbu ya flash haiwezi kupakiwa kwa usahihi.

2. Pini ya Kurejeshea: data 4 ka ka kuanzia 0x00009008, pini ya urejeshi hutumiwa kuamua ni picha gani (chaguo-msingi Picha 2 au Picha ya OTA) kutekeleza wakati picha zote ni halali. Ikiwa dhamana ya urejeshi ni batili (yaani, 0xFFFFFFFF), picha mpya itatekelezwa kwa chaguo-msingi.

Takwimu za mfumo zitaondolewa wakati tutapakia programu kwa Ameba kupitia DAP. Hiyo ni, anwani ya OTA itaondolewa na Ameba ataamua hakuna picha ya OTA.

- Takwimu za Usawazishaji: Takwimu za upimaji wa pembeni zimewekwa kwenye kizuizi hiki. Kwa kawaida data hizi hazipaswi kufutwa.

Hatua ya 3: Mtiririko wa Boot

Mtiririko wa buti
Mtiririko wa buti

Kutoka kwenye picha hapo juu, Tunazungumzia hali zifuatazo: (i) OTA haitumiki, tumia DAP kupakia programu:

Katika hali hii, bootloader huangalia saini ya picha chaguo-msingi 2 na anwani ya OTA. Kwa kuwa anwani ya OTA imeondolewa, picha chaguo-msingi 2 itachaguliwa kutekeleza.

(ii) Picha ya OTA inahamishiwa kwa Ameba, anwani ya OTA imewekwa kwa usahihi, pini ya kurejesha haijawekwa:

Ameba amepokea picha iliyosasishwa kupitia OTA, saini ya picha chaguomsingi 2 itawekwa saini ya zamani.

Bootloader huangalia saini ya picha chaguo-msingi 2 na anwani ya OTA. Itapata anwani ya OTA ina picha halali ya OTA. Kwa kuwa pini ya kupona haijawekwa, inachagua picha mpya (yaani, picha ya OTA) itekelezwe.

(iii) Picha ya OTA inahamishiwa kwa Ameba, anwani ya OTA imewekwa kwa usahihi, pini ya kurejesha imewekwa:

Ameba amepokea picha iliyosasishwa kupitia OTA, saini ya picha chaguomsingi 2 itawekwa saini ya zamani.

Bootloader huangalia saini ya picha chaguo-msingi 2 na anwani ya OTA. Itapata anwani ya OTA ina picha halali ya OTA. Kisha angalia pini ya kupona. Ikiwa pini ya urejesho imeunganishwa na LOW, picha mpya (kwa mfano, picha ya OTA) itatekelezwa. Ikiwa pini ya urejeshi imeunganishwa na JUU, picha ya zamani (kwa mfano, picha chaguo-msingi 2) itatekelezwa.

Hatua ya 4: Mfano

Mfano
Mfano
Mfano
Mfano
Mfano
Mfano
Mfano
Mfano

Kutumia huduma ya OTA, tafadhali sasisha firmware ya DAP kwa toleo> 0.7 (v0.7 haijajumuishwa). Kiwanda chaguo-msingi cha DAP firmware ni toleo la 0.7. Tafadhali fuata maagizo ya kusasisha firmware ya DAP:

Fungua mfano: "Faili" -> "Mifano" -> "AmebaOTA" -> "ota_basic"

Jaza habari za ssid na nywila kwenye nambari ya mfano ya unganisho la mtandao.

Kuna vigezo kadhaa vinavyohusiana na OTA:

§ MY_VERSION_NUMBER: Katika toleo la kwanza, tunahitaji kuweka anwani ya OTA na pini ya urejeshi. Kwa kuwa wakati huu tunapakia kupitia USB ndio toleo la kwanza, hatuhitaji kubadilisha thamani hii.

§ OTA_PORT: Arduino IDE itapata Ameba kupitia mDNS. Ameba atamwambia Arduino IDE kwamba inafungua bandari ya TCP 5000 kusubiri picha ya OTA.

§ RECOVERY_PIN: Sanidi pini inayotumika kupona. Tunatumia pin 18 hapa.

Kisha tunatumia programu ya kupakia USB kwa Ameba. Bonyeza Zana -> Bandari, angalia bandari ya serial ya kutumia:

Tafadhali kumbuka kuwa Arduino IDE hutumia bandari moja kwa programu ya kupakia na kuzidi. Ili kuzuia hali ambayo logi haiwezi kutolewa wakati tunatumia OTA, tunatumia terminal nyingine ya bandari ya serial (kwa mfano, Tera term au putty) badala ya kufuatilia serial kutazama ujumbe wa logi.

Kisha bonyeza pakia na bonyeza kitufe cha kuweka upya.

Katika ujumbe wa logi:

1. Kati ya "===== Ingiza Picha 1 ====" na "Ingiza Picha 2 ====", unaweza kupata "Flash Image 2: Addr 0xb000". Hii inamaanisha Ameba huamua kuanza kutoka Picha ya chaguo-msingi 2 saa 0xb000.

2. Baada ya "Ingiza Picha 2 ====", unaweza kupata "Hii ni toleo la 1". Huu ndio ujumbe wa kumbukumbu ambao tunaongeza kwenye mchoro.

3. Baada ya Ameba kushikamana na AP na kupata anwani ya IP "192.168.1.238", inamsha mDNS na inasubiri mteja.

Ifuatayo, tunarekebisha "MY_VERSION_NUMBER" kuwa 2.

Bonyeza "Zana" -> "Bandari", unaweza kuona orodha ya "Bandari za Mtandao". Pata "MyAmeba mnamo 192.168.1.238 (Ameba RTL8195A)", MyAmeba ni jina la kifaa cha mDNS tulichoweka kwenye nambari ya sampuli, na "192.168.1.238" ni IP ya Ameba.

Ikiwa huwezi kupata mtandao wa mtandao wa Ameba, tafadhali thibitisha:

- ikiwa kompyuta yako na Ameba ziko katika mtandao huo huo wa ndani?

- jaribu kuanzisha tena Arduino IDE.

- angalia ujumbe wa kumbukumbu kwenye Serial Monitor ili kuona ikiwa Ameba imeunganishwa na AP kwa mafanikio.

Kisha bonyeza upload. Wakati huu mpango utapakiwa kupitia TCP. Katika terminal ya logi, unaweza kuona habari ya unganisho la mteja.

Picha ya OTA inapopakuliwa kwa mafanikio, Ameba itawasha upya na kufuata logi itaonyeshwa kwenye kituo cha kumbukumbu.

- Kati ya "===== Ingiza Picha 1 ====" na "Ingiza Picha 2 ====", unaweza kuona ujumbe wa logi "Flash Image 2: Addr 0x80000". Hii inamaanisha Ameba huamua kuanza kutoka Picha ya OTA kwa 0x80000.

- Baada ya "Ingiza Picha 2 ====", logi "Hii ni toleo la 2" ni ujumbe ambao tunaongeza kwenye mchoro.

Kurejelea picha ya awali baada ya picha ya OTA kupakuliwa kwa Ameba, tafadhali unganisha pini ya kupona tulioweka kwenye mchoro (i.e., pini 18) hadi HIGH (3.3V), na ubonyeze kuweka upya.

Kisha Picha chaguo-msingi 2 itachaguliwa wakati wa kuwasha. Kumbuka kuwa picha ya OTA iliyopakuliwa haifutwa, mara tu pini ya urejeshi imekatika kutoka JUU, picha ya OTA itatekelezwa.

Tunafupisha mtiririko wa maendeleo kwa kutumia OTA katika takwimu ifuatayo.

Ilipendekeza: