Difference between revisions of "STM32F4 Discovery"
(→Pinout) |
m (→THT) |
||
Line 296: | Line 296: | ||
=== THT === | === THT === | ||
Target for this board is to be a ultra low cost THT daughterboard which should provide as many functions as possible. | Target for this board is to be a ultra low cost THT daughterboard which should provide as many functions as possible. Also it should be as simple as possible (hence no SMD Components were used). | ||
'''Notes''' <br/> | '''Notes''' <br/> | ||
* Tall screw terminals can touch the THT solder joints from the discovery board. No electrical but a mechanical contact can appear. Don't force both pcb's all the way together. | * Tall screw terminals can touch the THT solder joints from the discovery board. No electrical but a mechanical contact can appear. Don't force both pcb's all the way together (leave a small gap). | ||
* Only mount the components needed. | * Only mount the components needed. | ||
* If [[IR_Sensors]] are used used, maybe the diodes shouldn't be mounted and the voltage divider should be changed. | * If [[IR_Sensors]] are used used, maybe the diodes shouldn't be mounted and the voltage divider should be changed. | ||
* If you use the 22k/2.2k voltage divider for the BAT input, you need to change the VoltageOfAdc see [[Airframe_Configuration#Battery]]. | |||
'''Servo Power options''' <br/> | '''Servo Power options''' <br/> | ||
*External power source ( | *External power source (to power servos with a higher voltage or an other voltage regulator, only GND stays connected). | ||
* | *Power servos from the 5V rail, solder the two solder bridges benesth the three row header. | ||
The servo rail also powers the RC receiver (PPM and Spektrum), take care of that if this rail runs on a higher voltage than 5V | '''IMU mounting options''' <br/> | ||
Servo and 5V net share the same GND ! | *Drotek 10 DOF can be soldered on the appropriate footprint. | ||
*Other 6/9/10DOM IMU, can be soldered on the prototyling area. Use wires to make connections between the e.g. the Drotek footprint and the IMU (if the other IMU one has a different pinout) | |||
*Mount IMU elsewhere and connect it with cables. | |||
The servo rail also powers the RC receiver directly (PPM and Spektrum), take care of that if this rail runs on a higher voltage than 5V!<br/> | |||
Servo and 5V net share the same GND! | |||
[[File:Stm32f4discovery_daughterboard.jpg|400px]] | [[File:Stm32f4discovery_daughterboard.jpg|400px]] |
Revision as of 13:01, 16 July 2014
This page is for the STM32F4 Discovery board with STM32F407VGT6, STM32F4 Disco is a familiar board with STM32F401VCT6, do not use this Files for the Disco board !
Overview
- STMicroelectronics STM32F4VGT6 Cortex M4 MCU, up to 168Mhz with floating point unit (FPU), 192 KB RAM, 1024 KB Flash
- on-board STLinkv2 with SWD header (capable of programming onboard or external MCU)
- on-board power regulator for the MCU (3V or 5V Input)
- 1 x user push button
- 4(5) x LED (orange, green, red, blue, green)
- 4(6) x UART (UART1, UART2, UART3, (UART4, UART5), UART6)
- 1(3) x SPI (SPI1, (SPI2, SPI3))
- 2(3) x I2C (I2C1, I2C2, (I2C3))
- 6 x ADC inputs (one is used for BAT voltage)
- 1 x PPM input
- 1 x Spektrum input (with bind pin)
- 97 x 66 mm PCB
- 4 x status LED (USB red, USB green, power, USB OTG green, USB OTG red)
- LIS302DL MEMS 3 axis accelerometer on SPI1
Pinout
The Discovery has a male 100 pin (2x25pin on both sides, also accessible on both sides of the pcb) pinout.
Pin # | Name | Type | Description | Color |
---|---|---|---|---|
PD13 | LED_3 | Out | above LIS302DL | Orange |
PD12 | LED_4 | Out | left of LIS302DL | Green |
PD14 | LED_5 | Out | right of LIS302DL | Red |
PD15 | LED_6 | Out | below LIS302DL | Blue |
PA9 | LED_9 | Out | same as USB power (VBUS, needs to be enabled in header file) | Green |
Pin # | Name | Type | Description |
---|---|---|---|
PB6 | UART1 TX | Out | UART1 Serial Output, 4k7 pullup for I2C |
PB7 | UART1 RX | In | UART1 Serial Input |
Pin # | Name | Type | Description |
---|---|---|---|
PD5 | UART2 TX | Out | UART2 Serial Output (usb otg power management fault output open drain) |
PD6 | UART2 RX | In | UART2 Serial Input, also used for Spektrum input |
Pin # | Name | Type | Description |
---|---|---|---|
PD8 | UART3 TX | Out | UART3 Serial Output |
PD9 | UART3 RX | In | UART3 Serial Input |
Pin # | Name | Type | Description |
---|---|---|---|
PC10 | UART4 TX | Out | UART4 Serial Output |
PC11 | UART4 RX | In | UART4 Serial Input |
Pin # | Name | Type | Description |
---|---|---|---|
PC12 | UART5 TX | Out | UART5 Serial Output |
PD2 | UART5 RX | In | UART5 Serial Input |
Pin # | Name | Type | Description |
---|---|---|---|
PC6 | UART6 TX | Out | UART6 Serial Output |
PC7 | UART6 RX | In | UART6 Serial Input |
Pin # | Name | Type | Description |
---|---|---|---|
PA5 | SPI1 SCK | I/O | SPI1 Serial clock |
PA6 | SPI1 MISO | I/O | SPI1 Master In Slave Out |
PA7 | SPI1 MOSI | I/O | SPI1 Master Out Slave In |
PE3 | SPI SS2 | I/O | SPI1 Select Slave2 |
Pin # | Name | Type | Description |
---|---|---|---|
PB3 | SPI1 SCK | I/O | SPI1 Serial clock |
PB4 | SPI1 MISO | I/O | SPI1 Master In Slave Out |
PB5 | SPI1 MOSI | I/O | SPI1 Master Out Slave In |
PE2 | SPI SS0 | I/O | SPI1 Select Slave0 |
Pin # | Name | Type | Description |
---|---|---|---|
PB13 | SPI2 SCK | I/O | SPI2 Serial clock |
PB14 | SPI2 MISO | I/O | SPI2 Master In Slave Out |
PB15 | SPI2 MOSI | I/O | SPI2 Master Out Slave In |
PE7 | SPI SS1 | I/O | SPI2 Select Slave1 |
Pin # | Name | Type | Description |
---|---|---|---|
PC10 | SPI3 SCK | I/O | SPI3 Serial clock |
PC11 | SPI3 MISO | I/O | SPI3 Master In Slave Out |
PC12 | SPI3 MOSI | I/O | SPI3 Master Out Slave In |
PE3 | SPI SS2 | I/O | SPI3 Select Slave2 (also used for LIS302DL (SPI1) Slave Select) |
Pin # | Name | Type | Description |
---|---|---|---|
PB8 | I2C1 SCL | I/O | I2C1 Serial Clock |
PB9 | I2C1 SDA | I/O | I2C1 Serial Data |
Pin # | Name | Type | Description |
---|---|---|---|
PB10 | I2C2 SCL | I/O | I2C2 Serial Clock (also used for MP45DT02 MEMS MIC clock in) |
PB11 | I2C2 SDA | I/O | I2C2 Serial Data |
Pin # | Name | Type | Description |
---|---|---|---|
PA8 | I2C3 SCL | I/O | I2C3 Serial Clock |
PC9 | I2C3 SDA | I/O | I2C3 Serial Data |
Note: is disabled in header file, PA8 is used as Spektrum bind pin, PC9 is used as PPM (not Spektrum) input
Pin # | Name | Type | Description |
---|---|---|---|
PB1 | AUX1 | I/O | ADC_1 |
PC5 | AUX2 | I/O | ADC_2 |
PC4 | AUX3 | I/O | ADC_3 |
PA4 | AUX4/BAT | I/O | ADC_4, is used for BAT voltage |
PC1 | AUX5 | I/O | ADC_5 |
PC2 | AUX6 | I/O | ADC_6 |
Pin # | Name | Type | Description |
---|---|---|---|
PE9 | PWM0 | Out | Servo 1 |
PE11 | PWM1 | Out | Servo 2 |
PE13 | PWM2 | Out | Servo 3 |
PE14 | PWM3 | Out | Servo 4 |
PE5 | PWM4 | Out | Servo 5 |
PE6 | PWM5 | Out | Servo 6 |
PA3 | PWM6 | Out | Servo 7 |
PA2 | PWM7 | Out | Servo 8 |
PA1 | PWM8 | Out | Servo 9 |
PA0 | PWM9 | Out | Servo 10 |
PB14 | PWM10 | Out | Servo 11, Can not be used if SPI2 is active |
PB15 | PWM11 | Out | Servo 12, Can not be used if SPI2 is active |
Pin # | Name | Type | Description |
---|---|---|---|
PC9 | PPM | In | PPM input (remember, you need 100 Ohm serial termination in order to use this) |
Pin # | Name | Type | Description |
---|---|---|---|
PA8 | Bind | Out | Spektrum bind pin |
PA10 | PPM | IN | Spektrum PPM in |
Jumper
Pin # | Name | Type | Description |
---|---|---|---|
JP1 | JP1 | Switch | MCU Current can be measured here |
CN3 | CN3 | Switch | closed: STLinkV2 is connected to onboard MCU, open: is not connectec to onboard, only external header |
Pin # | Name | Type | Description |
---|---|---|---|
SB17 | SB17 | Switch | Bypass for JP1, close this for security ! (if JP1 gets loose there is no power supply for the mcu) |
Daughterboard
Currently we have two different breakout/baughter boards.
SMD & Molex
Another option with Molex connectors, levelshifters for I2C and SPI, as well as connectors for Spektrum satellites and a can phy would be:
Currently under testing, eagle files are coming, when its completely finished and airworthy :-)
THT
Target for this board is to be a ultra low cost THT daughterboard which should provide as many functions as possible. Also it should be as simple as possible (hence no SMD Components were used).
Notes
- Tall screw terminals can touch the THT solder joints from the discovery board. No electrical but a mechanical contact can appear. Don't force both pcb's all the way together (leave a small gap).
- Only mount the components needed.
- If IR_Sensors are used used, maybe the diodes shouldn't be mounted and the voltage divider should be changed.
- If you use the 22k/2.2k voltage divider for the BAT input, you need to change the VoltageOfAdc see Airframe_Configuration#Battery.
Servo Power options
- External power source (to power servos with a higher voltage or an other voltage regulator, only GND stays connected).
- Power servos from the 5V rail, solder the two solder bridges benesth the three row header.
IMU mounting options
- Drotek 10 DOF can be soldered on the appropriate footprint.
- Other 6/9/10DOM IMU, can be soldered on the prototyling area. Use wires to make connections between the e.g. the Drotek footprint and the IMU (if the other IMU one has a different pinout)
- Mount IMU elsewhere and connect it with cables.
The servo rail also powers the RC receiver directly (PPM and Spektrum), take care of that if this rail runs on a higher voltage than 5V!
Servo and 5V net share the same GND!
If you're interested in unassembled PCBs, I have some left; pfeffer.marius@gmail.com
Firmware Flashing
FLASH_MODE=STLINK is set as default
STM32F4 Discovery can mainly be programmed in two different ways:
STLINK
- with onboard STLinkV2 over SWD
- required hardware: usb to mini USB cable
- required software: st_flash and st_util from Texane
- more information: STLink page
DFU-UTIL
- with the MCU native (embedded in rom) DFU USB bootloader over the micro USB AB connector
- required hardware: USB to micro and USB to mini usb cable
- required external software: dfu-util
- push MCU in DFU mode: connect mini(for power) and micro USB to PC, connect pin BOOT0 with 3V, press reset button(LED LD7 should light up now), disconnect BOOT0
- more information: DFU page