Daftar Isi:

ESP32 - Solusi Murah untuk di Circruit Debug: 5 Langkah
ESP32 - Solusi Murah untuk di Circruit Debug: 5 Langkah

Video: ESP32 - Solusi Murah untuk di Circruit Debug: 5 Langkah

Video: ESP32 - Solusi Murah untuk di Circruit Debug: 5 Langkah
Video: [iot]#ESP32_beginner-5Langkah mudah memulai micropython di esp32 2024, Juli
Anonim
ESP32 - Solusi Murah untuk Debug Sirkuit
ESP32 - Solusi Murah untuk Debug Sirkuit

Halo, Dalam instruksi ini dijelaskan cara mengatur adaptor JTAG murah berdasarkan chip FTDI 2232HL, dengan kode visual dan addon arduino.

- Modul FTDI 2232HL dengan konektor USB mulai dari $8 di ebay dan tidak memerlukan perangkat lunak berbayar. Ini adalah solusi yang bagus untuk penghobi yang tidak ingin menghabiskan 50$+ untuk adaptor JTAG profesionall.

- Adaptor ini dapat digunakan untuk debugging platform lain seperti ESP8266, ARM, AVR dan banyak lainnya. Beberapa konfigurasi tergantung pada platform target, instruksi ini hanya mencakup pengaturan untuk ESP32.

- Jika Anda sudah memiliki beberapa adaptor JTAG, Anda dapat menggunakannya ketika didukung oleh openOCD, cukup jalankan openocd dengan file konfigurasi yang berbeda berdasarkan jenis adaptor jtag Anda.

- platform.io dapat membuat pengaturan lebih mudah bagi Anda, tetapi debug hanya didukung dalam versi profesional berbayar.

- Bekerja dengan sebagian besar modul ESP32. (contohnya wemos lolin 32 murah)

- adaptor jtag ini harus bekerja dengan linux juga, tapi saya pribadi tidak mengujinya.

Langkah 1: Persyaratan Perangkat Lunak

Arduino IDE versi 1.8 atau yang lebih baru. Versi toko Windows tidak didukung. Anda harus menggunakan versi installer klasik yang dapat diunduh dari halaman resmi Arduino

Kode studio visual Microsoft

Add-on ini untuk kode visual studio adalah wajib

  • Arduino
  • Debug asli

Saya juga merekomendasikan untuk menginstal addon ini yang memungkinkan intelisense untuk C/C++

C/C++

Dalam manual ini saya akan menggunakan 2 folder kerja:

D:\devel\ESP32\tools\ - di sini saya telah menempatkan semua alat

C:\Users\xxxxx\Documents\Arduino\YourProject\ - ini adalah folder dengan sketsa

Anda dapat menempatkan file Anda di tempat lain jika Anda mau, jangan lupa untuk memperbarui semua referensi dengan jalur Anda yang sebenarnya.

Langkah 2: Instalasi dan Konfigurasi Driver

Instalasi dan Konfigurasi Driver
Instalasi dan Konfigurasi Driver
Instalasi dan Konfigurasi Driver
Instalasi dan Konfigurasi Driver
Instalasi dan Konfigurasi Driver
Instalasi dan Konfigurasi Driver

Bahkan jika windows secara otomatis mendeteksi FT2232 secara default, driver default windows tidak cukup untuk semua fitur lanjutan dan perlu mengunduh dan menginstal driver dari situs FTDI

Ketika driver yang benar diinstal, Anda akan melihat modul FT2232 Anda di manajer perangkat tidak hanya sebagai 2 port serial tetapi juga sebagai "USB serial converter A" dan "USB serial converter B"

Langkah kedua adalah mengubah driver untuk satu saluran konverter kami. Unduh alat zadig dari https://zadig.akeo.ie/. Jika saya benar-benar memahami alat ini menghubungkan driver winUSB ke perangkat FTDI yang memungkinkan komunikasi tingkat rendah antara openOCD dan perangkat USB.

