A2B AD2428 initialization procedure

Hello,

We, at Alfamtion, are designing an A2B analizer/generator featuring the AD2428 transceiver.

During the development i found some strange behaviour that i could not find explainded in the TRM.

I have to setup a master and a slave node and transmit audio from one to another, to do so I perform the follwing operation (all from the master node)

1) Power On the master

2) Send the TDM config (regs 0x41 and 0x42)

3) Perform a simple discovery procedure, and find the node

4) send a newstruct command (reg 0x12 val 0x81)

5) configure al of the other master registers

6) configure all of the slave registers

7) send a newstruct command (reg 0x12 val 0x81)

Now the situation is that the SYNC pin is toggling on the slave node but no audio is trasmitted, the DTX pins of the slave are not toggling

If, between steps 6 and 7 i do the following

6a) Read reg 0x11

6b) Write back the value to reg 0x11

Everything works.

Can somebody explain why is happening?

  • 0
    •  Analog Employees 
    on Feb 22, 2021 1:46 PM

    Hi Marco,

    The A2B slave transceiver will drive BCLK and SYNC only when any of the of TDM/PDM data pin is enabled. But the actual data traffic between nodes will flow through A2B bus, only when DATCTL( 0x11) register is written at the end to enable downstream and upstream data and followed by NEWSTRCT. Till then DTX pins are driven low with BCLK and SYNC toggling, means no data. I hope you might be facing this scenario, this is expected.

    Please note that values programmed to the transceiver slot registers (A2B_BCDNSLOTS, A2B_LDNSLOTS, A2B_LUPSLOTS, A2B_DNSLOTS, A2B_UPSLOTS, A2B_UPMASK0 through A2B_UPMASK3, and A2B_DNMASK0 through A2B_DNMASK3) do not take effect until the master transceiver A2B_DATCTL( 0x11) register is programmed to enable upstream and downstream slots and the new structure is subsequently applied ( CONTROL.NEWSTRCT = 1).

    Regards,
    Dinesh

  • I am receiving/sending audio from/to a slave, I write 0x0 to reg 0x11 then 0x81 to reg 0x12... this means disabling upstream and downstream, right?

    I keep seeing activity on the tdm bus.

    Marco

  • Let me clarify my request... after a discovery am I allowed to send a NEWSTRUCT amytime I want without repeating the discovery? Is that the same for the DATACTL?

    My understanding from the documatation is that those modifications are allowed but needs a newstruct to be applied, but form my experiments it looks like it's not the case.

    Thanks for your support,

    Marco

  • 0
    •  Analog Employees 
    on Mar 5, 2021 10:30 AM in reply to marcoventurini

    Hi Macro,

    As per my understanding your observation is expected.
    Once A2B system is up and running, when data passes Downstream (from master to slave) or Upstream (from slave to master) where transceiver's TDM/I2S is configured to enable the transmit data lines. In this case, if Upstream or Downstream slots enable bit in the DATCTL register is cleared,  followed by CONTROL.NEWSTRUCT command in the Master, the corresponding DTX lines (For Downstream, slave DTX lines/ For Upstream Master DTX lines) will output last two good samples repeatedly. I hope you are observing this scenario. Please confirm on this.

    Regards,
    Dinesh

  • 0
    •  Analog Employees 
    on Mar 9, 2021 5:54 AM in reply to marcoventurini

    Hi Macro,

    After initialization and discovery if user wants to change Up or Down stream slots, user can change the configuration in the Slot Configuration registers(A2B_DNSLOTS,UPSLOTS,LDNSLOTS,LUPSLOTS,BCDNSLOTS)  Changes to these new slot configurations only take effect after setting the AD24xx_CONTROL.NEWSTRCT bit of the master node.

    Once again note that if customer cleared the DATCTL.UPS and DATCTL.DNS bit followed by CONTROL.NEWSTRUCT=1 while system is up and running ,there will be no data on A2B bus if DTx data lines are enabled, DTx will output last two good samples repeatedly.

    Regards,
    Dinesh