I'm wondering if anyone else has this problem...
I have an ADAU1445, and it's getting it's MCLK externally (12.288MHz). Power supplies are all OK. I'm writing to the I2C port. First I initialize it the way you're supposed to according to the data sheet, which usually works.
But, then I try in a loop writing the master clock register over and over (same value), and eventually the I2C bus hangs. Same with reading e.g. the run bit register. Or trying to load code. After several hundred or thousand transactions the bus hangs. Being I2C it's not clear who's doing what but it looks like the 9th clock of a transaction is actually being held low by the ADAU1445. I deduce this becaues I tried the exact same thing (looping read or write) with an ADAU1966 (DAC) and it can loop indefinitely. Both on the same board. Completely disconnected the ADAU1966 so the only thing on the I2C bus is the ADAU1445, and still has the problem. Since the same micro (Kinetis K20) is the master, and does this simple test with the DAC but the ADAU1445 fails, it looks like probably an issue with the ADAU1445.
I've tried this with I2C bus at anything from just under 100KHz down to 15KHz, and with large spaces between the accesses, makes no difference.
I'm not sure how to make a simpler test, or why the part might be doing that. Ideas?