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
I have designed a STM32H723 board with LAN8742A PHY IC and its connected to a Hanrun HR911105A Magjack. I am running the Ethernet stack on mongoose network library. The stack is working perfectly on a STM32H7 Nucleo Board, the link auto-negotiates to 100Mbps Full duplex speed. Unfortunately, on the custom board, the link auto negotiates to 100M full-Duplex but ARP resolution fails(the link works fine at 10M speed). The schematic and layout are highly inspired by the STM32H723 Nucleo and the LAN-8742A evaluation board. I am attaching the schematic(PHY side, cannot show the STM side due to NDA reasons) and debug messages from LAN8742A registers for the same. Some Notes on the Layout: The Board is a 8 layer PCB. Majority of the routing has been done on the top and bottom layers. Layer 2 is the reference layer for the 100ohm differential TX and RX lines. The TX and RX digital lines ( from PHY to STM) are roughly matched to 50 ohm impedance. I can't show more than this unfortunately, b
Dear experts, why, under the same configuration for heterogeneous core communication, in the generated code, the debug section of the routine's initialization functions of IPPC and OPENAMP can be accessed, but the ones generated by ourselves cannot?The following picture was generated by myself.The following picture was generated by myself.Why does the routine configuration add an extra "remote" and "setting" in the file attributes?But there is none in the project that was generated by myself!Seeking help online, dear experts!
Greetings,I am trying my hands on STM32WLE5CCU6 and want to encrypt variable length data using inbuild encrypt hardware or feature of the controller. I am generating a byte array of variable length. Is it possible to encrypt that array ? In an example i have seen an array of 32bits but not 8 bits. Please guide me.
I recently updated my stm32cubeide from 19 to 20.0.0 but the .ioc files of my existing projects open as text file not graphical as before. How to fix it to work as before? PS: I mistakenly chose VS-code target and it's not possible to delete the post and repost. I use STM32CubeIDE on Windows and my issue have nothing to do with vs-code (I don't use it whatsoever)
It would be helpfull to have couple of function in addition toHAL_GPIO_WritePin( GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState )for cases when pin state is known in advance (not result of calculation in runtime)void HAL_GPIO_SetPin (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) { assert_param(IS_GPIO_PIN(GPIO_Pin)); GPIOx->BSRR = (uint32_t) GPIO_Pin; } void HAL_GPIO_ClearPin (GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) { assert_param(IS_GPIO_PIN(GPIO_Pin)); GPIOx->BRR = (uint32_t) GPIO_Pin; }Props:1 One parameter less2 One assert less3 No condition check4 Less typing5 Less work in runtime6 Better search. One can serach SetPin or ClearPin instead of all HAL_GPIO_WritePin at first and then see pin state value in common list.7 Sense of command in one place instead of combination of command_name + parameter_value8 More uniform with HAL_GPIO_TogglePin. Set, Clear, Toggle have the same signatureEdited to apply source code formatting - please see How to insert
This is my first foray into STM32. I bought a couple of WIOE5 lora modules. This post will not let me post links to the the WIOE5 datasheet. I bought an STlink V3mini from Waveshare. There is not a datasheet available from waveshare. I downloaded STM32 Cube Programmer. I have read that before using the Arduino IDE to program the STM32, I need to install a bootloader via cube programmer. While trying to upload a bootloade via cube programmer, I have a steady 3.3 volt power supply going to my MCU/pcb. My understanding is that the STM32 mcu needs to be externally powered before using the STlinkV3. When powered, I can confirm with a DMM that I am getting about 3.27 volts to the STlink. The cube programmer says that my target voltage is 3.25 but it will not connect. The error message is “No STM32 target found! If your product embeds debug authentication, please perform a discovery using Debug Authentication”. The WIOE5 module is brand new, never been programmed before. I want to
HI,I'm using the VL53L4CX and in an enclosure and thus have a cover glass over the sensor.i've been doing some simple calibration, but have noticed that this requires a strict procedure and preferably a good setup to perform the calibration.I therefor want to make a box to perform the calibration in. This should remove any variables and make sure that calibration is handled the same every time.I know i should be able to copy the calibration data from one device to the other, but due to it being a lorawan device, and my current provisioning/flashing steps, it's easier for me to calibrate the sensor afterwards.I posted the same question here: https://community.st.com/t5/imaging-sensors/vl53l4cx-refspad-caliberation-no-target/m-p/869701/highlight/true#M6277 but that's a fairly old topic, so i'm starting a new one. My current idea for a wooden calibration box is:Wooden (probably MDF) box with an internal height from sensor to top of 60cm, probably 40cm wide.Matt black paint
Hi everyone,I am encountering an issue while trying to run the Zephyr Bluetooth peripheral sample on a Nucleo-WB55RG board.I am currently working with the Zephyr main branch (specifically commit v4.3.0-2267-g3be4c4c5a819).Hardware & Firmware Setup:Board: Nucleo-WB55RGFUS Version: V2.2.0.0Wireless Stack: V1.20.0.2 (stm32wb5x_BLE_HCILayer_fw)Zephyr Version: v4.3.0-2267-g3be4c4c5a819I have explicitly started the Wireless Stack on the M0+ core (using STM32CubeProgrammer), but upon booting the Zephyr application on the M4 core, I get a kernel oops regarding an HCI command timeout after like 10 seconds.Error Log:*** Booting Zephyr OS build v4.3.0-2267-g3be4c4c5a819 *** [00:00:00.017,000] <inf> fs_nvs: 2 Sectors of 4096 bytes [00:00:00.017,000] <inf> fs_nvs: alloc wra: 0, fe8 [00:00:00.017,000] <inf> fs_nvs: data wra: 0, 0 ASSERTION FAIL [err == 0] @ WEST_TOPDIR/zephyr/subsys/bluetooth/host/hci_core.c:506 Controller unresponsive, command opcode 0xfc0c timeout with
helloI want to use your api to speed up the developpment of a driver based on spi communication, this function seemed appropriate in your stlink-v3-bridge-v1-2-0:Brg_StatusT Brg::ReadSPI(uint8_t *pBuffer, uint16_t SizeInBytes, uint16_t *pSizeRead)unfortunatly I found this comment:* In #SPI_DIRECTION_2LINES_FULLDUPLEX dummy data are sent while receiving.and i check with a scope that it is the case (data written are '0'),this is a pity because read/write are frequently simultaneous in spi,is there a possibility to send data instead of dummy in the mean time we are reading ?regardsBenjamin
STM32f103In the design guide it recommends to have something switching between vcc and gnd with 10kOhm series resistor, and i need my design to be grounded by default so i may not solder the header even, is it okay if i left the design like fig 1 instead of fig 2, and would it cause issues if i needed to pull it high?
Hi all - I am building an isolated power converter using a three phase forward converter topology. Each phase has a half bridge driving a transformer primary w.r.t. Vin/2 (split Vin). The transformer has a mid-tap secondary, rectified effectively acting like a buck regulator at 2x the primary frequency. I am using the HRTIM hardware to drive this.So far it works great - I have my three phases A/B/C programmed like so (each has high-side 1, low-side 2):A resets on master update, A1 set on A update, reset on A cmp1, A2 set on A cmp2, reset on A cmp3.B resets on master cmp1, B1 set on master cmp1, reset on B cmp1, B2 set on B cmp2, reset on B cmp3.C resets on master cmp2, C1 set on master cmp2, reset on C cmp1, C2 set on C cmp2, reset on C cmp3.The master cmp1 and cmp2 are set at phase angles 60, 120. The maset compares and all three cmp2 are fixed, while the cmp1 and cmp3 are all set by the feedback code. Works perfectly.For continuou
Dear colleagues, Thanks to the recommendations of STTwo-32 , we have managed to establish communication between the BLE_CableReplacement on the b_wb1m_wpan1 module and our modified version of the ST BLE Sensor application on an Android smartphone. Since STM does not plan to open the source code of the ST BLE Toolbox, we used ST BLE Sensor as a base and modified the code as we understood it. However, during development, some issues have arisen: 1. We can only transmit data from the smartphone in response to receiving data from the WB module — meaning we have achieved half-duplex communication, not full-duplex as intended. 2. Main problem: We experience packet loss when attempting to send data to the smartphone at intervals below 100 ms. The issue becomes noticeable well before reaching 10 ms, making it impossible to achieve the 10 ms interval required by our application (which is within the BLE standard). We cannot determine whether the packet loss occurs on the WB side or the smartphon
Hello, I have a Nucleuo-F767ZIT6 board on which I verified a Ethernet code using FreeRTOS in Netconn API, there the code works fine without any issues. So, I moved on to designing a custom board for the same controller the first board worked without any issues but when I designed another iteration of the same board the ethernet stopped working in it, I've checked if other peripherals work fine and they work flawlessly, the ethernet part of the board is same as I had previously designed but still it does not work. The code that I run on both the boards is the same as there were no changes in the controller side. This the connections on the first board : Below is my design of the second board: Both the design are similar to the design of Nucleuo-F767ZIT6, but don't understand why one design works where as the other doesn't, I have done all the proper clock configurations and set the correct HSE crystal values too. Any suggestion in debugging the above mentioned issue will be gre
Hi I'm using STM32G0B0RET6, and im using ADC Channel 1,4,5,6,7,10,11,15, and 16 . and sequencer is set to not fully configurable because if set to fully configurable then i can't use Channel 15 and 16.So here for all ADC channels i'm getting same values, can anyone help me resolve this issueInitiated like this HAL_ADCEx_Calibration_Start(&hadc1);andthis my ADC reading part HAL_ADC_Start(&hadc1);HAL_ADC_PollForConversion(&hadc1, 200);chanel1 = HAL_ADC_GetValue(&hadc1); //MDB 4 Vout sense HAL_ADC_PollForConversion(&hadc1, 200);chanel4 = HAL_ADC_GetValue(&hadc1); //Vcharge sense HAL_ADC_PollForConversion(&hadc1, 200);chanel5 = HAL_ADC_GetValue(&hadc1); //MDB 3 Vout sense HAL_ADC_PollForConversion(&hadc1, 200);chanel6 = HAL_ADC_GetValue(&hadc1); //MDB 2 Vout sense HAL_ADC_PollForConversion(&hadc1, 200);chanel7 = HAL_ADC_GetValue(&hadc1); //MDB 1 Vout sense*/ HAL_ADC_PollForConversion(&hadc1, 200);chanel1
1. STM32 Cmake project2. Select executable option. 3. Chose the MPU4. Build ERROR==========
I am using the debugging mode in STM32CubeIDE, and the compilation result shows that there is insufficient RAM.27_Touch_Appli.elf section `.bss' will not fit in region `RAM'region `RAM' overflowed by 94904 bytes
Hello all. Tasked to replace an old 128Kx8 EPROM, but the folks paying the bills want me to decode the ICs manufacture date code for QA reasons. Does anyone know of any URLs? The ST first data book I found was created long before this IC existed. The key details are below: Below quartz window of die with 2 banks x 1 Row 1: ST logo B88HARow 2:9231E5SRow 3:M27C1001Row 4: -20F1My best guess is the 128Kx8 (confirmed by reading manufacture code on the programmer and prior EPROM knowledge and abuse) STMicro EPROM 200 ns with 0 to 70 C temperature range. Guessed at date of 1992 week 31. No idea about where it was made or what the E5S means or what the B88HA translates to in locations.Also I have another EPROM withBelow quartz window of die with 4 banks 2x2 matrixST logo B88GA9227MC27C1001 -20F1Just want to be sure I can explain the die differences if anyone asks about counterfeits.
hello, I have a can bus with 2 node (one STM32G0B1 with SN65HVD1050DR transcriver and one esp8266 with MCP2515 module) that comunicate over canbus at 1Mbps.I am trying to add a third node, it is a blue pill STM32F103C8T6. The chip onboard looks genuine (i have also tested the usb double buffer on it and it works) but who knows...Transcriver attached to STM32F103 is a SN65HVD1050DR, as for the G0B1.The problem is, whith STM32F103 i see only messages coming from STM32G0B1 (and not from the other node on bus), and it looks like it is not sending messages (other nodes on the bus don't receive also if they are accepting from any id). My ideas are: 1- fake chip, so canbus will never work properly, 2 - bad code.Here are relevant code parts for STM32F103, do you see errors (i am quite new to C programming)?With this code, the main loop run for some seconds (circa 10) than it enter in Error_Handler function, if i activate the AutoRetransmission it happen
Hello everyone,I already asked similar question but I got no sensible answer yet. I am trying to implement the Custom HID drivers in the STM32UG7VJT microcontroller, in standalone mode, so no RTOS. The only thing that I can find from STM32 is this example https://github.com/STMicroelectronics/stm32-usbx-examples/blob/main/Projects/STM32H743I-EVAL/Applications/USBX/Ux_Device_CustomHID that uses the RTOS. I am trying to remove the RTOS from it but until now I didn't even manage to get the descriptors right. The device is enumerated but not recognized. So does anyone have any idea on how to make this work? I already looked at all the tutorials available, they don't fit my case, all of them are based on the H7 family which seems to have different architecture for the USB. Thank you in advance
I've tried this evening to download STM32CubeIDE on 2 different accounts, 2 different computers, a phone, and have reset my computer and also deleted my cookies but still will not download. Nothing happens after I accept the terms and conditions. I have also tried to download as a guest the link from the email still just takes me to the download page but it won't download.
I am using an STM32H757 for a composite USB device with a ULPI HS PHY. I am streaming video data to the device via an OUT endpoint from the host PC (Windows 11). Streaming can be successful for more than 15 minutes but then the host suddenly stops sending packets. Each individual packet is 512 bytes. A typical sequence captured by a USB analyzer is: OUT txn OUT packet (3 B) DATA1 packet (515 B) ACK packet (1 B) OUT txn OUT packet (3 B) DATA1 packet (515 B) ACK packet (1 B)If the device is not ready to receive the packet, then the DATA1 packet is NAKed by the device and the host responds with a PING to see when the device is ready. In this case, the sequence looks like this: OUT txn (NAK) OUT packet (3B) DATA1 packet (515 B)  
Hi, On STM32G071CBU6, when PB15 is used as CC2 with DBCC2 shorted to CC2, does the ROM bootloader ever drive PB15 as SPI2_MOSI, or does the CC/dead-battery own the CC2 pin and that path always takes priority? This detail is critical for our design because the device is bus-powered and relies on the dead-battery path to manage initial power-up. If the bootloader were to override PB15 and drive it as SPI2_MOSI while the flash is blank, it could cause a power drop when the ROM bootloader starts. I checked the datasheet, reference manual, programming manual, and bootloader manual, and none of them explicitly state how the ROM bootloader handles SPI2_MOSI when that pad is also CC2 with DBCC shorted. Could you please clarify? Thanks
Hi,I am experiencing issues with UART single-wire (half-duplex) communication on an STM32H723. The UART handler reports error code 4 (frame error). I have tried a wide range of configuration settings without success.The same setup works correctly on an STM32F439, but not on the H723. Do you have any suggestions on what I could try or what might be causing this behavior.BR
Dear ST members,My application is using the EEPROM emulated library (X-CUBE-EEPROM) with an STM32WB microcontroller. I noticed that, when I update a variable, the page can be padded with random zeros. Attached are screenshots of the page before and after two variables were updated.I initially thought this could be unused variables, since we need to define the NB_OF_VARIABLES. Even reducing its value to match the number of variables I am using, the random zeros are still added to the page. The AN4894 says there is a wear levelling algorithm but this is the worst I have ever seen on an emulated EEPROM implementation. This makes it difficult to calculate the erase cycles I will need for my application. Can you clarify where these random zeros are coming from and if I can get rid of them? Regards
Hello,Im having an issue with flashing of OpenSTLinux on STM32MP157F-DK2 ------------------------------------------------------------------- STM32CubeProgrammer v2.21.0 ------------------------------------------------------------------- USB speed : High Speed (480MBit/s) Manuf. ID : STMicroelectronics Product ID : DFU in HS Mode @Device ID /0x500, @Revision ID /0x0000 SN : 002C001F3133511735343431 DFU protocol: 1.1 Board : -- Device ID : 0x500 Device name : STM32MP15xx Device type : MPU Revision ID : -- Device CPU : Cortex-A7 Start Embedded Flashing service Opening and parsing file: tf-a-stm32mp157f-dk2-optee-programmer-usb.stm32 Memory Programming ... File : tf-a-stm32mp157f-dk2-optee-programmer-usb.stm32 Size : 220.41 KB Partition ID : 0x01 Download in Progress: [==================================================] 100% File download complete Time elapsed during download operation: 00:00:07.952 RUNNING Program ... PartID: :0x01 Start operation done successfull
ST Community highlights – April to June 2026
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.