The application note explaining how to use zip/unzip has the following comment in the example code:
Code: Select all
// setup clock
configure_clock_rate(bit_clock, 100, 8); // 12.5 MHz
// Note: This proves that a 12.288 MHz bbit_clock works. That's 4 I2S stereo channels at 192kHz
// 25MHz is too fast : configure_clock_rate(bit_clock, 100, 4); // 25 MHz
Why is this? If the bit clock is running at 24.576 MHz, then a 4bit port has to be serviced every 8 bit clocks, which I compute to be every 325 nanoseconds. The zip operations only take 4 cycles, so that is 40 nanoseconds. Is there some other underlying reason for the above statement in the application note?