Sisukord:

ESP32 - odav lahendus Circruuti silumiseks: 5 sammu
ESP32 - odav lahendus Circruuti silumiseks: 5 sammu

Video: ESP32 - odav lahendus Circruuti silumiseks: 5 sammu

Video: ESP32 - odav lahendus Circruuti silumiseks: 5 sammu
Video: Управление двигателем постоянного тока с ШИМ с помощью Arduino и модуля L298N с библиотекой - Robojax 2024, November
Anonim
ESP32 - odav lahendus Circruuti silumiseks
ESP32 - odav lahendus Circruuti silumiseks

Tere! Selles juhendis kirjeldatakse, kuidas seadistada odavat JTAG -adapterit, mis põhineb FTDI 2232HL kiibil, visuaalse koodi ja arduino lisandiga.

- FTDI 2232HL moodul USB -pistikuga alates 8 $ eBays ja tasulist tarkvara pole vaja. See on suurepärane lahendus harrastajatele, kes ei soovi kulutada 50 dollarit+ professionaalse JTAG -adapteri peale.

- Seda adapterit saab kasutada teiste platvormide, näiteks ESP8266, ARM, AVR ja paljude teiste silumiseks. Mõni konfiguratsioon sõltub sihtplatvormist, see juhend hõlmab ainult ESP32 seadistamist.

- Kui teil juba on mõni JTAG -adapter, saate seda kasutada, kui seda toetab openOCD, käivitage lihtsalt openocd erineva konfiguratsioonifailiga, sõltuvalt teie jtag -adapteri tüübist.

- platform.io võib teie jaoks seadistamist lihtsustada, kuid silumist toetatakse ainult tasulises professionaalses versioonis.

- Töötab enamiku ESP32 moodulitega. (näiteks odav wemos lolin 32)

- see jtag -adapter peaks töötama ka Linuxiga, kuid ma isiklikult ei testinud seda.

1. samm: tarkvara eelised

Arduino IDE versioon 1.8 või uuem. Windowsi poe versiooni ei toetata. Peate kasutama klassikalist installijaversiooni, mille saate alla laadida Arduino ametlikult lehelt

Microsofti visuaalse stuudio kood

Need visuaalse stuudio koodi lisad on kohustuslikud

  • Arduino
  • Natiivne silumine

Samuti soovitan installida selle lisandmooduli, mis võimaldab C/C ++ jaoks intelisense

C/C ++

Selles juhendis kasutan 2 töökausta:

D: / devel / ESP32 / tools / - siia olen paigutanud kõik tööriistad

C: / Users / xxxxx / Documents / Arduino / YourProject / - see on visandiga kaust

soovi korral saate oma failid mujale paigutada, lihtsalt ärge unustage kõiki viiteid oma tegeliku teega värskendada.

Samm: draiveri installimine ja konfigureerimine

Draiveri installimine ja seadistamine
Draiveri installimine ja seadistamine
Draiveri installimine ja seadistamine
Draiveri installimine ja seadistamine
Draiveri installimine ja seadistamine
Draiveri installimine ja seadistamine

Isegi kui Windows tuvastab vaikimisi automaatselt FT2232, ei piisa Windowsi vaikedraiveritest kõigi eelfunktsioonide jaoks ning draiver tuleb alla laadida ja installida FTDI saidilt

Kui õige draiver on installitud, peaksite seadmehalduris nägema oma FT2232 moodulit mitte ainult kahe jadapordina, vaid ka kui "USB jadamuundur A" ja "USB jadamuundur B"

Teine samm on draiveri vahetamine meie muunduri ühe kanali jaoks. Laadige zadigi tööriist alla aadressilt https://zadig.akeo.ie/. Kui ma õigesti aru saan, ühendab see tööriist winUSB draiveri FTDI -seadmega, mis võimaldab madalat taset suhelda openOCD ja USB -seadme vahel.

Zadigi tööriista menüüs "Valikud" märkige "Kuva kõik seadmed", siis peaksite nägema oma adapterit saadaolevate seadmete loendis. Valige "Dual RS232-HS (liides 0)", seejärel valige asendusdraiver "WinUSB v6.1.xxxx" ja klõpsake lõpuks draiveri vahetamise nupul.

Kui ühendate adapteri arvuti erineva USB -pordiga, on vaja draiveri seadeid zadigi tööriista abil uuesti muuta, vastasel juhul ei leia openOCD teie adapterit.

Samm: OpenOCD, Toolchain ja Gdb

OpenOCD, Toolchain ja Gdb
OpenOCD, Toolchain ja Gdb

1. Avatud OCD on tööriist ringhäälingu silumiseks, ühel küljel räägib see kiibist, teisel pool pakub gdb -serverit, millega silur (klient) saab ühenduse luua. Laadige alla OpenOCD ESP32 jaoks saidilt https://github.com/espressif/openocd-esp32/releases ja pakkige see kausta D: / devel / ESP32 / tools

2. redigeerige openOCD konfiguratsioonifaile:

esp-wroom-32.cfg

Selle faili täielik tee on järgmine:

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

Selles failis saate seada side kiiruse, muutes parameetrit "adapter_khz". Näiteks "adapter_khz 8000" tähendab 8Mhz.

Vaikeväärtus on 20 MHz ja see võib olla liiga kõrge, kui kasutate pikemaid hüppajajuhtmeid või leivaplaati. Soovitan alustada 1Mhz -st ja kui kõik on korras, minge suuremale kiirusele, minu jaoks töötab 8Mhz usaldusväärselt.

minimaalne moodul.cfg

Selle faili täielik tee on: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimalodule.cfg

Kui ma õigesti aru saan, on ehtne minimoodul FTDI toodetud FT 2232 -ga ülehinnatud pidurdusplaat ja ainus erinevus ehtsa miinimooduli ja odava mooduli või turul saadaval oleva kiibi vahel on vaikimisi USB -kirjeldus. open OCD otsib seadme kirjelduse põhjal jtag -adapterit, samuti tuleb kohandada paigutuse init.

Odava mooduli kirjeldus on "Dual RS232-HS". Kui te pole oma seadme kirjelduses kindel, saate seda vaadata seadmehalduris -> seadme atribuudid -> vahekaardi üksikasjad -> atribuudi "Bus teatatud seadme kirjeldus" väärtus

Minimodule.cfg sisu peaks välja nägema nagu allpool toodud näide, # -ga algavad read saab kustutada.

liides 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_data

esp32.cfg

Selle faili täielik tee on järgmine:

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

Lisage esp32.cfg lõppu järgmised 2 rida. Ilma selle modifikatsioonita piduripunktide lisamine ei toimi.

#Force hw murdepunktid. Kui meil on mälukaart, saame lubada ka tarkvara bps.gdb_breakpoint_override kõvasti

3. Laadige alla ja installige tööriistakett xtensa-esp32-elf-see tööriistakett sisaldab käsurea silurit (gdb klient), mis on hädavajalik mis tahes graafilise IDE silumiseks. Palja tööriistaketi saab alla laadida espressifi saidilt, jaotisest "Alternatiivne seadistamine"

Samm: juhtmestik ja esimene test

Juhtmed ja esimene katse
Juhtmed ja esimene katse
Juhtmed ja esimene katse
Juhtmed ja esimene katse

Ühendage FT2322 moodul ESP -ga. Soovitan kasutada võimalikult lühikesi juhtmeid. Kui olete JTAGi uus, ärge unustage, et adapteri TDI läheb kiibi TDI -le, samuti läheb adapteri TDO kiibi TDO -le. JTAG -i andmeliinid ei ole ristitud nagu Rx/Tx uartil!

