完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
作为一个模拟世界的后裔,我经常可以在走廊上听到些评论,关于数字设计师多么不理解模拟问题。数字设计师们也毫不留情地批评模拟集成电路设计师。这两个阵营泾渭分明,除非参与者们打破界限,一起进入混合信号领域的研究。
|
|
相关推荐
2个回答
|
|
对典型的模拟精神,不是所有转换器都用相同的数据格式。一些转换器用无符号二进制数类型,其他转换器使用有符号二进制补码数据。甚至更复杂的问题,转换器输出12位或是14位数据,还有16位输出。还有另一种24位Δ-Σ转换器技术。
先不管这些模拟设计结果的目的。对于这些转换器而言,ADC最低有效位的位置是这些8位、16位或是32位字处理器的第0位。对模拟电路设计者来说,这具有重要意义。然而,12位转换器的符号位是处理器的位置11。如果分配16位宽度的变量C为转换器输出值,假定C符号位是位置15。处理器不能从转换器识别出负数,所有来自12位的双极性ADC数据都是正的。因为符号位处于错误位置。 |
|
|
|
你可以通过几个步骤来解决这个问题。首先,读-修改-写步骤,将处理器寄存器中的数据移位。CPU读取数据、移动包含数据的寄存器的位到必要的位置,然后将这些数据写回内存。DSP可以在一个时钟周期内完成移位。控制器需要很多时钟周期才能完成移位的过程。如果你选用了这种控制策略,要小心缓存区的不连续性。这意味着缓存区无法辨别DMA控制器是否将新数据写入内存。结果,CPU将缓存区的旧数据进行移位操作。需要记住的是,无论什么时候向左移了一位,就意味着ADC转换结果乘了2。
另一种方式是在处理器循环中将数据右移。这种方式的缺点占用CPU并需要额外指令。另一种选择是直接将转换器与处理器的数据总线相连。如果你将12位转换器的第11位与处理器总线上的第15位相连,那么符号位就会处于正确的位置。然后将数据的第11位到第14位置零来完成数据获取,否则这些位的数据是不确定的。这种方法只适用于有并行接口。在这种方案中,基于DMA移动就不需要数据移位了。 使用串行端口的用户比并行端口的用户要幸运的多,因为大部分处理器的串行端口提供接收的“左移用零填充至最低有效位”或“右移符号位扩展至最高有效位”特点。这种特色大大减少了CPU处理内存中数据的工作。一些串行端口只工作在接收数据长度是2的幂时,例如16位数据长度。这些端口不能工作在12、14或是24位数据长度时。 模拟工程师帮助处理处理器接口问题。据我所知,处理器都是8位、16位或是32位的,我从没听说过12位或14位的处理器。除非所有的模拟芯片设计者突破界限,否则为转换器设计数字接口是理所当然的。阅读ADC数据手册,核对向数字接口传输的位的位置。如果对ADC数据接口做了初始检查,那么你会因为开始的付出获得更多成功。 |
|
|
|
只有小组成员才能发言,加入小组>>
870 浏览 2 评论
12807 浏览 0 评论
4104 浏览 7 评论
2325 浏览 9 评论
2144 浏览 2 评论
442浏览 2评论
745浏览 2评论
870浏览 2评论
375浏览 1评论
594浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 13:48 , Processed in 1.635719 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号