MOSC是25MHz,使用TI-RTOS默认配置的PLL(480MHz)
AD驱动时钟分频选择15倍——32MHz
SH选择8,即AD Conv频率是1.6MHz
用GPTimer的计数器测量时间——AD启动前、AD结束后计数器值的差,GPTimer用系统时钟驱动(120MHz)
测量出来的AD Conv时间是理论值的6~10倍。
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.
MOSC是25MHz,使用TI-RTOS默认配置的PLL(480MHz)
AD驱动时钟分频选择15倍——32MHz
SH选择8,即AD Conv频率是1.6MHz
用GPTimer的计数器测量时间——AD启动前、AD结束后计数器值的差,GPTimer用系统时钟驱动(120MHz)
测量出来的AD Conv时间是理论值的6~10倍。
AD驱动时钟,只有3个选项:
0x0 PLL VCO divided by CLKDIV.
0x1 Alternate clock source as defined by ALTCLKCFG register in System Control Module.
0x2 MOSC
哪有系统时钟上的分频啊
看了看寄存器,还真是这样。都是直接配置库函数的,没注意这个问题。注意,TM4C123x的AD最大速度为1M/s,如果用的是PLL的话,默认用的是PLL/25吧。你库函数是怎么配置的呢?上代码看看
void
ADCClockConfigSet(uint32_t ui32Base, uint32_t ui32Config,
uint32_t ui32ClockDiv)
{
//
// Check the argument.
//
ASSERT((ui32Base == ADC0_BASE) || (ui32Base == ADC1_BASE));
ASSERT((ui32ClockDiv - 1) <= (ADC_CC_CLKDIV_M >> ADC_CC_CLKDIV_S));
//
// A rate must be supplied.
//
ASSERT((ui32Config & ADC_CLOCK_RATE_FULL) != 0);
//
// Write the sample conversion rate.
//
HWREG(ui32Base + ADC_O_PC) = (ui32Config >> 4) & ADC_PC_SR_M;
//
// Write the clock select and divider.
//
HWREG(ui32Base + ADC_O_CC) = (ui32Config & ADC_CC_CS_M) |
(((ui32ClockDiv - 1) << ADC_CC_CLKDIV_S)) ;
}