According to ADI’s AD2420(W)/6(W)/7(W)/8(W)/9(W) Automotive Audio Bus A2B Transceiver Technical Reference manual (ver 1.1) after power is applied and the chip comes out of power on reset (page 3-5):
The A2B host then sets the A2B_CONTROL.MSTR bit in the transceiver before driving the SYNC pin (the input clock to a master-enabled transceiver’s PLL) at the audio sampling rate of the system (selectable between 48 kHz or 44.1 kHz).
…
NOTE: Once the PLL is locked, writing the A2B_CONTROL.MSTR bit has no effect.
Seems pretty clear, write the control reg, and then apply the SYNC signal. Except in real life that’s difficult and the obvious question was how that works when using SigmaStudio. ADI’s WDZ A2B master board doesn’t have any control for SYNC. It uses the ADAU1452 for I2S clock generation, and that part is programmed during discovery before the AD2428.
Hooking up a scope to SYNC and the I2C lines and seeing what happens when SigmaStudio is run (trigger starts at the first occurrence of a read or write to 0x68, the capture was then zoomed in on 2 other sections):
What is happening is SigmaStudio sets up the ADAU1452 first, which starts SYNC running. It then actually reads the AD2428 ID registers before writing to the control register at 0x12 (2nd capture).
Doing some more experimentation with the AB0110 and AB0003 module combination acting as a root A2B (Master) node it would appear the actual rules are as follows for an AD2428 operating as an A2B master node:
- Don’t apply SYNC during power up of the chip
- If SYNC has been applied the chip can be returned to the post power-up pre-mode assignment state by stopping SYNC for a bit (10 msec?)
- Not exactly sure when stopping the SYNC might be needed, but if loading a new network configuration this would seem to be the safe way to reset the chip and initialize everything to a known state.
- Putting the AD2428 in Master mode after SYNC has started seems to work reliably – and it’s really the only way with SigmaStudio it can be done.
- It’s what ADI does.
We’ll update this post if we discover anything else.