Difference between revisions of "Debug Probes"
AutumnLeaves (talk | contribs) |
AutumnLeaves (talk | contribs) |
||
Line 191: | Line 191: | ||
In the wiki (under [Developer_Guide]) is already some helpful information: | In the wiki (under [Developer_Guide]) is already some helpful information: | ||
* Use | * Use Black Magic Probe with Eclipse [[RT_Paparazzi#Debugging_with_an_Eclipse_IDE]]. | ||
* General OpenOCD/GDB commands in reagards of the BMP, also about SWD [[DevGuide/GDB_OpenOCD_Debug#Debugging_with_GDB_over_JTAG]] [[DevGuide/GDB_OpenOCD_Debug#Black_Magic_Probe]]. | * General OpenOCD/GDB commands in reagards of the BMP, also about SWD [[DevGuide/GDB_OpenOCD_Debug#Debugging_with_GDB_over_JTAG]] [[DevGuide/GDB_OpenOCD_Debug#Black_Magic_Probe]]. | ||
Line 211: | Line 211: | ||
$ make PROBE_HOST=native | $ make PROBE_HOST=native | ||
$ cd ../scripts | $ cd ../scripts | ||
Connect the | Connect the Black Magic Probe to USB while holding down the button for firmware update, then start "stm32_mem.py". | ||
$ stm32_mem.py ../src/blackmagic.bin | $ stm32_mem.py ../src/blackmagic.bin | ||
Revision as of 08:37, 6 January 2016
These various debug probes can be used for flashing and debugging Paparazzi hardware, some can even as USB-UART adapters.
Most are compatible with the currently used STM32 platform, some also with the older LPC 21xx.
Debug probes for Atmel/AVR and SiLabs (ESC Controller chips) are located on the ESC page since those Microcontrollers are note more used as main processors.
Debug Protocols / Interfaces
There are two different relevant Protocolls / Interfaces for flashing and debugging for STM32:
Note: Some STM32 MCUs can also be flashed via Serial and or USB DFU! But SWD and JTAG provide (much better) debugging capabilities.
SWD
ARM Serial Wire Debug (SWD) is a program and debug protocol for ARM processors. It's a low pin count and high-performance alternative and replacement to JTAG.
JTAG
JTAG is a industry standard on-chip debugging protocoll. It can be used for one or more chips (daisy chained), for interfacing with the chip as well as flashing software.
DevGuide/OpenOCD can be used for interfacing with JTAG hardware (e.g. FTDI chips).
CricketProbe v1.00
The CricketProbe is a programming and debugging tool for ARM Cortex MCU, based on Black Sphere Technologies Black Magic Probe.
Lyorak Probe
The Lyorak probe is a programming and debugging tool for ARM Cortex MCU, based on the Black Magic Probe.
Designed with 1206 SMD components for easy assmbly and a CAN interface.
Documentation
molnarkares/blackmagic git repo (fork from blackmagic)
Black Magic Probe
This is the original Black Magic Probe from Black Sphere Technologies, a programming and debugging tool for ARM Cortex MCU.
Documentation
blacksphere/blackmagic git repo [1] Buy at 1bitsquared for 65$
STLink
Most STM discovery / eval boards comes with a ST-Link V2 on board, with one exception; the STM32VL version, that board comes with ST-Link V1.
These can be used with texane’s tools, or reflashed with the blackmagic firmware.
Clones
There are some variations of the STLink available. Some with the same STM32F103C8T6 MCU, some with a STM32F101C8T6.
More informations on the STLink#Clones page.
Likely possible to use them with (texanes) STLink or Blackmagic software.
FLOSS JTAG
The FLOSS JTAG is based on an FTDI 2232HL chip that allows two simultaneous USB connections, which means that FLOSS JTAG allows JTAG and UART simultaneously.
The upper side contains the JTAG connector and two sets of RX/TX LEDs for JTAG and UART/COM interface separately. The JTAG connector is 2x5 pins, 0.05-inch pitch, and is compatible with the Samtec FFSD-05-D-06.00-01-N-RW-R ribbon cable.
On the bottom side there is 4 pin UART connector, which contains (from top to bottom on the image, or color dots): Ground (black), RX (orange), TX (yellow), and +5V (red)
It can be used with DevGuide/OpenOCD software.
Documentation
randomprojects.org/wiki/Floss-JTAG
FT2232H Mini Module
The FT2232H Mini modules can be used with blackmagic firmware or as FLOSS-JTAG device.
Important
Out of the box, there is NO power supply for the FT2232H because this can either done with USB or external 5V.
The pictures above show two different PCB versions. The suggested connections only apply to the right (latest) layout.
Connect: (for power supply over USB)
- CN3 pin 1 to CN3 pin 3
- CN2 pin group 1,3,5 to CN2 pin group 11,21 and to CN3 pin group 12,22
Pinout
Use | Pin |
---|---|
3V3 | CN2-1 |
3V3 | CN2-3 |
3V3 | CN2-5 |
GND | CN2-2 |
GND | CN2-4 |
GND | CN2-6 |
GND | CN3-2 |
GND | CN3-4 |
Use | Pin | Name |
---|---|---|
UART1 RX | CN2-10 | ADBUS1 |
UART1 TX | CN2-7 | ADBUS0 |
UART2 RX | CN3-25 | BDBUS1 |
UART2 TX | CN3-26 | BDBUS0 |
Use | Pin | Name |
---|---|---|
JTAG1 TCK | CN2-7 | ADBUS0 |
JTAG1 TDI | CN2-10 | ADBUS1 |
JTAG1 TDO | CN2-9 | ADBUS2 |
JTAG1 TMS | CN2-12 | ADBUS3 |
JTAG2 TCK | CN3-26 | BDBUS0 |
JTAG2 TDI | CN3-25 | BDBUS1 |
JTAG2 TDO | CN3-24 | BDBUS2 |
JTAG2 TMS | CN3-23 | BDBUS3 |
Blackmagic firmware
First, get the VID/PID for your FT2232 device using 'lsusb'. Edit the file 'src/libftdi/platform.h' and change the VID/PID to match your hardware. Compile the application with the command:
make PROBE_HOST=libftdi
Use as FLOSS-JTAG
With the tool "FT_Prog" change the description the FT2232H to "FLOSS-JTAG".
Documentation
FT2232H Datasheet
FT2232H Mini Module Datatsheet
Mouser shop 22€
Black Magic Probe usage
In the wiki (under [Developer_Guide]) is already some helpful information:
- Use Black Magic Probe with Eclipse RT_Paparazzi#Debugging_with_an_Eclipse_IDE.
- General OpenOCD/GDB commands in reagards of the BMP, also about SWD DevGuide/GDB_OpenOCD_Debug#Debugging_with_GDB_over_JTAG DevGuide/GDB_OpenOCD_Debug#Black_Magic_Probe.
Upgrade BMP firmware
Check firmware version:
$ arm-none-eabi-gdb (gdb) target extended-remote /dev/ttyACM0 (gdb) monitor version
Download source from git, compile:
$ git clone https://github.com/blacksphere/blackmagic $ cd blackmagic $ git submodule init $ git submodule update $ make $ cd src $ make clean $ make PROBE_HOST=native $ cd ../scripts
Connect the Black Magic Probe to USB while holding down the button for firmware update, then start "stm32_mem.py".
$ stm32_mem.py ../src/blackmagic.bin
You can build different targets (Hardware Platforms), default value is;
$ make PROBE_HOST=native