CuVoodoo

the sorcery of copper

User Tools

Site Tools


jtag

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
jtag [2020/06/16 13:47] – [mini ST-LINK V2] update CKS link kingkevinjtag [2024/01/07 17:49] (current) – external edit 127.0.0.1
Line 217: Line 217:
 It has been [[https://medium.com/@paramaggarwal/converting-an-stm32f103-board-to-a-black-magic-probe-c013cf2cc38c|ported]] on the [[stm32f1xx#blue_pill|blue pill]], but I don't find this board as handy as a dongle.\\ It has been [[https://medium.com/@paramaggarwal/converting-an-stm32f103-board-to-a-black-magic-probe-c013cf2cc38c|ported]] on the [[stm32f1xx#blue_pill|blue pill]], but I don't find this board as handy as a dongle.\\
 It has also been [[http://blog.linuxbits.io/2016/02/15/cheap-chinese-st-link-v-2-programmer-converted-to-black-magic-probe-debugger/|ported]] to the [[#st-link_v2_aluminium|ST-Link V2 clone]], but then there is no additional UART anymore.\\ It has also been [[http://blog.linuxbits.io/2016/02/15/cheap-chinese-st-link-v-2-programmer-converted-to-black-magic-probe-debugger/|ported]] to the [[#st-link_v2_aluminium|ST-Link V2 clone]], but then there is no additional UART anymore.\\
-So I decided to port it to the [[#baite|baite]]. 
-This has less power pins (who needs 2xGND, 2x5V, 3x3.3V anyway), but provides enough function pins to add UART (and SRST). 
- 
-To build the firmware ([[https://github.com/blacksphere/blackmagic/pull/274|patch]] integration pending): 
-<code bash> 
-git clone https://github.com/tsaitgaist/blackmagic.git 
-cd blackmagic 
-git submodule init 
-git submodule update 
-make 
-cd src 
-make clean 
-make PROBE_HOST=baite 
-</code> 
- 
-Now we need to re-flash the Baite dongle.\\ 
-As you can see on the {{:jtag:baite.pdf|schematic}} the JTAG and SWD pins of the micro-controller are not connected (there even are no pads on the board for the pins to be soldered on). 
-But on the back of the board you can find test points so to program the device using the serial bootloader: 
- 
-^ pin ^ signal ^ 
-| 1 (square) | RX | 
-| 2 | TX | 
-| 3 | BOOT0 | 
-| 4 | +5V | 
-| 5 | GND | 
- 
-Use any USB to UART converter and connect the corresponding pins to this port. 
-Don't power the Baite dongle over USB since it might then boot the normal application. 
-Instead let the USB to UART converter power it. 
-To start the serial bootloader when powering the dongle you need to set BOOT0 high by connecting it to +3.3V or DTR (or any high signal present on the USB to UART converter). 
- 
-To flash the Black Magic firmware I used [[https://sourceforge.net/p/stm32flash/wiki/Home/|stm32flash]]. 
-Since the flash is read/write protected you first need to clear these option bits. 
- 
-<code bash> 
-# disable flash read protection 
-stm32flash -k /dev/ttyUSB0 
-# disable flash write protection 
-stm32flash -u /dev/ttyUSB0 
-# erase flash 
-stm32flash -o /dev/ttyUSB0 
-# flash the DFU bootloader 
-stm32flash -w blackmagic_dfu.bin -v /dev/ttyUSB0 
-# flash the main firmware 
-stm32flash -w blackmagic.bin -v -S 0x08002000 /dev/ttyUSB0 
-</code> 
- 
-Unplug and re-plug the Baite dongle. 
-The adapter should be running the main application and two USB CDC ACM ports will appear. 
- 
-You can re-flash the device from the main application using the DFU bootloader with: 
-<code bash> 
-python2 ../scripts/stm32_mem.py blackmagic.bin 
-</code> 
- 
-Note: Since this adapter is based on an STM32F103C8 micro-controller with 64 kB of flash the DFU bootloader only advertises 56 kB of flash available for the main application. 
-Because the blackmagic firmware exceeds this size it will not be possible to flash it through if the DFU software doesn't ignore this restriction (i.e. ''dfu-util''). 
-STM32F103C8 micro-controllers often have 128 kB of flash though, thus it is still possible to flash the blackmagic firmware using the serial bootloader (at address 0x08002000, with verification enbaled ot ensured the whole firmware has been written successfully) or ''stm32_mem''. 
- 
-Here is the new "BMP Baite" {{ :jtag:bmp_baite.pdf |pinout}}: 
-^ signal ^ pin ^ pin ^ signal ^ 
-| SRST | 1 | 2| +3.3V | 
-| +5V | 3 | 4 | JTCK/SWCLK | 
-| RX | 5 (key) | 6 | JTMS/SWDIO | 
-| GND | 7 | 8 | JTDO/TRACESWO | 
-| TX | 9 | 10 | JTDI | 
- 
-**note**: the RX pin is pulled up by a 620 ohms resistor. Thus the TX connected to BMP Baite must by strong enough to drive it low (e.g. not like with the CH340 USB to UART converter). 
- 
-If you connect SRST to the target NRST, it is even possible to reset the target board without having to press on the on-board reset button (of there is any): 
-<code bash> 
-gdb --eval-command="target extended-remote /dev/ttyACM0" --eval-command="monitor hard_srst" --eval-command="quit" 
-</code> 
 ===== Altera USB-Blaster ===== ===== Altera USB-Blaster =====
  
Line 385: Line 312:
 ==== PIC USB-Blaster ==== ==== PIC USB-Blaster ====
  
-This one uses a Microchip PIC18F14 micro-controller and has no buffer (thus only supporting V signals).+This one uses a Microchip PIC18F14 micro-controller (with embedded 3.3V LDO) and has no buffer (thus only supporting 3.3 V signals).
  
 {{:jtag:mini_pic_front.jpg?0x150|PIC USB-Blaster front}} {{:jtag:mini_pic_front.jpg?0x150|PIC USB-Blaster front}}
Line 413: Line 340:
 But v8 and v9 are not supported anymore by J-Link, meaning no new feature will be added to them. But v8 and v9 are not supported anymore by J-Link, meaning no new feature will be added to them.
 Instead I recommend to get the [[https://www.segger.com/products/debug-probes/j-link/models/j-link-edu/|J-Link EDU]] which is a supported v10 and not expensive. Instead I recommend to get the [[https://www.segger.com/products/debug-probes/j-link/models/j-link-edu/|J-Link EDU]] which is a supported v10 and not expensive.
 +
 +Here pictures from devices not from official distributors, thus they might not be genuine but only clones.
  
 They come in the same case: They come in the same case:
Line 436: Line 365:
  
 Here a J-Link v10. Here a J-Link v10.
-This is currently the only version being developed on. 
 It uses a NXP LPC4337 which supports USB high speed, and allows faster debugging speeds. It uses a NXP LPC4337 which supports USB high speed, and allows faster debugging speeds.
 In addition to the others, it adds cJTAG support: In addition to the others, it adds cJTAG support:
Line 442: Line 370:
 {{:jtag:jlink-v10_board_top-mini.jpg?0x150|board front}} {{:jtag:jlink-v10_board_top-mini.jpg?0x150|board front}}
 {{:jtag:jlink-v10_board_bottom-mini.jpg?0x150|board back}} {{:jtag:jlink-v10_board_bottom-mini.jpg?0x150|board back}}
 +
 +Here a [[https://www.segger.com/products/debug-probes/j-link/models/j-link-ob/|J-Link OB]].
 +It is supposed to be embedded on development board and provide an easy way to flash the main micro-controller.
 +It have much less capabilities (no JTAG, only SWD, ...) and less protections, but is a lot smaller and sufficient for most tasks.
 +Additionally it provides a UART interface, ideal for printf debugging.
 +I actually can be implemented on several micro-controller, and in my case a STM32F072.
 +
 +{{:jtag:jlink-ob_front.jpg?0x150|board front}}
 +{{:jtag:jlink-ob_back.jpg?0x150|board back}}
 +
 +
 ===== Texas Instruments XDS100v3 ===== ===== Texas Instruments XDS100v3 =====
  
Line 454: Line 393:
 ===== DISTORTEC JTAG-lock-pick Tiny 2 ===== ===== DISTORTEC JTAG-lock-pick Tiny 2 =====
  
-The [[http://www.distortec.com/jtag-lock-pick-tiny-2/|JTAG-lock-pick Tiny 2]] is just a very fast (using a FT232H chip), and compact (although it could be even more compact if the component were on both sides) JTAG adapter supporting 1.4V to 5.5V signals (using a CPLD), RTCK, SRST, and TRST.+The [[http://www.distortec.com/jtag-lock-pick-tiny-2/|JTAG-lock-pick Tiny 2]] is just a very fast (using a FT232H chip), and compact (although it could be even more compact if the component were on both sides) JTAG adapter supporting 1.4V to 3.6V signals (5.5V tolerant), multiple pinouts possible (using a CPLD), RTCK, SRST, and TRST.
  
 {{:jtag:jtag-lockpick_front.jpg?0x150|board front}} {{:jtag:jtag-lockpick_front.jpg?0x150|board front}}
jtag.1592315225.txt.gz · Last modified: 2024/01/07 17:49 (external edit)