This part works fine with the Pi 3B, but is unreliable with the CM3. Using the CMIO board or our custom board, the problems seem to be I2C related. The WM8731 is configured over I2C, and on the CM3 setup many of the transmissions ended up being NACK and the WM8731 is not correctly configured. Usually this leads to audio silence, but can also cause horrible noises when the registers are not set properly.
For example, a correct initialization might look like this on the Pi 3:
Code: Select all
Decoded Protocol Result
Setup Write to [0x34] + ACK
0x0A + ACK
0x09 + ACK
Setup Write to [0x34] + ACK
0x0C + ACK
0x46 + ACK
Setup Write to [0x34] + ACK
0x10 + ACK
0x23 + ACK
Setup Write to [0x34] + ACK
0x0E + ACK
0x4E + ACK
Setup Write to [0x34] + ACK
0x0C + ACK
0x42 + ACK
Setup Write to [0x34] + ACK
0x10 + ACK
0x23 + ACK
Setup Write to [0x34] + ACK
0x0E + ACK
0x4E + ACK
Setup Write to [0x34] + ACK
0x0A + ACK
0x01 + ACK
Setup Write to [0x34] + ACK
0x0A + ACK
0x01 + ACK
Then on the CM3 setup:
Code: Select all
Decoded Protocol Result
Setup Write to [0x34] + ACK
0x0A + ACK
0x09 + ACK
Setup Write to [0x34] + ACK
0x0C + ACK
0x46 + ACK
Setup Write to [0x34] + ACK
0x10 + NAK
Setup Write to [0x34] + NAK
Setup Write to [0x34] + ACK
0x0C + ACK
0x42 + ACK
Setup Write to [0x34] + ACK
0x10 + NAK
Setup Write to [0x34] + ACK
0x0E + ACK
0x4A + NAK
Setup Write to [0x34] + ACK
0x0A + ACK
0x01 + ACK
Setup Write to [0x34] + ACK
0x08 + NAK