I have an STM3242I-SK board from IAR. It has a Wolfson WM8731 Codec on it. I'm trying to use I2S2 in Full duplex mode to get data in/out of the codec. I used STM32Cube MX to do the basic setup and I am using the HAL libraries for everything. The board has the Codec ADC output connected to I2S2ext_SD on PI2. The clocks look good, WS is toggling as it should, and I can see data on the ADC out of the codec, but the data in the I2S2 (SPI2) data register is always 0xFFFF, implying (to me) that the input is floating.
The problem I'm having is that the description of the Full Duplex mode and the interaction of I2S2ext has me thoroughly confused. The reference manual refers to I2S2ext somewhat obliquely but says nothing about how to set it up. Figure 262 in the data sheet shows a Mux on the serial data lines in the upper left. How is this controlled? How do I make I2S2ext_SD an input? Does the data input to I2S2ext magically get routed to the SPI2_DR? What makes I2S2ext a transmitter or a receiver?
Thanks for any light you can shed on this problem.