Мазмұны:

ESP32 - Circruit Debug үшін арзан шешім: 5 қадам
ESP32 - Circruit Debug үшін арзан шешім: 5 қадам

Бейне: ESP32 - Circruit Debug үшін арзан шешім: 5 қадам

Бейне: ESP32 - Circruit Debug үшін арзан шешім: 5 қадам
Бейне: Управление двигателем постоянного тока с ШИМ с помощью Arduino и модуля L298N с библиотекой - Robojax 2024, Қараша
Anonim
ESP32 - Circruit Debug үшін арзан шешім
ESP32 - Circruit Debug үшін арзан шешім

Сәлеметсіз бе, бұл нұсқаулықта визуалды коды мен arduino қосымшасы бар FTDI 2232HL чипі негізінде арзан JTAG адаптерін қалай орнату керектігі сипатталған.

- eBay -де 8 доллардан басталатын USB қосқышы бар FTDI 2232HL модулі және ақылы бағдарламалық қамтамасыз ету қажет емес. Бұл кәсіби JTAG адаптеріне 50 $+ жұмсағысы келмейтін әуесқойлар үшін тамаша шешім.

- Бұл адаптер ESP8266, ARM, AVR және басқа да басқа платформаларды жөндеу үшін пайдаланылуы мүмкін. Кейбір конфигурация мақсатты платформаға байланысты, бұл нұсқаулық тек ESP32 үшін орнатуды қамтиды.

- Егер сізде бұрыннан JTAG адаптері болса, оны openOCD қолдайтын кезде пайдалануға болады, jtag адаптерінің түріне байланысты әр түрлі конфигурация файлы бар openocd бағдарламасын іске қосыңыз.

- platform.io сізге орнатуды жеңілдете алады, бірақ жөндеу тек ақылы кәсіби нұсқада қолдау көрсетеді.

- ESP32 модульдерінің көпшілігімен жұмыс істейді. (мысалы, арзан wemos lolin 32)

- бұл jtag адаптері linux -пен де жұмыс істеуі керек, бірақ мен оны жеке тексерген жоқпын.

1 -қадам: Бағдарламалық қамтамасыз етудің талаптары

Arduino IDE 1.8 немесе одан жаңа нұсқасы. Windows дүкенінің нұсқасына қолдау көрсетілмейді. Сіз Arduino -ның https://www.arduino.cc ресми сайтынан жүктеуге болатын классикалық орнатушы нұсқасын пайдалануыңыз керек

Microsoft визуалды студиясының коды

Көрнекі студия коды үшін бұл қосымшалар міндетті болып табылады

  • Arduino
  • Жергілікті түзету

Мен C/C ++ үшін intelisense қосатын осы қосымшаны орнатуды ұсынамын

C/C ++

Бұл нұсқаулықта мен 2 жұмыс қалтасын қолданамын:

D: / devel / ESP32 / tools / - мұнда мен барлық құралдарды орналастырдым

C: / Users / xxxxx / Documents / Arduino / YourProject / - бұл нобайы бар қалта

Сіз қаласаңыз, файлдарды басқа жерге орналастыра аласыз, барлық сілтемелерді нақты жолыңызбен жаңартуды ұмытпаңыз.

2 -қадам: драйверді орнату және конфигурациялау

Драйверді орнату және конфигурациялау
Драйверді орнату және конфигурациялау
Драйверді орнату және конфигурациялау
Драйверді орнату және конфигурациялау
Драйверді орнату және конфигурациялау
Драйверді орнату және конфигурациялау

Терезелер әдепкі бойынша FT2232 автоматты түрде анықтаса да, Windows -тың әдепкі драйверлері барлық мүмкіндіктер үшін жеткіліксіз, сондықтан драйверді FTDI сайтынан жүктеу және орнату қажет

Дұрыс драйвер орнатылған кезде, сіз FT2232 модулін құрылғы менеджерінде тек 2 сериялық порт ретінде ғана емес, сонымен қатар «USB сериялық түрлендіргіші А» және «USB сериялық түрлендіргіші B» ретінде көресіз.

Екінші қадам - конвертердің бір арнасы үшін драйверді өзгерту. Zadig құралын https://zadig.akeo.ie/ сайтынан жүктеп алыңыз. Егер мен түсінсем, бұл құрал winUSB драйверін FTDI құрылғысына байланыстырады, бұл openOCD мен USB құрылғысы арасында төмен деңгейлі байланыс орнатуға мүмкіндік береді.

Zadig құралында «Параметрлер» мәзірінде «Барлық құрылғыларды көрсету» дегенді тексеріңіз, содан кейін адаптерді қол жетімді құрылғылар тізімінде көруге болады. «Қос RS232-HS (интерфейс 0)» тармағын таңдаңыз, содан кейін «WinUSB v6.1.xxxx» драйверін таңдаңыз және драйверді ауыстыру түймесін басыңыз.

