Mikrokontroler/mikroprosesor berbasis ESP32 mempunyai fitur on-chip-debugging dengan protokol JTAG. Supaya ESP32 ini dapat didebug, maka perlu ada komponen JTAG Adapter. Petunjuk pemilihan JTAG adapter terdapat di artikel “Selecting JTAG Adapter“. Cara termudah adalah menggunakan board ESP32-WROVER-KIT yang sudah mempunyai JTAG adapter di dalamnya. Cara lain adalah menambahkan JTAG adapter pada board ESP32 yang belum dilengkapi dengan JTAG Adapter. Daftar JTAG Adapter yang dapat dipakai dapat dilihat antara lain di artikel “Debug Adapter Hardware“.
Pada tulisan ini diuraikan cara menyambungkan ESP32 ke JTAG Adapter berbasis FT2232HL.
Cara termudah melakukan debugging pada ESP32 adalah menggunakan board ESP32-WROVER-KIT yang sudah ada JTAG Adapter built-in di dalamnya. Sayangnya harga board ini agak mahal (sekitar USD 50). Jika Espressif sendiri menggunakan FT2232 untuk JTAG Adapter, nampaknya kemampuan FT2232 cukup bagus sebagai debugger.
Harga board ESP32 yang murah sekitar USD 7, sedangkan breakout board untuk FT2232 harganya sekitar USD 7, jadi dengan USD 14 sudah memperoleh ESP32 lengkap dengan JTAG debugger. Hanya saja perlu merangkai sendiri ESP32 dengan FT2232.
Daftar Isi
Hardware
Berikut ini teknik penyambungan ESP32 ke FT2232 menurut beberapa sumber.
#1 Analisis Skematik ESP32 WROVER KIT
Contoh cara menyambungkan antara ESP32 dengan FT2232 dapat dilihat dari skematik ESP32 WROVER KIT di situs Espressif. Berikut ini adalah pin JTAG pada ESP32, yaitu:
- MTCK
- MTDI
- MTDO
- MTMS
- EN
Berikut ini adalah bagian dari skematik ESP32 WROVER KIT, khususnya yang tersambung ke JTAG. Pin yang dipakai adalah ADBUS0, ADBUS1, ADBUS2, ADBUS3, ACBUS1, yang tersambung ke sinyal TCK, TDI, TDO, TMS dan R_RST
Tabel berikut berisi hasil analisis daftar pin dan sinyal JTAG pada skematik ESP32 WROVER KIT tersebut:
Pin FT2232HL | Sinyal | Sinyal | Pin ESP32 |
ADBUS0 | TCK | MTCK | R_IO13 |
ADBUS1 | TDI | MTDI | R_IO12 |
ADBUS2 | TDO | MTDO | R_IO15 |
ADBUS3 | TMS | MTMS | R_IO14 |
ACBUS2 | RST | EN | R_nTRST |
#2 Situs PlatformIO
Penyambungan JTAG juga dijelaskan di situs PlatformIO sebagai berikut:
FT2232H Mini-Module Pin | Board JTAG Pin | Description |
---|---|---|
GND [CN2-2] | GND | Digital ground |
AD0 [CN2-7] | TCK | JTAG Return Test Clock |
AD1 [CN2-10] | TDI | Test Data In |
AD2 [CN2-9] | TDO | Test Data Out |
AD3 [CN2-12] | TMS | Test Mode State |
AC2 [CN2-20] | RESET | Connect this pin to the (active low) reset input of the target CPU (EN for ESP32) |
Sumber: http://docs.platformio.org/en/latest/plus/debug-tools/minimodule.html
Modul FT2232 yang dipakai pada artikel tersebut adalah “FT2232H Mini Module” yang diproduksi oleh FTDI.
Produk breakout board serupa juga dibuat oleh CJMCU seperti pada foto berikut:
#3 Forum Platformio
Sebagai perbandingan, berikut ini daftar koneksi JTAG ke ESP32 menurut artikel forum PlatformIO (Debugging ESP32 – How), modul FT2232 yang digunakan adalah “FTDI2232 minimodule”:
To debug ESP32 using FTDI2232 minimodule, here is the required connection:
Sumber: https://community.platformio.org/t/debugging-esp32-how/4499
FTDI AD0 -> ESP32 GPIO13 (TCK)
FTDI AD1 -> ESP32 GPIO12 (TDI)
FTDI AD2 -> ESP32 GPIO15 (TDO)
FTDI AD3 -> ESP32 GPIO14 (TMS)
FTDI AC2 -> ESP32 EN (RST)
FTDI GND -> ESP32 GND
#4 Datasheet FT2232H
Penggunaan FT2232H sebagai JTAG juga dijelaskan secara ringkas di datasheet FT2232H sebagai berikut:
Software
Setelah mendapatkan kepastian cara menyambungkan hardware JTAG debugger, selanjutnya adalah setting software untuk melakukan debugging.
Status saat ini baru melakukan studi software apa saja yang perlu disiapkan. Beriktu ini penjelasan software untuk debugging ESP32:
- Penggunaan software debugger Eclipse/Command Line: https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/jtag-debugging/using-debugger.html https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/jtag-debugging/configure-other-jtag.html
- Penggunaan Debugger dengan PlatformIO: http://docs.platformio.org/en/latest/plus/debug-tools/minimodule.html
- Debugging ESP32 secara umum: https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/jtag-debugging/
Hasil debugging menyusul.
Kesimpulan
Kesimpulan sementara ini:
- Menurut studi literatur, ESP32 dapat didebug dengan hardware FT2232HL, dengan biaya total USD 14, lebih murah daripada harus memakai ESP WROVER KIT seharga USD 50.
- Penyambungan antara ESP32 dan FT2232 dijelaskan di beberapa situs, dengan isi konsisten.
- Proses debugging belum dilakukan, namun dari pengalaman selama ini, isi artikel di situs Espressif cukup lengkap dan mudah diikuti. Nampak bahwa Espressif cukup serius mengusahakan agar produk ESP32nya mudah dipakai oleh ‘orang biasa’.
Referensi
- All About Circuits: Getting Started with OPENOCD Using FT2232H Adapter for SWD Debugging
- FTDI: Datasheet FT2232H
- FTDI: Datasheet FT2232H Mini Module
- Espressif: Skematik ESP32 WROVER KIT
- OpenOCD: Daftar rangkaian JTAG Adapter “Debug Adapter Hardware”
- Espressif: Selecting JTAG Adapter
- JTAG Debugging for ESP32: https://gojimmypi.blogspot.com/2017/03/jtag-debugging-for-esp32.html