2832|1

3836

帖子

19

TA的资源

纯净的硅(中级)

楼主
 

利用DSP实现ADC采集数据以及DAC输出 [复制链接]

1、 解决方案(必要的公式、文字等)


在课外实验中,我们选择利用ADC对输入的信号进行采集,然后利用串口控制DAC的输出,实现通过串口控制DAC输出采集到的波形的功能。


在本实验中,是通过判断串口发送的数据来实现对相应DAC的控制的。为了方便,我们选择了字符‘1’和字符‘0’分别表示DAC的开闭两种状态。准确来说,这里的DAC关闭的状态是强制DAC输出为0。这是根据我们的硬件条件所做出的的一种简便的处理。


在本实验中,我们使用的ADC是DSP内置的12位ADC,而使用的DAC则是板载的8位DAC,在程序设计的过程中,由于ADC的数据寄存器为16位,而实际有效的数据位数为12位,所以程序上读取ADC的数值的时候,而我们又在配置模式的时候默认为高12位有效,所以在对ADC的相应寄存器进行读取的时候,我们采取了移位处理。而输出相应数据的时候,由于DAC的有效位数为8位,而我们ADC采集到的数据为12位,所以程序设计的时候就要舍弃一部分ADC的精度,即其实我们只利用到ADC的8位数据,我们舍弃ADC的后四位数据,所以在输出的时候我们做了一个右移处理,保证了输出数据满足DAC芯片的要求。


程序中利用判断串口发送的数据进入两种不同的状态,我们为了标记不同的状态,引入了状态标志位,当不同命令到达的时候,状态标志位就随之改变,而通过判断不同的标志位,程序进入不同的状态。









3、 实验结果与分析


在实际设计过程中,我们的串口传递的数据出现了问题,即上位机发送过来数据,DSP可以接收到,但是总是接受为另外一个数。我们检查了通信方式的各种参数,发现配置并无问题。通过硬件仿真过程,也确保了当上位机发送数据的时候DSP的确能够接受到数据。我们尽最大的努力分析了各种可能并逐一排除,包括下列几种:


1. 由于串口通信是在主函数循环中不停检查串口的接收缓冲器的就绪标志位,而在此过程中ADC也在采样,可能ADC“打断”了CPU对数据的读取。


排除原因:在串口接收数据的过程本身其实并不需要CPU对串口进行控制,只有当就绪标志位被置位之后程序才对数据进行读取,而这时候数据已经正常读进来了,所以不会有影响。


2. 连续数据导致后面的数据和前面的数据混在一起导致错误。


排除原因:程序逻辑上,我们的循环检查一直在进行,而中断时间较短,只要标志位置位程序就会及时将数据读走;实验验证,我们只发单个数据也出现错误的问题。


3由于其他问题导致时钟并不准确。虽然标定的系统时钟为150M,但是仍有存在误差导致串口时钟不准的可能。


排除原因:ADC采样率可以通过硬件仿真计算出来,而该采样率符合系统时钟为150M的理论计算,所以系统时钟没有问题。


此外,我们还观察到一个现象,就是在串口接收上位机的数据时,串口的接受缓冲区的就绪标志位会置位,但是无论发送什么数据,接收寄存器中的数据总是相同的。我们只好怀疑是否是由于其他原因导致上位机发送的数据就不对。


4、 问题与分析与解决


为了解决上述问题,我们利用了接受缓冲区的标志位会置位这一性质,判定每一次串口发送数据都是一个命令,而命令无非开启关闭两种,而开启关闭两种命令总是交替出现的,所以我们可以不判断所发出的信号的具体值,而是根据发送命令这一行为本身来切换开闭的两种状态。

最新回复

好多年不用CCS这个软件了。我当年用的还是CCS3.3软件。  详情 回复 发表于 2023-10-10 14:30
点赞 关注(1)
 

回复
举报

1463

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 
好多年不用CCS这个软件了。我当年用的还是CCS3.3软件。
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表