第一次玩FPGA应用,怼了一下TSL1401线阵传感器
[复制链接]
TSL1401是一款128点主频能达到8MHz的线阵传感器,前段时间画了一个板子准备用FPGA弄它。
TSL1401能找到的几乎都是中文资料,大多是做寻迹小车用的,使用单片机驱动,FPGA的很少。
因为受单片机AD采样率的限制,一搬时钟频率都不会太高。
我是想弄一款时钟频率高一点的线阵,不过有些专业都太贵,除了传感器还要配大大的专业镜头,整体下来都要小一万,玩不起。
有一款ELIS-1024看参数还是不错了,可惜联系了很多家都买不到,最后还是先拿这个TSL1401练练手。
为了跑到8MHz时钟,我开始画了AD807E的12位53MSPS ADC的板子,可能是LDO有问题,上电冒烟,烧了2片ADC。
后来又换成AD9245-65,14位 65MSPS的ADC,前段时间买的EBAZ4205,我觉得挺好的,对于我们这些想入门FPGA的同学非常适合。
搞了几天FPGA,总算能读到TSL1401的数据,但是效果和预期还有很大差距。
开始的时候我只是用FPGA生成一个控制时序,让TSL1401在8MHz的时钟下工作,然后用未波器测量模拟输出。
从示波器来看输出的噪声非常大,因为正常情况下每次时钟的上升沿在转移像素时AO输出都会有一个跳变,所以用ADC在下降沿采集信号看起来效果应该会些。
然后又花了很长时间,把AD9245-65的数据读了出来,通过ILA直接把数据显示出来,8MHz下看起来能比示波器效果好点,但基本没啥用,锯齿用来锯木头还是一个来一个来的。后来把时钟降到2.5MHz效果就好多了。
VIVADO的“编译”速度真是牛慢,改动一点代码就要花十几分名时间综合,CPU基本给你跑到15%左右,不知道时间都花哪去了。
可能是8MHz时积分时间太短,通过放大器放大后噪声也被一起放大了,2.5MHz时钟虽然波形好看,不过频率太低,128像素跑下来才19.5K的帧率,也不够干啥的。
|