I/Q data from AX5043 and AX5045 (Experimental Feature)


I’m wondering if it is possible to get I/Q data in AX5043 devices. The device is able to project the I/Q data on pinout by the on-chip DAC with LSB 2bits loss. Thus, we are looking for the way to achieve the raw I/Q data via SPI or any other digital output on chip. thanks.



1 Like

I am also very much waiting for a detailed answer from the developers to the question of Kenny.

as far as i understood, Raw mode output is after demodulator, so there is no way to get I/Q.
I or Q output though sigma-delta DAC has only 1 channel, I or Q.
Maybe there is a way to read ADC data (like when it is switched to GPADC) but without switching multiplexer and switching off RX?

I am also very much waiting for a detailed answer from the developers to the question of Kenny.

Any luck yet?

Any luck yet?
No yet )

Disclaimer: the following post is describing an experimental feature of the AX5043/AX5045. The processing of I/Q data is an advanced feature which functionality we cannot guarantee. Users willing to use this feature shall do that under their responsibility. We encourage you to not use I/Q data, and use the modulation schemes native to the AX5043/AX5045 and programmable via AXRadioLab.

Analog I/Q streams from AX5043/AX5045

Analog I/Q streams from AX5043/AX5045


Both AX5043 and AX5045 can output I and Q samples via the GPADC1 and GPADC2 pins as shown below:

Programming the Chip

To enable this feature you will need to program the register:

  • TMMUX (0xF02) = 0x05
  • BBDETECTOR (0xF46 on AX5043 and 0xF77 on AX5045) = 0x08
  • You can do that easily via AX-CodeBlocks via the “CPU Registers window” or directly in your code.


To measure the I/Q signals you can use a custom PCB, our ADD5043 or ADD5045.

On the ADD5045 (Schematic), there are easy-to-access test points TP4 (GPADC2→ Q-sample) and TP8 (GPADC1→ I-sample). To do so, solder a 0 Ohm jumper on R8 and R9.

Digital I/Q streams from AX5043/AX5045

Digital I/Q streams from AX5043/AX5045


In order to allow the AX5043/45 to be used as a front end for a Digital Signal Processor that implements the proprietary modulation, the AX5043/45 features a bit-synchronous serial interface for getting baseband samples into and out of the radio chip.

The I/Q samples can be retrieved via the DSPMODE out either via the SPI or via the DATA/DCLK pins. With DSPMODE you can get the I/Q in digital domain in various locations before and after bit timing recovery.

Programming the chip

  • To use DSP mode you will have to deconstruct the bit stream coming on DATA (for RX) or input via PWRAMP/ANTSEL (for TX), clocked at SYSCLK and aligned at DCLK, as shown in Figure 1

  • First program all the pins so to enable this mode via the pins:

    • PINFUNCDATA = 0x06, PINFUNCDCLK = 0x06, PINFUNCPWRAMP=0x06 (and ANTSEL=0x02 or viceversa), PINFUNCSYSCLK = 0x04 (if you want to use the internal CLK rather than external).
  • Then program the DSP related registers:

  • (If DSP SPI is set, then you can access the shift register DSPMODESHREG)

  • Then program DSPMODESKIP to select what kind of information you want to have displayed on your bitstream (what should be stuffed inside the max 72 bit packet).

    • note that depending on the selected signal you have to select the proper SYNCSOURCE, otherwise there may be some bit slips.
  • Note the different addresses on AX5045 and AX5043:

  • You can access these registers via AX-CodeBlocks as well:

1 Like

Dear Georgi, could you please explain how to understand the content of RX71-RX0 bits depending on DSPMODESKIP settings? I mean position and number of bits for each type of samples (I/Q, freq, phase, etc.)

Hi Vadim, thanks for using the forum. As written at the beginning of this post, this is an experimental feature that we cannot provide full support for. Nevertheless your comment was legit, and I modified the answer above to include a table for DSPMODESKIP.

Hi Georgi. Thank you for your support. It would be very helpful if you could share some example. I. e. :

  • If you set all SKIPxxx bits to 1 and SKIP_SAMP_IQ to 0, then Rx0 to Rx11 will contain Q channel ADC value
    And for other parameters which we can get on external DSP by DSPMODE functionality
    Or some sample source code…