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
Next revisionBoth sides next revision
jtag [2019/03/09 09:24] – [SEGGER J-Link] kingkevinjtag [2019/09/05 17:14] – [mini ST-LINK V2] kingkevin
Line 73: Line 73:
 For $9 you can't expect more, and if you want a cheap adapter I recommend the other ones (see below). For $9 you can't expect more, and if you want a cheap adapter I recommend the other ones (see below).
  
-==== ST-LINK V2 aluminium ====+==== mini ST-LINK V2 ====
  
 These adapters come in a small dongle sized aluminium case. These adapters come in a small dongle sized aluminium case.
 They supports SWD, and SWIM (for STM8), but not JTAG. They supports SWD, and SWIM (for STM8), but not JTAG.
 +Also the RST signal (required for SWIM) is not controllable as SRST in SWD mode (at least not by OpenOCD).
  
-At $2.5 they are the cheapest clones you can find.\\ +For less than $2they are the cheapest SWD programmer you can find. 
-One trick to get this ridiculously low price is to use STM32F101 micro-controllers. +I also like to use them as development board when I just need a USB dongle with just few signals (up to 4).
-Compared to the STM32F103 micro-controllers they offer less functionalities, like USB ... yet this is a USB dongle+
-Well this is because these micro-controllers use the same die, but if not all STM32F103 feature tests pass after production they get packages as STM32F101, but it seems that USB still works well enough. +
-At least this is my guess. +
-It would be interesting to check if the other STM32F103 peripherals normally not present on the STM32F101 work as well, but I wouldn't rely on these. +
-After all, they are probably marked as STM32F101 for good reason.\\ +
-Similarly the STM32F103C8 is only rated having 64 kB of flash because it didn't pass the flash test, compared to the 128 kB for the STM32F103CB, but they very often have more (you can verify by read/writing and check for errors).+
  
-Several board versions exist and it is hard to know what you will get. +Numerous board variants exist and it is hard to know what you will get. 
-Always check the pinout on the aluminium case since this also varies.+Always check the pinout on the aluminium case and on the PCB since this also varies
 +Here are the board variants I got, in chronological order.
  
 === 2014-06-22 ST-LINK V2 === === 2014-06-22 ST-LINK V2 ===
Line 96: Line 92:
 {{:jtag:alu_board_back.jpg?0x100|}} {{:jtag:alu_board_back.jpg?0x100|}}
  
-I've also reversed the {{:jtag:alu.pdf|schematic}} for this board.+I've reversed the {{:jtag:alu.pdf|schematic}} for this board
 + 
 +One trick to get this ridiculously low price is to use STM32F101 micro-controllers. 
 +Compared to the STM32F103 micro-controllers they offer less functionalities, like USB ... yet this is a USB dongle! 
 +Well this is because these micro-controllers use the same die, but if not all STM32F103 feature tests pass after production they get packages as STM32F101, but it seems that USB still works well enough. 
 +At least this is my guess. 
 +It would be interesting to check if the other STM32F103 peripherals normally not present on the STM32F101 work as well, but I wouldn't rely on these. 
 +After all, they are probably marked as STM32F101 for a good reason.\\ 
 +Similarly the STM32F103C8 is only rated having 64 kB of flash because it didn't pass the flash test, compared to the 128 kB for the STM32F103CB, but they very often have more (you can verify by read/writing and check for errors).
  
 One other nice trick they used is to have twos LEDs on the same pin (PA9): One other nice trick they used is to have twos LEDs on the same pin (PA9):
Line 104: Line 108:
   * when PWM output is used, you can mix the two colors (red and blue) quite well due to the persistence of vision (also because the LEDs are next to each other and the small hole in the case is in the center).   * when PWM output is used, you can mix the two colors (red and blue) quite well due to the persistence of vision (also because the LEDs are next to each other and the small hole in the case is in the center).
  
-=== swapped ===+=== alternative pinout ===
  
 {{:jtag:reverse-gnd_case-front.jpg?0x100|}} {{:jtag:reverse-gnd_case-front.jpg?0x100|}}
Line 121: Line 125:
 This one has an "M" logo instead of the ST logo, probably corresponding to the "MX-LINK V2" marking on the board. This one has an "M" logo instead of the ST logo, probably corresponding to the "MX-LINK V2" marking on the board.
  
 +=== SWDIO/SWCLK swap ===
 +
 +{{:jtag:stlink_swap_case.jpg?0x100|}}
 +{{:jtag:stlink_swap_front.jpg?0x100|}}
 +{{:jtag:stlink_swap_back.jpg?0x100|}}
 +
 +This variant uses an STM32F103.
 +It seems this micro-controller got so popular that it is now cheaper than the STM32F101 (with less features).
 +The annoying details of this variant is that the SWDIO and SWCLK signal described on the pinout engraved in the aluminium case are swapped.
 +This shows again the importance of also checking the pinout on the board itself, else you can waste a couple of hours debugging.
 +
 +=== QFN ===
 +
 +{{:jtag:stlink_qfn_case.jpg?0x100|}}
 +{{:jtag:stlink_qfn_front.jpg?0x100|}}
 +{{:jtag:stlink_qfn_back.jpg?0x100|}}
 +
 +This variant uses an STM32F103 in the UFQFN-48 package.
 +This is just a couple of cents cheaper than the more traditional TQFP-48 package, but this is enough en mass to change the footprint on the board.
 +
 +=== MINI ST-Link V2E ===
 +
 +{{:jtag:stlink_cks_case.jpg?0x100|}}
 +{{:jtag:stlink_cks_front.jpg?0x100|}}
 +{{:jtag:stlink_cks_back.jpg?0x100|}}
 +
 +Instead on an STM32F103, this dongle uses a [[http://www.cksic.com/en/|CKS]] {{ :jtag:ic_mcu_cks_cks32f103xb.pdf|CS32F103}} (sometimes CKS32F103)  ({{ :jtag:ic_mcu_cks_cks32f103xb_en.pdf|datasheet translated to english}}).
 +I've seen pin compatible alternatives (ST STM8S003 vs Nuvoton N76E003), even architecture compatible (ST STM32F103 vs GigeDevice GD32F103), but they always had some differences (architecture, electrical pin properties, registers, ...).
 +The CS32F103 seems like a complete clone of the STM32F103 (exact same pinout, architecture, registers).
 +So far I could not not see any difference (I tested flash, USB, SWD).
 +I guess this micro-controller is so popular that it was just a question of time until it was ripped-off.
 +To check if this is a complete clone you could decapsulate the chip and compare the silicon die, or check the errata behaviour (I can't imagine they re-implemented it themselves, up to the mistakes).
 +The next step would be to have a CS32F103 chip in a package marked as STM32F103.
 ==== Baite ==== ==== Baite ====
  
Line 362: Line 399:
 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.
  
-The come in the same case:+They come in the same case:
  
 {{:jtag:imag0403.jpg?0x150|device front}} {{:jtag:imag0403.jpg?0x150|device front}}
Line 382: Line 419:
 {{:jtag:jlink-v9-front.jpg?0x150|board front}} {{:jtag:jlink-v9-front.jpg?0x150|board front}}
 {{:jtag:jlink-v9-back.jpg?0x150|board back}} {{:jtag:jlink-v9-back.jpg?0x150|board back}}
 +
 +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.
 +In addition to the others, it adds cJTAG support:
 +
 +{{:jtag:jlink-v10_board_top-mini.jpg?0x150|board front}}
 +{{:jtag:jlink-v10_board_bottom-mini.jpg?0x150|board back}}
 ===== Texas Instruments XDS100v3 ===== ===== Texas Instruments XDS100v3 =====
  
-The [[http://processors.wiki.ti.com/index.php/XDS100|XDS100v3]] supports cJTAG (aka. IEEE 1149.7, or SWD alternative), but I did not have the opportunity to test it yet.+The [[http://processors.wiki.ti.com/index.php/XDS100|XDS100v3]] supports cJTAG (aka. IEEE 1149.7, or SWD alternative), but I have not been able to successfully use it yet
 + 
 +Note: this adapter uses the [[http://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_jtag_connectors.html|TI 20-pin (cTI) pinout]].
  
 {{:jtag:xds100v3_case.jpg?0x150|device}} {{:jtag:xds100v3_case.jpg?0x150|device}}
jtag.txt · Last modified: 2024/01/07 17:49 by 127.0.0.1