En grej som jag hade missat var dock att data läses in efter en delay på 1.5 SCLK cykler efter förändring på LRCLK och inte efter 0.5 (LRCLK och SDATA uppdateras på fallande SCLK flank).
Att det skall vara 1.5 cyklers delay syns tydligt i figur 4 på sidan 9, men jag hade blivit förvirrad av figur 8 på sidan 11.
Det är även lite förvirrande när de pratar om "I2S Left-Justified Data Format", vilket i mina öron låter just som att delayen inte skall vara där. Fast senare i står det "The MSB is valid on the second SCLK rising edge after LRCLK transitions low to high or high to low", så hade jag bara läst ordentligt så borde det inte blivit några missförstånd.
Detta gjorde att när jag försökte skicka fyrkantsvågen så lästes värdena "0000000000" och "1111111110" istället för "0000000000" och "0111111111" vilket gör en enorm skillnad eftersom datat är i 2 komplement form.
Det lite märkliga i sammanhanget är dock att jag vet att jag i något skede testade att skicka "0001111111" utan resultat, men jag har fipplat runt så mycket i koden att det mycket väl kan vara så att jag lagat något annat som inte riktigt stämde.
Hursomhelst så funkar det nu iaf:
ett C5

brekoutkortet in action