Адаптерді компьютердің әр түрлі USB портына қосқан кезде, zadig құралы арқылы драйвер параметрлерін қайта өзгерту қажет, әйтпесе openOCD адаптерді таба алмайды.

3 -қадам: OpenOCD, Toolchain және Gdb

OpenOCD, құралдар тізбегі және Gdb
OpenOCD, құралдар тізбегі және Gdb

1. Ашық OCD - бұл дөңгелек күйге келтіруге арналған құрал, бір жағынан ол чиппен сөйлеседі, ол жөндеуші (клиент) қосыла алатын gdb серверін ұсынады. Https://github.com/espressif/openocd-esp32/releases сайтынан ESP32 үшін openOCD жүктеп алып, оны D: / devel / ESP32 / tools / қалтасына шығарыңыз.

2. openOCD конфигурация файлдарын өңдеңіз:

esp-wroom-32.cfg

Бұл файлға толық жол:

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

Бұл файлда «adapter_khz» параметрін өзгерту арқылы байланыс жылдамдығын орнатуға болады. Мысалы, «adapter_khz 8000» 8 МГц дегенді білдіреді.

Әдепкі мәні 20 МГц және егер сіз ұзынырақ секіргіш сымдарды немесе тақтаны пайдалансаңыз, ол тым жоғары болуы мүмкін. Мен 1 МГц -тен бастауға кеңес беремін, егер бәрі жақсы болса, жоғары жылдамдыққа өтіңіз, мен үшін 8 МГц сенімді жұмыс істейді.

minimodule.cfg

Бұл файлға толық жол: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg

Егер мен дұрыс түсінетін болсам, шынайы минимодуль - бұл FTDI шығарған FT 2232 жоғары бағалы тежегіш тақтасы, ал шынайы минимодуль мен арзан модуль немесе жалаңаш чиптің айырмашылығы - бұл USB сипаттамасы. open OCD құрылғының сипаттамасына негізделген jtag адаптерін іздейді, сонымен қатар бастапқы орналасуды реттеу қажет.

Арзан модульде «Dual RS232-HS» сипаттамасы бар. Егер сіз құрылғының сипаттамасына сенімді болмасаңыз, оны құрылғы менеджерінен тексере аласыз -> құрылғы сипаттары -> қойынды мәліметтері -> «Автобус туралы хабарланған құрылғы сипаттамасы»

Minimodule.cfg мазмұны төмендегі мысалға ұқсас болуы керек, # деп басталатын жолдарды жоюға болады.

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 0x00s ntx20x20b

esp32.cfg

Бұл файлға толық жол:

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

Esp32.cfg соңына 2 жолды қосыңыз. Бұл өзгеріссіз, нүктелік нүктелерді қосу жұмыс істемейді.

#Hw тоқтау нүктелерін күштеп қолданыңыз. Бізде жад картасы болғаннан кейін, bps.gdb_breakpoint_override бағдарламалық жасақтамасына да рұқсат беруге болады

3. xtensa-esp32-elf құралдар тізбегін жүктеңіз және орнатыңыз-бұл құралдар тізбегінде кез келген графикалық IDE-ден жұмыс күйін түзету үшін маңызды болып табылатын командалық жолдың отладчик (gdb клиенті) бар. Жалаңаш құралдар тізбегін espressif сайтынан жүктеуге болады, «Альтернативті орнату» бөлімінен

4 -қадам: Сымдар мен бірінші сынақ

Сым және бірінші сынақ
Сым және бірінші сынақ
Сым және бірінші сынақ
Сым және бірінші сынақ

FT2322 модулін ESP арқылы қосыңыз. Мен мүмкіндігінше қысқа сымдарды қолдануды ұсынамын. Егер сіз JTAG -те жаңадан болсаңыз, адаптердің TDI чиптің TDI -ге өтетінін ұмытпаңыз, сонымен қатар адаптердің TDO -сы чиптің TDO -на өтеді. JTAG деректер желілері Uart -те Rx/Tx сияқты қиылыспайды!

Келесі тест үшін мен жыпылықтайтын мысалдың эскизін немесе басқа да эскизді жүктеуді ұсынамын, ол процессордың жұмыс істеп тұрғанын немесе жарықдиодты жыпылықтауы немесе сериялық консольге жазу арқылы көрсетілуі мүмкін.

OpenOCD пәрменін орындау арқылы бастаңыз

D: / devel / ESP32 / tools / openocd-esp32 / bin / openocd.exe-s D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts -f интерфейсі/ftdi/minimodule.cfg -f тақтасы /esp-wroom-32.cfg

