特权同学也是第一次听到这么新奇的想法,今天的lattice研讨会总算不是白去的,多少是有一点收获。尤其是听说能用FPGA的差分对实现AD转换,这不仅只是停留在想法上,lattice已经把这个方案做出来了,而且你还可以在他们的官网搜到这个方案的细节。
看看文档,发现这个虽然新颖的想法其实原理还是很简单的,不仅利用了LVDS差分输入的比较器,而且还使用了地球人都知道的PWM输出用于比较器另一端的模拟比较电压。其中一种最简单的方案如图1所示,差分对的正端输入待转换模拟信号,负端则输入一个经过RC低通滤波的PWM信号,这个滤波后的PWM信号其实相当于一个参考模拟电压值。在内部逻辑设计中,可以可控的产生不同的PWM输出负比较端的参考电压,同时采样整个差分对的当前值。具体的思路恐怕不用特权同学多说,每次取中间值对比结果再反复判断得到结果。这个电路精度虽然可以做得很高,但速度会比较慢,而且最大的问题是无法检测到VCCIO电压的最低值和最高值,这要取决于FPGA的差分对电路允许的有效判断闸值。总的来说,这个电路虽然简单,但是采样电压范围比较受限。
图1
另一种复杂一些的改进方案如图2所示。这种方案说白了不但是对输入电压进行分压,而且可以利用PWM输出的电压动态调整比较器负端输入的采样电压值,加之比较器正端是一个非0参考电压,从而有效的避免了前述方案中采不到两个临界点电压的尴尬,这一招也很妙。不过这个方案实现起来还是需要一些算法,并且多费一些逻辑的。
图2
此外,今天头一次比较近距离的接触lattice的CPLD器件MachOS2,感觉上这个器件不仅适合做CPU的IO扩展,也很适合做一些常用外设的扩展,毕竟其内部已经集成了IIC、SPI之类的硬核,还有一些片内的RAM和FLASH也有不小的用处。
Lattice的参考链接:
http://www.latticesemi.com.cn/products/intellectualproperty/referencedesigns/simplesigmadeltaadc.cfm
用户1181870 2013-7-5 15:25
用户1610239 2013-7-5 10:20
用户1408843 2011-4-28 13:15
用户1114337 2011-4-28 10:53
用户1558351 2011-4-28 10:25
用户1261931 2011-4-28 08:56