在进行AD采集实验的时候,得到的结果与信号发生器生成的正弦波不一致。DSP芯片信号是TMS320F28335
信号发生器生成的正弦波:幅度1.5V,频率15khz,如下图:
在CCS平台运行程序后得到的结果如下:
程序代码商家提供的,部分如下:
绘制图新的设置如下:
个人觉得导致采集到的波形不对原因:程序代码中设置的采样频率与正弦波频率不匹配、绘制图像设置不正确,欢迎大家交流指正
在进行AD采集实验的时候,得到的结果与信号发生器生成的正弦波不一致。DSP芯片信号是TMS320F28335
信号发生器生成的正弦波:幅度1.5V,频率15khz,如下图:
在CCS平台运行程序后得到的结果如下:
个人觉得导致采集到的波形不对原因:程序代码中设置的采样频率与正弦波频率不匹配、绘制图像设置不正确,欢迎大家交流指正
引自免费微信小程序:皆我百晓生
针对您描述的DSP28335AD采集实验中遇到的问题,即得到的AD转换结果与预期的15kHz、1.5V幅值的正弦波信号不符,以及对可能原因的分析,以下是对问题的详细排查与解决方案建议:
检查采样频率与正弦波频率匹配情况: 您已经怀疑可能存在采样频率与信号频率不匹配的问题。根据您提供的代码片段,采样时钟相关设置如下:
#define ADC_MODCLK 0x3 // HSPCLK = SYSCLKOUT/2*ADC_MODCLK = 150/(2*3) = 25.0MHz
#define ADC_CKPS 0x1 // ADC module clock = HSPCLK/2*ADC_CKPS = 25.0MHz/(1*2) = 12.5MHz
#define ADC_SHCLK 0xf // S/H width in ADC module periods = 16 ADC clocks
采样周期(即采样间隔)为:
T_sample = (1 / ADC_module_clock) * S/H_width = (1 / 12.5MHz) * 16 = 1.28μs
因此,采样频率为:
f_sample = 1 / T_sample = 1 / 1.28μs ≈ 781.25kHz
由于您要采集的正弦波频率为15kHz,根据奈奎斯特定理,为了准确无失真地重建信号,采样频率应至少为信号频率的两倍,即30kHz。当前采样频率远高于信号频率,理论上不会因采样不足导致信号失真。
结论:采样频率与正弦波频率匹配,不是导致波形不符的原因。
检查ADC配置及采样过程: 查看您提供的代码片段,发现一些可能影响结果正确性的细节:
a) ADC初始化: 代码中缺少对ADC模块的完全初始化,包括参考电压选择、增益设置等。确保这些参数已根据实际硬件和设计要求正确配置。
b) ADC转换序列配置:
确保所选通道(AdcRegs.ADCCHSELSEQ1.bit.CONV00
)正确连接至输入信号源(信号发生器输出),且通道配置(增益、偏置、滤波等)与预期相符。
c) 连续采样与中断处理:
在代码中,开启了连续采样模式(AdcRegs.ADCTRL1.bit.CONT_RUN = 1
),但未见对应的中断服务函数或轮询处理。采样数据可能被覆盖或丢失。建议在中断服务函数中读取并存储采样结果,或在主循环中通过查询方式安全地获取采样数据。
d) 采样数据处理: 您提供的代码片段中,采样数据的读取和存储存在错误。修正后的代码如下:
for (i = 0; i < AVG; i++)
{
while (!AdcRegs.ADCINTFLG.bit.INT1); // Wait for interrupt flag INT1
AdcRegs.ADCINTFLGCLR.bit.INT1 = 1; // Clear interrupt flag INT1
SampleTable[i] = AdcRegs.ADCRESULT0; // Read ADC result and store in SampleTable
}
注意:此处假设您使用的是ADCINT1中断,具体中断源需根据实际配置确定。
检查绘图设置: 根据您提供的图形属性,绘制波形时应注意以下几点:
a) 数据类型: 确认图形软件正确识别了数据类型为16位无符号整数,并按此解析数据。
b) 采样率: 在图形属性中,设置正确的采样率(约781.25kHz)。这将影响图形的时间轴标度。
c) 显示范围: 如果自动缩放功能未能正确展示波形,可以尝试手动调整Y轴范围,使其包含期望的±1.5V幅值。
d) 零点偏移: 若波形有明显偏移,检查是否已正确应用了ADC的零点偏移校准值(如果有的话)。
硬件检查: 验证信号发生器输出信号的质量(例如,噪声、谐波失真等),以及连接线缆和接头是否存在接触不良、阻抗不匹配等问题。
总结:
按照上述建议排查并修正问题后,重新进行AD采集实验,应该能得到与信号发生器生成的正弦波相符的结果。