Obsah:

ESP32 - lacné riešenie pre ladenie Circruit: 5 krokov
ESP32 - lacné riešenie pre ladenie Circruit: 5 krokov

Video: ESP32 - lacné riešenie pre ladenie Circruit: 5 krokov

Video: ESP32 - lacné riešenie pre ladenie Circruit: 5 krokov
Video: Управление двигателем постоянного тока с ШИМ с помощью Arduino и модуля L298N с библиотекой - Robojax 2024, Júl
Anonim
ESP32 - lacné riešenie pre ladenie Circruit
ESP32 - lacné riešenie pre ladenie Circruit

Dobrý deň, v tomto návode je popísané, ako nastaviť lacný adaptér JTAG na základe čipu FTDI 2232HL s vizuálnym kódom a doplnkom arduino.

- Modul FTDI 2232HL s konektorom USB od 8 $ na ebay a nie je potrebný žiadny platený softvér. Je to skvelé riešenie pre domácich majstrov, ktorí nechcú minúť viac ako 50 $ za profesionálny adaptér JTAG.

- Tento adaptér je možné použiť na ladenie iných platforiem, ako sú ESP8266, ARM, AVR a mnohých ďalších. Niektoré konfigurácie závisia od cieľovej platformy, táto inštrukcia sa týka iba nastavenia pre ESP32.

- Ak už vlastníte nejaký adaptér JTAG, môžete ho použiť, ak je podporovaný openOCD, stačí spustiť openocd s iným konfiguračným súborom podľa typu vášho adaptéra jtag.

- platform.io vám môže uľahčiť nastavenie, ale ladenie je podporované iba v platenej profesionálnej verzii.

- Funguje s väčšinou modulov ESP32. (napríklad lacné wemos lolin 32)

- tento jtag adaptér by mal fungovať aj s linuxom, ale osobne som ho netestoval.

Krok 1: Požiadavky na softvér

Arduino IDE verzie 1.8 alebo novšej. Verzia Windows Store nie je podporovaná. Musíte použiť klasickú verziu inštalátora, ktorú je možné stiahnuť z oficiálnej stránky Arduino

Kód Microsoft Visual Studio

Tieto doplnky pre kód vizuálneho štúdia sú povinné

  • Arduino
  • Natívne ladenie

Odporúčam tiež nainštalovať tento doplnok, ktorý umožňuje inteligentnosť pre C/C ++

C/C ++

V tejto príručke použijem 2 pracovné priečinky:

D: / devel / ESP32 / tools / - sem som umiestnil všetky nástroje

C: / Users / xxxxx / Documents / Arduino / YourProject / - toto je priečinok so skicou

ak chcete, môžete svoje súbory umiestniť kdekoľvek inde, len nezabudnite aktualizovať všetky referencie svojou skutočnou cestou.

Krok 2: Inštalácia a konfigurácia ovládača

Inštalácia a konfigurácia ovládača
Inštalácia a konfigurácia ovládača
Inštalácia a konfigurácia ovládača
Inštalácia a konfigurácia ovládača
Inštalácia a konfigurácia ovládača
Inštalácia a konfigurácia ovládača

Aj keď systém Windows automaticky automaticky detekuje FT2232, predvolené ovládače systému Windows nestačia na všetky pokročilé funkcie a je potrebné stiahnuť a nainštalovať ovládač z webu FTDI

Keď je nainštalovaný správny ovládač, váš modul FT2232 by sa mal v správcovi zariadení zobrazovať nielen ako 2 sériové porty, ale aj ako „sériový prevodník USB A“a „sériový prevodník USB B“

Druhým krokom je zmena ovládača pre jeden kanál nášho prevodníka. Stiahnite si nástroj zadig z https://zadig.akeo.ie/. Ak tomu správne rozumiem, tento nástroj prepojí ovládač winUSB so zariadením FTDI, čo umožňuje nízkoúrovňovú komunikáciu medzi openOCD a USB zariadením.

V nástroji zadig v ponuke „Možnosti“začiarknite políčko „Zobraziť všetky zariadenia“a potom by ste mali vidieť svoj adaptér v zozname dostupných zariadení. Vyberte „Dual RS232-HS (Interface 0)“, potom vyberte náhradný ovládač „WinUSB v6.1.xxxx“a nakoniec kliknite na tlačidlo nahradiť ovládač.

Keď pripojíte adaptér k inému portu USB počítača, je potrebné znova zmeniť nastavenia ovládača pomocou nástroja zadig, v opačnom prípade openOCD váš adaptér nenájde.

Krok 3: OpenOCD, Toolchain a Gdb

OpenOCD, Toolchain a Gdb
OpenOCD, Toolchain a Gdb

1. Open OCD je nástroj na ladenie kruhov, na jednej strane hovorí s čipom, na druhej strane poskytuje server gdb, ku ktorému sa môže pripojiť debugger (klient). Stiahnite si openOCD pre ESP32 z https://github.com/espressif/openocd-esp32/releases a rozbaľte ho do priečinka D: / devel / ESP32 / tools

2. upravte konfiguračné súbory openOCD:

esp-wroom-32.cfg

Úplná cesta k tomuto súboru je:

D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / board / esp-wroom-32.cfg

V tomto súbore môžete nastaviť rýchlosť komunikácie zmenou parametra "adapter_khz". Napríklad „adaptér_kHz 8000“znamená 8 MHz.

Predvolená hodnota je 20 MHz a môže byť príliš vysoká, ak používate dlhšie prepojovacie vodiče alebo nepájivú dosku. Odporúčam začať na 1Mhz a ak je všetko v poriadku, prejdite na vyššie otáčky, na mňa 8Mhz funguje spoľahlivo.

minimodule.cfg

Úplná cesta k tomuto súboru je: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg

Ak tomu dobre rozumiem, originálny minimodul je predražená brzdová doska s FT 2232 vyrábaná spoločnosťou FTDI a iba rozdiel medzi originálnym minimodulom a lacným modulom alebo holým čipom dostupný na trhu je predvolený popis USB. otvorený OCD hľadá adaptér jtag na základe popisu zariadenia, je tiež potrebné upraviť inicializáciu rozloženia.

Lacný modul má popis "Dual RS232-HS". Ak si nie ste istí popisom svojho zariadenia, môžete ho skontrolovať v správcovi zariadení -> vlastnosti zariadenia -> detaily karty -> hodnota vlastnosti "Popis zariadenia nahláseného zbernicou"

Obsah minimodule.cfg by mal vyzerať ako príklad nižšie, riadky začínajúce na # je možné odstrániť.

rozhranie ftdi #ftdi_device_desc "FT2232H MiniModule" ftdi_device_desc "Dual RS232 -HS" ftdi_vid_pid 0x0403 0x6010 #ftdi_layout_init 0x0018 0x05fb ftdi_layout_init 0x0008 0x000b ftdi_layout

esp32.cfg

Úplná cesta k tomuto súboru je:

D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / target / esp32.cfg

Pripojte nasledujúce 2 riadky na koniec súboru esp32.cfg. Bez tejto úpravy nebude pridávanie brzdových bodov fungovať.

#Vynútiť hraničné body hw. Keď máme mapu pamäte, môžeme tiež povoliť softvér bps.gdb_breakpoint_override

3. Stiahnite a nainštalujte si reťazec nástrojov xtensa-esp32-elf-tento reťazec nástrojov obsahuje debugger príkazového riadka (klient gdb), ktorý je životne dôležitý pre funkčné ladenie z akéhokoľvek grafického IDE. Bare toolchain je možné stiahnuť z webu espressif, sekcia „Alternatívne nastavenie“https://docs.espressif.com/projects/esp-idf/en/latest/get-started/windows-setup-scratch.html

Krok 4: Zapojenie a prvý test

Zapojenie a prvý test
Zapojenie a prvý test
Zapojenie a prvý test
Zapojenie a prvý test

Pripojte modul FT2322 k ESP. Odporúčam používať čo najkratšie vodiče. Ak ste v JTAG noví, nezabudnite, že TDI adaptéra prejde na TDI čipu, taktiež TDO adaptéra prejde na TDO čipu. Dátové riadky JTAG nie sú na uart križované ako Rx/Tx!

Pre nasledujúci test odporúčam nahrať skicu s ukážkou žmurknutia alebo inú skicu, ktorá môže indikovať, či je procesor spustený alebo nie, blikaním diódy LED alebo pípaním alebo zápisom na sériovú konzolu.

Spustite openOCD nasledujúcim príkazom

D: / devel / ESP32 / tools / openocd-esp32 / bin / openocd.exe-s D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts -f interface/ftdi/minimodule.cfg -f board /esp-wroom-32.cfg

Spustí sa openOCD a ak je všetko v poriadku, mali by ste vo výstupe príkazového riadka vidieť nasledujúce riadky:

Informácie: takt 8000 kHz Informácie: Tap JTAG: esp32.cpu0 nájdený tap/zariadenie: 0x120034e5 (mfg: 0x272 (Tensilica), časť: 0x2003, ver: 0x1) Info: Tap JTAG: esp32.cpu1 nájdený kohútik/zariadenie: 0x120034e5 (mfg: 0x272 (Tensilica), časť: 0x2003, ver: 0x1)

Proces openocd bude tiež počúvať na porte TCP 3333

Otvorte nový terminál a spustite klienta príkazového riadka gdb podľa príkazu

D: / devel / ESP32 / tools / xtensa-esp32-elf / bin / xtensa-esp32-elf-gdb.exe

Počkajte chvíľu, a keď bude terminál gdb pripravený, napíšte nasledujúce príkazy jeden po druhom

cieľové diaľkové ovládanie: 3333 mesiacov resetovanie zastaví, pokračujte

prvý príkaz otvorí pripojenie k ladiacemu serveru openocd, druhý zastaví spustenie programu na ESP a kontrolka LED by mala prestať blikať, pokračovať v obnovení vykonávania programu a kontrolka LED by mala začať znova blikať.

Krok 5: Pridajte konfiguráciu ladenia do kódu Visual Studio

Pridajte konfiguráciu ladenia do kódu Visual Studio
Pridajte konfiguráciu ladenia do kódu Visual Studio

V tom momente predpokladám, že ste už správne nakonfigurovali kód vizuálneho štúdia a doplnok arduino a môžete svoj náčrt overiť a nahrať na nástenku. Ak nie, prečítajte si návod na konfiguráciu kódu vizuálneho štúdia a arduina, napríklad na tejto stránke

Aby ladenie fungovalo, je potrebné zadať výstupný priečinok zostavenia. Pod priečinkom skici sa nachádza (skrytý) priečinok.vscode, kde je súbor arduino.json. pridajte do tohto súboru nasledujúci riadok:

"output": "BuildOutput/"

spustite overenie alebo nahrajte a znova skontrolujte priečinok so skicami, mal by tam byť nový priečinok BuildOutput a vnútri súbor s príponou.elf. súbor elf je životne dôležitý pre ladenie.

Nastavenia ladiaceho programu sú v súbore launch.json. Vytvorte tento súbor s nasledujúcim obsahom alebo ho môžete skopírovať z priloženého ukážkového projektu. Nezabudnite upraviť riadok 26 a definovať správnu cestu k súboru.elf vášho projektu.

{// Pomocou technológie IntelliSense získate informácie o možných atribútoch. // Po umiestnení kurzora myši sa zobrazia popisy existujúcich atribútov. // Viac informácií nájdete na: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [{"name": "Arduino-GDB-openOCD "," type ":" cppdbg "," request ":" launch "," program ":" $ {file} "," cwd ":" $ {workspaceRoot}/BuildOutput/"," MIMode ":" gdb ", "targetArchitecture": "arm", "miDebuggerPath": "D: /devel/ESP32/tools/xtensa-esp32-elf/bin/xtensa-esp32-elf-gdb.exe", "debugServerArgs": "", " customLaunchSetupCommands ": [{" text ":" cieľový diaľkový ovládač: 3333 "}, {" text ":" mon reset halt "}, {// dynamický variant" text ":" súbor c:/Používatelia/xxxxx/Dokumenty/Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// statický variant //" text ":" súbor c: /Users/xxxxx/Documents/Arduino/YourProject/BuildOutput/YourProject.ino.elf "}, {"text": "flushregs"}, {"text": "thb app_main"}, {"text": "c", "ignoreFailures": true}], "stopAtEntry": true, "serverStarted": "Informácie \: [ w / d \.]*: / hardware "," launchCompleteCommand ":" exec-continue "," filterStderr ": true," args ": }]}

Ako začať s ladením:

  1. Vyrovnajte sa a nahrajte svoj náčrt na palubu
  2. Spustite openOCD s parametrami
  3. Nastavte brzdné body v kóde na požadované miesto
  4. Po nastavení všetkých brzdných bodov sa uistite, že ste otvorili hlavný súbor.ino svojho projektu. (alebo cesta k súboru.elf v pevnom kóde v súbore launch.json)
  5. Otvorte panel ladenia v porovnaní s kódom (Ctrl + Shift + D)
  6. Vyberte ladiaci program „Arduino-GDB-openOCD“, mal by byť k dispozícii iba.
  7. Spustite ladenie stlačením klávesu F5

Odporúča: