单片机/MCUwilliam hill官网
直播中

刘雪玉

8年用户 50经验值
擅长:MEMS/传感技术
私信 关注
[问答]

通过MATLAB生成的数据存入单片机如何通过DA转换接收?

我现在通过matlab生成了一组随机数,有小数,现在想将这一组随机数存入单片机中,再通过10位的D/A转换成电压信号。
问:那我需要怎么修改这组随机数数据格式,使它能够被D/A接收呢?

回帖(3)

人中狼

2019-2-15 09:50:28

最佳答案

DA严格来说只支持正整数,不支持小数和负数,DA可以理解为比如将0-5伏分为若干份,这个由DA的位数决定,而写入DA的数值经过威廉希尔官方网站 转换后输出为一个电压值,如果DA是10bit,那么0x03ff时DA输出5伏,0x0000时DA输出0伏,0x01ff时DA输出为2.5伏。DA的具体输出电压与后端威廉希尔官方网站 有关,即使DA输出为0-5伏的电压,如果在后端再加入一个电平向下平移2.5的威廉希尔官方网站 ,那么最终输出则是-2.5--2.5的电压。DA是AD的逆,所以有些考虑可以参考AD的原理。
看你的问题,这里你需要按AD的方法来处理,假设你所输入的随机数是最终输出的电压值,并且单片机的DA不需要增加外围威廉希尔官方网站 可以完整的输出需要的电压,那么就DA的输入数据就等于是AD的输出数据,AD的输出数据就是(随机数/DA的满量程电压值)*1024(10bitDA的最大值)
1 1 举报

人中狼

2019-2-15 10:47:16
数据可以存储为8位或16位格式,在单片机里写相应的程序根据DA的控制方式将数据写入就可以了,需要看具体的单片机型号和手册
4 1 举报
  • 刘雪玉: 谢谢回答,还有不清楚的地方,请问我生成的数据是十进制的小数,存入单片机前需要将它转换成二进制或者十六进制的小数吗?转换后,输出到D/A芯片时,D/A芯片能识别这个小数吗?
  • 阿信509 回复 刘雪玉: 数据是不分小数整数的,就看你如何定义,D/A需要数据,最小值和最大值你要定义好
  • 刘雪玉 回复 阿信509: 有小数的情况是不是应该定义为float型?那如果我定义为float型,就是32bit的数据,D/A只有10bit,会不会D/A不能识别呢?还是它会在低位自动补零?
  • 阿信509 回复 刘雪玉: float不是32位的数据,D/A也不是10位的数据,建议先找书学习一下基本的概念

阿信509

2019-2-15 11:26:55
先要确定你要转换的数据的最大值和最小值,然后根据要求转换
举报

更多回帖

发帖
×
20
完善资料,
赚取积分