1.. _stm32f429i_disc1_board:
2
3ST STM32F429I Discovery
4#######################
5
6Overview
7********
8
9The STM32F429I-DISC1 Discovery kit features an ARM Cortex-M4 based STM32F429ZI MCU
10with a wide range of connectivity support and configurations. Here are
11some highlights of the STM32F429I-DISC1 board:
12
13- STM32 microcontroller in LQFP144 package
14- Extension header for all LQFP144 I/Os for quick connection to prototyping board and easy probing
15- On-board ST-LINK/V2-B debugger/programmer with SWD connector
16- Flexible board power supply:
17
18       - ST-LINK/V2-1 USB connector
19       - User USB FS connector
20       - VIN from Arduino* compatible connectors
21
22- Two push-buttons: USER and RESET
23- USB OTG FS with micro-AB connector
24- 2.4-inch QVGA LCD with MIPI DSI interface and capacitive touch screen
25- 64Mbit SDRAM
26- L3GD20, ST-MEMS motion sensor 3-axis digital output gyroscope
27- Six LEDs
28
29	- LD1 (red/green) for USB communication
30	- LD2 (red) for 3.3 V power-on
31	- Two user LEDs: LD3 (green), LD4 (red)
32	- Two USB OTG LEDs: LD5 (green) VBUS and LD6 (red) OC (over-current)
33
34.. image:: img/stm32f429i_disc1.jpg
35     :align: center
36     :alt: STM32F429I-DISC1
37
38More information about the board can be found at the `STM32F429I-DISC1 website`_.
39
40Hardware
41********
42
43The STM32F429I-DISC1 Discovery kit provides the following hardware components:
44
45- STM32F429ZIT6 in LQFP144 package
46- ARM |reg| 32-bit Cortex |reg| -M4 CPU with FPU
47- 180 MHz max CPU frequency
48- VDD from 1.8 V to 3.6 V
49- 2 MB Flash
50- 256+4 KB SRAM including 64-Kbyte of core coupled memory
51- GPIO with external interrupt capability
52- 3x12-bit ADC with 24 channels
53- 2x12-bit D/A converters
54- RTC
55- Advanced-control Timer
56- General Purpose Timers (17)
57- Watchdog Timers (2)
58- USART/UART (4/4)
59- I2C (3)
60- SPI (6)
61- SDIO
62- 2xCAN
63- USB 2.0 OTG FS with on-chip PHY
64- USB 2.0 OTG HS/FS with dedicated DMA, on-chip full-speed PHY and ULPI
65- 10/100 Ethernet MAC with dedicated DMA
66- 8- to 14-bit parallel camera
67- CRC calculation unit
68- True random number generator
69- DMA Controller
70
71More information about STM32F429ZI can be found here:
72       - `STM32F429ZI on www.st.com`_
73       - `STM32F429 Reference Manual`_
74
75Supported Features
76==================
77
78The Zephyr stm32f429i_disc1 board configuration supports the following hardware features:
79
80+-----------+------------+-------------------------------------+
81| Interface | Controller | Driver/Component                    |
82+===========+============+=====================================+
83| NVIC      | on-chip    | nested vector interrupt controller  |
84+-----------+------------+-------------------------------------+
85| UART      | on-chip    | serial port-polling;                |
86|           |            | serial port-interrupt               |
87+-----------+------------+-------------------------------------+
88| PINMUX    | on-chip    | pinmux                              |
89+-----------+------------+-------------------------------------+
90| GPIO      | on-chip    | gpio                                |
91+-----------+------------+-------------------------------------+
92| PWM       | on-chip    | pwm                                 |
93+-----------+------------+-------------------------------------+
94| I2C       | on-chip    | i2c                                 |
95+-----------+------------+-------------------------------------+
96| SPI       | on-chip    | spi                                 |
97+-----------+------------+-------------------------------------+
98| FMC       | on-chip    | memc (SDRAM)                        |
99+-----------+------------+-------------------------------------+
100
101Other hardware features are not yet supported on Zephyr porting.
102
103The default configuration can be found in the defconfig file:
104
105	``boards/arm/stm32f429i_disc1/stm32f429i_disc1_defconfig``
106
107
108Pin Mapping
109===========
110
111The STM32F429I-DISC1 Discovery kit has 8 GPIO controllers. These controllers are responsible for pin muxing,
112input/output, pull-up, etc.
113
114For mode details please refer to `STM32F429I-DISC1 board User Manual`_.
115
116Default Zephyr Peripheral Mapping:
117----------------------------------
118- UART_1_TX : PA9
119- UART_1_RX : PA10
120- USER_PB : PA0
121- LD3 : PG13
122- LD4 : PG12
123- I2C_1_SCL : PB8
124- I2C_1_SDA : PB9
125- I2C_2_SCL : PB10
126- I2C_2_SDA : PB11
127- I2C_3_SCL : PA8
128- I2C_3_SDA : PC9
129- SPI_5_CS : PF6
130- SPI_5_SCK : PF7
131- SPI_5_MISO : PF8
132- SPI_5_MOSI : PF9
133
134System Clock
135============
136
137The STM32F429I-DISC1 System Clock could be driven by an internal or external oscillator,
138as well as by the main PLL clock. By default the system clock is driven by the PLL clock at 168MHz,
139driven by an 8MHz high speed external clock.
140
141Serial Port
142===========
143
144The STM32F429I-DISC1 Discovery kit has up to 8 UARTs. The Zephyr console output is assigned to UART1.
145The default communication settings are 115200 8N1.
146
147
148Programming and Debugging
149*************************
150
151Applications for the ``stm32f429i_disc1`` board configuration can be built
152and flashed in the usual way (see :ref:`build_an_application` and
153:ref:`application_run` for more details).
154
155Flashing
156========
157
158The STM32F429I-DISC1 Discovery kit includes a ST-LINK/V2-B embedded debug tool interface.
159This interface is supported by the openocd version included in Zephyr SDK.
160
161Flashing an application to STM32F429I-DISC1
162-------------------------------------------
163
164First, connect the STM32F429I-DISC1 Discovery kit to your host computer using
165the USB port to prepare it for flashing. Then build and flash your application.
166
167Here is an example for the :ref:`hello_world` application.
168
169.. zephyr-app-commands::
170   :zephyr-app: samples/hello_world
171   :board: stm32f429i_disc1
172   :goals: build flash
173
174Run a serial host program to connect with your board:
175
176.. code-block:: console
177
178   $ minicom -D /dev/ttyACM0
179
180Then, press the RESET button (The black one), you should see the following message:
181
182.. code-block:: console
183
184   Hello World! arm
185
186
187Debugging
188=========
189
190You can debug an application in the usual way.  Here is an example for the
191:ref:`hello_world` application.
192
193.. zephyr-app-commands::
194   :zephyr-app: samples/hello_world
195   :board: stm32f429i_disc1
196   :goals: debug
197
198.. _STM32F429I-DISC1 website:
199   http://www.st.com/en/evaluation-tools/32f429idiscovery.html
200
201.. _STM32F429I-DISC1 board User Manual:
202   http://www.st.com/web/en/resource/technical/document/user_manual/DM00097320.pdf
203
204.. _STM32F429ZI on www.st.com:
205   http://www.st.com/en/microcontrollers/stm32f429-439.html
206
207.. _STM32F429 Reference Manual:
208   http://www.st.com/content/ccc/resource/technical/document/reference_manual/3d/6d/5a/66/b4/99/40/d4/DM00031020.pdf/files/DM00031020.pdf/jcr:content/translations/en.DM00031020.pdf
209