2012-11-20 08:00 AM
Is a basic reference design available for the STM32F4 family for things like power & programming header? I've looked at the data sheets but it seems that there are many different ways of programming, all spread throughout the manual.
It looks like all I need is a SWD/JTAG header for in-system programming, but I can't figure out what pins this uses on the STM32F415ZG and what the header pinout is exactly. Is this info available somewhere?What's the ''standard''choice for programmer? Should I get an ST-LINK V2 programmer for in-system programming? I'm aware that the F4 Discovery board can be used for programming external micros but I'm not sure if this is always the most convenient choice. Thanks,Alex2012-11-20 09:12 AM
ARM has standard SWD (10-pin) and JTAG (0.1'' 20-pin) programming headers, I'd recommend using those over random homegrown alternatives.
http://infocenter.arm.com/help/topic/com.arm.doc.faqs/attached/13634/cortex_debug_connectors.pdf
I'd recommend Segger J-Link or Keil U-Link over the ST-LINK For low cost programming, consider USART1 or USART3 on the STM32F4, and jumpers for BOOTx pins. Look at schematics for Keil and IAR/Olimex dev boards, and for that matter the F4 side of the Discovery board. Powering is really your own issue, but I'll note that the Segger J-Link has a 5V feed on pin 19 of the 20-pin JTAG connector.2012-12-10 03:27 PM
Thanks for the advice.
What's the advantage of the J-LINK or U-LINK over the ST-LINK? Do any programmers come with the 10-pin Cortex Debug header by default? From the pictures, it looks like an adapter would be required for all of them.2012-12-10 04:44 PM
I think they are more robust commercial solutions, with better support, updates, and usable with many ARM targets. The U-Link's are tied to Keil tools, the J-Link's are supported by most tool chains and can operate in a stand-alone fashion.
The smaller header takes less space so in many cases will be preferable, but is less mechanically robust, something to consider if you expect it to be used a lot, or roughly. The 10-pin connector is becoming more popular, expect more pods to support it, I'm using an adapter that ran perhaps $7, Keil U-Link's have a header you can populate, and some of the U-Link ME adapters come with connectors and cables. The 20-pin header has been popular through the ARM9 era, figure about a decade or more, and prior to that the ARM7 designs often used a 14-pin header. I some situations you can choose not to populate the headers, I've seen a couple of designs which just have surface mount land patterns, some times on the back of the PCB, and which can be used as probe points in final test.