TI工程师你们好:
我在使用TMS320F28377sPTPT芯片的过程中,发现了一个关于AD采样的问题,具体表现为:
在28377s和EtherCat芯片(ET1100)进行同步通信时,使用28377s内置AD转换模块对旋变编码器产生的正弦波型信号进行采样时,会出现较为规律的、来源不明的异常波动。而非同步情况下没有异常波动。因为我们在程序中是只采集正弦波信号的峰值,所以从理论上讲,采集到的信号应该是一条波动在5-8之间的水平的直线(当编码器角度固定时),而实际得到的曲线如下图:
图一
图中所示的,是用上位机软件中的示波器对DSP的数据地址进行采样的结果,采样频率为200Hz。程序中,使用ADCA和ADCD对旋变编码器的sin和cos进行采样,顺序是SOC0和SOC1(两组各采两遍),图中蓝线,对应的是地址为B01的值,黄线对应的是地址为B61的值,也就是各采集两次后第二次的结果:
图二
将蓝线进行局部放大,可以看到相邻两个异常波动间的时间间隔大致为340ms左右(因上位机示波器采样频率限制,可能存在误差,但可以判断时间间隔规律)。异常波动的幅度大小根据采样输入电压的大小略有差异,在几十到一百左右不等,幅度波动的规律无法确定(图一中黄线的异常波动有类似周期性从多到少或者从少到多的趋势,但这种情况也随电压变化有所改变,不能明确是否有参考价值)。
之后我做了一些测试:
1.用干电池的稳定电压信号代替变化的编码器信号来采集测试,得到的结果如下:
图三
从波动本身来看,认为该采集到的波形是符合要求的,波动在4以内,但通过观察发现,红色方框内的波动,有一定的规律,将部分放大后得到下图:
图四
可以较为明显地看出有规律,时间间隔与采集正弦波信号时出现的异常波动基本一致,但因为仅仅波动了1个单位,远不及采集正弦波信号时的波动大,所以无法单凭时间间隔规律判断其为异常波动,也很难判断两者间的联系。
2.外部不接任何信号,进行空采,结果与干电池的测试结果基本一致,存在疑似异常波动的小波动。
3.调换部分采样顺序:
仅采集干电池和空采:
触发源1 |
|||||
原序 |
Soc0编码器 |
有异常 |
反序 |
Soc0其他 |
无异常 |
Soc1编码器 |
有异常 |
Soc1其他 |
无异常 |
||
Soc2其他 |
无异常 |
Soc2编码器 |
无异常 |
||
Soc3其他 |
无异常 |
Soc3编码器 |
无异常 |
||
触发源2 |
|||||
|
Soc4电流 |
有异常 |
|
|
|
|
Soc5电流 |
无异常 |
|
|
|
|
Soc6电流 |
无异常 |
|
|
|
采集编码器:
触发源1 |
|||||
原序 |
Soc0编码器 |
有异常 |
反序 |
Soc0其他 |
无异常 |
Soc1编码器 |
有异常 |
Soc1其他 |
无异常 |
||
Soc2其他 |
无异常 |
Soc2编码器 |
有异常 |
||
Soc3其他 |
无异常 |
Soc3编码器 |
有异常 |
||
触发源2(将编码器信号接到电流端口上) |
|||||
|
Soc4电流 |
有异常 |
|
|
|
|
Soc5电流 |
有异常 |
|
|
|
|
Soc6电流 |
有异常 |
|
|
|
通过这个测试,我发现,异常出现貌似与采样的顺序还有一定的关系,虽然对编码器的采样结果没什么影响,但对干电池和空采这两种情况有明显改善,形似梳子般的规律波动基本消失,这种情况在其他AD端口也有出现,可能与采样保持电容充放电有关,但我的AD配置是12位模式,系统时钟为150MHz,采样保持时间(ACQPS)设置为49,远超推荐值,我认为电容充电是充足的。
4.使用信号发生器生成理想正弦波进行采样测试:
输入1k、2k、3k、5k、8k频率,0-2.5v幅值的正弦波,结果均存在周期为340-350ms的异常波动,如下图:
说明与输入的波形质量没有直接关系。
5.略过端口的外部转换电路,直接将信号接到DSP管脚上:
采样结果没有改善,说明和外部电路没有直接关系。
6. 软件配置是28377s向ET1100同步,我怀疑是因为时间片周期计数器存在累计误差,因此将调整值拿出来看,发现时间片周期计数差值稳定在+-1左右,没有周期性波动,因此基本可以排除是同步造成的累计误差。
就此,我无法找出异常波动的产生原因,希望可以得到TI工程师的帮助。
谢谢。
Annie Liu:
为更加有效地解决您的问题,我们建议您将问题发布在E2E英文技术论坛上https://e2e.ti.com/support/microcontrollers/c2000/f/171,将由资深的工程师为您提供帮助。我们的E2E英文社区有TI专家进行回复,并得到全球各地工程师的支持,分享他们的知识和经验。