================= stm32f401rc-rs485 ================= This page discusses issues unique to NuttX configurations for the NuttX STM32F4-RS485 development board. .. figure:: stm32f401rc_rs485.jpg :align: center Board information ================= This board was release on NuttX International Workshop 2023 and developed based on STM32F401RCT6 microcontroller. STM32F401RCT6 microcontroller features: - Arm 32-bit Cortex®-M4 CPU with FPU - 256 Kbytes of Flash memory - 64 Kbytes of SRAM - Serial wire debug (SWD) & JTAG interfaces - Up to 81 I/O ports with interrupt capability - Up to 11 communication interfaces - Up to 3 I2C interfaces - Up to 3 USARTs - Up to 4 SPIs - SDIO interface - USB 2.0 full-speed device/host/OTG controller with on-chip PHY The board features: - Digital I2C Temperature Sensor (TMP75) - 2K bits (256x8) I2C EEPROM - On-board RS485 Transceiver - Two Analog Input Stages with Amplifier Buffer - Two Analog Output Stages with Amplifier Buffer - MicroSD Connector supporting 1 or 4-bit bus - Four User LEDs - Four User Buttons - USB for DFU (Device Firmware Update) and USB device functionality, as well as powering the board - Onboard voltage regulator from 5V to 3.3V - SWD Pins for use as STLink (Pin header) and TC2030-IDC 6-Pin Tag-Connect Plug-of-Nails™ Connector - Crystal for HS 8MHz - Crystal for RTC 32.768KHz Board documentation: https://github.com/lucaszampar/NuttX_STM32F4_RS485_DevBoard As F4 series have a USB DFuSe-capable BootROM [AN2606], the board can be flashed via `dfu-util` over USB, or via `stm32flash` over UART without any debuggers. LEDs ==== The STM32F4-RS485 has 4 software controllable LEDs. ===== ===== LED PINS ===== ===== LED_1 PC0 LED_2 PC1 LED_4 PC2 LED_5 PC3 ===== ===== User Buttons ============ The STM32F4-RS485 has 4 user switches. ======= ===== SWITCH PINS ======= ===== SWIO_1 PB13 SWIO_2 PB14 SWIO_3 PB15 SWIO_4 PC6 ======= ===== UARTs ===== The STM32F4-RS485 has 1 USART available for user. USART2 ------ ========== ======= UART/USART PINS ========== ======= CTS PA0 RTS PA1 TX PA2 [1] RX PA3 CK PA4 ========== ======= [1] Warning you make need to reverse RX/TX on some RS-232 converters SDCard support ============== The STM32F4-RS485 has 1 SDCard slot connected as below: ========== ===== SDIO PINS ========== ===== SDIO_D0 PC8 SDIO_D1 PC9 SDIO_D2 PC10 SDIO_D3 PC11 SDIO_DK PC12 ========== ===== EEPROM ====== The STM32F4-RS485 development board has serial EEPROM HX24LC02B, with 2k bits (256x8) and internally organized with 32 pages of 8 bytes each. It is connected through I2C as below: ====== ===== I2C PINS ====== ===== SDA PB7 SCL PB8 ====== ===== Users can enable EERPOM support on STM32F4-RS485 by following below configuration: - Configure basic nsh:: ./tools/configure.sh -l stm32f401rc-rs485:nsh - Enable the following configs:: CONFIG_DEV_ZERO=y CONFIG_EEPROM=y CONFIG_FS_PROCFS=y CONFIG_I2C=y CONFIG_I2C_EE_24XX=y CONFIG_STM32_I2C1=y - Build and flash the STM32F4-RS485. - Use dd command to write and read data from EEPROM as below:: nsh> dd if=/dev/zero of=/dev/eeprom nsh: dd: write failed: 1 nsh> dd if=/dev/console of=/dev/eeprom bs=1 count=4 (type "Hello") nsh> dd if=/dev/eeprom of=/dev/console bs=4 count=1 Hellonsh> Temperature Sensor ================== The STM32F4-RS485 development board has a temperature sensor TMP75 (TMP75AIDR) connected through I2C as below: ====== ===== I2C PINS ====== ===== SDA PB7 SCL PB8 ====== ===== RS485 Transceiver ================= The STM32F4-RS485 development board has a half-duplex RS-485 transceiver, the BL3085B it is connected through USART2 as below: ========== ===== USART2 PINS ========== ===== USART2_RX RO USART2_RTS DE, /RE SART2_RX DI ========== ===== A/D Converter ============= The STM32F4-RS485 development board has two Analog to Digital converters with Amplifier Buffer (1COS724SR) and connected as below: ======= ===== PWM PINS ======= ===== PWM_1 PB6 PWM_2 PA6 ======= ===== D/C Converter ============= The STM32F4-RS485 development board has two Digital to Analog converters with Amplifier Buffer (1COS724SR) and connected as below: ======= ===== ADC PINS ======= ===== ADC_1 PA0 ADC_2 PA4 ======= ===== Configurations ============== Each stm32f401rc-rs485 configuration is maintained in a sub-directory and can be selected as follow:: tools/configure.sh stm32f401rc-rs485: Where is one of the following: Configuration Directories ------------------------- nsh --- Configures the NuttShell (nsh) located at apps/examples/nsh. This configuration enables a serial console on UART2. sdcard ------ Configures the NuttShell (nsh) and enables SD card support. The stm32f401rc-rs485 has an onboard microSD slot that should be automatically registered as the block device /dev/mmcsd0 when an SD card is present. The SD card can then be mounted by the NSH commands:: nsh> mount -t procfs /proc nsh> mount -t vfat /dev/mmcsd0 /mnt