No I2S output on a STM32G071 via TAS5722L
I have a stm32g071gbu6 , that is linked to an I2S amplifier TAS5722L
PA5 (I2S_CK) -> BLCK
PA15 (I2S_WS) -> LRCLK
PB5 (I2S_MCLK) -> MCLK
PB6 (I2S_SD) -> SDI
I use a divider bridge to pass my 3,3V stm32 output to a 1,8V which is the only voltage the TAS accept.
I use a 10K and 12K ohm resistors to make my 1,8V.
I had a problem to control all the I2S output but the BLCK one. To try the outputs, I disabled the I2S and changed all the pin to normal Output. I was still not able to have any control of the outputs.
So I unsoldered resistor R28 on my MCLK output, and R32 on WS to be sure it didn't had any influence.
I'm still not able to have 3,3V on my MCLK output, nor my SD and CS.As I saw a patern that the non working outputs were only on the same side of the MCU, I tried 3 of the 4 other pins from this side, I tried the UART one, it appear that the PB3 does not work either, but PB6 and PB7 seems to work.
All the other pin that I could try seems to work fine.
I tried a new project, and I tried this on 2 different boards :
My program actually only toogle the outputs :
while (1)
{
HAL_GPIO_TogglePin(Orange_LED_GPIO_Port, Orange_LED_Pin);
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); // I2S_CK_TEST (PA5)
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_15); // I2S_WS_TEST (PA15)
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_4); // I2S_MCLK_TEST (PB4)
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_5); // I2S_SD_TEST (PB5)
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_3); // UART1_RTS (PB3)
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_6); // UART1_TX (PB6)
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_7); // UART1_RX (PB7)
test_CK = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_5); // I2S_CK_TEST (PA5)
test_WS = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_15); // I2S_WS_TEST (PA15)
test_MCLK = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_4); // I2S_MCLK_TEST (PB4)
test_SD = HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_5); // I2S_SD_TEST (PB5)
HAL_Delay(300);
}I'm a little bit out of option to understand the problem, is it possible that I have a bad serie of STM32G071 ?
