OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5714|回复: 15

[XILINX] 求问大家关于数据位数转换的问题

[复制链接]

22

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2022-4-15
在线时间
26 小时
发表于 2023-2-14 14:48:00 | 显示全部楼层 |阅读模式
1金钱
DDR存储的数据是16位的,手里的DA模块是14位宽的,AD模块是12位的,如果想把这16位宽的数据从DA模块传出去再用12位的AD模块接收应该怎么做呢

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

3229

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8074
金钱
8074
注册时间
2020-5-11
在线时间
3574 小时
发表于 2023-2-14 15:03:35 | 显示全部楼层
本帖最后由 LcwSwust 于 2023-2-14 15:07 编辑

接线的时候,最高位对齐就行了呗。或叫“左对齐”
专治疑难杂症
回复

使用道具 举报

22

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2022-4-15
在线时间
26 小时
 楼主| 发表于 2023-2-14 15:47:07 | 显示全部楼层
LcwSwust 发表于 2023-2-14 15:03
接线的时候,最高位对齐就行了呗。或叫“左对齐”

那14位的传16位数据位数不是不够嘛
回复

使用道具 举报

10

主题

3229

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8074
金钱
8074
注册时间
2020-5-11
在线时间
3574 小时
发表于 2023-2-14 16:13:30 | 显示全部楼层
xke 发表于 2023-2-14 15:47
那14位的传16位数据位数不是不够嘛

不够就补0
比如14位: 11 1111 1111 1111
转为16位: 1111 1111 1111 1100
专治疑难杂症
回复

使用道具 举报

22

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2022-4-15
在线时间
26 小时
 楼主| 发表于 2023-2-14 16:15:28 | 显示全部楼层
LcwSwust 发表于 2023-2-14 16:13
不够就补0
比如14位: 11 1111 1111 1111
转为16位: 1111 1111 1111 1100

是位数高的到位数低的呀,原始数据是16位,用14位的传
回复

使用道具 举报

10

主题

3229

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8074
金钱
8074
注册时间
2020-5-11
在线时间
3574 小时
发表于 2023-2-14 16:26:01 | 显示全部楼层
本帖最后由 LcwSwust 于 2023-2-14 16:28 编辑
xke 发表于 2023-2-14 16:15
是位数高的到位数低的呀,原始数据是16位,用14位的传

哦,我没看懂你的问题。
针对你在一楼的问题,“把这16位宽的数据从DA模块传出去”,只需把16位数据的低两位去掉就行,高14位接至DA输入脚。

另外你可以再把问题细化一下,比如16位数据的值范围是多少,DAC输出电压范围是多少,ADC输入电压范围是多少,
整体需要什么样的效果,有何用途。
专治疑难杂症
回复

使用道具 举报

22

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2022-4-15
在线时间
26 小时
 楼主| 发表于 2023-2-14 16:39:46 | 显示全部楼层
LcwSwust 发表于 2023-2-14 16:26
哦,我没看懂你的问题。
针对你在一楼的问题,“把这16位宽的数据从DA模块传出去”,只需把16位数据的低 ...

但是直接把后两位去掉不是就少数据了嘛,我是要通过AD和DA传输存储在DDR中的视频数据,后面要还原回来的,要是16位直接变14位不就缺数据了嘛
回复

使用道具 举报

10

主题

3229

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8074
金钱
8074
注册时间
2020-5-11
在线时间
3574 小时
发表于 2023-2-14 17:00:42 | 显示全部楼层
xke 发表于 2023-2-14 16:39
但是直接把后两位去掉不是就少数据了嘛,我是要通过AD和DA传输存储在DDR中的视频数据,后面要还原回来的 ...

哦,那么关键就在于DAC和ADC了,由于ADC位数少一些,那主要还是看ADC,只要ADC能准确识别信号,那才不会有损失,
考虑极限情况,假如ADC只能识别高低电平(即1位ADC),相当于普通IO口,那么就可以像串口那样一个时钟传递1位数据,当然这个速度显然太慢。
假如ADC能识别4种电压,那么一个时钟能传输2位数据,那么传输速度就高一倍了。
假如ADC能识别256种电压,那么一个时钟能传输8位数据,那么传输速度更高了。
所以,你得做个实验,看双方是否能准确无误传递8位数据,或更多的位数。
专治疑难杂症
回复

