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.

[参考译文] TMS320F28379S:ADC 转换时序

Guru**** 657930 points
Other Parts Discussed in Thread: TMS320F28379S
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1307174/tms320f28379s-adc-conversion-timing

器件型号:TMS320F28379S

大家好!

我正在为我的应用使用控制器 TMS320F28379S 我正在使用全部20个模拟 输入、我需要知道、ADC 需要多少量才能给我提供结果(ADC 转换时间)?

 使用 Timer0触发 ADC、下面是我的 ADC 代码部分

// ADC 配置


EALLOW;

AdcaRegs.ADCCTL2.bit.prescale = ADC_CLK_PRECALAR;//将 ADCCLK 分频器设置为/4
AdcSetMode (ADC_ADCA、ADC_Resolution_12bit、ADC_SIGNALMODE_SINGLE);// ADCA、12位、 单端模式
AdcaRegs.ADCCTL1.bit.ADCPWDNZ = 1;//为 ADC 加电

AdcbRegs.ADCCTL2.bit.prescale = ADC_CLK_PRECALAR;//将 ADCCLK 分频器设置为/4
AdcSetMode (ADC_ADCB、ADC_Resolution_12位、ADC_SIGNALMODE_SINGLE);// ADCA、12位、 单端模式
AdcbRegs.ADCCTL1.bit.ADCPWDNZ = 1;//为 ADC 加电

AdccRegs.ADCCTL2.bit.prescale = ADC_CLK_PRECALAR;//将 ADCCLK 分频器设置为/4
AdcSetMode (ADC_ADCC、ADC_Resolution_12bit、ADC_SIGNALMODE_single);// ADCA、12位、 单端模式
AdccRegs.ADCCTL1.bit.ADCPWDNZ = 1;//为 ADC 加电

AdcdRegs.ADCCTL2.bit.prescale = ADC_CLK_PRECALAR;//将 ADCCLK 分频器设置为/4
AdcSetMode (ADC_ADCD、ADC_Resolution_12bit、ADC_SIGNALMODE_single);// ADCA、12位、 单端模式
AdcdRegs.ADCCTL1.bit.ADCPWDNZ = 1;//给 ADC 加电

// ADC 通道选择
AdcaRegs.ADCSOC0CTL.bit.CHSEL = 0;//SOC0将转换引脚 A0
AdcaRegs.ADCSOC1CTL.bit.CHSEL = 1;//SOC1将转换引脚 A1
AdcaRegs.ADCSOC2CTL.bit.CHSEL = 2;//SOC2将转换引脚 A2
AdcaRegs.ADCSOC3CTL.bit.CHSEL = 3;//SOC3将转换引脚 A3
AdcaRegs.ADCSOC4CTL.bit.CHSEL = 4;//SOC4将转换引脚 A4
AdcaRegs.ADCSOC5CTL.bit.CHSEL = 5;//SOC5将转换引脚 A5
AdcbRegs.ADCSOC0CTL.bit.CHSEL = 0;//SOC0将转换引脚 B0
AdcbRegs.ADCSOC1CTL.bit.CHSEL = 1;//SOC1将转换引脚 B1
AdcbRegs.ADCSOC2CTL.bit.CHSEL = 2;//SOC2将转换引脚 B2
AdcbRegs.ADCSOC3CTL.bit.CHSEL = 3;//SOC3将转换引脚 B3
ADccRegs.ADCSOC0CTL.bit.CHSEL = 2;//SOC0将转换引脚 C2
ADccRegs.ADCSOC1CTL.bit.CHSEL = 3;//SOC1将转换引脚 C3
ADccRegs.ADCSOC2CTL.bit.CHSEL = 4;//SOC2将转换引脚 C4
AdcdRegs.ADCSOC0CTL.bit.CHSEL = 0;//SOC0将转换引脚 D0
AdcdRegs.ADCSOC1CTL.bit.CHSEL = 1;//SOC1将转换引脚 D1
AdcdRegs.ADCSOC2CTL.bit.CHSEL = 2;//SOC2将转换引脚 D2
AdcdRegs.ADCSOC3CTL.bit.CHSEL = 3;//SOC3将转换引脚 D3
AdcdRegs.ADCSOC4CTL.bit.CHSEL = 4;//SOC4将转换引脚 D4
AdcaRegs.ADCSOC14CTL.bit.CHSEL = 14;//SOC5将转换引脚 A14
AdcaRegs.ADCSOC15CTL.bit.CHSEL = 15;//SOC5将转换引脚 A15

AdcaRegs.ADCSOC0CTL.bit.ACQPS = 14;//SOC0将转换引脚 A0 -采样窗口为100个 SYSCLK 周期= 75nS
AdcaRegs.ADCSOC1CTL.bit.ACQPS = 14;//SOC1将转换引脚 A1 -采样窗口为100个 SYSCLK 周期= 75nS
AdcaRegs.ADCSOC2CTL.bit.ACQPS = 14;//SOC2将转换引脚 A2 -采样窗口为100个 SYSCLK 周期= 75nS
AdcaRegs.ADCSOC3CTL.bit.ACQPS = 14;//SOC3将转换引脚 A3 -采样窗口为100个 SYSCLK 周期= 75nS
AdcaRegs.ADCSOC4CTL.bit.ACQPS = 14;//SOC4将转换引脚 A4 -采样窗口为100个 SYSCLK 周期= 75nS
AdcaRegs.ADCSOC5CTL.bit.ACQPS = 14;//SOC5将转换引脚 A5 -采样窗口为100个 SYSCLK 周期= 75nS
AdcbRegs.ADCSOC0CTL.bit.ACQPS = 14;//SOC0将转换引脚 B0 -采样窗口为100个 SYSCLK 周期= 75nS
AdcbRegs.ADCSOC1CTL.bit.ACQPS = 14;//SOC1将转换引脚 B1 -采样窗口为100个 SYSCLK 周期= 75nS
AdcbRegs.ADCSOC2CTL.bit.ACQPS = 14;//SOC2将转换引脚 B2 -采样窗口为100个 SYSCLK 周期= 75nS
AdcbRegs.ADCSOC3CTL.bit.ACQPS = 14;//SOC3将转换引脚 B3 -采样窗口为100个 SYSCLK 周期= 75nS
AdccRegs.ADCSOC0CTL.bit.ACQPS = 14;//SOC2将转换引脚 C2 -采样窗口为100个 SYSCLK 周期= 75nS
AdccRegs.ADCSOC1CTL.bit.ACQPS = 14;//SOC3将转换引脚 C3 -采样窗口为100个 SYSCLK 周期= 75nS
AdccRegs.ADCSOC2CTL.bit.ACQPS = 14;//SOC3将转换引脚 C4 -采样窗口为100个 SYSCLK 周期= 75nS
AdcdRegs.ADCSOC0CTL.bit.ACQPS = 14;//SOC0将转换引脚 D0 -采样窗口为100个 SYSCLK 周期= 75nS
AdcdRegs.ADCSOC1CTL.bit.ACQPS = 14;//SOC1将转换引脚 D1 -采样窗口为100个 SYSCLK 周期= 75nS
AdcdRegs.ADCSOC2CTL.bit.ACQPS = 14;//SOC2将转换引脚 D2 -采样窗口为100个 SYSCLK 周期= 75nS
AdcdRegs.ADCSOC3CTL.bit.ACQPS = 14;//SOC3将转换引脚 D3 -采样窗口为100个 SYSCLK 周期= 75nS
AdcdRegs.ADCSOC4CTL.bit.ACQPS = 14;//SOC4将转换引脚 D4 -采样窗口为100个 SYSCLK 周期= 75nS
AdcaRegs.ADCSOC14CTL.bit.ACQPS = 14;//SOC4将转换引脚 A4 -采样窗口为100个 SYSCLK 周期= 75nS
AdcaRegs.ADCSOC15CTL.bit.ACQPS = 14;//SOC5将转换引脚 A5 -采样窗口为100个 SYSCLK 周期= 75nS

//------------------------------------------------------- ADC 触发源选择------------------------------------------------------- //
AdcaRegs.ADCSOC0CTL.bit.TRIGSEL = 1;//由计时器触发0 / TINT0n
AdcaRegs.ADCSOC1CTL.bit.TRIGSEL = 1;//由计时器触发0 / TINT0n
AdcaRegs.ADCSOC2CTL.bit.TRIGSEL = 1;//由计时器触发0 / TINT0n
AdcaRegs.ADCSOC3CTL.bit.TRIGSEL = 1;//由计时器触发0 / TINT0n
AdcaRegs.ADCSOC4CTL.bit.TRIGSEL = 1;//由计时器触发0 / TINT0n
AdcaRegs.ADCSOC5CTL.bit.TRIGSEL = 1;//由计时器触发0 / TINT0n
AdcbRegs.ADCSOC0CTL.bit.TRIGSEL = 1;//通过计时器0触发/TINT0n
AdcbRegs.ADCSOC1CTL.bit.TRIGSEL = 1;//由计时器触发0 / TINT0n
AdcbRegs.ADCSOC2CTL.bit.TRIGSEL = 1;//由计时器触发0 / TINT0n
AdcbRegs.ADCSOC3CTL.bit.TRIGSEL = 1;//由计时器触发0 / TINT0n
AdccRegs.ADCSOC0CTL.bit.TRIGSEL = 1;//由计时器触发0 / TINT0n
ADccRegs.ADCSOC1CTL.bit.TRIGSEL = 1;//由计时器触发0 / TINT0n
AdccRegs.ADCSOC2CTL.bit.TRIGSEL = 1;//由计时器触发0 / TINT0n
AdcdRegs.ADCSOC0CTL.bit.TRIGSEL = 1;//通过计时器触发0 / TINT0n
AdcdRegs.ADCSOC1CTL.bit.TRIGSEL = 1;//通过计时器触发0 / TINT0n
AdcdRegs.ADCSOC2CTL.bit.TRIGSEL = 1;//通过计时器触发0 / TINT0n
AdcdRegs.ADCSOC3CTL.bit.TRIGSEL = 1;//通过计时器触发0 / TINT0n
AdcdRegs.ADCSOC4CTL.bit.TRIGSEL = 1;//通过计时器触发0 / TINT0n
AdcaRegs.ADCSOC14CTL.bit.TRIGSEL = 1;//由计时器触发0 / TINT0n
AdcaRegs.ADCSOC15CTL.bit.TRIGSEL = 1;//由计时器触发0 / TINT0n

AdcaRegs.ADCINTSEL1N2.bit.INT1SEL = 1;// SOC1结束将设置 INT1标志
AdcaRegs.ADCINTSEL1N2.bit.INT1E = 1;//启用 INT1标志
AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//确保 INT1标志被清除

AdcbRegs.ADCINTSEL1N2.bit.INT1SEL = 1;// SOC1结束将设置 INT1标志
AdcbRegs.ADCINTSEL1N2.bit.INT1E = 1;//启用 INT1标志
AdcbRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//确保 INT1标志被清除。

ADccRegs.ADCINTSEL1N2.bit.INT1SEL = 1;// SOC1结束将设置 INT1标志
AdccRegs.ADCINTSEL1N2.bit.INT1E = 1;//启用 INT1标志
ADccRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//确保 INT1标志被清除

AdcdRegs.ADCINTSEL1N2.bit.INT1SEL = 1;// SOC1结束将设置 INT1标志
AdcdRegs.ADCINTSEL1N2.bit.INT1E = 1;//启用 INT1标志
AdcdRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//确保 INT1标志被清零

EDIS;

50µSec 计时器中断:针对每个 μ s

ADccRegs.ADCSOCFRC1.all = 0x0007;//SOC0、1和 SOC2 // ADCSOC 在 TMR0_ISR 中完成

此致、

拉贾穆鲁甘

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好  Rajamurugan:

    您可以参阅 F2837xS 参考手册中的 ADC 时序部分、了解转换时间的计算方式。 对于12位单端模式、请参阅图10-13和10-14。 下表显示了时序值(ACQPS 的最小值为15 SYSCLK、但可能需要根据输入的电容和电阻进行调整):