NXP RDDRONE-BMS772

NXP RDDRONE-BMS772 is a Battery Management System (BMS) reference design for mobile robotics, such as drones and rovers. Design files are available on the NXP website and may be used to develop your own BMS. RDDRONE-BMS772 is configurable and supports batteries of 3 to 6 cells, which it can monitor individually. The board features the NXP S32K144 MCU, which can monitor the NXP MC33772B Battery Cell Controller (BCC) and may communicates with the Vehicle Management Unit (VMU). When faults are detected the battery output can be disconnected to prevent further damage. Status information may be communicated over I2C/SMBus, CAN or NFC.

NuttX contains basic board support RDDRONE-BMS772, which allows the S32K144 MCU to be initialized. A NuttX-compatible smart battery application for RDDRONE-BMS772 is also available. It contains additional drivers and example software to use most features of the battery management system. This application is currently published in a separate repository, but (parts) may eventually be upstreamed to Apache NuttX.

Features

  • NXP FS32K144HAT0MLFT MCU
    • 80 MHz Clock (Max.)

    • 512 Kb Flash

    • 64 Kb SRAM

    • 4 Kb EEPROM

  • NXP MC33772BSP1AE Battery Cell Controller

  • NXP UJA1169TK/F/3 System Basis Chip

  • Connectivity:
    • UART (Console @ 115,200 baud)

    • CAN 2.0 (Transceiver part of UJA1169 SBC)

    • I2C Master header to connect a display (e.g. small SSD1306-based OLEDs)

    • I2C/SMBus Slave

    • NFC (NTAG5 Boost)

Serial Console

By default, the serial console will be provided on the DCD-LZ UART (available on the 7-pin DCD-LZ debug connector J19):

DCD-LZ UART RX

PTC6

LPUART1_RX

DCD-LZ UART TX

PTC7

LPUART1_TX

LEDs

The RDDRONE-BMS772 has one RGB LED:

RedLED

PTD16

FTM0 CH1

GreenLED

PTB13

FTM0 CH1

BlueLED

PTD15

FTM0 CH0

An output of ‘0’ illuminates the LED.

If CONFIG_ARCH_LEDS is not defined, then the user can control the LEDs in any way. The following definitions are used to access individual RGB components (see rddrone-bms772.h):

  • GPIO_LED_R

  • GPIO_LED_G

  • GPIO_LED_B

The RGB components could, alternatively, be controlled through PWM using the common RGB LED driver.

If CONFIG_ARCH_LEDs is defined, then NuttX will control the LEDs on board the RDDRONE-BMS772. The following definitions describe how NuttX controls the LEDs:

State

Description

RED

GREEN

BLUE

LED_STARTED

NuttX has been started

OFF

OFF

OFF

LED_HEAPALLOCATE

Heap has been allocated

OFF

OFF

ON

LED_IRQSENABLED

Interrupts enabled

OFF

OFF

ON

LED_STACKCREATED

Idle stack created

OFF

ON

OFF

LED_INIRQ

In an interrupt

LED_SIGNAL

In a signal handler

LED_ASSERTION

An assertion failed

LED_PANIC

The system has crashed

FLASH

OFF

OFF

LED_IDLE

S32K144 in sleep mode

Configurations

Each RDDRONE-BMS772 configuration is maintained in a sub-directory and can be selected as follows:

tools/configure.sh rddrone-bms772:<subdir>

Where <subdir> is one of the sub-directories listed in the next paragraph.

NOTES (common for all configurations):

  1. This configuration uses the mconf-based configuration tool. To change this configuration using that tool, you should:
    1. Build and install the kconfig-mconf tool. See nuttx/README.txt. Also see additional README.txt files in the NuttX tools repository.

    2. Execute ‘make menuconfig’ in nuttx/ in order to start the reconfiguration process.

  2. Unless otherwise stated, the serial console used is LPUART1 at 115,200 8N1.

nsh

Configures the NuttShell (nsh) located at apps/examples/nsh. Support for builtin applications is enabled, but in the base configuration the only application selected is the “Hello, World!” example.