STM32F4-Discovery Shield

Gang,
Some of us have received stm32F4-discovery boards (free in the US).
A suggestion was made to have an arduino type shield for it, so I've started one!

For now just the headers are placed with signal names, using the corner of an 80mmx100mm board for reference. Board itself is 66mm x 97mm.
Looking for ideas on parts, board size, etc.
The board as delivered is better assembled to be plugged down onto a daughter card, instead of the other way around.
With appropriate connectors, a daughter card could be plugged on top.

Edit: Just got an e-mail from Avnet - series of seminars on using th stm32f4
"This seminar will include technical detail on the high performance STM32 F4 Cortex™-M4 core, system architecture, and advanced digital and analog peripherals featured in the STM32 F4 series.

Demonstrations will include how to start, develop and debug a project using the simple to use firmware libraries and low cost development tools and kits.

Attendees will receive a FREE STM32 F4 Discovery Kit featuring an STM32 F4 evaluation board, embedded ST-LINK/V2 USB interface debugging and programming access to numerous examples available from www.st.com"
Register online at www.st.com/stm32f4avnet

Atlanta – Oct 11
Orlando – Oct 13
Cleveland – Oct 27
Vancouver – Nov 2
Philadelphia – Nov 3
Seattle – Nov 3
San Jose – Nov 9
Boston – Nov 15
Chicago – Nov 15
Dallas – Nov 17
Rochester – Nov 17
Orange County – Nov 29
Toronto – Nov 29
Minneapolis – Dec 1
Montreal – Dec 1
San Diego – Dec 1

Free Breakfast & Lunch too!

Seminar Agenda

8:30-9:00
• Registration and Continental Breakfast

9:00-12:00
• Introduction to the STM32 F4 Series
Cortex™-M4 Core
• STM32 F4 High-Performance
System Architecture
• STM32 F4 High-Speed Connectivity Interfaces
• STM32 F4 Advanced Digital Peripherals
• STM32 F4 Advanced Analog Peripherals

12:00-1:00
• Lunch Served

1:00-2:30 — Demonstrations of:
• STM32 F4 Development and
Programming Tools
• STM32 F4 Evaluation and Development Kits
• STM32 F4 Firmware Libraries

I got one free and i'm in Canada. Got it yesterday. Great stuff.

STM32F4 datasheets:

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/DM00037051.pdf
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/REFERENCE_MANUAL/DM00031020.pdf

Some ideas to the shield:

  1. 80x100mm
    1.1 - any idea how tho stack SEVERAL daugther boards pcbs (2-3)??
  2. 4 mounting holes in the corners, fi=3.2mm
  3. 2 microsd cards sockets (ie. SDIO)
  4. RTC with newer DS.. (integrated xtal, 2ppm) and battery holder for cr1220
  5. 8 leds, 4 buttons
  6. 3V3/800mA regulator in dpak, or stepdown converter
    Note: The STM32VL boards have a diode in series with 3V3 so I removed it and bridged, now I get 3V3, however the VL board has got 800mA dpak regler, what is not the case with F4
  7. li-poly/ion charger
  8. connectors/headers:
    8.1 - few separate UART headers (4pins)
    8.2 - few 2x5pin headers for spi, i2c, ADC, DAC, etc mounted 90deg at the edges around the board
    ...
  1. Already at 80x100. Will move things towards the center tho to make room around the edges.
    1.1 Passing along same 50 pins on each side? Why not? Just need a part number for female long-tail headers like these
    Arduino Stackable Header - 8 Pin - PRT-09279 - SparkFun Electronics

  2. Mounting holes no problem, what does "fi=3.2mm" mean?

  3. multi uSD cards, no problem.

  4. Which RTC do you recommend? Does it & the battery holder exist in eagle?

  5. LEDs, buttons, no problem.

  6. 800mA regulator? Do you have a part number in that small a package? I know 400mA exists.

  7. Charger - single cell? Multicell?

  8. How tell which pins support these? Are only labelled as Px on the schematic.
    Mounted 90 degree at the edges, will be up to user to install right angle headers, no?
    8.1 which signals on the UARTs - Rx, Tx, Gnd - 5V? 3.3V?
    (think RS232 or RS485 drivers also, selectable to connect via jumpers?)
    8.2 SPI: SCK, MISO, MOSI, CS, Gnd?
    8.3 I2C: SCL, SDA, GND?

  1. Mounting holes no problem, what does "fi=3.2mm" mean? :0 The diameter symbol in engineering, is often incorrectly referred to as "phi".

  2. Which RTC do you recommend? Does it & the battery holder exist in eagle?
    DS3231
    battery holder cr1220 for sale | eBay

  3. 800mA regulator? Do you have a part number in that small a package? I know 400mA exists.
    LF33CDT

  4. Charger - single cell? Multicell?
    Single, ie MCP73831, from usb 5v

  5. How tell which pins support these? Are only labelled as Px on the schematic.
    ??????? need to be analysed..
    Mounted 90 degree at the edges, will be up to user to install right angle headers, no?
    maybe

