OpenEdv-开源电子网

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

2012年用F2做的线阵CCD相机

[复制链接]

58

主题

6296

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11603
金钱
11603
注册时间
2014-4-1
在线时间
1327 小时
发表于 2016-3-21 17:00:04 | 显示全部楼层 |阅读模式


(本文在另外两个网站发过,包括a摸。)
我用STM32F215RGT6做的线阵CCD相机。硬件是: CCD + 一片运放 + CPU,没有用CPLD之类。
也许,运放都不需要,没有验证过。
线阵CCD的驱动全部用定时器TIM1的四个通道实现,用片上AD进行采集,DMA存储到片上RAM中;
以上整个过程全部用硬件实现,只在一帧图像结束后才用CPU软件进行干预,中断方式(对这一帧图像数据进行处理)。

下图是线阵CCD官方的驱动时序图:
1.png

如果严格按照官方时序,只靠一个定时器实现是不太可能的。(也许能够实现。)
所以,在研究官方时序以后(这一步很重要),结合定时器,设计了一种即满足驱动要求、又容易实现的新的时序图。
另外,增加了一个控制AD的信号,在片内启动AD工作。
最快时钟频率是1MHz,2000多个像素。所以,每秒可以拍摄400次以上。在一些特殊场合很有用。下面就看数据处理的速度了。
下图是是实际实现的时序,用逻辑分析仪采集的,和官方时序有较大区别:
2.png


下图是测试样板,自己用AutoCAD画的,黑杠宽度是5mm,黑杠的中心间距是15mm,一共19条黑杠:
3.png


下图是实验装置,相机、镜头、三脚架之类的。
4.png


下图是PC采集到的一帧图像。图像数据在CPU中断期间,通过串口发给PC,用专用的软件还原成图案。
当时还不会用USB,现在可以做更好,以提高每秒扫描帧数。
梳子图案就是19条黑杠的图像:
5.png


以后的工作,光圈、焦距、镜头等等,需要根据现场进行选择,有一些其他知识要学习。实验时候用的是一百元的镜头。

实验发现,白天调试好光圈和焦距,可以拍出清晰的图像;
到了晚上,图像就很差了,必须重新调整光圈、焦距。
所以,虽然到了这一步,离实际使用环境还有一段路要走。
主要是动态调节积分时间。

线阵CCD相机,贵在传感器和镜头。






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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-3-22 21:25:02 | 显示全部楼层
不错啊,多年前就那么屌
回复 支持 反对

使用道具 举报

58

主题

6296

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11603
金钱
11603
注册时间
2014-4-1
在线时间
1327 小时
 楼主| 发表于 2016-3-22 22:39:44 | 显示全部楼层
正点原子 发表于 2016-3-22 21:25
不错啊,多年前就那么屌





回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2017-2-10
在线时间
35 小时
发表于 2017-3-9 17:43:37 | 显示全部楼层
楼主 我最近在用407片上AD采集线阵CCD信号 有些问题想请教,困惑了很久
回复 支持 反对

使用道具 举报

58

主题

6296

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11603
金钱
11603
注册时间
2014-4-1
在线时间
1327 小时
 楼主| 发表于 2017-3-10 11:52:37 | 显示全部楼层
s091937 发表于 2017-3-9 17:43
楼主 我最近在用407片上AD采集线阵CCD信号 有些问题想请教,困惑了很久


直接说,在这里。


回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2017-2-10
在线时间
35 小时
发表于 2017-3-10 23:57:21 | 显示全部楼层
CCD用的是TCD1702,输出方波频率1M,用407的定时器2捕获方波上升沿并触发AD1的5通道,AD完成后触发DMA到数组缓存,过程能实现,但数据不对,不知道是不是频率太快了
回复 支持 反对

使用道具 举报

58

主题

6296

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11603
金钱
11603
注册时间
2014-4-1
在线时间
1327 小时
 楼主| 发表于 2017-3-11 20:24:52 | 显示全部楼层
s091937 发表于 2017-3-10 23:57
CCD用的是TCD1702,输出方波频率1M,用407的定时器2捕获方波上升沿并触发AD1的5通道,AD完成后触发DMA到数 ...


我找不到1702的手册。
如果怀疑频率快,不妨降低,试验一下。

另外,整个过程包含几个步骤,
应当分开调试,保证每步都是对的,最后合起来。



回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2017-2-10
在线时间
35 小时
发表于 2017-3-13 16:44:30 | 显示全部楼层
能不能提供下参考程序  万分感谢
回复 支持 反对

使用道具 举报

4

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2016-10-27
在线时间
47 小时
发表于 2017-4-20 13:20:08 | 显示全部楼层
你好啊,大神!我用的是线阵CCD(TCD1209),也是用的STM32F407单片机,CCD的驱动时序是我用IO口模拟出来的,现在调试的结果是:用示波器检测CCD的OS端口有波形输出,我也准备用片上AD采集,关于运放这一块你是怎么处理的呢,求赐教!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-22 01:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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