Mundarija:

ESP32 - aylanma disk raskadrovka uchun arzon echim: 5 qadam
ESP32 - aylanma disk raskadrovka uchun arzon echim: 5 qadam

Video: ESP32 - aylanma disk raskadrovka uchun arzon echim: 5 qadam

Video: ESP32 - aylanma disk raskadrovka uchun arzon echim: 5 qadam
Video: 6 Поворотный энкодер FLProg и ЖК-дисплей I2C |ESP32 NodeMCU |Визуальное программирование для Arduino 2024, Noyabr
Anonim
ESP32 - aylanma disk raskadrovka uchun arzon echim
ESP32 - aylanma disk raskadrovka uchun arzon echim

Salom, bu ko'rsatmada FTDI 2232HL chipiga asoslangan vizual kod va arduino addon bilan arzon JTAG adapterini qanday o'rnatish kerakligi tasvirlangan.

- USB ulagichi bilan FTDI 2232HL moduli ebayda 8 dollardan boshlanadi va pullik dasturiy ta'minot talab qilinmaydi. Bu professional JTAG adapteriga 50 $+ sarflashni istamaydigan havaskorlar uchun ajoyib echim.

- Bu adapter ESP8266, ARM, AVR va boshqa ko'plab boshqa platformalarni disk raskadrovka qilish uchun ishlatilishi mumkin. Ba'zi konfiguratsiya maqsadli platformaga bog'liq, bu ko'rsatma faqat ESP32 uchun o'rnatishni o'z ichiga oladi.

- Agar sizda JTAG adapteri bo'lsa, uni openOCD qo'llab -quvvatlasa, undan foydalanishingiz mumkin, faqat jtag adapter turiga qarab turli xil konfiguratsiya fayli bilan openocd -ni ishga tushiring.

- platform.io sizga sozlashni osonlashtirishi mumkin, lekin disk raskadrovka faqat pullik professional versiyada qo'llab -quvvatlanadi.

- ESP32 modullarining ko'pchiligi bilan ishlaydi. (masalan, arzon wemos lolin 32)

- bu jtag adapteri linux bilan ham ishlashi kerak, lekin men uni shaxsan sinab ko'rmaganman.

1 -qadam: Dasturiy ta'minot shartlari

Arduino IDE 1.8 yoki undan yangi versiyasi. Windows do'koni versiyasi qo'llab -quvvatlanmaydi. Klassik o'rnatish versiyasini ishlatishingiz kerak, uni rasmiy Arduino sahifasidan yuklab olishingiz mumkin

Microsoft vizual studiya kodi

Vizual studiya kodi uchun ushbu qo'shimchalar majburiydir

  • Arduino
  • Mahalliy disk raskadrovka

Men C/C ++ uchun intelisense -ni yoqadigan ushbu qo'shimchani o'rnatishni tavsiya qilaman

C/C ++

Ushbu qo'llanmada men 2 ta ishchi papkadan foydalanaman:

D: / devel / ESP32 / tools / - bu erda men barcha vositalarni joylashtirdim

C: / Users / xxxxx / Documents / Arduino / YourProject / - bu eskizli papka

Agar xohlasangiz, fayllaringizni boshqa joyga qo'yishingiz mumkin, iltimos, barcha yo'llanmalarni haqiqiy yo'lingiz bilan yangilashni unutmang.

2 -qadam: haydovchini o'rnatish va sozlash

Haydovchi o'rnatish va sozlash
Haydovchi o'rnatish va sozlash
Haydovchilarni o'rnatish va sozlash
Haydovchilarni o'rnatish va sozlash
Haydovchilarni o'rnatish va sozlash
Haydovchilarni o'rnatish va sozlash

Hatto derazalar avtomatik ravishda FT2232 -ni aniqlasa ham, Windows -ning standart drayverlari barcha qo'shimcha funktsiyalar uchun etarli emas va drayverni FTDI saytidan yuklab olish va o'rnatish kerak

To'g'ri haydovchi o'rnatilganda, siz FT2232 modulini qurilma menejerida nafaqat ikkita ketma -ket port, balki "USB ketma -ket USB konvertori" va "USB ketma -ket konvertori B" sifatida ham ko'rishingiz kerak.

Ikkinchi qadam - konvertorimizning bitta kanali uchun drayverni o'zgartirish. Zadig vositasini https://zadig.akeo.ie/ saytidan yuklab oling. Agar men bu vositani to'g'ri tushunsam, winUSB drayverini FTDI qurilmasiga ulayman, bu esa openOCD va USB qurilmasi o'rtasida past darajadagi aloqa o'rnatishga imkon beradi.

Zadig asbobining "Tanlovlar" menyusida "Barcha qurilmalarni ko'rsatish" bandini belgilang, shunda siz adapterni mavjud qurilmalar ro'yxatida ko'rishingiz kerak. "Dual RS232-HS (Interface 0)" ni tanlang, so'ngra "WinUSB v6.1.xxxx" drayverini tanlang va drayverni almashtirish tugmasini bosing.

Adapterni kompyuterning boshqa USB portiga ulaganingizda, drayver sozlamalarini zadig vositasi orqali o'zgartirish zarur, aks holda openOCD sizning adapteringizni topa olmaydi.

3 -qadam: OpenOCD, asboblar zanjiri va Gdb

OpenOCD, asboblar zanjiri va Gdb
OpenOCD, asboblar zanjiri va Gdb

1. Ochiq OKB - bu disk raskadrovka vositasi, bir tomondan u chip bilan gaplashadi, bir tomondan u gdb serverini tuzatuvchi (mijoz) ulanishi mumkin. ESP32 uchun openOCD-ni https://github.com/espressif/openocd-esp32/releases saytidan yuklab oling va uni D: / devel / ESP32 / tools / jildiga oching.

2. openOCD konfiguratsiya fayllarini tahrirlash:

esp-wroom-32.cfg

Bu faylga to'liq yo'l:

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

Ushbu faylda siz "adapter_khz" parametrini o'zgartirish orqali aloqa tezligini o'rnatishingiz mumkin. Masalan, "adapter_khz 8000" 8 MGts ni bildiradi.

Standart - 20 MGts va agar siz uzunroq o'tish simlari yoki taxtadan foydalansangiz, bu juda yuqori bo'lishi mumkin. Men 1 MGts dan boshlashni maslahat beraman va agar hamma narsa yaxshi bo'lsa, yuqori tezlikka o'ting, men uchun 8 MGts ishonchli ishlaydi.

minimodule.cfg

Bu faylga to'liq yo'l: D: / devel / ESP32 / tools / openocd-esp32 / share / openocd / scripts / interface / ftdi / minimodule.cfg

Agar men to'g'ri tushunsam, haqiqiy minimodul - bu FTDI tomonidan ishlab chiqarilgan FT 2232 rusumli tormoz taxtasi va bozorda mavjud bo'lgan haqiqiy minimodul va arzon modul yoki yalang'och chip o'rtasidagi farq - bu standart USB tavsifi. ochiq OKB qurilmaning tavsifiga asoslangan jtag adapterini qidiradi, shuningdek, tartibni sozlash kerak.

Arzon modul "Dual RS232-HS" tavsifiga ega. Agar siz qurilmangiz tavsifiga ishonchingiz komil bo'lmasa, uni qurilma menejeri -> qurilma xususiyatlari -> yorliq tafsilotlari -> "Avtobus haqida xabar berilgan qurilma tavsifi" bo'limida tekshirishingiz mumkin.

Minimodule.cfg ning mazmuni quyidagi misolga o'xshash bo'lishi kerak, # bilan boshlangan satrlarni o'chirish mumkin.

interfeysi 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 -0x00b

esp32.cfg

Bu faylga to'liq yo'l:

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

Esp32.cfg oxiriga quyidagi 2 qatorni qo'shing. Ushbu o'zgartirishsiz, tormoz nuqtalarini qo'shish ishlamaydi.

#Hw to'xtash nuqtalarini majburlang. Xotira xaritasiga ega bo'lgandan so'ng, bps.gdb_breakpoint_override dasturiga ham qattiq ruxsat bera olamiz

3. Xtensa-esp32-elf asboblar zanjirini yuklab oling va o'rnating-bu asboblar panelida har qanday grafik IDE dan ishchi disk raskadrovka qilish uchun muhim bo'lgan buyruq satrini tuzatuvchisi (gdb mijozi) mavjud. Yalang'och asboblar zanjirini espressif saytining "Muqobil sozlash" bo'limidan yuklab olish mumkin

4 -qadam: simlar va birinchi sinov

Ulanish va birinchi sinov
Ulanish va birinchi sinov
Ulanish va birinchi sinov
Ulanish va birinchi sinov

FT2322 modulini ESP bilan ulang. Men iloji boricha qisqa simlardan foydalanishni tavsiya qilaman, agar siz JTAG -da yangi bo'lsangiz, adapterning TDI -ni chipning TDI -ga o'tishini unutmang, shuningdek, adapterning TDO -si ham TDO -ga o'tadi. JTAG ma'lumot liniyalari uartda Rx/Tx kabi kesishmagan!