Di alat zadig, di menu "Opsi" centang "Tampilkan semua Perangkat", maka Anda akan melihat adaptor Anda di daftar perangkat yang tersedia. Pilih "Dual RS232-HS (Interface 0)" lalu pilih driver pengganti "WinUSB v6.1.xxxx" dan terakhir klik tombol ganti driver.

Ketika Anda menghubungkan adaptor Anda ke port USB yang berbeda dari komputer Anda, perlu untuk mengubah pengaturan driver melalui alat zadig lagi, sebaliknya openOCD tidak akan menemukan adaptor Anda.

Langkah 3: OpenOCD, Toolchain dan Gdb

OpenOCD, Toolchain dan Gdb
OpenOCD, Toolchain dan Gdb

1. Open OCD adalah alat untuk men-debug sirkuit, di satu sisi berbicara dengan chip di sisi lain menyediakan server gdb tempat debugger (klien) dapat terhubung. Unduh openOCD untuk ESP32 dari https://github.com/espressif/openocd-esp32/releases dan ekstrak ke folder D:\devel\ESP32\tools

2. edit file konfigurasi openOCD:

esp-wroom-32.cfg

Path lengkap ke file ini adalah:

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

Dalam file ini Anda dapat mengatur kecepatan komunikasi dengan mengubah parameter "adapter_khz". Misalnya "adaptor_khz 8000" berarti 8Mhz.

Standarnya adalah 20MHz dan mungkin terlalu tinggi jika Anda menggunakan kabel jumper atau papan tempat memotong roti yang lebih panjang. Saya merekomendasikan untuk memulai dari 1Mhz dan jika semuanya baik-baik saja, pergi ke kecepatan yang lebih tinggi, bagi saya 8Mhz bekerja dengan andal.

minimodule.cfg

Path lengkap ke file ini adalah: D:\devel\ESP32\tools\openocd-esp32\share\openocd\scripts\interface\ftdi\minimodule.cfg

Jika saya mengerti dengan benar, minimodule asli adalah papan rem yang terlalu mahal dengan FT 2232 yang diproduksi oleh FTDI dan satu-satunya perbedaan antara minimodule asli dan modul murah atau chip kosong yang tersedia di pasaran adalah deskripsi USB default. open OCD mencari adaptor jtag berdasarkan deskripsi perangkat, juga tata letak init perlu disesuaikan.

Modul murah memiliki deskripsi "Dual RS232-HS". Jika Anda tidak yakin tentang deskripsi perangkat Anda, Anda dapat memeriksanya di pengelola perangkat -> properti perangkat -> detail tab -> nilai properti "Deskripsi perangkat yang dilaporkan bus"

Isi minimodule.cfg akan terlihat seperti contoh di bawah ini, baris dimulai dengan # dapat dihapus.

antarmuka 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

Path lengkap ke file ini adalah:

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

Tambahkan 2 baris berikut ke akhir esp32.cfg. Tanpa modifikasi ini, menambahkan brakepoint tidak akan berfungsi.

#Force hw breakpoints. Setelah kami memiliki peta memori, kami juga dapat mengizinkan perangkat lunak bps.gdb_breakpoint_override hard

3. Unduh dan instal xtensa-esp32-elf toolchain - rantai alat ini berisi debugger baris perintah (klien gdb) yang penting untuk menjalankan debug dari IDE grafis apa pun. Toolchain telanjang dapat diunduh dari situs espressif, bagian "Pengaturan alternatif"

Langkah 4: Pengkabelan dan Tes Pertama

Pengkabelan dan Tes Pertama
Pengkabelan dan Tes Pertama
Pengkabelan dan Tes Pertama
Pengkabelan dan Tes Pertama

Hubungkan modul FT2322 dengan ESP. Saya merekomendasikan untuk menggunakan kabel sependek mungkin. Jika Anda baru mengenal JTAG, jangan lupa bahwa TDI adaptor akan menuju TDI chip, juga TDO adaptor akan menuju TDO chip. Jalur data JTAG TIDAK DISELESAIKAN seperti Rx/Tx di uart!