Бұл openOCD басталады, егер бәрі жақсы болса, командалық жолдың шығысында келесі жолдарды көруге болады:

Ақпарат: сағат жылдамдығы 8000 кГц Ақпарат: JTAG түрту: esp32.cpu0 түрту/құрылғы табылды: 0x120034e5 (mfg: 0x272 (Tensilica), бөлігі: 0x2003, вер: 0x1) Ақпарат: JTAG түрту: esp32.cpu1 түрту/құрылғы табылды: 0x120034e5 (mfg: 0x272 (Tensilica), бөлігі: 0x2003, вер: 0x1)

Сонымен қатар openocd процесі TCP 3333 портында тыңдалады

Жаңа терминалды ашыңыз және пәрмен жолымен gdb клиентін іске қосыңыз

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

Бір секунд күтіңіз, gdb терминалы дайын болғанда келесі командаларды бірінен соң бірін жазыңыз

мақсатты қашықтан басқару: 3333 ай қалпына келтіруді тоқтатуды жалғастыру

бірінші команда openocd отладтау серверіне қосылуды ашады, екіншісі ESP -те бағдарламаның орындалуын тоқтатады және жарық диоды жыпылықтауын тоқтатады, бағдарламаның орындалуын қалпына келтіруді жалғастырады және жарық диоды қайтадан жыпылықтай бастайды.

5 -қадам: Visual Studio кодына күйін келтіру конфигурациясын қосыңыз

Visual Studio кодына күйін келтіру конфигурациясын қосыңыз
Visual Studio кодына күйін келтіру конфигурациясын қосыңыз

Менің ойымша, сізде визуалды студия коды мен arduino addon дұрыс орнатылған және сіз нобайыңызды тексеріп, тақтаға жүктей аласыз. Егер олай болмаса, визуалды студия коды мен arduino-ны қалай конфигурациялау керектігін тексеріңіз, мысалы, осы бетте

Отладка алу үшін құрастыру шығару қалтасын көрсету қажет. Эскиз қалтасының астында.vscode (жасырын) қалтасы бар, мұнда arduino.json файлы бар. мына файлға келесі жолды қосыңыз:

«output»: «BuildOutput/»

тексеруді немесе жүктеуді іске қосыңыз және эскиз қалтасын қайта тексеріңіз, жаңа BuildOutput қалтасы және оның ішінде.elf кеңейтімі бар файл болуы керек. elf файлы отладка үшін өте маңызды.

Отладчик параметрлері launch.json файлында. Бұл файлды келесі мазмұнмен жасаңыз немесе сіз бұл файлды қоса берілген жобадан көшіре аласыз. 26 -жолды реттеуді және жобаның.elf файлына дұрыс жолды анықтауды ұмытпаңыз.

{// Мүмкін болатын атрибуттар туралы білу үшін IntelliSense пайдаланыңыз. // Бар атрибуттардың сипаттамаларын қарау үшін апарыңыз. // Қосымша ақпарат алу үшін мына сайтқа кіріңіз: https://go.microsoft.com/fwlink/?linkid=830387 «нұсқа»: «0.2.0», «конфигурациялар»: [{«аты»: «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 «}, {// динамикалық нұсқа» text «:» c:/Users/xxxxx/Documents/Arduino файлы /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf «// статикалық нұсқа //» мәтін «:» файл c: /Users/xxxxx/Documents/Arduino/YourProject/BuildOutput/YourProject.ino.elf «}, {«text»: «flushregs»}, {«text»: «thb app_main»}, {«text»: «c», «ignoreFailures»: true}], «stopAtEntry»: true, «serverStarted»: «Ақпарат \: [w / d \.]*: / аппараттық құрал «,» launchCompleteCommand «:» exec-жалғастыру «,» filterStderr «: шын,» args «: }]}

Жөндеуді қалай бастау керек:

  1. Жауап беріңіз және эскизіңізді тақтаға жүктеңіз
  2. OpenOCD параметрлері бар іске қосыңыз
  3. Қажет жерде кодқа тежеу нүктелерін орнатыңыз
  4. Барлық нүктелік нүктелерді орнатқаннан кейін, жобаның негізгі.ino файлын ашқаныңызға көз жеткізіңіз. (немесе launch.json ішіндегі.elf файлына арналған қатты код жолы)
  5. Жөндеу тақтасын қарсы кодта ашу (Ctrl + Shift + D)
  6. «Arduino-GDB-openOCD» отладчикті таңдаңыз, ол тек қол жетімді болуы керек.
  7. Жөндеуді бастау үшін F5 пернесін басыңыз

Ұсынылған: