I have the AD9361 on the FMCOMMS2 board attached to a ZedBoard and am using the no-OS drivers.
I want to setup the BIST so that I can look at a tone and familiarize myself with the hardware and the API. I can configure the BIST to execute exactly where I expect it to be, but only if I do the following.
Note that this is all done AFTER the init process and the 9361 no-OS drivers state they are done configuring the device.
// 00 01 00 1 1
ad9361_spi_write(ad9361_phy->spi, 0x3f4, 0x13); //set bist enable at fs/2 with tone freq clk/2
//010 0 000 0
ad9361_spi_write(ad9361_phy->spi, 0x3f5, 0x80);
//00 11 00 00
ad9361_spi_write(ad9361_phy->spi, 0x3f6, 0x00); //dont zero out any channels
Now if I put the device into alert mode after the last spi write, the tone disappears. And if I assert TXNRX and then 2us later assert ENABLE, as stated in the UG570 for ENSM operations, the tone disappears.
I belive that the BIST effectively bypassses the ENSM and transmits continually from the BIST signal generator and that the ENSM with disable the BIST controller. however I have no documentation on this nor do I have any evidence of this other than anecdotal evidence.
Is this correct or is there another reason that changing ENSM state or setting TXNRX or ENABLE would cause the BIST to stop?