Untuk pengujian berikut saya sarankan untuk mengunggah sketsa contoh kedipan atau sketsa lainnya yang dapat menunjukkan kapan CPU sedang berjalan atau tidak dengan mengedipkan LED atau berbunyi bip atau menulis ke konsol serial.

Mulai openOCD dengan mengikuti perintah

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

Ini akan memulai openOCD dan jika semuanya baik-baik saja, Anda akan melihat di output baris perintah berisi baris berikut:

Info: clock speed 8000 kHzInfo: JTAG tap: esp32.cpu0 tap/perangkat ditemukan: 0x120034e5 (mfg: 0x272 (Tensilica), bagian: 0x2003, ver: 0x1) Info: JTAG tap: esp32.cpu1 tap/perangkat ditemukan: 0x120034e5 (mfg: 0x272 (Tensilica), bagian: 0x2003, ver: 0x1)

Juga proses openocd akan mendengarkan pada port TCP 3333

Buka terminal baru dan mulai klien baris perintah gdb dengan mengikuti perintah

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

Tunggu sebentar dan ketika terminal gdb siap, tulis perintah berikut satu per satu

target jarak jauh: 3333mon reset berhenti lanjutkan

perintah pertama membuka koneksi ke server debug openocd, kedua akan menghentikan eksekusi program pada ESP dan LED harus berhenti berkedip, melanjutkan pemulihan eksekusi program dan LED akan mulai berkedip lagi.

Langkah 5: Tambahkan Konfigurasi Debug ke Kode Visual Studio

Tambahkan Konfigurasi Debug ke Kode Visual Studio
Tambahkan Konfigurasi Debug ke Kode Visual Studio

Saya berasumsi pada saat itu Anda sudah mengonfigurasi kode visual studio dan addon arduino dengan benar dan Anda dapat memverifikasi dan mengunggah sketsa Anda ke papan tulis. Jika tidak, silakan periksa beberapa instruksi cara mengkonfigurasi kode visual studio dan arduino, misalnya di halaman ini

Agar debug berfungsi, perlu untuk menentukan folder output build. Di bawah folder sketsa Anda ada folder (tersembunyi).vscode, di mana file arduino.json. tambahkan ke file ini baris berikut:

"keluaran": "BuildOutput/"

jalankan verifikasi atau unggah dan periksa folder sketsa Anda lagi, harus ada folder BuildOutput baru dan di dalamnya file dengan ekstensi.elf. file elf sangat penting untuk debug.

Pengaturan debugger ada di file launch.json. Buat file ini dengan konten berikut, atau Anda dapat menyalin file ini dari contoh proyek terlampir. Jangan lupa sesuaikan baris 26 dan tentukan jalur yang benar ke file.elf proyek Anda.

{ // Gunakan IntelliSense untuk mempelajari tentang kemungkinan atribut. // Arahkan kursor untuk melihat deskripsi atribut yang ada. // Untuk informasi lebih lanjut, kunjungi: 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": "target remote:3333" }, { "text": "mon reset halt" }, { //varian dinamis "text": "file c:/Users/xxxxx/Documents/Arduino /${workspaceFolderBasename}/BuildOutput/${fileBasename}.elf" //varian statis //"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\.]*:\ hardware", "launchCompleteCommand": "exec-continue", "filterStderr": true, "args": }] }

Cara memulai debug:

  1. Patuhi dan unggah sketsa Anda ke papan
  2. Mulai openOCD dengan parameter
  3. Setel titik rem dalam kode di tempat yang Anda inginkan
  4. Setelah mengatur semua titik rem, pastikan Anda telah membuka file.ino utama proyek Anda. (atau jalur hardcode ke file.elf di launch.json)
  5. Buka panel debug dalam kode vs (Ctrl + Shift + D)
  6. Pilih debugger "Arduino-GDB-openOCD", seharusnya hanya tersedia.
  7. Tekan F5 untuk memulai debug

Direkomendasikan: