A variety of affordable, cost-effective microcontrollers are emerging in the market to help next-generation developers create exciting new embedded applications. Today's development tools are very easy to use, both hardware and software are modular, and plug-in installation is simple and easy, resulting in a significant reduction in product design evaluation and prototyping cycles. The STM32 open development environment is the industry's only hardware and software development platform. The stacked plug-in board integrates various modular hardware, while the modular software covers all software from the driver to the application layer, helping designers to quickly turn ideas into ideas. Product prototypes are smoothly transformed into final designs.
What is the STM32 open development environment?The STM32 open development environment is an embedded system prototyping development environment developed by STMicroelectronics. It aims to simplify the design of embedded projects and provides all important functional modules through open source. The components include:
- The extremely low-priced STM32 Nucleo development board (STM32 microcontroller) and STM32 Nucleo expansion board (sensor, communication interface, motor control and actuation) provide a variety of hardware features based on cutting-edge commercial products.
- STM32 microcontroller software library based on STM32Cube software tool and easy to use software library configurator (STM32CubeMX).
-STM32Cube extended software library supports various devices on STM32 Nucleo expansion board, including motor driver, low energy Bluetooth module, MEMS sensor and so on.
- Feature Pack: A set of functional routines (code examples) developed for some of the most common use cases using the STM32 Nucleo development board and STM32Cube software.
- Each hardware and software function module is equipped with detailed technical documentation.
- an active and fast-growing online development community
STM32 Nucleo Development BoardThe STM32 Nucleo development board is the foundation of the STM32 development environment with an STM32 microcontroller based on the ARM® Cortex®-M 32-bit processor core. The STM32 Nucleo development board used in the STM32 open development environment is a 64-pin version (Figure 1) microcontroller. The STM32 F4 and STM32 L0 microcontrollers are currently compatible with all STM32 Nucleo expansion boards and expansion software.
Figure 1 – STM32 Nucleo-64 Development Board
The development environment uses the STM32Cube software library based on the STM32Cube HAL (Hardware Abstraction Layer) API, which significantly reduces the amount of programming effort required to migrate software projects in different STM32 products (currently more than 20 STM32 Nucleo development boards).
The STM32 Nucleo-64 development board hardware has the following features:
- STM32 microcontroller in LQFP-64 package
- All pins of STM32 can be used via a 38-pin Morpho connector
- Four Arduino connectors (positions are arranged asymmetrically to guide the user to properly plug in the Arduino compatible expansion board)
- Integrated ST-LINK/V2-1 debugger/code writer and mini USB port, no need to install additional debugging tools, the board can be directly connected to the PC for debugging and programming. In addition, the USB interface supports virtual COM ports and mass storage interfaces (compatible with ARM mbed)
- 2 buttons (microcontroller reset signal and developer-specific buttons)
-3 LED lights (5V power supply, developer-specific, ST-Link debugger status)
Users can choose different power sources for the board:
-5V USB powered
-5V external power supply
- External power supply VIN (7-12V)
The 5V power supply on the STM32 Nucleo development board is also used to drive an expansion board that connects to the motherboard via an Arduino or morpho connector, while providing 3.3V power to the STM32 via an onboard regulator.
The STM32 Nucleo development board is extremely functional, and the onboard code programming/debugging tools are very practical, allowing designers to start development projects immediately without the need to add expensive development tools.
Embedded software and tools based on STM32CubeAfter selecting the STM32 Nucleo development board that is best for you, the next step is to download the relevant software library and familiarize yourself with the STM32 technology features and peripherals. The quickest way to get started is to download the Software Vault Configurator STM32CubeMX (). In the graphical user interface of the tool, the user simply selects the STM32 Nucleo development board (Figure 2) that is being used, and the configurator automatically configures the STM32 according to the hardware devices connected to the board (such as LEDs, buttons, UART pin assignments). Peripherals.
Next, you may need to configure each peripheral in detail, for example, setting the UART synchronous/asynchronous communication mode, baud rate, parity check, and stop bits.
Figure 2 – STM32CubeMX: From board selection to peripheral configuration, it takes only a few simple steps.
Finally, STM32CubeMX will generate code, create a complete software project, and be compatible with the code compilation toolchain used (eg IAR, Keil or Eclipse), while configuring all the hardware and peripherals previously selected in the graphical user interface and compatible with the code used. Debug/burn tool.
This graphical user interface tool lets you create projects from scratch, complete all the configuration required for a project in minutes, then immediately create your own software project and write code directly in the main.c file.
Figure 3 – Levels of the STM32Cube Software Library
The generated code is located on top of the STM32Cube embedded software, and the STM32Cube has two main layers (Figure 3):
- Hardware abstraction layer: allows the above software layer (for example, the middleware layer) to perform its own functions without requiring developers to understand how to use the microcontroller
- Middleware: a complete set of middleware components (RTOS, USB, TCP/IP, ...)
The software design adopts a modular approach, and users can add software modules at any time during the project development process, and easily transplant all projects across the series.
STM32 Nucleo expansion boardTo connect the STM32 Nucleo expansion board, the STM32 Nucleo-64 development board comes with two connectors:
- Compatible with Arduino standard Arduino connectors (32 pins of the microcontroller are on this connector).
-Morpho connector to connect all pins of the STM32 microcontroller (76 pins are on this connector).
The STM32 Nucleo expansion board allows designers to create multiple complete applications by plugging multiple daughter boards of different functions on the motherboard. At present, there are more than 20 expansion boards (Figure 4) on the STMicroelectronics website (), which can be divided into five categories according to their functions:
- Sensing: MEMS 9-axis motion sensor; pressure sensor, environmental sensor, proximity detection sensor; MEMS microphone
- Connection: Low energy Bluetooth, Wi-Fi, NFC and Sub-GHz radio;
-Motor control/actuation: DC motor driver, stepper motor driver, 3-phase brushless DC motor driver
- Input / Output: I / O modules (home automation and industrial automation)
- Signal Conditioning: Operational Amplifier
Figure 4 - Various Models of STM32 Nucleo Expansion Board
The STM32 Nucleo board feature extension method is similar to the Arduino and Raspberry Pi solutions, making it easy for designers to quickly develop product prototypes. With these connection tools, the expansion board stack can be plugged into the motherboard to add new functions to the system. The only downside is that the stacked connection method is limited by the way the microcontroller peripherals are used. Yes, I2C and SPI buses are used instead of slow data buses such as UARTs, which increases the number of connected devices on the same bus. In addition, the asymmetric arrangement of the Arduino connectors prevents the STM32 Nucleo expansion board from being connected in the wrong direction and reduces the risk of damage to the device due to power connection errors. The expansion board uses the 3.3V power generated by the on-board 5V power supply of the LDO regulator on the STM32 Nucleo development board. Users can use the jumper (JP5) to select the USB 5V power supply or the external E5V power supply for the development board. Some expansion boards require higher voltages, such as motor drives and I/O expansion boards, so a power connector is added to the development board to drive the load from an external source, providing a higher voltage Vbus (up to 45V).
For safety reasons, most expansion boards are designed for low-power applications. Voltages below 50V can reduce the risk of board burnout when the power supply polarity is reversed or short-circuited, so it is suitable for beginners and students.
These low-power expansion boards can also be connected separately to high-voltage, high-power motor control expansion boards, but we only recommend this configuration for motor control professionals. For easy differentiation, we painted the high-power STM32 Nucleo expansion board in green, and the rest of the expansion boards are all blue. The high-power motor control expansion board combines the advantages of high-voltage, high-power expansion boards and low-voltage expansion boards to easily increase data communication functions in motor control applications, such as remotely driving high-voltage motors using RF technology or using low-power Bluetooth or Wi-Fi. Motor drive information and remote record failure data.
SHENZHEN CHONDEKUAI TECHNOLOGY CO.LTD , https://www.szfourinone.com