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
Hi,I want to use multiple VL53L8CX in my robot. I don’t like to connect a gpio to each of them nor use an gpio extender. In some other topic it is stated that MISO is connected with 47k to GND because the pin may configured as other than push/pull and the GPIO stated in datasheet are not really GP any more. So I got the idea to use MISO in I2C as a chained input to the next sensors LPn. There is nothing stated in datasheet other than don’t connect in I2C mode. So the questions are:is the state of MISO is defined at startup in I2C mode? Is it correlated to NCS pin even in I2C mode?after pushing the firmware and changing the I2C address is it possible to set MISO to high level independent to NCS or is it somekind hardwired?Ragards Chris
Hi all,I'm designing the control electronics for an automatic egg-candling machine (150 positions). An STM32F411 drives everything over a single shared SPI bus:A 74HC595 daisy-chain (shift registers → ULN2803A → solenoid valves) MCP3208 ADCs (reading LDR light sensors) on the same SPI bus, CS-selectedThe process is strictly sequential (read all sensors first, then actuate valves — never at the same time), so valve-switching noise never coincides with an ADC read, and SPI speed is not time-critical. That's why I want to keep the clock slow.Physical signal path (my concern):~100 cm total PCB trace 2 board-to-board connectors (PCB-to-PCB) then a 20 cm cable that enters the target IC (74HC595 / MCP3208) Planned SPI clock: 100 kHz, SPI mode 0, 3.3 V logicMitigations planned: series termination on SCLK/MOSI/LATCH at the source, ground interleaving in the cable, star grounding (valve PGND separated from SPI/logic GND), local 3.3 V regulation at the far end.My own bench test: I ran an SPI loop
Dear STM Support Team,We are currently developing a rear-view camera application on the STM32N6570 platform. Our existing implementation was developed using the Sony IMX335 image sensor, and we are now planning to migrate the design to a custom board using the OmniVision OV2312 sensor.We would like to clarify the following: Does the existing STM32N6570 camera driver framework support the OV2312 sensor directly? If not, is there an official OV2312 sensor driver available from ST? Can the existing IMX335 driver be adapted for OV2312, or is a separate sensor-specific driver required? If an OV2312 driver is already available, could you please provide the driver package, reference code, or the relevant documentation for integration with the STM32N6570 imaging pipeline? Your clarification will help us proceed with the custom hardware integration and software development.Thank you for your support, and we look forward to your response.
Hello Friends, I have selected STM32F401XE series for my new project. The device is expected to face road vibrations and shocks, so to make system more reliable I am thinking to use MEMS oscillator rather than standard Quartz Crystal. I tried to search any reference schematic of STM32 MCU having MEMS osciilator but couldn’t find. Please share if any information available on how to use MEMS Oscillator. I understand OSC-IN should be connected to OUT of MEMS Oscillator and OSC-OUT should be set to high -Z. What about VDD of MEMS Oscillator? Should it be set to same VDD as set in STM32F401XE MCU, which is 3.3V Thanks
Hi Team, I was going through the schematics of STEVAL-CTM010V1 solution for dual Motor controller application for Airconditioner. Can anyone help me regarding the design equations of this application? If possible, we are ready for a meeting.Kindly reply. Thanks and Regards,Ajay P
Hello I’m developing long project.Tomorrow I open the project and try to save it without any modification,but appears this window Can someone please help me, thankyou in advance.
Hello ST team,I am designing a circuit using the STM32N657 and want to minimise the total power consumption in this application. therefore, I am considering using the ultra-low-power U031 MCU to switch the STM32N6 on and off via this MCU. My question is: can I use a power switch instead of an LDO?I have attached my power tree I’d appreciate it if you could have a look.Regards
Hello, I have tested, the VL53L8CX tof sensor in interior (fixation at 3m10), and the visualization of the matrices works very well, in an empty scene or with a person pass under the sensor. When my sensor is fixed at the same height, but light up with daylight, next to the window, my matrices are noised, and when a person pass under it, there are some noise with the passage of the person. For example, the sensor create lots of pixels with this situation rather than the other. How to reduce this noise and this sensibility to the daylight ?
Hi, there,we recently development a set up using vl53L1CB to measure water level.During our test the sigal noise ratio is pretty good(1000/1), however, we got a very close distance (20-30mm) at real distance around 6-8m. Similar phenomenon did not occur at solid surface even at 8m.And also, since we got a pretty good measurement at 8m with a solid surface, is there any possibility that we can break the firmware limit to reach a even longer distance?Is there any possible suggestion?thank you
Hello everyone,I'm trying to establish communication between an IO-Link master and an IO-Link device, but I'm very new to this field and I'm having a lot of difficulty getting the communication done.I'm using a STEVAL-IOM001V1 with the L6360 transceiver. I generate an 80 µs wake-up pulse on the bus using a timer in alternate function with the USART. Then, through my state machine, I'm able to send a Type_0 message with MC = 0xA2 and the corresponding checksum at different transmission rates, while keeping the Tdmt timing between consecutive messages within the required range of 27–37 Tbit.Using an oscilloscope, I can see that the wake-up sequence (Twup + Tren) and the messages are correctly generated and transmitted to the device. However, in most cases, the device does not respond.As the IO-Link device, I'm using an X-NUCLEO-IOD02A1 with the L6364Q transceiver and the ST example software with the MiniStack.Has anyone experienced a similar issue or have any suggestions on what I might
The chip is STM32G473VET6. When enabling opamp1 in independent mode, I found that the VINM pin can switch between PA3 and PC5. But if you enable independent mode and also connect Vout to the internal ADC channel, you'll find that VINM can only be used on PA3. How should I understand this phenomenon?From AN5306 Figure 18, you can see that you can switch using VM_SEL[1:0] and OPAINOTEN[0]. Does this mode have any limitations?
I have created a new project based on the STM32G491 and have used ADC1 to create eight ADC inputs.The only option I have presented for ADC Scan Mode is Disabled. What do I need to do to enable Scan Mode please?Kind regards,Al
Hi everyone,I am trying to generate a professional SBOM for my project.I have a few questions regarding the best workflow:Tooling & Detection: What the best tool to generate the SBOM.I tried using ScanCode, but it didn't find any component in my project (e.g., FreeRTOS). I had to manually add .about files to the folder to get results. Is there a better tool that can generate the SBOM with minimal manual intervention?ST Cube SBOM : The Cube MCU packages contain dozens of libraries (FatFS, FreeRTOS, USB_Host, etc.). If my project only uses FatFS, the package JSON still lists everything. Do I have to manually extract the components I use from the ST JSON? how to get use of the ST SBOM?I’d love to hear if anyone has a script or a specific toolchain that automates this without the manual "copy-paste" from the ST manifests Thank you!Yahya
I simply can't figure out how to generate this pulse with my STEVAL-IOM001V1 board. Even the supplied code (en.stsw-iom001) doesn't make me any wiser.
Hello,I am using an STM32L431 as an I2C Slave and an RL78/G13 as an I2C Master.I am trying to transmit data from the STM32L431 (Slave) to the Renesas RL78 (Master).When the RL78 performs an I2C read operation, the following callback sequence is observed on the STM32: 1 HAL_I2C_AddrCallback(Direction = Read) 2 HAL_I2C_ErrorCallback(ErrorCode = 4) 3 HAL_I2C_ListenCpltCallback()Inside the AddrCallback I start the transmission using: HAL_I2C_Slave_Seq_Transmit_IT(hi2c, tx_buffer, tx_length, I2C_FIRST_AND_LAST_FRAME);The function returns HAL_OK.The transmit buffer contains a simple incrementing pattern, length 20 byte: 01 02 03 04 05The STM32 reports that transmission has completed: XferSize = 20 XferCount = 0However, immediately afterwards the ErrorCallback is called with: TextErrorCode = 4According to stm32l4xx_hal_i2c.h this corresponds to: HAL_I2C_ERROR_AF (Acknowledge failure / NACK).On the RL78 side, the receive buffer does not contain the transmitted data. Expected: 01 02 03 04 05 ..
I am using 4 HRTIM PWM outputs(CHA1/A2 and CHB1/B2) on the STM32G474 MCU to control a full-bridge converter. I want a delayed version of the PWM on CH1A using another advanced/basic timer. Can the HRTIM generate a software interrupt which can be used by another advanced/basic timer for a delayed/phase shifted PWM output? I do NOT want to use another timer from the HRTIM module as they are reserved for other purposes.
Hi there !I have a quick question about where the data are save. If i create one const array [1024] the data inside the array (because i write the word const in front) are save inside the falsh ? and this give to me more space in the ram right ? and is the same if i create one struct and i acces with pointer ? and please some one can help me and show where i can find all this kind of information like book tutorial website youtube ectThank you Sergio
My problem: my SPI2 module doesn’t appear to be clocking in data even if it is configured a full duplex master.Context:I am developing the firmware on a board that some other team designed and they picked PB13 (SCK), PB14 (MISO) and PB15 (MOSI) to implement SPI2. I am aware of the fact that those pins are shared with the UCPD dead battery detection feature and that:Dead battery detection must be disabled Clock rate of SPI is limited to ~3MBdI am developing my drivers bare-metal (no LL or HAL), but since I couldn’t figure out how to make this work, I decided to try with the HAL code generated by STM32CubeMX.I created a new project on that software with software package v1.7.0 which appears to be the latest at this time.I simply configured the clock tree to use HSI (64MHz) → /2 → PLL1 (M=4, N=24, Q=4) = 48MHz. I then use SPI2 prescaler to get 1.5Mbd out of PLL1Q (I tried lower data rate too). The SPI module is configured in full duplex. Here is the main function code after HAL initia
Dear Community, I’m struggling to find a way to prevent SMDCube IDE code generation to overwrite a changed #define. I’ve tried the usual wrapping with /* USER CODE BEGIN … with no result, and also try to dig online for some similar issue, but no luck.Any hint on how I can actually make this work? Details:STM32U595STM32CubeIDE Version: 1.19.0 specific define ( in STM32U5xx_HAL_CONF )#define USE_HAL_ADC_REGISTER_CALLBACKS 1U /* ADC register callback disabled */this one is overwritten each time code generation is run from the graphic GUI Goal is to have ADC complete callback registrable to multiple functions. When I force the above define to 1, all works as expected, but when I have to run code generation then the define is rolled back to the standard “0U”, which obviously is not desirable.Tried also to override the define from outside the file, but this creates a neverending chain of errors. Best Regards,Anton
Dear ST Team,We would like to request the design files and technical documentation for the STEVAL-ISD01KCB – 22 kW High-End Servo Drive SIL2 Reference Design for evaluation and reference purposes.Kindly share the available design package, including schematics, PCB layout files, BOM, Gerber files, firmware/software package, hardware architecture documentation, technical specification, safety assessment documents, STO (Safe Torque Off) and SBC (Safe Brake Control) implementation details, TÜV safety documentation, and any other related technical documents.If access to these materials requires an NDA, please let us know the process for obtaining access.We appreciate your support and look forward to your response.Best Regards,Maryam
First i'll say what i have. I have folders name 34,35,37,38,39,42. Inside it has images adn every folder images start with 0. I have a folder name DWIN_SET. So inside that DWIN_SET it has 22_Config.bin,14ShowFile.bin, 13TouchFile.bin,32 icon library these are generated by me few mins back. Remaining files are old files which is already present. What i did is Open the DGUS software. and open .hmi which is present outside the DWIN_SET. after opening it shows a list of 6 images, among that first image is different, it is inbuilt someone kept that order, i didn;t change anything on this. I opened a folder named image, inside it has 32,34,35,37,38,39,42 folders and has some images on it . What i did open the 32 folder in ICL generator tool. Here i try to remove only one image which 0.png and replace it with another image present in different folder, but it failed. If i change one image remaining all iages also lost. So what i did is replace the image in the folder and then open it in icl to
I am working with an STM32F0 device and I want to implement a firmware update mechanism.My current plan is to split the internal flash into three regions:Bootloader: 0x08000000Application Slot 1 (App1): 0x08004000Application Slot 2 (App2): 0x08008000The bootloader always runs first.Only one application slot is active at a time.The update flow is planned as follows:If App1 is currently running and a new firmware update arrives, the new firmware is written to App2.If App2 is running, the new firmware is written to App1.After the update, the bootloader selects which slot to boot.My concern is about the linker script (.ld) configuration:When I build a new application firmware, I set the flash origin address in the linker script to: FLASH (rx) : ORIGIN = 0x08004000This works correctly when the firmware is programmed into App1.However, if the same binary is written to App2 at address 0x08008000, the vector table, reset handler, and absolute addresses inside the firmware will
Hello,I downloaded STM32CubeN6-main FW 1.4.0 from GitHub and am trying to build the Nx_WebServer FSBL example. I am getting this error message:11:26:53 **** Build of configuration Debug for project Nx_WebServer_FSBL ****make -j16 all make: *** No rule to make target 'C:/STM_FW/STM32CubeN6-main/Middlewares/ST/threadx/common/src/tx_block_pool_performance_info_get.c', needed by 'Middlewares/threadx/Performance/tx_block_pool_performance_info_get.o'. Stop."make -j16 all" terminated with exit code 2. Build might be incomplete.11:26:55 Build Failed. 1 errors, 0 warnings. (took 2s.214ms)I don’t see any source code at the C:\STM_FW\STM32CubeN6-main\Middlewares\ST\threadx location, is there another project I need to build first?
Hello!I attempted running a basic FreeRTOS example on a STM32F407VET6 board using CMSIS v2 following some tutorials, replacing systick for either TIM 6 or 7 as HAL Timebase as many tutorials suggest. The code only blinks and LED on the pre-generated task.I could never get the program to work and by pausing execution I noticed it went straight to the default handler infinite loop. After reading a few posts it seems that the CubeIDE still does not generate the appropriate timer IRQ Handler within the stm32xxxx_it.c file and has to be added manually, as suggested by @Curtis B. on the posts attached bellow. void TIM7_IRQHandler(void) { /* USER CODE BEGIN TIM7_IRQn 0 */ /* USER CODE END TIM7_IRQn 0 */ HAL_TIM_IRQHandler(&htim7); /* USER CODE BEGIN TIM7_IRQn 1 */ /* USER CODE END TIM7_IRQn 1 */ } Adding the IRQHandler fixes the issue but it is a bit frustrating that many tutorials follow the same steps and rarely mention this, since it usually works fine with other MCU
I’ve been trying to adapt the code from the STM32WB5MM-DK QSPI_ReadWrite_IT example to a Renesas part. However, I have not been able to get it into Quad mode. For this part I need to write 0x02 into register 0x31 as I understand the data sheet.From monitoring the status register I can see that the write enable bit gets set and cleared, but the QE (quad enable) bit doesn’t get set.Also, in reviewing the code for the DK, I don’t see code to set the quad enable bit as per the Infineon S25FL128S data sheet.In searching the support forums, I see references to a routine called QSPI_QuadEnable, but I have not been able to find corresponding code.I’m obviously missing something. Can someone point me in the right direction - either specific to this board or a more generic solution?Thanks
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.