JZ-F407VET6 Industrial Control Board
Overview
The JZ-F407VET6 is an industrial control board featuring an Arm® Cortex®‑M4 based STM32F407VE MCU with a wide range of connectivity support targeting industrial automation applications. Here are some highlights of the JZ-F407VET6 board:
STM32 microcontroller in LQFP100 package
25 MHz high-speed external crystal
32.768 kHz RTC crystal
Flexible board power supply:
5V DC barrel jack
USB Mini connector
Three user LEDs
Three user push-buttons
RS232 interface with DB9 connector
RS485 interface with Modbus support
Dual CAN bus interfaces with TJA1050 transceivers
10/100 Ethernet with RMII PHY
MicroSD card slot
W25Q64JV 8MB SPI NOR flash
AT24C02 256-byte I2C EEPROM
USB Host (USB-A connector)
USB Device (USB Mini connector)
Two 16-pin extension headers
8-pin NRF24L01 header
3-pin DS18B20 header
Coin cell battery holder for VBAT
SWD/JTAG debug interface
Hardware
The JZ-F407VET6 board provides the following hardware components:
STM32F407VET6 in LQFP100 package
ARM 32-bit Cortex-M4 CPU with FPU
168 MHz max CPU frequency
VDD from 1.8 V to 3.6 V
512 KB Flash
192 KB SRAM including 64 KB of core coupled memory
4 KB backup SRAM
GPIO with external interrupt capability
12-bit ADC with 24 channels
12-bit DAC
RTC
Advanced-control Timers
General Purpose Timers
Watchdog Timers
USART/UART
I2C
SPI
SDIO
CAN
USB 2.0 OTG FS
USB 2.0 OTG HS/FS
10/100 Ethernet MAC
CRC calculation unit
True random number generator
DMA Controller
More information about STM32F407VE can be found here:
Supported Features
The jz_f407vet6 board supports the hardware features listed below.
- on-chip / on-board
- Feature integrated in the SoC / present on the board.
- 2 / 2
-
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files. -
vnd,foo -
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
Connections and IOs
The JZ-F407VET6 board has 5 GPIO controllers. These controllers are responsible for pin muxing, input/output, pull-up, etc.
Default Zephyr Peripheral Mapping:
USART_1 TX/RX : PA9/PA10 (RS232)
USART_2 TX/RX/DE : PD5/PD6/PD7 (RS485)
I2C1 SCL/SDA : PB8/PB9
SPI2 SCK/MISO/MOSI : PB10/PC2/PC3
SPI2 CS (Flash) : PE3
CAN1 RX/TX : PD0/PD1
CAN2 RX/TX : PB5/PB6
ETH : PA1, PA2, PA7, PB11, PB12, PB13, PC1, PC4, PC5
SDIO D0-D3/CK/CMD : PC8-PC11/PC12/PD2
SDIO CD : PD3
USB OTG FS DM/DP : PA11/PA12
USB OTG HS DM/DP : PB14/PB15
LED1 : PE13
LED2 : PE14
LED3 : PE15
SW1 : PE10
SW2 : PE11
SW3 : PE12
System Clock
The JZ-F407VET6 system clock could be driven by an internal or external oscillator, as well as by the main PLL clock. By default, the system clock is driven by the PLL clock at 168 MHz, driven by a 25 MHz high-speed external clock.
Serial Port
The JZ-F407VET6 board has 6 UARTs. The Zephyr console output is assigned to USART1. Default settings are 115200 8N1.
USART1 is accessible via an RS232 transceiver connected to a DB9 connector.
USART2 is configured for RS485 with Modbus support, using PD7 as the driver-enable pin.
Programming and Debugging
The jz_f407vet6 board supports the runners and associated west commands listed below.
| flash | debug |
|---|
Applications for the jz_f407vet6 board configuration can be built and
flashed in the usual way (see Building an Application and
Run an Application for more details).
Flashing
The JZ-F407VET6 board can be flashed using an external ST-LINK/V2 or compatible JTAG programmer connected to the JTAG header.
Alternatively, OpenOCD or JLink can also be used to flash the board using
the --runner (or -r) option:
$ west flash --runner openocd
$ west flash --runner jlink
Flashing an application to JZ-F407VET6
Here is an example for the Hello World application.
Run a serial host program to connect with your board via the DB9 RS232 port:
$ minicom -D /dev/ttyUSB0
Build and flash the application:
# From the root of the zephyr repository
west build -b jz_f407vet6 samples/hello_world
west flash
You should see the following message on the console:
$ Hello World! jz_f407vet6/stm32f407xx
Debugging
You can debug an application in the usual way. Here is an example for the Hello World application.
# From the root of the zephyr repository
west build -b jz_f407vet6 samples/hello_world
west debug