Obsah:

Programovanie Arduino vzduchom (OTA) - Ameba Arduino: 4 kroky
Programovanie Arduino vzduchom (OTA) - Ameba Arduino: 4 kroky

Video: Programovanie Arduino vzduchom (OTA) - Ameba Arduino: 4 kroky

Video: Programovanie Arduino vzduchom (OTA) - Ameba Arduino: 4 kroky
Video: How to Perform the OTA Upload to an ESP32 Board Using Arduino Cloud 2024, November
Anonim
Programovanie Arduino vzduchom (OTA) - Ameba Arduino
Programovanie Arduino vzduchom (OTA) - Ameba Arduino

Na trhu je veľa Wi-Fi mikrokontrolérov, mnoho výrobcov baví programovať svoj Wi-Fi mikrokontrolér pomocou Arduino IDE. Jedna z najlepších funkcií, ktoré môže mikrokontrolér Wi-Fi ponúkať, však býva často prehliadaná, a to programovanie a odosielanie kódu na diaľku a bezdrôtovo pomocou funkcie OTA (Over-The-Air).

V tomto návode vám ukážem, ako nastaviť OTA na vašom Wi-Fi mikrokontroléri pomocou všadeprítomného Arduino IDE na Wi-Fi mikrokontroléri Ameba Arduino!

Zásoby

Ameba Arduino x 1

Krok 1: OTA

OTA
OTA

OTA (Over-The-Air) sa týka mechanizmu online aktualizácie cez internet.

Arduino IDE ponúka funkciu OTA, ktorá sleduje pracovný postup na obrázku vyššie.

i) Arduino IDE hľadá prostredníctvom mDNS zariadenia so službou Arduino IDEOTA v miestnej sieti.

(ii) Pretože je na Amebe spustená služba mDNS, Ameba reaguje na vyhľadávanie mDNS a otvára konkrétny port TCP na pripojenie.

(iii) Užívateľ vyvíja program v Arduino IDE. Po dokončení vyberte sieťový port.

(iv) Kliknite na položku nahrať. Potom Arduino IDE odošle obrázok OTA do Ameba prostredníctvom TCP, Ameba uloží obrázok na konkrétnu adresu a nastaví možnosť zavedenia, aby sa z tohto obrazu nabudúce spustil.

Pracovný tok pozostáva z troch častí: obrazový proces mDNS, TCP a OTA. Podrobnosti súvisiace s mDNS sú popísané v návode mDNS. Programovanie soketu TCP sa používa na prenos obrazu a je už k dispozícii v rozhraní OTA API.

V ďalšej časti budeme diskutovať o tom, ako spracovať obrázok OTA, a predstavíme niekoľko základných znalostí o rozložení pamäte flash Ameba a postupe zavádzania.

Krok 2: Rozloženie pamäte Ameba Flash

Rozloženie pamäte Flash Ameba
Rozloženie pamäte Flash Ameba

Veľkosť flash pamäte Ameba RTL8195A je 2 MB, pohybuje sa od 0x00000000 do 0x00200000. Veľkosť flash pamäte Ameba RTL8710 je však 1 MB. Aby to vyhovovalo použitiu rôznych dosiek, predpokladáme, že rozloženie pamäte flash je 1 MB.

Ako je znázornené na obrázku vyššie, program Ameba zaberá tri časti pamäte flash:

- Zavádzací obrázok :

Teda bootloader. Keď sa Ameba spustí, umiestni bootovací obraz do pamäte a vykoná inicializáciu. Ďalej určuje, kam pokračovať po bootloaderi. Bootloader sa pozrie na adresu OTA a pin na obnovenie v oblasti systémových údajov a určí, ktorý obrázok sa spustí potom. Na konci zavádzača umiestni obrázok do pamäte a pokračuje v jeho spustení.

- Predvolený obrázok 2 :

