1.. _nucleo_f767zi_board:
2
3ST Nucleo F767ZI
4################
5
6Overview
7********
8
9The STM32 Nucleo-144 F767ZI boards offer combinations of performance and
10power that provide an affordable and flexible way for users to build
11prototypes and try out new concepts. For compatible boards, the SMPS
12significantly reduces power consumption in Run mode.
13
14The Arduino-compatible ST Zio connector expands functionality of the Nucleo
15open development platform, with a wide choice of specialized Arduino* Uno V3
16shields.
17
18The STM32 Nucleo-144 board does not require any separate probe as it integrates
19the ST-LINK/V2-1 debugger/programmer.
20
21The STM32 Nucleo-144 board comes with the STM32 comprehensive free software
22libraries and examples available with the STM32Cube MCU Package.
23
24Key Features
25
26- STM32 microcontroller in LQFP144 package
27- Ethernet compliant with IEEE-802.3-2002 (depending on STM32 support)
28- USB OTG or full-speed device (depending on STM32 support)
29- 3 user LEDs
30- 2 user and reset push-buttons
31- 32.768 kHz crystal oscillator
32- Board connectors:
33
34 - USB with Micro-AB
35 - SWD
36 - Ethernet RJ45 (depending on STM32 support)
37 - ST Zio connector including Arduino* Uno V3
38 - ST morpho
39
40- Flexible power-supply options: ST-LINK USB VBUS or external sources.
41- On-board ST-LINK/V2-1 debugger/programmer with USB re-enumeration
42- capability: mass storage, virtual COM port and debug port.
43- Comprehensive free software libraries and examples available with the
44  STM32Cube MCU package.
45- Arm* Mbed Enabled* compliant (only for some Nucleo part numbers)
46
47.. image:: img/nucleo_f767zi.jpg
48   :align: center
49   :alt: Nucleo F767ZI
50
51More information about the board can be found at the `Nucleo F767ZI website`_.
52
53Hardware
54********
55
56Nucleo F767ZI provides the following hardware components:
57
58- STM32F767ZI in LQFP144 package
59- ARM 32-bit Cortex-M7 CPU with FPU
60- Chrom-ART Accelerator
61- ART Accelerator
62- 216 MHz max CPU frequency
63- VDD from 1.7 V to 3.6 V
64- 2 MB Flash
65- 512 KB SRAM
66- 16-bit timers(10)
67- 32-bit timers(2)
68- SPI(6)
69- I2C(4)
70- I2S (3)
71- USART(4)
72- UART(4)
73- USB OTG Full Speed and High Speed(1)
74- USB OTG Full Speed(1)
75- CAN(2)
76- SAI(2)
77- SPDIF_Rx(4)
78- HDMI_CEC(1)
79- Dual Mode Quad SPI(1)
80- Camera Interface
81- GPIO(up to 168) with external interrupt capability
82- 12-bit ADC(3) with 24 channels / 2.4 MSPS
83- 12-bit DAC with 2 channels(2)
84- True Random Number Generator (RNG)
85- 16-channel DMA
86- LCD-TFT Controller with XGA resolution
87
88Supported Features
89==================
90
91The Zephyr nucleo_f767zi board configuration supports the following hardware
92features:
93
94+-----------+------------+-------------------------------------+
95| Interface | Controller | Driver/Component                    |
96+===========+============+=====================================+
97| NVIC      | on-chip    | nested vector interrupt controller  |
98+-----------+------------+-------------------------------------+
99| UART      | on-chip    | serial port                         |
100+-----------+------------+-------------------------------------+
101| PINMUX    | on-chip    | pinmux                              |
102+-----------+------------+-------------------------------------+
103| GPIO      | on-chip    | gpio                                |
104+-----------+------------+-------------------------------------+
105| ETHERNET  | on-chip    | ethernet (*)                        |
106+-----------+------------+-------------------------------------+
107| USB       | on-chip    | usb_device                          |
108+-----------+------------+-------------------------------------+
109| COUNTER   | on-chip    | rtc                                 |
110+-----------+------------+-------------------------------------+
111| I2C       | on-chip    | i2c                                 |
112+-----------+------------+-------------------------------------+
113| PWM       | on-chip    | pwm                                 |
114+-----------+------------+-------------------------------------+
115| SPI       | on-chip    | spi                                 |
116+-----------+------------+-------------------------------------+
117| WATCHDOG  | on-chip    | independent watchdog                |
118+-----------+------------+-------------------------------------+
119| ADC       | on-chip    | ADC Controller                      |
120+-----------+------------+-------------------------------------+
121| RNG       | on-chip    | True Random number generator        |
122+-----------+------------+-------------------------------------+
123| DAC       | on-chip    | DAC Controller                      |
124+-----------+------------+-------------------------------------+
125| RTC       | on-chip    | rtc                                 |
126+-----------+------------+-------------------------------------+
127
128
129(*) nucleo_f767zi with soc cut-A (Device marking A) has some ethernet
130    instability (:github:`26519`).
131    Use of cut-Z is advised.
132    see restrictions errata:
133    https://www.st.com/content/ccc/resource/technical/document/errata_sheet/group0/23/a6/11/0b/30/24/46/a5/DM00257543/files/DM00257543.pdf/jcr:content/translations/en.DM00257543.pdf
134
135Other hardware features are not yet supported on this Zephyr port.
136
137The default configuration can be found in
138:zephyr_file:`boards/st/nucleo_f767zi/nucleo_f767zi_defconfig`
139
140For more details please refer to `STM32 Nucleo-144 board User Manual`_.
141
142Default Zephyr Peripheral Mapping:
143----------------------------------
144
145The Nucleo F767ZI board features a ST Zio connector (extended Arduino Uno V3)
146and a ST morpho connector. Board is configured as follows:
147
148- UART_2 TX/RX/RTS/CTS : PD5/PD6/PD4/PD3
149- UART_3 TX/RX : PD8/PD9 (ST-Link Virtual Port Com)
150- UART_6 TX/RX : PG14/PG9 (Arduino UART)
151- USER_PB : PC13
152- LD1 : PB0
153- LD2 : PB7
154- LD3 : PB14
155- ETH : PA1, PA2, PA7, PB13, PC1, PC4, PC5, PG11, PG13
156- USB DM : PA11
157- USB DP : PA12
158- I2C : PB8, PB9
159- PWM : PE13
160- SPI : PD14, PA5, PA6, PA7
161
162.. note::
163   The Arduino Uno v3 specified SPI device conflicts with the on-board ETH
164   device on pin PA7.
165
166System Clock
167------------
168
169Nucleo F767ZI System Clock could be driven by an internal or external
170oscillator, as well as the main PLL clock. By default, the System clock is
171driven by the PLL clock at 72MHz, driven by an 8MHz high-speed external clock.
172
173Serial Port
174-----------
175
176Nucleo F767ZI board has 4 UARTs and 4 USARTs. The Zephyr console output is
177assigned to UART3. Default settings are 115200 8N1.
178
179
180Programming and Debugging
181*************************
182
183Applications for the ``nucleo_f767zi`` board configuration can be built and
184flashed in the usual way (see :ref:`build_an_application` and
185:ref:`application_run` for more details).
186
187Flashing
188========
189
190Nucleo F767ZI board includes an ST-LINK/V2-1 embedded debug tool interface.
191
192Flashing an application to Nucleo F767ZI
193----------------------------------------
194
195Here is an example for the :ref:`hello_world` application.
196
197Run a serial host program to connect with your Nucleo board.
198
199.. code-block:: console
200
201   $ minicom -b 115200 -D /dev/ttyACM0
202
203Build and flash the application:
204
205.. zephyr-app-commands::
206   :zephyr-app: samples/hello_world
207   :board: nucleo_f767zi
208   :goals: build flash
209
210You should see the following message on the console:
211
212.. code-block:: console
213
214   $ Hello World! nucleo_f767zi
215
216Debugging
217=========
218
219You can debug an application in the usual way.  Here is an example for the
220:ref:`hello_world` application.
221
222.. zephyr-app-commands::
223   :zephyr-app: samples/hello_world
224   :board: nucleo_f767zi
225   :maybe-skip-config:
226   :goals: debug
227
228.. _Nucleo f767zi website:
229   https://www.st.com/en/evaluation-tools/nucleo-f767zi.html
230
231.. _STM32 Nucleo-144 board User Manual:
232   https://www.st.com/resource/en/user_manual/dm00244518.pdf
233
234.. _STM32f767zi on www.st.com:
235   https://www.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32-high-performance-mcus/stm32f7-series/stm32f7x&/stm32f767zi.html
236
237.. _STM32F767 reference manual:
238   https://www.st.com/resource/en/reference_manual/DM00224583.pdf
239