Cuprins:
- Pasul 1: Condiții software
- Pasul 2: Instalarea și configurarea driverului
- Pasul 3: OpenOCD, Toolchain și Gdb
- Pasul 4: Cablare și primul test
- Pasul 5: Adăugați configurație de depanare la Visual Studio Code
Video: ESP32 - Soluție ieftină pentru depanare în Circruit: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Bună ziua, în acest instructable este descris cum să configurați adaptor JTAG ieftin bazat pe cip FTDI 2232HL, cu cod vizual și addon arduino.
- Modul FTDI 2232HL cu conector USB începând de la 8 $ pe eBay și nu este necesar niciun software plătit. Aceasta este o soluție excelentă pentru pasionații care nu doresc să cheltuiască peste 50 USD pe adaptorul JTAG profesional.
- Acest adaptor ar putea fi folosit pentru depanarea altor platforme precum ESP8266, ARM, AVR și multe altele. Unele configurații depind de platforma țintă, această instrucțiune acoperă doar configurarea pentru ESP32.
- Dacă dețineți deja un adaptor JTAG, îl puteți folosi atunci când acesta este acceptat de openOCD, pur și simplu porniți openocd cu un fișier de configurare diferit în funcție de tipul adaptorului dvs. jtag.
- platform.io vă poate facilita configurarea, dar depanarea este acceptată numai în versiunea profesională cu plată.
- Funcționează cu majoritatea modulelor ESP32. (de exemplu wemos lolin 32 ieftin)
- și acest adaptor jtag ar trebui să funcționeze cu Linux, dar eu personal nu l-am testat.
Pasul 1: Condiții software
Arduino IDE versiunea 1.8 sau mai recentă. Versiunea magazinului Windows nu este acceptată. Trebuie să utilizați versiunea de instalare clasică care poate fi descărcată de pe pagina oficială Arduino
Cod de studio vizual Microsoft
Aceste suplimente pentru codul de studio vizual sunt obligatorii
- Arduino
- Depanare nativă
De asemenea, vă recomand să instalați acest addon care permite intelisense pentru C / C ++
C / C ++
În acest manual voi folosi 2 foldere de lucru:
D: / devel / ESP32 / tools / - aici am plasat toate instrumentele
C: / Users / xxxxx / Documents / Arduino / YourProject / - acesta este dosarul cu schiță
puteți plasa fișierele oriunde altundeva, dacă doriți, vă rugăm să nu uitați să actualizați toate referințele cu calea dvs. reală.
Pasul 2: Instalarea și configurarea driverului
Chiar dacă Windows detectează automat FT2232 în mod implicit, driverele implicite Windows nu sunt suficiente pentru toate funcțiile avansate și este necesar să descărcați și să instalați driverul de pe site-ul FTDI
Când este instalat driverul corect, ar trebui să vedeți modulul FT2232 în managerul de dispozitive nu numai ca 2 porturi seriale, ci și ca „convertor serial USB A” și „convertor serial USB B”
Al doilea pas este schimbarea driverului pentru un canal al convertorului nostru. Descărcați instrumentul zadig de pe https://zadig.akeo.ie/. Dacă înțeleg corect acest instrument leagă driverul winUSB la dispozitivul FTDI care permite comunicarea la nivel scăzut între dispozitivul openOCD și USB.
În instrumentul zadig, în meniul „Opțiuni” bifați „Afișați toate dispozitivele”, atunci ar trebui să vedeți adaptorul în lista dispozitivelor disponibile. Selectați „Dual RS232-HS (Interfață 0)”, apoi selectați driverul de înlocuire „WinUSB v6.1.xxxx” și apoi faceți clic pe butonul de înlocuire a driverului.
Când vă conectați adaptorul la un port USB diferit al computerului, este necesar să schimbați din nou setările driverului prin instrumentul zadig, în caz contrar openOCD nu va găsi adaptorul.
Pasul 3: OpenOCD, Toolchain și Gdb
1. Open OCD este instrumentul pentru depanarea circruit, pe de o parte vorbește cu cip pe cealaltă parte, oferă server gdb unde se poate conecta depanatorul (clientul). Descărcați openOCD pentru ESP32 de pe https://github.com/espressif/openocd-esp32/releases și despachetați-l în folderul D: / devel / ESP32 / tools
2. editați fișierele de configurare openOCD:
esp-wroom-32.cfg
Calea completă către acest fișier este:
D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / board / esp-wroom-32.cfg
În acest fișier puteți seta viteza de comunicare prin schimbarea parametrului „adapter_khz”. De exemplu „adapter_khz 8000” înseamnă 8Mhz.
Valoarea implicită este de 20 MHz și ar putea fi prea mare dacă utilizați fire jumper mai lungi sau panou. Vă recomand să începeți de la 1Mhz și dacă totul este OK, mergeți la viteză mai mare, pentru mine 8Mhz funcționează fiabil.
minimodule.cfg
Calea completă către acest fișier este: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg
Dacă înțeleg corect, minimodulul autentic este placa de frânare cu un preț prea mare cu FT 2232 fabricat de FTDI și singura diferență între minimodulul autentic și modulul ieftin sau cipul gol disponibil pe piață este descrierea USB implicită. open OCD caută adaptor jtag pe baza descrierii dispozitivului, de asemenea, inițierea aspectului trebuie ajustată.
Modulul ieftin are descrierea "Dual RS232-HS". Dacă nu sunteți sigur cu privire la descrierea dispozitivului dvs., puteți să o verificați în managerul dispozitivului -> proprietăți dispozitiv -> detalii filă -> valoarea proprietății "Descriere dispozitiv raportată de autobuz"
Conținutul minimodule.cfg ar trebui să arate ca un exemplu de mai jos, liniile începând cu # pot fi șterse.
interfață 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_s
esp32.cfg
Calea completă către acest fișier este:
D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / target / esp32.cfg
Adăugați următoarele 2 rânduri la sfârșitul lui esp32.cfg. Fără această modificare, adăugarea punctelor de frână nu va funcționa.
#Force hwpoints. Odată ce avem o hartă de memorie, putem permite, de asemenea, software-ului bps.gdb_breakpoint_override hard
3. Descărcați și instalați xtensa-esp32-elf toolchain - acest toolchain conține debugger în linie de comandă (client gdb), care este vital pentru a avea un debug funcțional din orice IDE grafic. Bare toolchain poate fi descărcat de pe site-ul espressif, secțiunea „Configurare alternativă”
Pasul 4: Cablare și primul test
Conectați modulul FT2322 cu ESP. Vă recomand să utilizați fire cât mai scurte posibil. Dacă sunteți nou în JTAG, nu uitați că TDI-ul adaptorului va merge la TDI-ul cipului, de asemenea TDO-ul adaptorului va merge la TDO-ul cipului. Liniile de date JTAG NU SUNT ÎNCROCIATE ca Rx / Tx pe uart!
Pentru testul următor, vă recomand să încărcați o schiță de exemplu intermitentă sau o altă schiță care poate indica când CPU rulează sau nu, intermitent cu LED-uri sau semnal sonor sau scriere pe consola serială.
Porniți openOCD urmând comanda
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
Acest lucru va începe openOCD și dacă totul este în regulă, ar trebui să vedeți în linia de comandă ieșirea conține următoarele linii:
Informații: viteza ceasului 8000 kHz Informații: atingere JTAG: robinet esp32.cpu0 / dispozitiv găsit: 0x120034e5 (mfg: 0x272 (Tensilica), parte: 0x2003, ver: 0x1) Informații: robinet JTAG: robinet esp32.cpu1 găsit: mfg: 0x272 (Tensilica), parte: 0x2003, ver: 0x1)
De asemenea, procesul openocd va asculta pe portul TCP 3333
Deschideți un terminal nou și porniți linia de comandă client gdb urmând comanda
D: / devel / ESP32 / tools / xtensa-esp32-elf / bin / xtensa-esp32-elf-gdb.exe
Așteptați o secundă și când terminalul gdb va fi gata scrieți următoarele comenzi una câte una
țintă la distanță: 3333mon reset stop continuare
prima comandă deschide conexiunea la serverul de depanare openocd, a doua va opri executarea programului pe ESP și LED-ul ar trebui să înceteze să clipească, să continue restaurarea executării programului și LED-ul ar trebui să înceapă să clipească din nou.
Pasul 5: Adăugați configurație de depanare la Visual Studio Code
Presupun că în acel moment ați configurat corect codul de studio vizual și addon-ul arduino și puteți verifica și încărca schița pe tablă. Dacă nu, verificați câteva instrucțiuni despre configurarea codului vizual de studio și arduino, de exemplu pe această pagină
Pentru ca depanarea să funcționeze este necesară pentru a specifica folderul de ieșire de construire. Sub folderul de schiță există folderul (ascuns).vscode, unde este fișierul arduino.json. adăugați la acest fișier următoarea linie:
"output": "BuildOutput /"
rulați verificați sau încărcați și verificați din nou folderul de schițe, ar trebui să existe un nou folder BuildOutput și în interiorul acestuia să fișier cu extensia.elf. fișierul elf este vital pentru depanare.
Setările de depanare se află în fișierul launch.json. Creați acest fișier cu următorul conținut sau puteți copia acest fișier din exemplul de proiect atașat. Nu uitați să ajustați linia 26 și să definiți calea corectă către fișierul.elf al proiectului dvs.
{// Utilizați IntelliSense pentru a afla despre posibile atribute. // Plasați cursorul pentru a vizualiza descrierile atributelor existente. // Pentru mai multe informații, vizitați: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [{"name": "Arduino-GDB-openOCD "," type ":" cppdbg "," request ":" lansare "," 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 ":" target remote: 3333 "}, {" text ":" mon reset stop "}, {// variantă dinamică" text ":" fișier c: / Users / xxxxx / Documents / Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// variantă statică //" text ":" fișier c: /Users/xxxxx/Documents/Arduino/YourProject/BuildOutput/YourProject.ino.elf "}, {"text": "flushregs"}, {"text": "thb app_main"}, {"text": "c", "ignoreFailures": true}], "stopAtEntry": true, "serverStarted": "Info \: [w / d \.] *: / hardware "," launchCompleteCommand ":" exec-continue "," filterStderr ": adevărat," args ": }]}
Cum să începeți depanarea:
- Completați și încărcați schița la bord
- Porniți openOCD cu parametri
- Setați punctele de frână în cod unde doriți
- După setarea tuturor punctelor de frână, asigurați-vă că ați deschis fișierul principal.ino al proiectului. (sau calea codului dur către fișierul.elf din launch.json)
- Deschideți panoul de depanare în cod vs (Ctrl + Shift + D)
- Selectați debuggerul „Arduino-GDB-openOCD”, ar trebui să fie disponibil numai.
- Apăsați F5 pentru a începe depanarea
Recomandat:
Sursă de alimentare pentru proiect dual 30V / 2A ieftină: 7 pași (cu imagini)
Sursă de alimentare dublă ieftină pentru proiectul 30V / 2A: Când am căutat module de alimentare și ecrane LCD, am întâlnit câteva dintre aceste module de alimentare LCD 35W ieftine cu o valoare de 0,5-30V @ 3A (50W cu radiator și curent de supratensiune de 4A). Are reglaj de tensiune și limitator de curent. Există și
Terminal Python pentru conexiune Pi Arduino ieftină: 4 pași
Terminal Python pentru conexiune Pi Arduino ieftină: Raspberry Pi este o mașină Linux, deci există probabil o mulțime de aplicații terminale pentru aceasta. Dar am scris una nouă în Python, de ce m-am deranjat? Citiți mai departe. Dacă faceți un proiect care utilizează atât Pi, cât și Arduino, probabil că aveți nevoie
Spectacol de lumină reactivă pentru muzică ieftină: 22 de pași (cu imagini)
Spectacol de lumină reactivă la muzică ieftină: Acesta este unul dintre cele mai simple moduri de a face un spectacol de lumină reactivă la muzică! Funcționează prin modularea luminii laser folosind o membrană reflectorizantă / membrană din mylar, care este mișcată de undele sonore provenite de la un difuzor. Există două versiuni aici în acest instrument
Interfață multi-tactilă ieftină (cu adevărat ieftină): 3 pași
Interfață multi-tactilă ieftină (cu adevărat ieftină): Acesta este primul meu instructabil, așa că vă rog să fiți drăguți. Acesta este modul în care puteți crea o interfață multi-touch din biroul dvs. pentru foarte puțini bani. În cele din urmă, am încărcat un videoclip, îmi pare rău pentru rata de cadre redusă, laptopul meu nu este atât de bun
Alternativă ieftină pentru cortul ușor pentru fotografii: 3 pași
Alternativă ieftină pentru cortul ușor pentru fotografii: Bună, acesta este primul meu instructable. Aveam nevoie de o soluție low cost pentru a face fotografii mai bune cu obiecte mai mici. Așa că am făcut acest cort ușor din materiale din jurul casei. În cele din urmă m-a costat aproximativ 1,00 pentru câteva panouri poster. Orice altceva este reciclat