V tejto časti je umiestnený kód vývojára, adresa začína od 0x0000B000. Prvých 16 bajtov je hlavička obrázka, 0x0000B008 ~ 0x0000B00F obsahuje podpis, ktorý sa používa na overenie, či je obrázok platný. Pole podpisu má dve platné hodnoty na rozlíšenie nového obrázku od starého.

- OTA obrázok :

Údaje v tejto časti sú tiež kódom vývojára. Štandardne začína táto časť pamäte od 0x00080000 (dá sa zmeniť). Hlavnými rozdielmi medzi obrázkom OTA a predvoleným obrázkom 2 sú adresa pamäte flash a hodnota podpisu.

Okrem kódu existuje niekoľko dátových blokov:

- Systémové údaje :

Blok systémových údajov začína od 0x00009000. Existujú dve údaje súvisiace s OTA:

1. Adresa OTA: 4 bajtové údaje od 0x00009000. Informuje o adrese obrázku OTA. Ak je hodnota adresy OTA neplatná (t.j. 0xFFFFFFFF), obrázok OTA do pamäte Flash nemožno načítať správne.

2. Pin na obnovenie: 4 bajtové údaje od 0x00009008. PIN na obnovenie sa používa na určenie, ktorý obrázok (predvolený obrázok 2 alebo obrázok OTA) sa má vykonať, keď sú platné oba obrázky. Ak je hodnota PIN obnovenia neplatná (t.j. 0xFFFFFFFF), nový obrázok sa spustí predvolene.

Systémové údaje budú odstránené, keď nahráme program do Ameba prostredníctvom DAP. To znamená, že adresa OTA bude odstránená a Ameba určí, že neexistuje žiadny obrázok OTA.

- Kalibračné údaje : V tomto bloku sú umiestnené periférne kalibračné údaje. Tieto údaje by spravidla nemali byť vymazané.

Krok 3: Boot Flow

Boot Flow
Boot Flow

Z obrázku vyššie, Diskutujeme o nasledujúcich scenároch: (i) OTA sa nepoužíva, na nahranie programu použite DAP:

V tejto situácii bootloader skontroluje podpis predvoleného obrázku 2 a adresy OTA. Pretože je adresa OTA odstránená, na spustenie bude vybratý predvolený obrázok 2.

(ii) OTA obrázok sa prenesie do Ameba, adresa OTA je nastavená správne, nie je nastavený pin na obnovenie :

Ameba dostala aktualizovaný obrázok prostredníctvom OTA, podpis predvoleného obrázku 2 by bol nastavený na starý podpis.

Bootloader kontroluje podpis predvoleného obrázku 2 a adresy OTA. Zistí, že adresa OTA obsahuje platný obrázok OTA. Pretože kolík na obnovenie nie je nastavený, vyberie nový obrázok (tj. Obrázok OTA), ktorý sa má vykonať.

(iii) OTA obrázok sa prenesie na Ameba, adresa OTA je nastavená správne, je nastavený pin na obnovenie :

Ameba dostala aktualizovaný obrázok prostredníctvom OTA, podpis predvoleného obrázku 2 by bol nastavený na starý podpis.

Bootloader kontroluje podpis predvoleného obrázku 2 a adresy OTA. Zistí, že adresa OTA obsahuje platný obrázok OTA. Potom skontrolujte hodnotu kolíka obnovy. Ak je pin obnovy pripojený k LOW, spustí sa nový obrázok (tj. OTA obraz). Ak je kolík obnovy pripojený k HIGH, spustí sa starý obrázok (t.j. predvolený obrázok 2).

Krok 4: Príklad

Príklad
Príklad
Príklad
Príklad
Príklad
Príklad
Príklad
Príklad

Ak chcete používať funkciu OTA, aktualizujte firmvér DAP na verziu> 0.7 (v0.7 nie je súčasťou dodávky). Štandardný výrobný firmvér DAP je verzia 0.7. Pri aktualizácii firmvéru DAP postupujte podľa týchto pokynov:

Otvorte príklad: „Súbor“-> „Príklady“-> „AmebaOTA“-> „ota_basic“

Vyplňte informácie o ssid a hesle do vzorového kódu pre sieťové pripojenie.

S OTA súvisí niekoľko parametrov:

§ MY_VERSION_NUMBER : V prvej verzii musíme nastaviť adresu OTA a PIN na obnovenie. Pretože tentoraz je odovzdávanie cez USB prvou verziou, túto hodnotu nemusíme meniť.

§ OTA_PORT : Arduino IDE nájde Amebu prostredníctvom mDNS. Ameba oznámi Arduino IDE, že otvára TCP port 5000 a čaká na obrázok OTA.

§ RECOVERY_PIN : Konfigurujte pin používaný na obnovu. Tu používame kolík 18.

Potom použijeme program nahrávania USB do Ameba. Kliknite na Nástroje -> Porty, skontrolujte sériový port, ktorý chcete použiť :

Upozorňujeme, že Arduino IDE používa jeden port na nahrávanie programu a výstupný protokol. Aby sme sa vyhli situácii, že pri použití OTA nemôže byť protokol odoslaný, používame na sledovanie správy denníka namiesto sériového monitora iný terminál sériového portu (napr. Výraz Tera alebo tmel).

Potom kliknite na nahrať a stlačte tlačidlo reset.

V správe denníka:

1. Medzi „===== Zadajte obrázok 1 ====“a „Zadajte obrázok 2 ====“nájdete „Flash Image 2: Addr 0xb000“. To znamená, že Ameba sa rozhodne zaviesť z predvoleného obrázku 2 pri 0xb000.

2. Po „Zadajte obrázok 2 ====“nájdete „Toto je verzia 1“. Toto je správa denníka, ktorú pridávame do náčrtu.

3. Potom, čo je Ameba pripojený k AP a získa IP adresu „192.168.1.238“, aktivuje mDNS a čaká na klienta.

Ďalej upravíme „MY_VERSION_NUMBER“na 2.

Kliknite na „Nástroje“-> „Port“, zobrazí sa zoznam „Sieťové porty“. Nájdite „MyAmeba na adrese 192.168.1.238 (Ameba RTL8195A)“, MyAmeba je názov zariadenia mDNS, ktorý sme nastavili vo vzorovom kóde, a „192.168.1.238“je adresa IP systému Ameba.

Ak nemôžete nájsť sieťový port Ameba, potvrďte prosím:

- či sú váš počítač a Ameba v rovnakej lokálnej sieti?

- Skúste reštartovať Arduino IDE.

- v protokole v Serial Monitor skontrolujte, či je Ameba úspešne pripojený k AP.

Potom kliknite na nahrať. Tentoraz bude program nahraný cez TCP. V termináli denníka môžete vidieť informácie o pripojení klienta.

Keď sa obrázok OTA úspešne stiahne, Ameba sa reštartuje a v protokolovom termináli sa zobrazia nasledujúce protokoly.

- Medzi „===== Zadajte obrázok 1 ====“a „Zadajte obrázok 2 ====“, môžete vidieť správu v protokole „Flash Image 2: Addr 0x80000“. To znamená, že Ameba sa rozhodne spustiť z OTA Image pri 0x80000.

- Po „Enter Image 2 ====“je denníkom „This is version 2“správa, ktorú pridávame do náčrtu.

Ak sa chcete vrátiť k predchádzajúcemu obrázku po stiahnutí obrazu OTA do Ameba, pripojte obnovovací kolík, ktorý sme nastavili v náčrte (tj. Kolík 18), k HIGH (3,3 V) a stlačte reset.

Potom pri zavádzaní bude zvolený predvolený obrázok 2. Stiahnutý obrázok OTA sa neodstráni, akonáhle bude kolík obnovy odpojený od HIGH, spustí sa obrázok OTA.

Tok vývoja sumarizujeme pomocou OTA na nasledujúcom obrázku.

Odporúča: