Tag

STM32 Boards

Browsing

There is a common practice of today’s embedded systems to perform firmware upgrade using custom procedures in order to support different communication protocols during the data transfer such as (KWP2000 etc). For that reason the solid STM bootloader is not useful and the development should proceed by creating a custom bootloader that supports the requested functionalities as well as the core procedure of writing the new firmware (transferred data) to the flash memory. Below is…

This example contains a simple STM32CubeMX + Atollic project based on the STM32F7-Disco board which is able to transmit a CANbus Frame. On top of that the board has a really basic GUI with touchscreen capabilities to activate/deactivate the transmission and of course give a feedback of the procedure. You can freely use alter copy this project but keep in mind that it is a sample and not commented at all. If you want to…

This example presents a simple video streaming(PC) and video player(STM32F746 board). The video streaming solution is designed to be flexible with a simple “threading” architecture that allows customization. Due to the image processing limitations (missing JPEG decoder) of the STM32F746) which acts as a client, the server (linux PC) is responsible to decode the selected media files and transmit them on a simple, yet effective way. The streaming can support 24bit RAW bitmaps (images) of…

In concurrent programming, concurrent accesses to shared resources can lead to unexpected or erroneous behavior, so parts of the program where the shared resource is accessed are protected. This protected section is the critical section or critical region. It cannot be executed by more than one process. Typically, the critical section accesses a shared resource, such as a data structure, a peripheral device, or a network connection, that would not operate correctly in the context…

Using the  the current project aims to update a board through CANbus. The workflow: The first board has a firmware loaded into the SD Card. At the beginning it requests to transmit the firmware through CANbus. If the second board accepts the request, then the firmware is transmitted through the CANBus to the SD Card of the client. After the completion of the firmware transfer process, the system reboots itself and Stitch Bootloader flashes and loads…

Usually a firmware upgrade of the STM32FXXX boards are is not an easy task for customers. They have to plug the board and use several different tools to flash the memory. For that reason i have made a simple, effective and easy way to upgrade your firmware using an SD Card. The upgrade task is simple, just write your firmware in the first sector of the SD Card (use HxD application to perform this operation),…

Sometimes, we need an easy way to test and verify that our board works correctly, especially if we are using breadboards and cables. The following simple FreeRTOS thread is able to echo each incoming CAN frame. To use this thread you must enable FreeRTOS using the ST’s CubeMX software which will generate the appropriate startup source code and afterwards you have to include some extra libraries that can be found in the blog (please check…

In a previous post we saw a simple CAN library to handle the CAN interfaces of STM32 board. However one basic issue that we had to solve is the frames buffering (especially when we receive the frames). This issue came up by the processing time that each frame needs and the limitation that the receive interrupt routine should be as fast as possible. For that reason, the following source code presents an incoming CAN Frames…

The Controller Area Network (CAN, also known as CAN Bus) is a vehicle bus standard designed to allow electronic control units and devices to communicate with each other in applications without a host computer. STM32F779-Eval board has 3 CAN interfaces, however only the two of them have their own clock (master). For that reason the following library provides some C methods to activate and use those CAN interfaces. Beware that each CAN interface requires its…