Keyingi test uchun men LEDning miltillashi, signal berish yoki ketma -ket konsoliga yozish orqali CPU ishlayotganini yoki ishlamasligini ko'rsatadigan milt -milt eskizni yoki boshqa eskizni yuklashni tavsiya qilaman.

Buyruqni bajarish orqali OpenOCD -ni ishga tushiring

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

Bu openOCD -ni ishga tushiradi va agar hamma narsa yaxshi bo'lsa, buyruq satrining chiqishida quyidagi satrlarni ko'rishingiz kerak:

Ma'lumot: soat tezligi 8000 kHz mfg: 0x272 (Tensilica), qism: 0x2003, ver: 0x1)

Openocd jarayoni TCP 3333 portida ham eshitiladi

Yangi terminalni oching va buyruq satri gdb mijozini buyruqni bajaring

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

Bir soniya kutib turing va gdb terminali tayyor bo'lganda quyidagi buyruqlarni birma -bir yozing

maqsadli masofadan boshqarish pulti: 3333 oyni tiklashni to'xtatish

birinchi buyruq openocd disk raskadrovka serveriga ulanishni ochadi, ikkinchisi ESPda dasturning bajarilishini to'xtatadi va LED yonib -o'chishni to'xtatadi, dasturning bajarilishini tiklashni davom ettiradi va LED yana miltillay boshlaydi.

5 -qadam: Visual Studio kodiga disk raskadrovka konfiguratsiyasini qo'shing

Visual Studio kodiga disk raskadrovka konfiguratsiyasini qo'shing
Visual Studio kodiga disk raskadrovka konfiguratsiyasini qo'shing

O'ylaymanki, siz vizual studiya kodini va arduino addon -ni to'g'ri tuzgansiz va siz o'zingizning eskizingizni taxtaga yuklashingiz mumkin. Agar yo'q bo'lsa, iltimos, vizual studiya kodini va arduino-ni sozlash bo'yicha ko'rsatmalarni tekshiring, masalan, bu sahifada

Nosozliklarni tuzatish uchun kerakli chiqish papkasini belgilash kerak. Eskiz papkangiz ostida.vscode (yashirin) papkasi bor, bu erda arduino.json fayli. ushbu faylga quyidagi qatorni qo'shing:

"chiqish": "BuildOutput/"

tekshirish yoki yuklashni ishga tushiring va eskiz papkasini qayta tekshiring, yangi BuildOutput papkasi va ichida.elf kengaytmasi bo'lgan fayl bo'lishi kerak. elf fayli disk raskadrovka uchun juda muhim.

Nosozliklarni tuzatish sozlamalari launch.json faylida. Ushbu faylni quyidagi tarkib bilan yarating yoki siz ushbu faylni biriktirilgan misol loyihasidan nusxalashingiz mumkin. 26 -qatorni sozlashni va loyihangiz.elf faylining to'g'ri yo'lini belgilashni unutmang.

{// Mumkin bo'lgan atributlar haqida bilish uchun IntelliSense -dan foydalaning. // Mavjud atributlarning tavsiflarini ko'rish uchun sichqonchaning ustiga bosing. // Qo'shimcha ma'lumot olish uchun tashrif buyuring: https://go.microsoft.com/fwlink/?linkid=830387 "versiya": "0.2.0", "konfiguratsiyalar": [{"nomi": "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 "}, {// dinamik variant" text ":" file c:/Users/xxxxx/Documents/Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf "// statik variant //" matn ":" fayl c: /Users/xxxxx/Documents/Arduino/YourProject/BuildOutput/YourProject.ino.elf "}, {"text": "flushregs"}, {"text": "thb app_main"}, {"text": "c", "ignoreFailures": true}], "stopAtEntry": true, "serverStarted": "Ma'lumot \: [ w / d \.]*: / apparat "," launchCompleteCommand ":" exec-Continue "," filterStderr ": true," args ": }]}

Nosozliklarni tuzatishni qanday boshlash kerak:

  1. Murojaat qiling va eskizingizni taxtaga yuklang
  2. Parametrlar bilan openOCD -ni ishga tushiring
  3. Siz xohlagan joyga kodda tormoz nuqtalarini o'rnating
  4. Barcha tormoz nuqtalarini o'rnatganingizdan so'ng, loyihangizning asosiy.ino faylini ochganingizga ishonch hosil qiling. (yoki launch.json da.elf faylining qattiq kodli yo'li)
  5. Nosozliklarni tuzatish panelini boshqa kodda oching (Ctrl + Shift + D)
  6. "Arduino-GDB-openOCD" tuzatuvchisini tanlang, faqat mavjud bo'lishi kerak.
  7. Tuzatishni boshlash uchun F5 tugmasini bosing

Tavsiya: