Sisukord:

Arduino programmeerimine üle õhu (OTA) - Ameba Arduino: 4 sammu
Arduino programmeerimine üle õhu (OTA) - Ameba Arduino: 4 sammu

Video: Arduino programmeerimine üle õhu (OTA) - Ameba Arduino: 4 sammu

Video: Arduino programmeerimine üle õhu (OTA) - Ameba Arduino: 4 sammu
Video: Меняем язык в Arduino IDE 2024, November
Anonim
Arduino programmeerimine üle õhu (OTA) - Ameba Arduino
Arduino programmeerimine üle õhu (OTA) - Ameba Arduino

Turul on palju WiFi-mikrokontrollereid, paljud tegijad naudivad oma WiFi-mikrokontrolleri programmeerimist Arduino IDE abil. Üks lahedamaid funktsioone, mida Wi-Fi-mikrokontroller pakub, kipub aga kahe silma vahele jääma-see on koodi programmeerimine ja üleslaadimine eemalt ja juhtmevabalt, kasutades OTA (üle õhu) funktsiooni.

Selles juhendis näitan teile, kuidas seadistada OTA oma WiFi-mikrokontrolleril, kasutades üldlevinud Arduino IDE-d Ameba Arduino WiFi-mikrokontrolleril!

Tarvikud

Ameba Arduino x 1

Samm: OTA

OTA
OTA

OTA (Over-The-Air) viitab veebipõhisele täiendamismehhanismile Interneti kaudu.

Arduino IDE pakub OTA -funktsiooni, mis järgib ülaltoodud joonise töövoogu.

(i) Arduino IDE otsib kohalikus võrgus Arduino IDEOTA teenusega seadmeid mDNS -i kaudu.

(ii) Kuna mDNS -teenus töötab Amebas, vastab Ameba mDNS -i otsingule ja avab ühenduse loomiseks konkreetse TCP -pordi.

(iii) Kasutaja arendab programmi Arduino IDE -s. Kui olete lõpetanud, valige võrguport.

(iv) Klõpsake üleslaadimist. Seejärel saadab Arduino IDE OTA -pildi Amebale TCP kaudu, Ameba salvestab pildi kindlale aadressile ja määrab alglaadimisvaliku sellelt pildilt järgmisel korral käivitamiseks.

Töövoog koosneb kolmest osast: mDNS, TCP ja OTA pildiprotsess. MDNS -iga seotud üksikasju kirjeldatakse mDNS -i õpetuses. TCP -sokli programmeerimist kasutatakse pildi edastamisel ja see on juba OTA API -s olemas.

Järgmises osas käsitleme OTA -pildi töötlemist ja tutvustame mõningaid põhiteadmisi Ameba välkmälu paigutuse ja alglaadimise kohta.

2. samm: Ameba välkmälu paigutus

Ameba välkmälu paigutus
Ameba välkmälu paigutus

Ameba RTL8195A välkmälu suurus on 2 MB, vahemikus 0x00000000 kuni 0x00200000. Ameba RTL8710 välkmälu suurus on aga 1 MB. Erinevate tahvlite kasutamiseks sobib eeldame, et välkmälu paigutus on 1 MB.

Nagu ülaltoodud joonisel näidatud, hõivab Ameba programm välkmälu kolm osa:

- Boot pilt?

See tähendab alglaadijat. Kui Ameba käivitub, paigutab see alglaadimispildi mällu ja teostab lähtestamise. Lisaks määrab see, kuhu pärast alglaadurit jätkata. Bootloader vaatab süsteemi andmeala OTA aadressi ja taastepinge ning määrab, milline pilt pärast seda käivitatakse. Alglaaduri lõpus asetab see pildi mällu ja jätkab selle täitmist.

- Vaikimisi pilt 2 :

Sellesse kohta paigutatakse arendaja kood, aadress algab 0x0000B000 -st. Esimesed 16 baiti on pildi päis, 0x0000B008 ~ 0x0000B00F sisaldab allkirja, mida kasutatakse pildi kehtivuse kontrollimiseks. Allkirjaväljal on kaks kehtivat väärtust uue pildi eristamiseks vanast pildist.

- OTA pilt?

Selle osa andmed on ka arendaja kood. Vaikimisi algab see mäluosa väärtusest 0x00080000 (saab muuta). Peamised erinevused OTA -pildi ja vaikepildi 2 vahel on välkmälu aadress ja allkirja väärtus.

Lisaks koodile on mõned andmeplokid:

- Süsteemi andmed?

Süsteemi andmeplokk algab numbrist 0x00009000. OTA-ga seotud andmeid on kaks:

1. OTA aadress : 4 baiti andmed alates 0x00009000. See ütleb OTA pildi aadressi. Kui OTA aadressi väärtus on vale (st 0xFFFFFFFF), ei saa välkmälus olevat OTA pilti õigesti laadida.

2. Taastenõel : 4 baiti andmed alates 0x00009008. Taastamisnõela kasutatakse, et määrata, milline pilt (vaikimisi pilt 2 või OTA -pilt) käivitatakse, kui mõlemad pildid on kehtivad. Kui taastamisnõela väärtus on vale (st 0xFFFFFFFF), käivitatakse uus pilt vaikimisi.

Süsteemi andmed eemaldatakse, kui laadime programmi DAP kaudu Amebale üles. See tähendab, et OTA -aadress eemaldatakse ja Ameba teeb kindlaks, et OTA -pilti pole.

- Kalibreerimisandmed this Sellesse plokki paigutatakse perifeersed kalibreerimisandmed. Tavaliselt ei tohiks neid andmeid kustutada.

3. samm: käivitusvoog

Boot Flow
Boot Flow

Ülaltoodud pildi põhjal

Arutame järgmisi stsenaariume: (i) OTA -d ei kasutata, programmi üleslaadimiseks kasutage DAP -i:

Sellises olukorras kontrollib alglaadur vaikimisi pildi 2 allkirja ja OTA -aadressi. Kuna OTA -aadress on eemaldatud, valitakse käivitamiseks vaikepilt 2.

(ii) OTA -pilt kantakse üle Amebale, OTA -aadress on õigesti määratud, taastepinge pole määratud :

Ameba on saanud värskendatud pildi OTA kaudu, vaikimisi pildi 2 allkirjaks määratakse vana allkiri.

Bootloader kontrollib vaikimisi pildi 2 allkirja ja OTA -aadressi. See leiab, et OTA -aadress sisaldab kehtivat OTA -pilti. Kuna taastepinge pole määratud, valib see uue pildi (st OTA -pildi), mida käivitada.

(iii) OTA -pilt kantakse üle Amebale, OTA -aadress on õigesti määratud, taastepinge on seatud :

Ameba on saanud värskendatud pildi OTA kaudu, vaikimisi pildi 2 allkirjaks määratakse vana allkiri.

Bootloader kontrollib vaikimisi pildi 2 allkirja ja OTA -aadressi. See leiab, et OTA -aadress sisaldab kehtivat OTA -pilti. Seejärel kontrollige taastamisnõela väärtust. Kui taastamisnõel on ühendatud LOW -ga, käivitatakse uus pilt (st OTA -pilt). Kui taastepinge on ühendatud HIGH -iga, käivitatakse vana pilt (st vaikimisi pilt 2).

Samm 4: Näide

Näide
Näide
Näide
Näide
Näide
Näide
Näide
Näide

OTA funktsiooni kasutamiseks uuendage DAP püsivara versiooniks> 0.7 (v0.7 ei kuulu komplekti). DAP -i tehase vaikeseade on versioon 0.7. Palun järgige DAP püsivara uuendamise juhiseid:

Avage näide: "Fail" -> "Näited" -> "AmebaOTA" -> "ota_basic"

Täitke võrguühenduse näidiskoodis ssid ja parool.

OTA -ga on seotud mõned parameetrid:

§ MY_VERSION_NUMBER first Esimeses versioonis peame määrama OTA aadressi ja taastamise PIN -koodi. Kuna seekord laadisime USB kaudu üles esimese versiooni, ei pea me seda väärtust muutma.

§ OTA_PORT : Arduino IDE leiab Ameba mDNS -i kaudu. Ameba ütleb Arduino IDE -le, et avab OCP -pildi ootamiseks TCP -pordi 5000.

§ RECOVERY_PIN : Konfigureerige taastamiseks kasutatav tihvt. Siin kasutame tihvti 18.

Seejärel kasutame Amebale USB -üleslaadimisprogrammi. Klõpsake Tools -> Ports, kontrollige kasutatavat jadaporti :

Pange tähele, et Arduino IDE kasutab üleslaadimisprogrammi ja väljundlogi jaoks ühte porti. Et vältida olukorda, et logi ei saa OTA kasutamisel väljastada, kasutame logiteate vaatamiseks jadamonitori asemel muud jadapordi terminali (nt Tera term või kitt).

Seejärel klõpsake nuppu Laadi üles ja vajutage lähtestamise nuppu.

Logisõnumis:

1. Vahemikus “===== Sisesta pilt 1 ====” ja “Sisesta pilt 2 ====” leiad “Flash Pilt 2: Addr 0xb000”. See tähendab, et Ameba otsustab käivitada vaikimisi pildilt 2 0xb000.

2. Pärast “Enter Image 2 ====” leiad “See on versioon 1”. See on logisõnum, mille me visandisse lisame.

3. Pärast seda, kui Ameba on ühendatud AP -ga ja saab IP -aadressi “192.168.1.238”, aktiveerib see mDNS -i ja ootab klienti.

Seejärel muudame "MY_VERSION_NUMBER" väärtuseks 2.

Klõpsake "Tools" -> "Port", näete loendit "Network ports". Leidke "MyAmeba aadressil 192.168.1.238 (Ameba RTL8195A)", MyAmeba on mDNS -seadme nimi, mille määrasime proovikoodis, ja "192.168.1.238" on Ameba IP -aadress.

Kui te ei leia Ameba võrguporti, kinnitage:

- kas teie arvuti ja Ameba on samas kohalikus võrgus?

- proovige Arduino IDE taaskäivitada.

- kontrollige Serial Monitori logiteadet, et näha, kas Ameba on edukalt ühendatud AP -ga.

Seejärel klõpsake nuppu Laadi üles. Seekord laaditakse programm üles TCP kaudu. Logiterminalis näete kliendi ühenduse teavet.

Kui OTA -pilt on edukalt alla laaditud, taaskäivitab Ameba ja logiterminalis kuvatakse järgmine logi.

- Vahemikus “===== Sisestage pilt 1 ====” ja “Sisestage pilt 2 ====” näete logiteadet “Flash Pilt 2: Addr 0x80000”. See tähendab, et Ameba otsustab alglaadimise OTA -pildilt kiirusega 0x80000.

- Pärast “Sisesta pilt 2 ====” on logi “See on versioon 2” sõnum, mille me visandisse lisame.

Eelmisele pildile taastamiseks pärast OTA -pildi Ameba allalaadimist ühendage visandis seatud taastepulk (st tihvt 18) kõrgusega (3,3 V) ja vajutage lähtestamiseks.

Seejärel valitakse alglaadimisel vaikepilt 2. Pange tähele, et allalaaditud OTA -pilti ei kustutata. Kui taastenõel on HIGH -st lahti ühendatud, käivitatakse OTA -pilt.

Teeme kokkuvõtte arendusvoost OTA abil järgmisel joonisel.

Soovitan: