How can I set/change ADC data rate in QN9080?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How can I set/change ADC data rate in QN9080?

Jump to solution
1,813 Views
smittal2
Contributor III

I'm using QN9080 to develop an application. My application requires the usage of ADC to output at 400Hz. Where can I set this data rate?

Is this same as ADC down sample rate in ADC_SDDefaultConfig(), or kADC_DownSample256?

Tags (3)
1 Solution
1,443 Views
Alexis_A
NXP TechSupport
NXP TechSupport

Hi Sandeep Mittal,

If you want to use the ADC with a sample frequency, you need to set up a timer with this frequency. In the SDK example the trigger is using the function: ADC_DoSoftwareTrigger. For you're aplication you will need to change it for a timer trigger.

You can use the adc interrupt driver example in the SDK and change the source of the trigger, in this case I'm using the CTIMER3_OUT2:

pastedImage_3.png

You'll need to set up this timer, so I suggest to you to check the ctimer simple match driver example. For the 400Hz frequency, you'll need to change the match value, the following configuration should do it:

pastedImage_4.png

Hope it helps,

Alexis Andalon

View solution in original post

6 Replies
1,444 Views
Alexis_A
NXP TechSupport
NXP TechSupport

Hi Sandeep Mittal,

If you want to use the ADC with a sample frequency, you need to set up a timer with this frequency. In the SDK example the trigger is using the function: ADC_DoSoftwareTrigger. For you're aplication you will need to change it for a timer trigger.

You can use the adc interrupt driver example in the SDK and change the source of the trigger, in this case I'm using the CTIMER3_OUT2:

pastedImage_3.png

You'll need to set up this timer, so I suggest to you to check the ctimer simple match driver example. For the 400Hz frequency, you'll need to change the match value, the following configuration should do it:

pastedImage_4.png

Hope it helps,

Alexis Andalon

1,443 Views
smittal2
Contributor III

Hi nxf46116,

Shouldn't the matchConfig.enableInterrupt be true since the ADC is triggered by ctimer?

Is BUS_CLK_FREQ 32KHz or 32MHz?

Thanks,

Sandeep

0 Kudos
Reply
1,443 Views
Alexis_A
NXP TechSupport
NXP TechSupport

Hi Sandeep Mittal,

   

In this case I didn't enable the interrupt for the CTimer, only the ADC one. The ADC trigger is configured in the structure and this is enough to link the ADC with the CTimer. In case you want to call the CTimer Callback you should change that register.

BUS_CLK_FREQ is the APB bus clock = 16MHz

Best Regards,

Alexis Andalon

1,443 Views
smittal2
Contributor III

nxf46116‌,

So the matchConfig.matchvalue in the data structure for ctimer will need to be BUS_CLK_FREQ/40000 to get a frequency of 400Hz, correct?

Thanks,

Sandeep

0 Kudos
Reply
1,443 Views
Alexis_A
NXP TechSupport
NXP TechSupport

Hi Sandeep Mittal,

Have in count that the matchValue is the value where the counter is gonna trigger the interruption. Doesn't really matter what is your Bus Clock, if you divide it by the desired frequency that should work.

Best Regards,

Alexis Andalon

1,442 Views
smittal2
Contributor III

Ok, got it. Thanks a lot for your help Alexis.

- Sandeep

0 Kudos
Reply