使用道具 举报

22

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2022-4-15
在线时间
26 小时
 楼主| 发表于 2023-2-14 17:20:58 | 显示全部楼层
LcwSwust 发表于 2023-2-14 17:00
哦,那么关键就在于DAC和ADC了,由于ADC位数少一些,那主要还是看ADC,只要ADC能准确识别信号,那才不会 ...

那想请问下AD位数是12的意思不是可以传12位数据嘛
还有就是16位变成这种14位或者12位是怎么变呢?
回复

使用道具 举报

10

主题

3229

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8074
金钱
8074
注册时间
2020-5-11
在线时间
3574 小时
发表于 2023-2-14 17:32:55 | 显示全部楼层
xke 发表于 2023-2-14 17:20
那想请问下AD位数是12的意思不是可以传12位数据嘛
还有就是16位变成这种14位或者12位是怎么变呢?

得试一下,ADC可能有误差、有噪声或易受到干扰。16位变两个8位就行了呀,14位的话你把多个16位数据首尾相接,每次取14位出来就是。



专治疑难杂症
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3327
金钱
3327
注册时间
2011-11-10
在线时间
207 小时
发表于 2023-2-15 09:13:18 | 显示全部楼层
俩DA同时转换,然后高位DA接运放乘法器然后再与低位DA同时输入运放加法器,最后输出信号为一个16bit数据转换的模拟电压,直接接12bitAD就行了。如果信号速率很高的话,注意低位DA后面加延时以与乘法器同步。

实际上你这样做是否多余了,你16bit数据直接舍弃最低4bit,输出12bit数据,就等于你绕了这么一大圈出来的数据。关键是绕一圈还平白无故引入了很多噪声,得不偿失。除非你必须要这个电压值另有其他用途。
回复

使用道具 举报

22

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2022-4-15
在线时间
26 小时
 楼主| 发表于 2023-2-15 10:09:55 | 显示全部楼层
LcwSwust 发表于 2023-2-14 17:32
得试一下,ADC可能有误差、有噪声或易受到干扰。16位变两个8位就行了呀,14位的话你把多个16位数据首尾相 ...

嗯嗯,谢谢您
回复

使用道具 举报

22

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2022-4-15
在线时间
26 小时
 楼主| 发表于 2023-2-15 10:11:07 | 显示全部楼层
c2007s 发表于 2023-2-15 09:13
俩DA同时转换,然后高位DA接运放乘法器然后再与低位DA同时输入运放加法器,最后输出信号为一个16bit数据转 ...

那直接舍弃低4bit的话这样数据不是有缺失了嘛
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3327
金钱
3327
注册时间
2011-11-10
在线时间
207 小时
发表于 2023-2-15 18:23:14 | 显示全部楼层
xke 发表于 2023-2-15 10:11
那直接舍弃低4bit的话这样数据不是有缺失了嘛

你的AD只有12位,你丢弃4bit比你绕一圈还要精确。实际造出来的东西没有意义。
实在不想丢弃,那老老实实换用24bitAD吧。
回复

使用道具 举报

22

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2022-4-15
在线时间
26 小时
 楼主| 发表于 2023-2-16 10:34:19 | 显示全部楼层
c2007s 发表于 2023-2-15 18:23
你的AD只有12位,你丢弃4bit比你绕一圈还要精确。实际造出来的东西没有意义。
实在不想丢弃,那老老实实 ...

请问像是图片视频数据这种丢弃了的话是不是还原不全了呀,或者先可以把16bit转成8bit再通过14位和12位的传嘛
回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3327
金钱
3327
注册时间
2011-11-10
在线时间
207 小时
发表于 2023-2-17 10:43:02 | 显示全部楼层
xke 发表于 2023-2-16 10:34
请问像是图片视频数据这种丢弃了的话是不是还原不全了呀,或者先可以把16bit转成8bit再通过14位和12位的 ...

何必这么费劲呢?16BIT的直接用16位或24位DA和AD才是解决问题的正道。现在市场上24bit的DA和AD也这么多的。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-10-4 04:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表