AutoAnalogAudio Library & I2S Output Now Working on nRF52840
Playing around with high quality audio on the XIAO Sense 52840
Its been a while since my last post regarding I2S audio on the nRF52840, but I finally got it working!
It came down to too small of buffer sizes, plus incorrect pins used for the MAX98357A breakout board. Now that the main problems are figured out, I have it working. There are still some issues with buffering, as there are small clicks or pops here or there throughout playback if the buffer sizes are too small.
To get it working with the current code from GitHub users need to enable I2S by calling the begin(); function a little differently:
I've decided to leave the PWM output as the default behavior since it is simpler in nature, gives good results and works OK with smaller buffer sizes. This is important when transmitting or receiving audio over radio link, since you need pretty large buffers with I2S.
Users can set the I2S pins prior to calling the begin() function for other boards that use different pins.
aaAudio.I2S_PIN_LRCK = 28;
Default Arduino Pin-Out for MAX98357A on XIAO Sense 52840:
BCLK: D1 (P0.03)
LRCK: D3 (P0.29)
DIN: D5 (P0.05)
SD Pin needs to be set HIGH for left output
GAIN: VIN
Use buffer sizes from 3200 to 6400 samples with higher sample rates / bit-rates.
No comments:
Post a Comment