8.1 which signals on the UARTs
rx, tx , gnd, 3.3v
ie. I am using BT modules only

(think RS232 or RS485 drivers also, selectable to connect via jumpers?) maybe 485
8.2 SPI: SCK, MISO, MOSI, CS, Gnd?
yes, but more cs pins and 3v3
8.3 I2C: SCL, SDA, GND? plus 3v3 and few io pins
...

I like the ideas mentioned so far but, I will throw my list in the mix. Some of it has been mentioned.

1)RTC
2)lipo battery charger circuit/ out-put booster
3)micro SD slot
4) adjustable level shifter for serial out. I want to talk to inverted serial at 12 volts/0 volt personally but, also talk to 3volt and 5volt levels that Arduino uses.
5) It would be nice to have a inline pin-out for LCD or GLCD screen. Basically, 20 pins in a row that wires could be soldered into.

I will keep thinking.

I think there is so much to be put on the shield - that I doubt it is doable on 80x100mm, though.
9. ethernet phy with magnetics
10. 16pin+10pin for an 3.2inch tft 240x320 LCD+touch scr. (ie 2x20pin connector)
11. CAN connector
12. Digital Camera interface connector
13. External SRAM, NAND, NOR ???
14. PWM signals connector
15. General i/o connector
16. ADC, DAC connector
..
It seems we need a concept of stackable modules..

I found the pin-out for the Discovery chip and board. The pin functions need to be know in order to make a shield with multiple functions. On page 50 the board pin-out with functions are listed.

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/DM00035129.pdf

I am trying to make an Excel file but, I am having difficulty pasting into a list form. Anyone have ideas?

I did a little poking around today as well.
Looks like para 4.11, Table 5, in UM1472, User Manual for STM32F4Discovery is where we need to start.

I think I am going to use both PDFs to make a spreadsheet. I do have a start on it.

Mark

Cool, Farnell are awaiting stock of the STM32F4DISCOVERY. At £9.72 its definitely going on my next order :slight_smile:

I made a pin-out in Excel. It is copied off of the Discovery board manual. It does not count GND,and 5V pins.