Järgmiseks testiks soovitan üles laadida vilkuva näite visandi või mõne muu visandi, mis vilkuva LED -i vilkumise või piiksumise või jadakonsoolile kirjutamise abil võib näidata, kas protsessor töötab või mitte.

Käivitage openOCD, järgides käsku

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

See käivitab openOCD ja kui kõik on korras, peaksite käsurea väljundis nägema järgmisi ridu:

Info: taktsagedus 8000 kHz Info: JTAG kraan: esp32.cpu0 kraan/seade leitud: 0x120034e5 (mfg: 0x272 (Tensilica), osa: 0x2003, ver: 0x1) Info: JTAG kraan: esp32.cpu1 kraan/leitud seade: 0x120034e5 (mfg: 0x272 (Tensilica), osa: 0x2003, ver: 0x1)

Samuti kuulab openocd protsess TCP porti 3333

Avage uus terminal ja käivitage käsurealt gdb klient, järgides käsku

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

Oodake hetk ja kui gdb -terminal on valmis, kirjutage ükshaaval järgmised käsud

sihtpult: 3333moni lähtestamise peatamine jätkub

esimene käsk avab ühenduse openocd silumisserveriga, teine peatab programmi täitmise ESP -l ja LED peaks lõpetama vilkumise, jätkama programmi täitmise taastamist ja LED peaks uuesti vilkuma.

Samm: lisage silumiskonfiguratsioon Visual Studio koodile

Lisage silumiskonfiguratsioon Visual Studio koodile
Lisage silumiskonfiguratsioon Visual Studio koodile

Eeldan, et sel hetkel olete juba visuaalse stuudio koodi ja arduino lisandi õigesti seadistanud ning saate oma visandi tahvlile kinnitada ja üles laadida. Kui ei, siis palun vaadake mõningaid juhiseid visuaalse stuudio koodi ja arduino seadistamiseks, näiteks sellel lehel

Silumise toimimiseks on vaja koostada väljundkaust. Eskiisikausta all on (peidetud) kaust.vscode, kus asub fail arduino.json. lisage sellele failile järgmine rida:

"output": "BuildOutput/"

käivitage kontroll või laadige üles ja kontrollige oma visandikausta uuesti, seal peaks olema uus BuildOutput kaust ja selle sees fail.elf laiendusega. elf -fail on silumiseks hädavajalik.

Siluri seaded on failis launch.json. Looge see fail järgmise sisuga või saate selle faili kopeerida lisatud näidisprojektist. Ärge unustage reguleerida rida 26 ja määratleda oma projekti.elf -faili õige tee.

{// Kasutage IntelliSense'i võimalike atribuutide tundmaõppimiseks. // Hõljutage kursorit olemasolevate atribuutide kirjelduste vaatamiseks. // Lisateabe saamiseks külastage: https://go.microsoft.com/fwlink/?linkid=830387 "versioon": "0.2.0", "konfiguratsioonid": [{"nimi": "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 ":" target remote: 3333 "}, {" text ":" mon reset halt "}, {// dünaamiline variant" text ":" file c:/Users/xxxxx/Documents/Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// staatiline variant //" text ":" file 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 \.]*: / riistvara "," launchCompleteCommand ":" exec-jatka "," filterStderr ": true," args ": }]}

Silumise alustamine:

  1. Järgige ja laadige oma eskiis pardale
  2. Käivitage parameetritega openOCD
  3. Seadke piduripunktid koodi, kuhu soovite
  4. Pärast kõigi pidurduspunktide seadistamist veenduge, et olete avanud oma projekti peamise.ino -faili. (või kõvakoodi tee.elf -failini käivitamisel.json)
  5. Ava silumispaneel vs -koodis (Ctrl + Tõstuklahv + D)
  6. Valige silur "Arduino-GDB-openOCD", peaks olema saadaval ainult.
  7. Silumise alustamiseks vajutage klahvi F5

Soovitan: