This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AFE4404: Intermittent noise in AFE4404 data

Part Number: AFE4404
Other Parts Discussed in Thread: STRIKE

Hi all,

I am using the AFE4404 for SpO2 calculations, sampling red and IR LEDs connected to LED1 and LED2 inputs respectively as well as ambient light. I am using an nRF52832 SoC to control the AFE4404.

To save power, LED3 is disabled. Following Praveen's answer here: e2e.ti.com/.../546473 post, I have set the LED3 current to 0 mA as well as giving the conversion phase for LED3 a single clock cycle. I'm developing on custom devboards.

We observe a lot of high-frequency noise in the red and IR data. The noise is present for a while before it vanishes, after which the signal is fairly clean. The time it takes for the noise to disappear varies between devboards -- for some the noise is always present. See below for the register values. All other registers contain their reset values.

	reg. name         reg. adr    value     description
	LED2LEDSTC        0x9         0         LED2 on
	LED2LEDENDC       0xa         399       LED2 off
	LED2STC           0x1         100       begin sample LED2
	LED2ENDC          0x2         399       end sample LED2
	ADCRSTSTCT0       0x15        401       begin ADC reset cycle 0
	ADCRSTENDCT0      0x16        407       end ADC reset cycle 0
	LED2CONVST        0xd         409       begin convert LED2
	LED2CONVEND       0xe         868       end convert LED2

	LED3LEDSTC        0x36        401       LED3 on
	LED3LEDENDC       0x37        401       LED3 off
	LED3STC           0x5         401       begin sample LED3
	LED3ENDC          0x6         401       end sample LED3
	ADCRSTSTCT1       0x17        870       begin ADC reset cycle 1
	ADCRSTENDCT1      0x18        876       end ADC reset cycle 1
	LED3CONVST        0xf         878       begin convert LED3
	LED3CONVEND       0x10        879       end convert LED3

	LED1LEDSTC        0x3         401       LED1 on
	LED1LEDENDC       0x4         800       LED1 off
	LED1STC           0x7         501       begin sample LED1
	LED1ENDC          0x8         800       end sample LED1
	ADCRSTSTCT2       0x19        881       begin ADC reset cycle 2
	ADCRSTENDCT2      0x1a        887       end ADC reset cycle 2
	LED1CONVST        0x11        889       begin convert LED1
	LED1CONVEND       0x12        1348      end convert LED1

	ALED1STC          0xb         902       begin sample ALED1
	ALED1ENDC         0xc         1201      end sample ALED1
	ADCRSTSTCT3       0x1b        1350      begin ADC reset cycle 3
	ADCRSTENDCT3      0x1c        1356      end ADC reset cycle 3
	ALED1CONVST       0x13        1358      begin convert ALED1
	ALED1CONVEND      0x14        1817      end convert ALED1
	
	CLKDIV_PRF        0x39        0         clk division setting
	PRPCT             0x1d        39999     compare value for prf
	PDNCYCLESTC       0x32        2617      begin power down cycle
	PDNCYCLEENDC      0x33        39199     end power down cycle
	TIA_FEEDBACK      0x21        3         TIA gain and bandwidth
	ILED              0x22        325       LED current control
	CONTROL1          0x0         256       NUMAV, TIMEREN
	CONTROL2          0x23        512       OSC_ENABLE, DYNAMICn

Below is an image showing the noise and how it vanishes about halfway. In this particular case, the data was noisy for a good 2-3 minutes before clearing up.

If I take the sample register settings from Table 11 in the datasheet and only change LED3 current to 0 mA, there is considerably less noise and it clears itself up much faster for all devices. This fact leads me to believe that this might be an issue regarding the register settings shown above, though I realize that it might very well be a hardware issue as well. Nonetheless, I would like to get a second opinion on the register settings I have chosen.

Best,
Fredrik

  • Hi Fredrik,

    You can view the data in the frequency domain to find the frequency of the noise. This will help you to locate the source of noise and also help you to suppress it.
    However I have a feeling it might be noise pick up from AC mains, so I suggest you to do experiments with battery powered sources .
    You can also reject it by passing through the notch filter of 50/60Hz.

    Regards,
    Prabin
  • Hi Prabin,

    Thank you for your quick reply. The devices are battery powered and the noise appears to be gaussian in nature -- 50 Hz notch filters do not bite. I pointed the photodiode towards the sky and sampled for a while until the noise cleared, see below image (top plot is the noise, bottom plot is the raw data). The sampling frequency is 100 Hz.

    Furthermore, does it not strike you as odd that the noise resolves itself after a little while, if the noise originates from mains? If that was the case, I would expect the data to be noisy constantly.

    Best,

    Fredrik

  • Hi,

       The answers to the below questions would be useful in understanding what is the source of the noise:

    1. Is the data you have plotted just the LED phase data or is it (LED-AMB) data? Do you see this noise only in the LED phase or is it present equally in both the LED and AMB phases?

    2. If you set the PD_DISCONNECT bit to '1' (essentially disconnect the sensor from the AFE), does the noise go away or is it still there? This will give us an idea whether the noise is getting generated internally by the AFE or whether it is getting picked up from the sensor. With the PD_DISCONNECT set to '1', the AFE output would be ~0V. You could also try this experiment with the PD_DISCONNECT set to '1' and program the Offset DAC so as to generate a DC output of the same level you currently have in your waveforms.

    Regards,

    Anand.

  • Hi Anand, thanks for getting back to me on a Sunday.

    We think the noise may be coming from the boost converter on the devboards. We will look more into the problem over the next few days.