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 http://www.sparkfun.com/products/9279

  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 http://www.ebay.com/sch/i.html?_nkw=battery+holder+cr1220&_sacat=0&_odkw=battery+holder&_osacat=0&_trksid=p3286.c0.m270.l1313

  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 :-)

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. :(

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.