2013-07-15 03:25 AM
Hi, the f4 discovery works great with on-board st-link, but for my target I would like to use the 6 pin SWD interface, not the 20 pin interface, and external st-link. By reference to information I have found so far I have made a 20 to 6 pin adapter like this:
20 pin 6 pin3 5 (TRST)6 3 (GND)7 4 (SWDIO)9 2 (SWCLK)13 6 (SWO)So I removed the 2 links on CN3 and plugged the external st-link to the f4 discovery through this adapter but it does not work (cpu not found). Can anyone tell me where I went wrong or where I can find full information on this?Thanks.2013-07-15 05:57 AM
Check the target is powered, and the ST-Link is configured to use SWD
Check the solder bridges related to the RESET and SWO Check the target is running, can use USART1/3 or USB with BOOT0=High2013-07-15 06:57 AM
Thanks for that, target is powered, external st-link is set to run SWD - (in fact, I'm using exactly all the same settings as I use for on board st-link which works fine)
SB11 (SWO) and SB12 (NRST) are linkedTarget is running, the project uses USART 2, 3 and USB but not USART1. I was thinking that everything should work with very little change, all I'm effectively doing is using standalone st-link over SWD instead of the SWD on the f4 discovery.Does my adapter wiring look right? Surely there must be an app note on using SWD from an ST-LINK? Haven't been able to find anything.Thanks2013-07-15 07:58 AM
I'd be connecting the Target Reset on pin 15
http://support.code-red-tech.com/CodeRedWiki/HardwareDebugConnections
There is still a bunch of opportunity to screw up the connector by wiring it mirrored/backward, or by using linear pin numbering instead of interleaved. With USB you should be able to show signs-of-life via a DFU device being found. USB will require an external crystal. Easier perhaps is using the Flash Demonstrator via USART1 or 3, sending an 0x7F character at 9600 8E1 should echo back 0x79 using a terminal application. If the target device is not running/powered correctly the JTAG/SWD are not going to be functional. I'd start by confirming the target is functional when BOOT0=High SB11 and SB12 should be OFF, you don't want/need these to connected to the on board target, but rather allow them to be connected to your external target.2013-07-15 08:14 AM
Surely there must be an app note on using SWD from an ST-LINK? Haven't been able to find anything.
Perhaps, I'd have to dig, most of us doing this professional have a couple of JTAG/SWD pods, and don't have to hack things together with wire and string. I build/design boards with standard connectors (20-pin JTAG, or 10-pin SWD) so I don't have to futz with this stuff. Others, like ST, seem to focus on using the minimum number of the pins on the header, and roll their own. ARM had a bunch of documentation of the connectors and protocols. These are common across a whole slew of parts. ST has documentation for the STM32F4-Discovery, which does go over some of the connector details, and solder bridges.2013-07-16 02:46 AM
I might have made a small step forwards. I believe that the SWD connector on the f4 discovery board is an OUTPUT, not an input, i,e. it is intended to use the discovery board as an ST-link for an external f4, not to use an external st-link to program the f4 on the discovery board!
But I want to be confident that I can program the chip before I design my pcb. So I tried putting the CN3 links on (which connects the on board f4 PA13 and PA14 pins to the onboard st-link and swd connector) and I linked SB10, which I believe should keep the on board st-link reset and it's pins tristated.But I still get cpu not found. Has anyone successfully validated programming the f4 on the discovery board through external st-link?Thanks2013-07-16 04:28 AM
2013-07-16 05:11 AM
To get to the F4 on the discovery board you'd want to inject SWDIO/SWCLK via pins on CN3 which would otherwise link to the F1 implementing the ST-LINK
2014-09-09 07:28 PM
Clive,
I have an STM32F4 Discovery board. I also have the ST-Link POD with the 20 pin JTAG header. I am looking for any information as to how I can connect the ST-Link pod to the Discovery board so I can program and debug that way, not by the USB connection directly to the Discovery PCB. I cannot find anything in an internet search. Or is it that simple that I'm missing something? Is it done by connecting: Pod JTAG pin 9 to PA14 (JTCK/SWCLK) Pod JTAG pin 7 to PA13 (JTMS/SWDIO) Pod JTAG pin 1 to Discovery 3V Pod JTAG pin 6 to Dicovery GND Remove SB11, SB12 Remove CN3 jumpers2014-09-09 07:47 PM
Clive,
It is now connecting via ST-Link. I have a 6 pin connector going to CN2 fom the 20 pin connector. I connected it as I described, however, I was missing 2 things: 1 - Missing 3V to pin 1 of CN2, added that. 2 - CN3 jumpers must be on. However, when using the straight USB mode of ST-Link to the Discovery board, I was able to get printf statements in the Terminal I/O window of IAR EWARM debugger. Now, after connecting and running the application, there is no output. Any idea of why that might be? Thanks, Gary