21	BOOT0	X	X
6	NRST	RESET	NRST
12	PA0	USER	
11	PA1		USART2_RTS/USART4_RX/ETH_RMII_REF_CLK/ETH_MII_RX_CLK/TIM5_CH2/TIMM2_CH2/ADC123_IN1
14	PA2		USART2_TX/TIM5_CH3/TIM9_CH1/TIM2_CH3/ETH_MDIO/ADC123_IN2
13	PA3		USART2_RX/TIM5_CH4/TIM9_CH2/TIM2_CH4/OTG_HS_ULPI_D0/ETH_MII_COL/ADC123_IN3
16	PA4	LRCK/AIN1x	SPI1_NSS/SPI3_NSS/USART2_CK/DCMI_HSYNC/OTG_HS_SOF/I2S3_WS/ADC12_IN4/DAC1_OUT
15	PA5	SCL/SPC	SPI1_SCK/OTG_HS_ULPI_CK/TIM2_CH1_ETR/TIM8_CHIN/ADC12_IN5/DAC2_OUT
18	PA6	SDO	SPI1_MISO/TIM8_BKIN/TIM13_CH1/DCMI_PIXCLK/TIM3_CH1/TIM1_BKIN/ADC12_IN6
17	PA7	SDA/SDI/SDO	SPI1_MOSI/TIM8_CH1N/TIM14_CH1TIM3_CH2/ETH_MII_RX_DV/TIM1_CH1N/RMII_CRS_DV/ADC12_IN7
43	PA8		MCO1/USART1_CK/TIM1_CH1/I2C3_SCL/OTG_FS_SOF
44	PA9	USB VBUS GREEN	USART1_TX/TIM1_CH2/I2C3_SMBA/DCMI_D0/OTG_FS_VBUS
41	PA10	USB ID	USART1_RX/TIM1_CH3/OTG_FS_ID/DCMI_D1
2	PA11	USB DM	USART1_CTS/CAN1_RX/TIM1_CH4/OTG_FS_DM
3	PA12	USB DP	USART1_RTS/CAN1_TX/TIM1_ETR/OTG_FS_DP
42	PA13	SWDIO	JTMS-SWDIO
39	PA14	SWCLK	JTCK-SWCLK
40	PA15		JTDI/SPI3_NSS/I2S3_WS/TIM2_CH1_ETR/SPI1_NSS
22	PB0		TIM3_CH3/TIM8_CH2N/OTG_HS_ULPI_D1/ETH_MII_RXD2/TIM1_CH2N/ADC12_IN8
21	PB1		TIM3_CH4/TIM8_CH3N/OTG_HS_ULPI_D2/ETH_MII_RXD3/OTG_HS_INTN/TIM1_CH3N/ADC12_IN9
24	PB2		
28	PB3		JTDO/TRACESWO/SPI3_SCK/I2S3_CK/TIM2_CH2/SPI1_SCK
25	PB4		NJTRST/SPI3_MISO/TIM3_CH1/SPI1_MISO/I2S3ext_SD
26	PB5		I2C1_SMBA/CAN2_RX/OTG_HS_ULPI_D7/ETH_PPS_OUT/TIM3_CH2/SPI1_MOSI/SPI3_MOSI/DCMI_D10/I2S3_SD
23	PB6	SCL	I2C1_SCL/TIM4_CH1/CAN2_TX/OTG_FS_INTN/DCMI_D5/USART1_TX
24	PB7		I2C1_SDA/FSMC_NL/DCMI_VSYNC/USART1_RX/TIM4_CH2
19	PB8		TIM4_CH3/SDIO_D4/TIM10_CH1/DCMI_D6/OTG_FS_SCL/ETH_MII_TXD3/I2C1_SCL/CAN1_RX
20	PB9	SDA	SPI2_NSS/I2S2_WS/TIM4_CH4/TIM11_CH1/OTG_FS_SDA/SDIO_D5/DCMI_D7/I2C1_SDA/CAN1_TX
34	PB10	CLK	SPI2_SCK/I2S2_CK/I2C2_SCL/USART3_TX/OTG_HS_ULPI_D3/ETH_MII_RX_ER/OTG_HS_SCL/TIM2_CH3
35	PB11		I2C2_SDA/USART3_RX/OTG_HS_ULPI_D4/ETH_RMII_TX_EN/ETH_MII_TX_EN/OTG_HS_SDA/TIM2_CH4
36	PB12		SPI2_NSS/I2S2_WS/I2C2_SMBA/USART3_CK/TIM1_BKIN/CAN2_RX/OTG_HS_ULPI_D5/ETH_RMII_TXD0/ETH_MII_TXD0/OTG_HS_ID
37	PB13		SPI2_SCK/I2S2_CK/USART3_CTS/TIM1_CH1N/CAN2_TX/OTG_HS_ULPI_D6/ETH_RMII_TXD1/ETH_MII_TXD1/OTG_HS_VBUS
38	PB14		SPI2_MISO/TIM1_CH2N/TIM12_CH1/OTG_HS_DMUSART3_RTS/TIM8_CH2N/I2S2ext_SD
39	PB15		SPI2_MOSI/I2S2_SD/TIM1_CH3N/TIM8_CH3N/TIM12_CH2/OTG_HS_DP
8	PC0	PowerOn	OTG_HS_ULPI_STP/ADC123_IN10
7	PC1		ETH_MDC/ADC123_IN11
10	PC2		SPI2_MISO/OTG_HS_ULPI_DIR/TH_MII_TXD2/I2S2ext_SD/ADC123_IN12
9	PC3	DOUT/AIN4x	SPI2_MOSI/I2S2_SD/OTG_HS_ULPI_NXT/ETH_MII_TX_CLK/ADC123_IN13
20	PC4		ETH_RMII_RX_D0/ETH_MII_RX_D0/ADC12_IN14
19	PC5		ETH_RMII_RX_D1/ETH_MII_RX_D1/ADC12_IN15
47	PC6		I2S2_MCK/TIM8_CH1/SDIO_D6/USART6_TX/DCMI_D0/TIM3_CH1
48	PC7		I2S3_MCK/TIM8_CH2/SDIO_D7/USART6_RX/DCMI_D1/TIM3_CH2
45	PC8	MCLK	TIM8_CH3/SDIO_D0/TIM3_CH3/USART6_CK/DCMI_D2
46	PC9		I2S_CKIN/MCO2/TIM8_CH4/SDIO_D1/I2C3_SDA/DCMI_D3/TIM3_CH4
37	PC10	SCLK	SPI3_SCK/I2S3_CK/UART4_TX/SDIO_D2/DCMI_D8/USART3_TX
38	PC11		UART4_RX/SPI3_MISO/SDIO_D3/DCMI_D4/USART3_RX/I2S3ext_SD
35	PC12	SDIN	UART5_TX/SDIO_CK/DCMI_D9/SPI3_MOSI/I2S3_SD/USART3_CK
12	PC13		RTC_AF1
9	PC14	OSC32_IN	OSC32_IN
10	PC15	OSC32_OUT	OSC32_OUT
36	PD0		FSMC_D2/CAN1_RX
33	PD1		FSMC_D3/CAN1_TX
34	PD2		TIM3_ETR/UART5_RXSDIO_CMD/DCMI_D11
31	PD3		FSMC_CLK/USART2_CTS
32	PD4		FSMC_NOE/USART2_RTS
29	PD5	RESET	FSMC_NWE/USART2_TX
30	PD6	OverCurrent	FSMC_NWAIT/USART2_RX
27	PD7	RED	USART2_CK/FSMC_NE1/FSMC_NCE2
40	PD8		FSMC_D13/USART3_TX
41	PD9		FSMC_D14/USART3_RX
42	PD10		FSMC_D15/USART3_CK
43	PD11		FSMC_A16/USART3_CTS
44	PD12	GREEN	FSMC_A17/TIM4_CH1/USART3_RTS
45	PD13	ORANGE	FSMC_A18/TIM4_CH2
46	PD14	RED	FSMC_D0/TIM4_CH3
47	PD15	BLUE	FSMC_D1/TIM4_CH4
17	PE0	INT1	TIM4_ETR/FSMC_NBL0/DCMI_D2
18	PE1	INT2	FSMC_NBL1/DCMI_D3
15	PE2	CS_I2C/SPI	TRACECLK/FSMC_A23/ETH_MII_TXD3
16	PE3		TRACED0/FSMC_A19
13	PE4		TRACED1/FSMC_A20/DCMI_D4
14	PE5		TRACED2/FSMC_A21/TIM9_CH1/DCMI_D6
11	PE6		TRACED3/FSMC_A22/TIM9_CH2/DCMI_D7
25	PE7		FSMC_D4/TIM1_ETR
26	PE8		FSMC_D5/TIM1_CH1N
27	PE9		FSMC_D6/TIM1_CH1
28	PE10		FSMC_D7/TIM1_CH2N
29	PE11		FSMC_D8/TIM1_CH2
30	PE12		FSMC_D9/TIM1_CH3N
31	PE13		FSMC_D10/TIM1_CH3
32	PE14		FSMC_D11/TIM1_CH4
33	PE15		FSMC_D12/TIM1_BKIN
7	PH0	OSC_IN	OSC_IN
8	PH1	OSC_OUT	OSC_OUT

