Description
The BM53A367A uses the HT32F52367 as its main MCU, which is a 3.3V series Cortex®-M0+ core that supports various power supply methods and has additional commonly used communication interfaces such as I2C, SPI, UART, and USB.
Pin-compatible with Arduino UNO R3
The BMduino-UNO BM53A367A is pin-compatible with the Arduino UNO R3, but operates at a voltage level of 3.3V (while Arduino UNO R3 operates at 5V).
In addition to the standard Arduino UNO R3 pinout, the BM53A367A provides two additional connectors, BMCOM1 and BMCOM2, which can be individually set to operate at either 3.3V or 5V using jumpers.
The board comes with a voltage level shift circuit, so that you can directly connect to BMCOM when using a 5V voltage module, without worrying about voltage conversion.
Programming
The BM53A367A comes with an e-Link32 Lite circuit, which can be used for debugging and programming.
Therefore, the BM53A367A does not need to use TX and RX pins when uploading a sketch (Arduino UNO R3 needs to use them), and does not need the ICSP function.
The 6-pin ICSP connector on the Arduino UNO R3 is designed to be additional SPI/UART interface on the BM53A367A, and its voltage level can also be set to 3.3V or 5V with a jumper, and no additional voltage level shift circuit is required when connecting to a 5V module.
Development environment
In addition to working in the Arduino IDE, the BM53A367A can also work in the Keil IDE development environment, and its usage is the same as that of the ESK32-30510 HT32F52367 starter kit.
What is BMCOM?
BMCOM is an ecosystem consisting of I2C/UART modules, which includes sensors, actuators, displays, and wireless modules, that can accelerate the process of prototype design.
There are two types of BMCOM connectors: BMCOM1 is a 2.54mm pitch, 5-pin header, while BMCOM2 is a 1mm pitch, 5-pin JST connector.
- MCU: HT32F52367 (64-pin LQFP package)
– Cortex®-M0+, 60MHz
– Flash memory: 256KB
– SRAM: 32KB - 31 of digital I/O pins (17 of the pins can be used as PWM outputs)
- 7 of analog input, A/D converter resolution: 12-bit
- 14 of external interrupt
- EEPROM: 4KB
- Communication interface: UART, SPI, I2C, USB
- Power selection: USB interface x 2, DC interface, external Vin
– e-Link32 Lite USB: type-C USB interface
– Native USB: type-C USB interface, support BC 1.2 and QC 2.0 fast charging (default: boosting to 12V)
– DC Jack: DC 5V to 24V, barrel jack to connect to external power, such as adapter
– External Vin (Vin pin): DC 5V to 24V - Debugger: e-Link32 Lite (ICE), debugging via on-board e-Link32 Lite circuit programming
- Programming
– ICP (In-Circuit Programing), programming via on-board e-Link32 Lite circuit
– IAP (In Application Programming), programming via COM port (the same as Arduino UNO R3) - Development environment: support Arduino IDE and Keil IDE
- Connector:
– BMCOM1: 2.54mm pitch, support 3V or 5V power
– BMCOM2: 1.0mm pitch, support 3V or 5V power
– SPI1: 2.54mm pitch, support 3V or 5V power - Pin-compatible with Arduino UNO R3
- Dimension: 54 x 94 x 14 mm
- Net weight: 28.5g
- Product includes: 1. BM53A367A x 1 | 2. Jumper x 1
Development board | BMduino-UNO BM53A367A | Arduino UNO R3 |
Core | 32-bit Cortex M0+, 60MHz | 8-bit AVR®, 16MHz |
Flash / EEPROM / SRAM | 256KB / 4KB / 32KB | 32KB / 1KB / 2KB |
Operating voltage | 3.3V | 5V |
Communication interface | I2C, SPI, UART, USB | I2C, SPI, UART |
Connector | BMCOM1, BMCOM2 | – |
Development environment | Arduino, Keil | Arduino |
I/O driver current | 16mA | 20mA |
There are many open-source Arduino libraries on the Internet, and using the libraries can save us time in developing projects.
However, Arduino libraries can be designed to specify which MCU architecture to execute. For example, Arduino libraries written for AVR MCUs may not be available for BM53A367A (the compilation process will fail).
In the content of the library.properties file in the Arduino library directory, there is a line of “architecture=” command to specify which MCU architecture to execute, for example, architecture=* means that the Arduino library can be executed on each MCU architecture, architecture=avr means that the library can only be executed on MCUs with avr architecture.
However, there are very few exceptions in our test results, such as declaring architecture=avr, but BM53A367A runs without problems (e.g. LiquidCrystal_I2C.h), or declaring architecture=* but BM53A367A has errors in the compilation process.
We recommend that users follow these steps when choosing a third-party Arduino Library:
- Select the library that declares architecture=*: Popular components or modules usually have multiple open source Arduino libraries to choose from, choose the library that declares architecture=* to use.
- If you can’t find a library that declares architecture=*, you can try to use a library that is not architecture=*. If there is only warning but no error during compilation, you can actually test whether it works correctly, such as the above-mentioned LiquidCrystal_I2C.h
If you can’t find a suitable library, you can develop your library, or contact us if we have a ready-made library.
When using WS2812B RGB LED strips, the most commonly used Arduino library is likely Adafruit NeoPixel.
However, the BMduino-UNO board is not compatible with the Adafruit NeoPixel library. This incompatibility arises because the BMduino-UNO and Arduino UNO use different MCUs, leading to differences in the low-level code that generates the driving waveforms for the WS2812B LED strips.
In response to this issue, we have developed the BMduino_WS2812 library to facilitate users (the library can be downloaded in the ‘Document’ label).
The BMduino_WS2812 library handles the low-level timing for WS2812B LED strips, allowing users to focus on designing lighting effects. It’s similar to the Adafruit NeoPixel library, when using BMduino_WS2812, you need to set the number of LEDs and the pin for sending LED data.
Here is a sample code:
#include <BMduino_WS2812.h>
#define LED_PIN 6
#define LED_COUNT 10
BMduino_WS2812 myWS2812(LED_COUNT, LED_PIN);
Since the BMduino-UNO development board operates at a 3.3V logic level, if you connect the BMduino-UNO’s I/O pin to the DIN pin of the WS2812B LED strip, the VDD pin of the WS2812B LED strip should be connected to 3.3V instead of 5V.
Alternatively, you can connect the WS2812B LED strip to the BMCOM connector on the BMduino-UNO development board and set the voltage to 5V using a jumper. With this setup, the WS2812B LED strip can operate at 5V.
- Starter kit: ESK32-30510 HT32F52367 starter kit, including user manual, example program, etc.
Reviews
There are no reviews yet.