bxisnx 2024-04-22 11:25 采纳率: 42.9%
浏览 28
已结题

DSP28335AD采集实验

在进行AD采集实验的时候,得到的结果与信号发生器生成的正弦波不一致。DSP芯片信号是TMS320F28335
信号发生器生成的正弦波:幅度1.5V,频率15khz,如下图:

img

在CCS平台运行程序后得到的结果如下:

img


程序代码商家提供的,部分如下:

img

img

img


绘制图新的设置如下:

img

个人觉得导致采集到的波形不对原因:程序代码中设置的采样频率与正弦波频率不匹配、绘制图像设置不正确,欢迎大家交流指正

  • 写回答

18条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-22 11:29
    关注

    引自免费微信小程序:皆我百晓生

    针对您描述的DSP28335AD采集实验中遇到的问题,即得到的AD转换结果与预期的15kHz、1.5V幅值的正弦波信号不符,以及对可能原因的分析,以下是对问题的详细排查与解决方案建议:

    1. 检查采样频率与正弦波频率匹配情况: 您已经怀疑可能存在采样频率与信号频率不匹配的问题。根据您提供的代码片段,采样时钟相关设置如下:

      #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。当前采样频率远高于信号频率,理论上不会因采样不足导致信号失真。

      结论:采样频率与正弦波频率匹配,不是导致波形不符的原因。

    2. 检查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中断,具体中断源需根据实际配置确定。

    3. 检查绘图设置: 根据您提供的图形属性,绘制波形时应注意以下几点:

      a) 数据类型: 确认图形软件正确识别了数据类型为16位无符号整数,并按此解析数据。

      b) 采样率: 在图形属性中,设置正确的采样率(约781.25kHz)。这将影响图形的时间轴标度。

      c) 显示范围: 如果自动缩放功能未能正确展示波形,可以尝试手动调整Y轴范围,使其包含期望的±1.5V幅值。

      d) 零点偏移: 若波形有明显偏移,检查是否已正确应用了ADC的零点偏移校准值(如果有的话)。

    4. 硬件检查: 验证信号发生器输出信号的质量(例如,噪声、谐波失真等),以及连接线缆和接头是否存在接触不良、阻抗不匹配等问题。

    总结:

    • 采样频率与正弦波频率匹配,理论上不会导致失真。
    • 重点检查ADC配置、采样过程中的代码逻辑错误,并修正。
    • 确认绘图设置正确反映采样数据特性。
    • 不排除硬件因素影响,如信号源质量、连接问题等。

    按照上述建议排查并修正问题后,重新进行AD采集实验,应该能得到与信号发生器生成的正弦波相符的结果。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月29日
  • 创建了问题 4月22日

悬赏问题

  • ¥15 这是有什么问题吗,我检查许可证了但是显示有呢
  • ¥15 机器学习预测遇到的目标函数问题
  • ¥15 python的EOFError该怎么解决?
  • ¥15 Fluent,液体进入旋转区域体积分数不连续
  • ¥15 java linux下将docx文件转pdf
  • ¥15 maven无法下载依赖包
  • ¥15 关于pycharm, Callable[[str],bool]作为方法参数使用时, lambda 类型不提示问题
  • ¥15 layui数据重载无效
  • ¥15 寻找了解qq家园纵横四海的程序猿。
  • ¥15 optisystem