TI中文支持网
TI专业的中文技术问题搜集分享网站

关于dsp28377 ADC模块的同步操作问题

在看ti公司提供的数据手册中ACQPS的值代表着AD模块采样持续时间   AdcaRegs.ADCSOC0CTL.bit.ACQPS=20 代表着soc0将使用21个SYSCLK周期的采样时间

而在adc模块的同步操作的过程中

匀 具有不均匀SOC 编号的同步操作
如果只使用一个触发源,则一个ADC可以使用比其他ADC更多的SOC,同时仍然同步操作。
: 示例:SOC 编号不同的同步操作
AdcaRegs.ADCSOC0CTL.bit.CHSEL = 4; // SOC0将转换ADCINA4
AdcaRegs.ADCSOC0CTL.bit.ACQPS = 19; // SOC0将使用20个SYSCLK周期的采样持续时间
AdcaRegs.ADCSOC0CTL.bit.TRIGSEL = 10; // SOC0将在ePWM3 SOCB上开始转换
AdcbRegs.ADCSOC0CTL.bit.CHSEL = 0; // SOC0将转换ADCINB0
AdcbRegs.ADCSOC0CTL.bit.ACQPS = 19; // SOC0将使用20个SYSCLK周期的采样持续时间
AdcbRegs.ADCSOC0CTL.bit.TRIGSEL = 10; // SOC0将在ePWM3 SOCB上开始转换
AdcaRegs.ADCSOC1CTL.bit.CHSEL = 4; // SOC1将转换ADCINA4
AdcaRegs.ADCSOC1CTL.bit.ACQPS = 30; // SOC1将使用31个SYSCLK周期的采样持续时间
AdcaRegs.ADCSOC1CTL.bit.TRIGSEL = 10; // SOC1将在ePWM3 SOCB上开始转换
AdcbRegs.ADCSOC1CTL.bit.CHSEL = 1; // SOC1将转换ADCINB1
AdcbRegs.ADCSOC1CTL.bit.ACQPS = 30; // SOC1将使用31个SYSCLK周期的采样持续时间
AdcbRegs.ADCSOC1CTL.bit.TRIGSEL = 10; // SOC1将在ePWM3 SOCB上开始转换
AdcaRegs.ADCSOC2CTL.bit.CHSEL = 0; // SOC2将转换ADCINA0
AdcaRegs.ADCSOC2CTL.bit.ACQPS = 19; // SOC2将使用31个SYSCLK周期的采样持续时间
AdcaRegs.ADCSOC2CTL.bit.TRIGSEL = 10; // SOC2将在ePWM3 SOCB上开始转换                                                                                                                            为什么AdcaRegs.ADCSOC2CTL.bit.ACQPS = 19; // SOC2将使用31个SYSCLK周期的采样持续时间   不应该是 20个1个SYSCLK周期的采样持续时间

另外采样的同步操作是不是就是指采样所持续的时间一致  

Green Deng:你好,这段程序及其说明是自己编写的吗?
ACQPS是设置采样窗口大小的,就是采样保持时间:
Acquisition window size. This bit field controls the width of SOC pulse, which, in turn, determines for what time duration the sampling switch is closed. The width of SOC pulse is ADCTRL1[11:8] + 1 times the ADCLK period.
上面的说明是不是有其他人更改错了?
另外,一般意义上的同步采样是指采样模式为Simultaneous Sampling Mode,区别于另一种采样模式Sequential Sampling Mode。

在看ti公司提供的数据手册中ACQPS的值代表着AD模块采样持续时间   AdcaRegs.ADCSOC0CTL.bit.ACQPS=20 代表着soc0将使用21个SYSCLK周期的采样时间

而在adc模块的同步操作的过程中

匀 具有不均匀SOC 编号的同步操作
如果只使用一个触发源,则一个ADC可以使用比其他ADC更多的SOC,同时仍然同步操作。
: 示例:SOC 编号不同的同步操作
AdcaRegs.ADCSOC0CTL.bit.CHSEL = 4; // SOC0将转换ADCINA4
AdcaRegs.ADCSOC0CTL.bit.ACQPS = 19; // SOC0将使用20个SYSCLK周期的采样持续时间
AdcaRegs.ADCSOC0CTL.bit.TRIGSEL = 10; // SOC0将在ePWM3 SOCB上开始转换
AdcbRegs.ADCSOC0CTL.bit.CHSEL = 0; // SOC0将转换ADCINB0
AdcbRegs.ADCSOC0CTL.bit.ACQPS = 19; // SOC0将使用20个SYSCLK周期的采样持续时间
AdcbRegs.ADCSOC0CTL.bit.TRIGSEL = 10; // SOC0将在ePWM3 SOCB上开始转换
AdcaRegs.ADCSOC1CTL.bit.CHSEL = 4; // SOC1将转换ADCINA4
AdcaRegs.ADCSOC1CTL.bit.ACQPS = 30; // SOC1将使用31个SYSCLK周期的采样持续时间
AdcaRegs.ADCSOC1CTL.bit.TRIGSEL = 10; // SOC1将在ePWM3 SOCB上开始转换
AdcbRegs.ADCSOC1CTL.bit.CHSEL = 1; // SOC1将转换ADCINB1
AdcbRegs.ADCSOC1CTL.bit.ACQPS = 30; // SOC1将使用31个SYSCLK周期的采样持续时间
AdcbRegs.ADCSOC1CTL.bit.TRIGSEL = 10; // SOC1将在ePWM3 SOCB上开始转换
AdcaRegs.ADCSOC2CTL.bit.CHSEL = 0; // SOC2将转换ADCINA0
AdcaRegs.ADCSOC2CTL.bit.ACQPS = 19; // SOC2将使用31个SYSCLK周期的采样持续时间
AdcaRegs.ADCSOC2CTL.bit.TRIGSEL = 10; // SOC2将在ePWM3 SOCB上开始转换                                                                                                                            为什么AdcaRegs.ADCSOC2CTL.bit.ACQPS = 19; // SOC2将使用31个SYSCLK周期的采样持续时间   不应该是 20个1个SYSCLK周期的采样持续时间

另外采样的同步操作是不是就是指采样所持续的时间一致  

user6034192:

回复 Green Deng:

这段程序来自于ti公司提供的技术手册,自己用谷歌翻译 汉化为了方便阅读,我觉得这里可能出现错误

在看ti公司提供的数据手册中ACQPS的值代表着AD模块采样持续时间   AdcaRegs.ADCSOC0CTL.bit.ACQPS=20 代表着soc0将使用21个SYSCLK周期的采样时间

而在adc模块的同步操作的过程中

匀 具有不均匀SOC 编号的同步操作
如果只使用一个触发源,则一个ADC可以使用比其他ADC更多的SOC,同时仍然同步操作。
: 示例:SOC 编号不同的同步操作
AdcaRegs.ADCSOC0CTL.bit.CHSEL = 4; // SOC0将转换ADCINA4
AdcaRegs.ADCSOC0CTL.bit.ACQPS = 19; // SOC0将使用20个SYSCLK周期的采样持续时间
AdcaRegs.ADCSOC0CTL.bit.TRIGSEL = 10; // SOC0将在ePWM3 SOCB上开始转换
AdcbRegs.ADCSOC0CTL.bit.CHSEL = 0; // SOC0将转换ADCINB0
AdcbRegs.ADCSOC0CTL.bit.ACQPS = 19; // SOC0将使用20个SYSCLK周期的采样持续时间
AdcbRegs.ADCSOC0CTL.bit.TRIGSEL = 10; // SOC0将在ePWM3 SOCB上开始转换
AdcaRegs.ADCSOC1CTL.bit.CHSEL = 4; // SOC1将转换ADCINA4
AdcaRegs.ADCSOC1CTL.bit.ACQPS = 30; // SOC1将使用31个SYSCLK周期的采样持续时间
AdcaRegs.ADCSOC1CTL.bit.TRIGSEL = 10; // SOC1将在ePWM3 SOCB上开始转换
AdcbRegs.ADCSOC1CTL.bit.CHSEL = 1; // SOC1将转换ADCINB1
AdcbRegs.ADCSOC1CTL.bit.ACQPS = 30; // SOC1将使用31个SYSCLK周期的采样持续时间
AdcbRegs.ADCSOC1CTL.bit.TRIGSEL = 10; // SOC1将在ePWM3 SOCB上开始转换
AdcaRegs.ADCSOC2CTL.bit.CHSEL = 0; // SOC2将转换ADCINA0
AdcaRegs.ADCSOC2CTL.bit.ACQPS = 19; // SOC2将使用31个SYSCLK周期的采样持续时间
AdcaRegs.ADCSOC2CTL.bit.TRIGSEL = 10; // SOC2将在ePWM3 SOCB上开始转换                                                                                                                            为什么AdcaRegs.ADCSOC2CTL.bit.ACQPS = 19; // SOC2将使用31个SYSCLK周期的采样持续时间   不应该是 20个1个SYSCLK周期的采样持续时间

另外采样的同步操作是不是就是指采样所持续的时间一致  

Green Deng:

回复 user6034192:

网站翻译确实会出现问题。这段程序的出处是哪里?

在看ti公司提供的数据手册中ACQPS的值代表着AD模块采样持续时间   AdcaRegs.ADCSOC0CTL.bit.ACQPS=20 代表着soc0将使用21个SYSCLK周期的采样时间

而在adc模块的同步操作的过程中

匀 具有不均匀SOC 编号的同步操作
如果只使用一个触发源,则一个ADC可以使用比其他ADC更多的SOC,同时仍然同步操作。
: 示例:SOC 编号不同的同步操作
AdcaRegs.ADCSOC0CTL.bit.CHSEL = 4; // SOC0将转换ADCINA4
AdcaRegs.ADCSOC0CTL.bit.ACQPS = 19; // SOC0将使用20个SYSCLK周期的采样持续时间
AdcaRegs.ADCSOC0CTL.bit.TRIGSEL = 10; // SOC0将在ePWM3 SOCB上开始转换
AdcbRegs.ADCSOC0CTL.bit.CHSEL = 0; // SOC0将转换ADCINB0
AdcbRegs.ADCSOC0CTL.bit.ACQPS = 19; // SOC0将使用20个SYSCLK周期的采样持续时间
AdcbRegs.ADCSOC0CTL.bit.TRIGSEL = 10; // SOC0将在ePWM3 SOCB上开始转换
AdcaRegs.ADCSOC1CTL.bit.CHSEL = 4; // SOC1将转换ADCINA4
AdcaRegs.ADCSOC1CTL.bit.ACQPS = 30; // SOC1将使用31个SYSCLK周期的采样持续时间
AdcaRegs.ADCSOC1CTL.bit.TRIGSEL = 10; // SOC1将在ePWM3 SOCB上开始转换
AdcbRegs.ADCSOC1CTL.bit.CHSEL = 1; // SOC1将转换ADCINB1
AdcbRegs.ADCSOC1CTL.bit.ACQPS = 30; // SOC1将使用31个SYSCLK周期的采样持续时间
AdcbRegs.ADCSOC1CTL.bit.TRIGSEL = 10; // SOC1将在ePWM3 SOCB上开始转换
AdcaRegs.ADCSOC2CTL.bit.CHSEL = 0; // SOC2将转换ADCINA0
AdcaRegs.ADCSOC2CTL.bit.ACQPS = 19; // SOC2将使用31个SYSCLK周期的采样持续时间
AdcaRegs.ADCSOC2CTL.bit.TRIGSEL = 10; // SOC2将在ePWM3 SOCB上开始转换                                                                                                                            为什么AdcaRegs.ADCSOC2CTL.bit.ACQPS = 19; // SOC2将使用31个SYSCLK周期的采样持续时间   不应该是 20个1个SYSCLK周期的采样持续时间

另外采样的同步操作是不是就是指采样所持续的时间一致  

user6034192:

回复 Green Deng:

是官方提供的技术手册  1315页

在看ti公司提供的数据手册中ACQPS的值代表着AD模块采样持续时间   AdcaRegs.ADCSOC0CTL.bit.ACQPS=20 代表着soc0将使用21个SYSCLK周期的采样时间

而在adc模块的同步操作的过程中

匀 具有不均匀SOC 编号的同步操作
如果只使用一个触发源,则一个ADC可以使用比其他ADC更多的SOC,同时仍然同步操作。
: 示例:SOC 编号不同的同步操作
AdcaRegs.ADCSOC0CTL.bit.CHSEL = 4; // SOC0将转换ADCINA4
AdcaRegs.ADCSOC0CTL.bit.ACQPS = 19; // SOC0将使用20个SYSCLK周期的采样持续时间
AdcaRegs.ADCSOC0CTL.bit.TRIGSEL = 10; // SOC0将在ePWM3 SOCB上开始转换
AdcbRegs.ADCSOC0CTL.bit.CHSEL = 0; // SOC0将转换ADCINB0
AdcbRegs.ADCSOC0CTL.bit.ACQPS = 19; // SOC0将使用20个SYSCLK周期的采样持续时间
AdcbRegs.ADCSOC0CTL.bit.TRIGSEL = 10; // SOC0将在ePWM3 SOCB上开始转换
AdcaRegs.ADCSOC1CTL.bit.CHSEL = 4; // SOC1将转换ADCINA4
AdcaRegs.ADCSOC1CTL.bit.ACQPS = 30; // SOC1将使用31个SYSCLK周期的采样持续时间
AdcaRegs.ADCSOC1CTL.bit.TRIGSEL = 10; // SOC1将在ePWM3 SOCB上开始转换
AdcbRegs.ADCSOC1CTL.bit.CHSEL = 1; // SOC1将转换ADCINB1
AdcbRegs.ADCSOC1CTL.bit.ACQPS = 30; // SOC1将使用31个SYSCLK周期的采样持续时间
AdcbRegs.ADCSOC1CTL.bit.TRIGSEL = 10; // SOC1将在ePWM3 SOCB上开始转换
AdcaRegs.ADCSOC2CTL.bit.CHSEL = 0; // SOC2将转换ADCINA0
AdcaRegs.ADCSOC2CTL.bit.ACQPS = 19; // SOC2将使用31个SYSCLK周期的采样持续时间
AdcaRegs.ADCSOC2CTL.bit.TRIGSEL = 10; // SOC2将在ePWM3 SOCB上开始转换                                                                                                                            为什么AdcaRegs.ADCSOC2CTL.bit.ACQPS = 19; // SOC2将使用31个SYSCLK周期的采样持续时间   不应该是 20个1个SYSCLK周期的采样持续时间

另外采样的同步操作是不是就是指采样所持续的时间一致  

user4493143:有同样问题,AD采样需校准补偿

赞(1)
未经允许不得转载:TI中文支持网 » 关于dsp28377 ADC模块的同步操作问题
分享到: 更多 (0)