This small board is designed for very low-power applications. It is assembled with an STM32L151RC microcontroller and has an on-board battery charger for a 3.7V Li-Ion or Li-Polymer battery. System 3.3V is generated via an on-board 3.3V regulator with very low current consumption. This regulator provides 3.3V at 800mA which is available for any custom circuitry.
This board has three iMod ports for adding Modtronix iMod modules. A common use for this module is to add an inAir LoRa SX1276/SX1278 Wireless iMod module for battery-powered wireless applications.
The NZ32-SC151 board can be powered via its micro-USB connector, via an external battery (plugged into its JST PH 2.0mm connector) or via an external 5V provided to pin headers.
This board is being added to available platforms on mbed.org. This will enable online programming using the free mbed compiler. Additionally, online projects can be exported and built on local computer using a free IDE (e.g. CoIDE, Eclipse, System Workbench, EmBitz) and free GNU GCC ARM C/C++ compiler.
STM32L151RC Module Features
When powering via USB, the USB supply voltage (after protection diode) can be made available on the 5V pins (pins 11, 12, 57 and 58) by making solder jumper J11 on the back of the board. Special care must be taken when J11 is made not to supply voltage to the 5V pins, but only use it for obtaining the USB 5V supply. The USB 5V supply available on the 5V pins will be slightly lower than the USB voltage, as it passes through a Schottky protection diode that drops the voltage by about 0.3V.
- STM32L151RC CPU, optimized for low-power applications (compatible with other STM32L151 and STM32L152 chips).
- 256K Flash, 32K RAM, 8K EEPROM.
- 3x UART/USART ports, 2x I2C ports, 3x SPI ports.
- Micro B USB Port.
- Reset and Boot buttons.
- Two LEDs: Battery charging indicator LED, and a user LED.
- Firmware upgradable via USB port. If boot button is pressed at power-up (reset), board goes into bootloader mode.
- Low-power 5V-to-3.3V switch mode regulator with 16µA operating and 0.01µA standby current.
- Switch mode can be disabled by CPU, resulting in 0.01µA current, which is sufficient to run CPU for minutes in low-power mode (run from power stored in capacitors).
- On-board 3.7V LiPo or Li-Ion battery charger, and standard 2.0mm JST PH connector (see these LiPo batteries). LED indicates when battery is charged. Can be charged from USB or 5V pin headers.
- Hardware for monitoring input and battery voltage.
- Additional regulator output capacitors allow board to run for longer when switch mode is in standby mode (ultra-low-power 0.01µA operation).
When J11 is not made (the default configuration), power can be supplied via the 5V pins, USB, or both. Protection diodes automatically will select the source with the highest voltage.
When no external voltage is supplied (via USB or 5V pins) power will be taken from the battery. When external power is provided, it will be used and the battery charged. The charge LED will light up, and stay on as long as the battery is charging. The LED goes off once charging is done. By default the charging current is 100mA, but this can be increased to 500mA by setting the microcontroller port A14 to 0. Charging current is 100mA when port A14 is high impedance (configured as input — default after reset). By default, the USB specification only allows 100mA to be taken from the USB bus, so to get fast charging is actually quite complicated. This board is supposed request 500mA high power from the host via the USB protocol. This will require USB firmware to be implemented on this board. But it seems never to be a problem to take 500mA from a USB port without the requested higher power.
In addition, microcontroller port PC4 (analog input) can be used to monitor the USB voltage. It should be around 5V in normal circumstances. If it drops well below 5V, we can assume that we are drawing too much power, and change back to 100mA charging. When connecting to a USB charger, no negotiation is required, and we can always enable 500mA charging.
Fast charging is enabled by default. This can be disabled by removing solder jumper J13 located on the back of board, labeled "Fast Chrg".
The Vin pins 1, 2 and 67 and connected together. They are not connected to any circuitry on the board. These pins are the Vin (Vaux) pins of iMod ports, and could possibly be used if multiple iMod modules are assembled on this board.
Software Development A free template download is available with integrated mbed API, using the free System Workbench for STM32 or CoIDE. Both of these IDEs use the free GNU ARM GCC C/C++ compilers. The download has the mbed API and STM32CubeL1 drivers integrated, meaning any of the mbed or STM32Cube examples programs can be used.
Programming the Board The STM32 chip used on this board has a bootloader programmed into ROM, meaning it is always available. To enter bootloader mode, the BOOT button must be pressed down during power-up or reset. After this, the firmware can be upgraded by using the DFU USB programmer. To program the board via USB using the DFU programmer, the HEX or BIN file must first be converted to a DFU file. This resulting DFU file is then used to program the STM32 board.
To do this, download and install the ST Microelectronics DFU Bootloader (STSW-STM32080 — scroll to the bottom of the page where it says Get Software). Start the DFU File Manager application. Open your HEX file, and click the Generate button. This will generate a DFU file. Next, start the DfuSe Demonstration application. Power up the NZ32-SC151 while holding down the BOOT button. The DfuSeDemo application should now show a device in its "Available DFU Devices" box. Click the Choose button and select the *.dfu file. (Do not use the Choose button in the "Upload Action" section!) Click the Upgrade button and upgrade the firmware.
As well as programming via the built-in bootloader, it is possible to program and perform in-circuit debugging with any ST-LINK/V2-1 compatible programmer. The board does not have a standard type of connector so you will have to wire up the signals yourself. See the board's pinout diagram.
iMod Ports This board has three ports for the adding of plug-and-play iMod Modules. Modules of the following pin widths can be connected to the ports:
- iMod Port 1 and iMod Port 3 each supports a 0.7" module.
- iMod Port 2 supports a 0.9" module. This is typically used for one of the inAir LoRa wireless modules.
STM32L151RC Module Resources
Optional Recommended Products for this Item
|Rectangular Pin Header, Male, 1x40 Single Row, 2.54mm Spacing||+|| US$0.75|
|Base Board for NZ32 STM32 Module, with Sockets Installed||+|| US$19.95|
|Polymer Lithium Ion Battery, 850mAh, JST Connector||+|| US$9.95|
|Polymer Lithium Ion Battery, 2000mAh, JST Connector||+|| US$16.95|
|Polymer Lithium Ion Battery Pack, 6Ah, JST Connector||+|| US$29.95|
|Barrel Jack to 2-pin JST Adapter, 2.1x5.5mm Jack, 2mm JST||+|| US$2.95|
|USB 2.0 Cable, 6ft. A-Male / Micro-USB (5-pin) B-Male||+|| US$6.00|