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