..provided we get the excel sheet with all possible alternate functions - what will be the next step? how to proceed further on? p.

Here is an EXCEL file I prepare when trying to understand the conflicts between pin assignments. In particular, I was looking at adding the PHY interface for ethernet
As shown in the table even using the reduce RMII interface there is one pin that has a conflict with the SPI use for the accelerometer . For Ethernet it look like using the Microchip's ENC28J60 SPI controller is the best option ?

stm32f4107 pin assignmens.xls (99.5 KB)

Any news from the STM32F4 front ?

Would this chip/board be supported by the Arduino IDE any time ?

.. too many options may kill a man..
What about a few Mbytes of sram (or psram) connected via FSMC ? - this allows us to run much bigger stuff on it and it decreases the number of the free lines by ~45 :).
There are several offerings for a PSRAM (SDRAM with internal refresh) up to 128Mbit today, however mostly in BGA54 or BGA48. There are a few Cypress' srams (ie 1Mx16, 2Mx16) in TSOP48 available too.
It would be a nice designer's challenge to use the BGA packages here, indeed :).
P.
PS: For example eLua runs fine on this board and uses full 192kB of internal ram already. eLua can easily incorporate C functions, so maybe the arduino libs as well. It is OO and supports multithreading (coroutines) by default as well. Compiler/interpreter is built in as well as a SDcard support. It can allocate the Lua working space to an external ram easily (it can work with segmented ram space).

I noticed someone pointed an RTC to use in a shield with this board.
It already has a 32kHz crystal and internal hardware for RTC support. I mean real hardware specific for the RTC function.

For those that like the Arduino-style programming, there is a port (ok, half one third-built) of the libmaple in http://forums.leaflabs.com/topic.php?id=1268&page=3. I added a few defines and support for the onboard random number generator.

I'm writing part of the driver for the RTC, but first I need to get some sort of communication since the USB implementation for the libmaple is different than the one in this Discovery board. :frowning:

What I think would be really great expansion board for this chip is:

  • SD card connected in the SDIO port (there are specific bits to access the SD/MMC cards).
  • Ethernet interface.
  • Separate power supply.
  • LCD interface.
  • Xbee interface? Or a Xbee explorer/FTDI chip header to communicate with the PC (at least while there isn't an implementation for the USB comms).
  • Then of course, the break out from the double row header.

Did this idea for a shield die out?

i'm holding out hope.

Its sort of on hold. I got caught up in other stuff. If there's interest, we can revive it, I can work on it some more after I get my taxes done. W2 is in, am waiting on some 1099s. I am not doing anything with my board.

No worries. I'd be interested in reviving it in a couple of months. I ordered a couple of the discoveries today as I have so image intensive processing, having an external sram on the shield would be ideal.