The banana PI is a tiny powerhouse with its powerful STM32 microcontroller and integrated NB-IoT modem. In this post we will go bit more in depth to see what this tiny board has on offer.
Power source
The STM32F103RBT6 controller in the Banana should be powered from a stable voltage source between 2.0V and 3.6V. You can supply power via
The recommended operating voltage should be adhered to as indicated in the datasheet to keep the little STM happy.
I/O Pins
There are 51 I/O pins available in the STM32 and many of them can be found in the 40 pin GPIO header in the Banana. It the very important to note that not all pins are 5V tolerant. As indicated in the table above, the input voltage for 5V tolerant pins should be less than 5.5V. and only 3.3V for non 5V tolerant pins. The voltage levels of the peripherals connected to the I/O pins should be carefully checked to avoid damaging the STM32. It is always advisable to use a logic level converter for converting 5V to 3.3V or use peripherals that run off 3.3V to avoid destroying the microcontroller.
The 40 pin header layout is as follows:
When programming in Arduino IDE the pin name (eg:PC1) can be directly used in pinMode(), digitalWrite() and digitalRead() functions.
USART ports
The Banana has 3 USART ports in addition to the virtual USART port (USART0) which is visible over the USB when connected to the PC.
Power source
The STM32F103RBT6 controller in the Banana should be powered from a stable voltage source between 2.0V and 3.6V. You can supply power via
- USB connector from PC or power bank
- Vcc GND pins in SWD header up to 3.6V
- Battery connector up to 3.6V
The recommended operating voltage should be adhered to as indicated in the datasheet to keep the little STM happy.
I/O Pins
There are 51 I/O pins available in the STM32 and many of them can be found in the 40 pin GPIO header in the Banana. It the very important to note that not all pins are 5V tolerant. As indicated in the table above, the input voltage for 5V tolerant pins should be less than 5.5V. and only 3.3V for non 5V tolerant pins. The voltage levels of the peripherals connected to the I/O pins should be carefully checked to avoid damaging the STM32. It is always advisable to use a logic level converter for converting 5V to 3.3V or use peripherals that run off 3.3V to avoid destroying the microcontroller.
The 40 pin header layout is as follows:
When programming in Arduino IDE the pin name (eg:PC1) can be directly used in pinMode(), digitalWrite() and digitalRead() functions.
USART ports
The Banana has 3 USART ports in addition to the virtual USART port (USART0) which is visible over the USB when connected to the PC.
- USART0 - virtual COMM port visible only when connected to PC via USB
- USART1 - 5V tolerant
- USART2 - Not 5V tolerant, used for modem communication and should be used with external devices
- USART3 - 5V tolerant
I2C ports
The Banana has 2 I2C modules where both are 5V tolerant
SPI ports
The Banana has 2 SPI modules where SPI1 is only 3.3V but SPI2 is 5V tolerant
Onboard LEDs
The Banana has 4 on board LEDs for status indication etc.
- LED1 - PC0
- LED2 - PC1
- LED3 - PC2
- LED4 - PC3
Reset button
This button is self explanatory since it pulls the RESET pin low to reset the microcontroller
Power button
This button, even though named as the power button on the board pulls down the PD2 pin on the microcontroller when pressed. It is up to you to use it as a trigger or a power key in the firmware.