1.. _stm32f3_seco_d23_board:
2
3SECO SBC-3.5-PX30 (JUNO - D23) (STM32F302)
4##########################################
5
6Overview
7********
8
9SBC-3.5-PX30 (JUNO - D23) is a Single Board Computer based on embedded Rockchip PX30
10Processor, featuring Quad-Core ARM Cortex-A35 processor. The processor
11integrates a Mali-G31 GPU with High performance dedicated 2D processor,
12supporting OpenGL ES 1.1 / 2.0 / 3.2, Vulkan 1.0, OpenCL 2.0 and Open VG 1.1.
13Embedded VPU is able to support video decoding of the most common coding
14standard (MPEG-4, H.265/HEVC, H.264, VP8, VC-1). The board is completed with up
15to 4GB LPDDR4-3200 32-bit bus memory directly soldered on board and one eMMC
165.1 Flash Drive with up to 64GB of capacity. LVDS Single Channel interface and
17HDMI are supported. The RMII interface and Micrel KSZ8091 Ethernet Transceiver
18allow the implementation of a Fast Ethernet interface. The networking
19capabilities can be extended by WiFi+BT M.2 module and external modem module.
20The audio functionalities are managed by the AudioCodec embedded in the RK-809
21PMIC. SBC-3.5-PX30 board is completed by a series of connectors with various
22interfaces (UART, SPI, I2C) managed by the microcontroller STM32F302VCT6.
23
24.. image:: img/stm32f3_seco_d23.jpg
25     :align: center
26     :alt: SECO SBC-3.5-PX30
27
28More information about the board can be found at the
29`SECO SBC-3.5-PX30 website`_.
30
31Hardware
32********
33
34SECO SBC-3.5-PX30 provides the following hardware components:
35
36- STM32F302VCT6
37  - ARM |reg| 32-bit Cortex |reg| -M4 CPU with FPU
38  - 256 KB Flash
39  - 40 KB SRAM
40  - 72 MHz max CPU frequency
41- 2 User LEDs
42- 16 GPI
43- 16 GPO
44- 4 U(S)ART
45  - Modbus
46  - RS485
47  - TTL Serial Debug
48  - TTL Serial
49- 8-channel General Purpose Timers
50- USB 2.0 full speed interface
51- CAN
52- I2C (up to 2)
53- SPI
54
55More information about STM32F302VC can be found here:
56
57- `STM32F302VC on www.st.com`_
58- `STM32F302xC reference manual`_
59
60Supported Features
61==================
62
63The Zephyr stm32f3_seco_d23 board configuration supports the following hardware
64features:
65
66+-----------+------------+-------------------------------------+
67| Interface | Controller | Driver/Component                    |
68+===========+============+=====================================+
69| NVIC      | on-chip    | nested vector interrupt controller  |
70+-----------+------------+-------------------------------------+
71| UART      | on-chip    | serial port-polling;                |
72|           |            | serial port-interrupt               |
73+-----------+------------+-------------------------------------+
74| PINMUX    | on-chip    | pinmux                              |
75+-----------+------------+-------------------------------------+
76| GPIO      | on-chip    | gpio                                |
77+-----------+------------+-------------------------------------+
78| I2C       | on-chip    | i2c                                 |
79+-----------+------------+-------------------------------------+
80| SPI       | on-chip    | spi                                 |
81+-----------+------------+-------------------------------------+
82| USB       | on-chip    | USB device                          |
83+-----------+------------+-------------------------------------+
84| CAN       | on-chip    | CAN                                 |
85+-----------+------------+-------------------------------------+
86| IWDG      | on-chip    | Independent WatchDoG                |
87+-----------+------------+-------------------------------------+
88| PWM       | on-chip    | pwm                                 |
89+-----------+------------+-------------------------------------+
90
91Other hardware features are not yet supported on Zephyr porting.
92
93Pin Mapping
94===========
95
96SBC-3.5-PX30 has 6 GPIO controllers. These controllers are
97responsible for pin muxing, input/output, pull-up, etc.
98
99For more details please refer to `SECO SBC-3.5-PX30 board User Manual`_.
100
101Default Zephyr Peripheral Mapping:
102----------------------------------
103
104.. rst-class:: rst-columns
105
106- UART_1_TX : PA9 (debug config for UART_1)
107- UART_1_RX : PA10 (debug config for UART_1)
108- UART_1_TX : PC4 (alternate config for UART_1)
109- UART_1_RX : PC5 (alternate config for UART_1)
110- UART_2_TX : PD5
111- UART_2_RX : PD6
112- UART_2_CLK : PD7
113- UART_2_CTS : PD3
114- UART_2_RTS/DE : PD4
115- UART_3_TX : PC10
116- UART_3_RX : PC11
117- UART_3_CLK : PD10
118- UART_3_CTS : PD11
119- UART_3_RTS/DE : PD12
120- UART_5_TX : PC12
121- UART_5_RX : PD2
122- I2C1_SCL : PB6
123- I2C1_SDA : PB7
124- I2C2_SCL : PA9 (alternate config for UART_1)
125- I2C2_SDA : PA10 (alternate config for UART_1)
126- SPI1_NSS : PA4
127- SPI1_SCK : PB3
128- SPI1_MISO : PB4
129- SPI1_MOSI : PB5
130- SPI2_NSS : PB12
131- SPI2_SCK : PB13
132- SPI2_MISO : PB14
133- SPI2_MOSI : PB15
134- CAN1_RX : PB8
135- CAN1_TX : PB9
136- USB_DM : PA11
137- USB_DP : PA12
138- LD1 : PD8
139- LD2 : PD9
140- PWM : PA8
141
142System Clock
143============
144
145SECO SBC-3.5-PX30 System Clock could be driven by internal or external
146oscillator, as well as main PLL clock. By default System clock is driven
147by PLL clock at 72 MHz, driven by an external oscillator at 8 MHz.
148
149Serial Port
150===========
151
152SECO SBC-3.5-PX30 has up to 4 U(S)ARTs. The Zephyr console output
153is assigned to UART1. Default settings are 115200 8N1.
154In debug configuration UART1 is connected to the flashing connector CN56.
155
156UART2 provides Modbus interface to connector CN28.
157UART3 provides RS-485 interface to connectors CN57 and CN48.
158In alternative config, USART2 and USART3 are exposed to connector J2.
159
160UART1 (in alternate config) and UART5 are connected to CN32.
161
162I2C
163===
164SECO SBC-3.5-PX30 has up to 2 I2Cs. Both are present in connector CN33.
165I2C2 is available only on boards where DEBUG serial is not connected.
166
167USB
168===
169SECO SBC-3.5-PX30 has a USB 2.0 full-speed device interface available through
170its connector CN31.
171
172CAN
173===
174SECO SBC-3.5-PX30 has an onboard CAN transceiver (TJA1051T), and it is
175connected to both CN29 and CN30. PD0 is connected to EC_CAN_STBY.
176
177SPI
178===
179SECO SBC-3.5-PX30 has two SPI lines: SPI1 is an internal SPI line connected to the
180main processor (Rockchip PX30) and SPI2 is connected to CN39.
181
182Programming and Debugging
183*************************
184
185Flashing
186========
187
188Applications for the ``stm32f3_seco_d23`` board configuration can be built and
189flashed in the usual way (see :ref:`build_an_application` and
190:ref:`application_run` for more details).
191
192Flashing an application to SECO SBC-3.5-PX30
193--------------------------------------------
194
195First, connect the SECO SBC-3.5-PX30 to your host computer using
196CN56 connector to an ST-Link.
197
198The pinout is (1-8):
199
200- VDD
201- UART1_TX
202- UART1_RX
203- BOOT_0
204- SWDIO_JTMS
205- SWCLK_JTCK
206- EC_RST#
207- GND
208
209Then build and flash your application.
210
211Here is an example for the :ref:`hello_world` application.
212
213.. zephyr-app-commands::
214   :zephyr-app: samples/hello_world
215   :board: stm32f3_seco_d23
216   :goals: build flash
217
218Run a serial host program to connect with your board.
219
220.. code-block:: console
221
222   $ minicom -D /dev/<tty device>
223
224Replace <tty_device> with the port where the SBC-3.5-PX30 board can be
225found.
226
227You should see the following message on the console:
228
229.. code-block:: console
230
231   Hello World! stm32f3_seco_d23
232
233
234.. _SECO SBC-3.5-PX30 website:
235   https://edge.seco.com/sbc-3-5-px30.html
236
237.. _SECO SBC-3.5-PX30 board User Manual:
238   https://www.seco.com/Manuals/SBC-D23_Manual.pdf
239
240.. _STM32F302VC on www.st.com:
241   https://www.st.com/en/microcontrollers/stm32f302vc.html
242
243.. _STM32F302xC reference manual:
244   https://www.st.com/resource/en/reference_manual/rm0365-stm32f302xbcde-and-stm32f302x68-advanced-armbased-32bit-mcus-stmicroelectronics.pdf
245