2025-08-04 1:25 AM
Hello Board,
I hope you are all having a great summer. I am currently trying to configure the 144 devolopment board with the STM32H723zg chip, to run the built in SAI peripheral. Specifically I want to transmit a frame of 256 bits, with 16 slots and slot data size being 16 bit. I have set the first 9 channels to be active, and the remaining to be inactive, see screen shots or attached file.
After, configuration I went to main.c and created a frame of 16 slots, and filled the first 9 slots with hex 0x3FFF (0011 1111 1111 1111) and remaining inactive slots with 0. I then called the HAL_SAI_Transmit, and implemented a short delay after, in order to single out the frames being send through the serial data line.
When proping using my osciliscope, I found that binary clock and frame clock works as expected operating at 8.192 MHz and 32kHz respectively. However, I also found that the SDATA seem to send more then one data frame, and that all the data is corrupted, or not looking like I expected. Below I took a image of the osciliscope readings, the green is the SDATA and the orange pulse is the frame clock.
So in short, the SDATA sends unexpected data, and I do not have any idea why. I have tried a lot of different things, and read the reference manual, but I can´t find any good explanation. Hope you can take time out to help me solve this.
Thanks.