Get ready for the STM32 Summit 2026 | Online, November 3
Join discussions in the Product Forums. Ask questions, learn from your peers, and share insights on ST solutions to accelerate your design journey.
Most recent activity
Hello,I just purchased two STM32H5E5 Nucleo boards along with two of the ST Memory board kits. What I am planning is to take one of the QSPI flash M.2 boards and reconfigure it so that the memory(s) attached to OCTOSPI1 are two identical flash chips, and have two identical 64Mb PSRAMs attached to OCTOSPI2. Reading the octospi section of the reference manual it appears that each “bank” can share the clk and the OCTOSPI(1/2) chip selects and putting the respective OCTOSPI channels in DMM mode and have them memory mapped. Also, I have moved a SB on the Nucleo so that OCTOSPI2_NCS is connected to the M2.0 connector. I have included a pic of what I am trying to do. Any help would be appreciated. Thank you,
Hello,According to Table 56 (Output voltage characteristics for all I/Os) in the STM32MP213FAL datasheet, the maximum VOL is specified as 0.4V under high load conditions (IOL = 5.5mA to 20mA).In my application, the connected device has a strict VIL(Min) requirement of 0.35V. My actual load current is very low, around 10uA.While I understand that VOL should stay very close to 0V under such a low load due to the CMOS structure, the datasheet only provides the Max 0.4V limit.Strictly speaking, this does not show a match with my 0.35V requirement on paper.Could you provide any reference curves, typical characteristics, or internal RON (on-resistance) values for the I/O pins to confirm that VOL drops well below 0.35V under a 10uA load? Thank you in advance for your support.
Hello everyone!I just wanted to share with you all the pinout of NUCLEO-C542RC and STM32C542RCT6. I just moved from STM32F013RB, which had a lot of schematics online, but currently the C5 series has close to none.The pinout list all the available functions for each pin. I hope it’ll be as useful for you as it was for me. I attached to this post the drawio file, for easy edits.If you have any recommendation, please let me know.
I have redrawn the NUCLEO-H5E5ZJ schematic as a personal exercise in understanding the architecture of the board and the STM32H5E5. I have consolidated the original multi-sheet design into a main STM32H5E5 schematic and a separate STLINK schematic, using port objects to make the principal interconnections explicit. During the redraw, I cross-checked the connectivity against ST's original Altium design files and the more recent PDF schematics.My aim was to show the MCU GPIO ports rather than their alternate functions, as I found this gave me a different picture of how the MCU is connected to the board. The exercise also revealed just how much functionality is exposed by the NUCLEO-H5E5ZJ PCB: the usefulness of the M.2 Key A socket, the extensive possibilities offered by the other headers, and, in particular, the surprisingly large number of MCU GPIOs that are brought out to them and are available.I have a great deal of respect for the NUCLEO-H5E5ZJ PCB and for the STM32H5E5. The capabi
Looking at the Ethernet PHY circuit of the STM32H735G-DK, the MCU and MAC are connected via the RMII interface, and a pin named "RMII_RX_ER" is connected to the MCU.However, if you configure it for RMII in CubeMX (version 6.18.1), this pin does not activate normally. If the user manually activates it with the mouse, the pin is marked in yellow, meaning the function is not properly enabled Therefore, I checked the official Demo FW located in STM32Cube\Repository\STM32Cube_FW_H7_V1.13.0\Projects\STM32H735G-DK\Applications\LwIP\LwIP_TCP_Echo_Server\STM32CubeIDE, and even there, the pin is configured as GPIO_AF11_ETH. I am curious why it was designed and developed this way when it only gets configured but doesn't actually function. Is it just missing from the ETH group in the CubeMX DB? Or is it originally an unsupported feature, but ended up like this because an existing circuit design was just recycled?
I noticed that stm32c5xx_hal_fdcan.c uses C language bitfields to access device registers. Since bitfields are compiler specific, every knowledgeable embedded software engineer knows that using bitfields to access device registers is non-standard and not to be used. I suggest that using bitfields to access device registers be changed. You can refer to STM32CubeH7 for correctly accessing device registers. BTW. I tried to open a support issue in the on-line support, but received the following error:Case_trigger: execution of AfterInsert caused by: System.DmlException: Update failed. First exception on row 0 with id 0033W00000YERuSQAX; first error: FIELD_CUSTOM_VALIDATION_EXCEPTION, Please specify a valid Zip Code: [] Class.CaseUtility.addInfoToContactAndLead: line 231, column 1 Trigger.Case_trigger: line 38, column 1
so this is my data acquisition system, i want you to suggest some improvements in it. as the adc + dma ping pong buffer is working fine, but after that the conversion and its transmission via dma+uart ping-pong buffer is so much miserable. there is no synch between these buffers.here is my project:Vishwas1523/dataAcquisitionSystemPS: i am using stm32 nucleo f446re
Hello everyone,Actually I am making a data acquisition system in which my mcu takes analog data from a sensor and stores it in a buffer, and then into a 2nd buffer with the help of DMA in double buffer mode. Now i want to transfer this data via UART to my screen with the help of PuTTY with the same ping-pong architecture. For this i need to convert 12 bit adc value to data suitable for uart (8 bit). which i do with the help of a function without any issue and then store them in different two buffers. now the thing is that i want a system in which when buffer 1 is being filled by adc, buffer two will be transferred by uart and vice versa, now the main problem is that there is no sync between the buffers and the ownership. and it is mostly due to the conversion and size of buffers (uart buffers are twice the size of adc buffers) as i am using double buffer transmission mode in DMA controllers of both adc and uart.So do you think i should use single buffer transmission with circular buffe
Hi ST Community, I’ve connected a MP23DB01HPTR MEM MIC to the STM32N6 Nucleo’s MDF1_SDI3 and MDF1_CCK0 and here is my connection. I am using“ Projects/STM32N6570-DK/Examples/MDF/MDF_AudioRecorder” as a reference and according to the information on Github, the CCK0 should be 2.048 MHz Which I am measuring almost the same frequency on the CCK0 pin of my board : 2.03393 MHz In my project, instead of sending the data to SAI, I am sending the data to USART 1, which I’ve set the BaudRate to 921600. My code has three callback functions:void HAL_MDF_AcqHalfCpltCallback(MDF_HandleTypeDef *hmdf)void HAL_MDF_AcqCpltCallback(MDF_HandleTypeDef *hmdf)void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) The USART 1 is sending the first half of the MDF buffer when the AcqHalfCpltCallback is triggered, and then the second half when the AcqCpltCallback is triggered. on my computer I wrote a python script where it is receiving the audio raw data via serial port and save it into a WAV file. However
Hello all,I can't download the STM32CubeIDE even as I am registered. There seems to be somthing broken with the Web page. I have tried several browsers. This is what I get, so there is no download button and the table is garbled:Any help appreciated.Johannes
Hello,We are designing an EVSE for a North American 120/240-V split-phase supply. The EVSE is connected to L1 and L2, with a nominal voltage of 240 V RMS between them. Neutral is not available at the EVSE.We would like to use the STPM34 to measure the L1-to-L2 voltage and calculate the load power and energy. Current sensing is implemented separately using current transformers and is not shown in the attached schematic.Our proposed voltage-sensing circuit uses the primary differential voltage channel as follows:L1 is connected to VIP1 through three series 560-kΩ resistors. L2 is connected to VIN1 through an identical resistor chain. Each input has a 1-kΩ resistor and filter capacitor connected to the local analog ground, iGND_A. iGND_A is the local ground of the isolated STPM34 metrology domain. It is not connected to neutral or protective earth.The intention is to create a symmetrical differential divider so that the voltage between VIP1 and VIN1 is proportional to the L1-to-L2 voltage
Hi All,Where can I find the pin map xml file for the SPC584B-DISP demo board ?
Body:I would like to replace the AI model in the STM32N6570-DK sample project "STM32N6-GettingStarted-ImageClassification" and run it in standalone mode.Purpose:My goal is simply to try running different AI models, not for development purposes. I would like to confirm operation by powering the board ON/OFF without using a debugger.Environment:Board: STM32N6570-DK IDE: STM32CubeIDE 2.2.0 STM32CubeAI StudioWhat I want to do:I am currently trying to generate C code using STM32CubeAI Studio from the following AI model provided by STMicroelectronics, and replace the files in the sample project:https://github.com/STMicroelectronics/stm32ai-modelzoo/blob/main/image_classification/mobilenetv2/Public_pretrainedmodel_public_dataset/ImageNet/mobilenetv2_a035_128/mobilenetv2_a035_128_int8.tfliteI am also interested in whether it is possible to run third-party AI models in the same way, such as models from the following repository:https://github.com/PINTO0309/PINTO_model_zooQuestions:What is the co
Can anyone please pint me out to a BSDL file useful for STM32H7A3VIH6Q ? Thank youGabriele
The STM32MP2 supports gstreamer. There is a version of Gstreamer for streaming through the WebRTC protocol.Another library for streaming though the WebRTC protocol would be LibWebRTC.My question is if the STM32MP2 have support for LibWebRTC as well? Thank you for your reply
Hello Everyone,I have a two arduino boards communicating with each other on a CAN Bus. Arduino is connected to CAN Bus via MCP2515 .Both arduino are communicating correctly with each other. Here is an example of my transmitter on arduino:/*************************************************/#include <SPI.h>#include <mcp2515.h>/*******************MESSAGES DEFINITIONS*****************/#include <SPI.h>#include <mcp2515.h>struct can_frame canMsg1;struct can_frame canMsg2;MCP2515 mcp2515(10);void setup() { canMsg1.can_id = 0x0F6; canMsg1.can_dlc = 8; canMsg1.data[0] = 0x8E; canMsg1.data[1] = 0x87; canMsg1.data[2] = 0x32; canMsg1.data[3] = 0xFA; canMsg1.data[4] = 0x26; canMsg1.data[5] = 0x8E; canMsg1.data[6] = 0xBE; canMsg1.data[7] = 0x86; canMsg2.can_id = 0x036; canMsg2.can_dlc = 8; canMsg2.data[0] = 0x0E; canMsg2.data[1] = 0x00; canMsg2.data[2] = 0x00; canMsg2.data[3] = 0x08;
I have two boards, one with STM32F303 with CAN 2.0 and a new board (same electronic, only MCU is different) with STM32G474. Software is identical too, except for the CAN/FDCAN. So I had to migrate the software from CAN 2.0 to FDCAN Classic in order to communicate with the other system boards. In the treatment of the received frames, I noticed that the CAN 2.0 is faster in managing the communication than the FDCAN Classic. Can anyone confirm that ? and if so why does it take so long to the FDCAN classic ? As I send frames to both board, the STM32F303 program timing isn't affected, for the STM32G474 I measured a delay of some ms. Clocks are as follow:STM32F303 : CPU: 72 Mhz CAN baudrate: 500Kb/sSTM32G474 : CPU: 170 Mhz FDCAN classic baudrate: 500kb/s
i am using cube mx version 6.18.0and cube ide v2.2.0my question is is there a way to create a new project from an already existing ioc filei don’t want to do all the ioc setting all over again, it will take like hours to do all the settings.
hi there.I'm trying to CAN transmit on my target board.my board is not to send CAN message on stm32cubeide . but I confirmed that my board send CAN message on mbed.Can I how to send CAN message on stm32cubeide?? I intended CAN baudrate 500kbps, sampling point 75% and my apb1 clock is 18Mhz, HSE is 8Mhz, and my crystal is 8Mhz.below is printf() debug message when my board running and stop.Always debug message show me the message such as below..<Can Send Success: 1<Can Send Success: 2<Can Send Success: 3<Can Send Success: 4<Can Send Success: 5<Can Send Success: 6<Can Send Success: 7<Can Send Success: 8<Can Send Success: 9<Can Send Success: 10<Can Send Success: 11<Can Send Success: 12<Can Send Success: 13<Can Send Success: 14<Can Send Success: 15<Can Send Success: 16<Can Send Success: 17<Can Send Success: 18<Can Send Success: 19<Can Send Failmy source code attached .please check my error...regards..
Hi all,I have a CAN 2.0 network up and running with a F407 and some F103. I added a board with a G0B (fdcan). I couldn't get my hands on a FDCAN-tranceiver. I tried to get it working in classic mode (from repository example) with a CAN2.0 tranceiver. I cannot receive any message.So my question is:Is it even possible to configure the G0B to work with a classic CAN2.0 tranceiver?If yes, what would the FDCAN config look likeThank you in advance!Best regards,Philipp
I've been working on getting the STM32f7-EVAL operational to later on migrate it to STM32F767II. For this we decided to split up functionality into 3 sections, there is a forward facing application that has the main and specific business logic. Currently the main issue is that the CAN bus transmit (polling) is working flawlessly yet the receive (interrupt) seems to be non-functional. RF0R.FMP0 remains at 0x0, while FMPIE0 is set (1). it seems as if CAN_RF0R is disabled for some reason. Even though CAN_RX0_IRQn is enabled. /* CAN1 interrupt Init */ HAL_NVIC_SetPriority(CAN1_RX0_IRQn, 0, 0); HAL_NVIC_EnableIRQ(CAN1_RX0_IRQn);also the notification is enabled:HAL_CAN_ActivateNotification(&canDef, CAN_IT_RX_FIFO0_MSG_PENDING); after the NVIC and CAN are initialized.void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan)is the callback that i'm using.I also verified using messages coming into the MCU by scope and logic analyser. There is an additional device attached to the CA
Hello,I'm trying to set up an interrupt when my FDCAN controller received a CAN message. MCU is an STM32G0B1I went into STCubeMX and I enabled these interrupts:This generated some new functions instm32g0xx_it.c:void TIM16_FDCAN_IT0_IRQHandler(void){ /* USER CODE BEGIN TIM16_FDCAN_IT0_IRQn 0 */ /* USER CODE END TIM16_FDCAN_IT0_IRQn 0 */ HAL_FDCAN_IRQHandler(&hfdcan1); /* USER CODE BEGIN TIM16_FDCAN_IT0_IRQn 1 */ /* USER CODE END TIM16_FDCAN_IT0_IRQn 1 */} /** * @brief This function handles TIM17, FDCAN1_IT1 and FDCAN2_IT1 Interrupt. */void TIM17_FDCAN_IT1_IRQHandler(void){ /* USER CODE BEGIN TIM17_FDCAN_IT1_IRQn 0 */ /* USER CODE END TIM17_FDCAN_IT1_IRQn 0 */ HAL_FDCAN_IRQHandler(&hfdcan1); /* USER CODE BEGIN TIM17_FDCAN_IT1_IRQn 1 */ /* USER CODE END TIM17_FDCAN_IT1_IRQn 1 */}This appears to call this function for RX FIFO on 0 and 1 /* Rx FIFO 0 interrupts management ******************************************/ if (RxFifo0ITs != 0U) { /* Clear the Rx FIFO 0 flags */ __HAL_FD
Hello ST Community,I am working with the STM32H7RS-DK (STM32H7S78-DK) board and trying to program/activate the Open Bootloader using STM32CubeProgrammer.The Open Bootloader .bin file downloads successfully to RAM, but the Init Open Bootloader operation fails with an acknowledgement timeout.Provisionning logs========== Provisioning of OEMiROT boot path===== Application selected through env.bat: ..\..\..\Applications\ROT\OEMiROT_Appli===== Product state must be Open. Execute \ROT_Provisioning\DA\regression.bat if not the case.===== DTCM/ITCM_AXI_SHARE is going to be forced to 0 for the provisioning steps===== (if needed uncomment DTCM/ITCM_AXI_SHARE lines with the wished value in the ob_flash_programming script).=====Step 0: Preliminary stage * Define product state value (* default choice)OPEN [ OPEN | CLOSED* | LOCKED ]: CLOSED * Define Debug Authentication method (* default choice) [ CERTIFICATE* | PASSWORD ]: PASSWORDStep 1: Configuration management * OEMiROT_Config
Hello Dear Community:I am facing the following issue. I generated the project from Cube32MX for STM32C542RCT6.I modified the following lines seems that a bug is present in the AF aka alternate functions. * @file : mx_i2c1.c* @brief : I2C1 Peripheral initializationHAL_I2C_EnableAnalogFilter(&hI2C1); /* ### I2C1 GPIO Configuration ########################### *//* GPIO Clocks activation */HAL_RCC_GPIOB_EnableClock(); hal_gpio_config_t gpio_config; /**[GPIO Pin] ------> [Signal Name] PB8 ------> I2C1_SCLPB9 ------> I2C1_SDA**/gpio_config.mode = HAL_GPIO_MODE_ALTERNATE;gpio_config.output_type = HAL_GPIO_OUTPUT_OPENDRAIN;gpio_config.pull = HAL_GPIO_PULL_NO;gpio_config.speed = HAL_GPIO_SPEED_FREQ_LOW;gpio_config.alternate = HAL_GPIO_AF4_I2C1; => HERE IS THE MODIFICATIONHAL_GPIO_Init(HAL_GPIOB, HAL_GPIO_PIN_8 | HAL_GPIO_PIN_9, &gpio_config);In the main:/** You can start your application code here*/for (uint8_t addr = 0x08; addr < 0x78; addr++) {if (HAL_I2C_MASTER_Transmi
Hello,I apologize for any obvious questions, but I am new to CAN and STM32 programming. I have written a code that successfully sends CAN messages to a CANalyzer for data interpretation, so I believe I have enabled the CAN portion correctly. My next objective is to send a message from a CANalyzer to the MCU and have it turn an LED on when it properly received the message. I am using an evaluation board (STM32H7B3I-EVAL).I attached a copy of my main.c file.What I would like to know is how to enable an RX interrupt handler so that I can receive CAN data.What do I have to add to the main.c to make that happen?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.