[开发工具] STM32与工业CCD光谱

[复制链接]
2252|32
 楼主| 東南博士 发表于 2019-10-25 15:00 | 显示全部楼层
 楼主| 東南博士 发表于 2019-10-25 15:00 | 显示全部楼层
    TCD 1304的驱动时序如图3.5所示,信号线为ICG,  SH,  CLK,  OS。主时
钟最大为4M,每4个时钟周期AD采样一次,为了保证AD采样时间上的准确
性,避免出现在OS改变输出时采样,用clk/4的定时器触发AD采样,产生2MHz
的时钟则电平翻转的频率为4M,速度较快,因此采用一个定时器直接翻转电平,
STM32f207主频为120MHz,定时器TIM3挂在APB1时钟总线上,为60M,  15
分频后获得clk=60/ 15/2=2M的时钟信号。若要实现4M的时钟,可以选择在
120MHz的APB2时钟总线上的定时器,15分频,定时器选择输出比较匹配模式,
将PA6设置为第二功能,比较匹配时PA6电平翻转。不使能中断,若使用中断
服务子程序,会消耗较多的CPUo ICG和SH用TIM3和TIM8的PWM(脉冲
宽度调制)来实现,可以实现脉宽和周期可调的脉冲波。由于TIM3是普通定时
器,TIM8是高级定时器,普通定时器的计数器位宽是16位,高级定时器的位宽
是32位,要实现7.4ms的长时间记时,按照60M的系统时钟来计算,显然16
位计数器只能记时65535* 16.66=1.091813ms的时间,显然不能满足的7.4ms的
像素读出时间要求;所以要对普通定时器的系统时钟进行100分频,使得定时器
的时钟变成了6M,这样,TIM3的定时长度可达1 OOms左右,基本满足了光谱
仪的长时间曝光要求。如图3.2所示,ICG和SH之间有一个相移时间t2,  t2的
典型值是SOOns,为了实现ICG和SH的相移关系,给产生ICG的定时器赋予一
个初始值,使得产生ICG的定时器在计数的时候,计数初值从设定的值开始,
也就是ICG和SH之间产生了一个延时,延时根据初值的大小来定。这样,就实
现了ICG和SH的相移关系。
 楼主| 東南博士 发表于 2019-10-25 15:01 | 显示全部楼层
    在接收端,当接收到数据时,串行接口引擎SIE)将接收到的数据根据端
口号放到对应的数据缓冲区内。并给主机返回ACK命令,再产生中断,告诉主
机已经接收到了数据包。如果USB正在处理缓冲区数据的时候,收到了来自数
据发送端的发送请求,USB会返回一个NAK,告诉数据发送端,接收端忙。接
收端收到NAK后,会延时一段时间,再重新发送数据,一直反复执行这个过程,
直到超时为止。
    在数据发送端,当要发送数据时,先把要发送的数据写入发送缓冲区,并通
知总线发送缓冲区的数据已经准备好。同时总线通知接收端,如果接收端返回
ACK,就表示接收端己经接收数据完成,并且产生相应的中断执行数据处理操
作。如果接收端还未准备好,或者处于繁忙状态,会返回一个NAK,发送端等
待下次重新发送。
 楼主| 東南博士 发表于 2019-10-25 15:01 | 显示全部楼层
 楼主| 東南博士 发表于 2019-10-25 15:05 | 显示全部楼层
 楼主| 東南博士 发表于 2019-10-25 15:07 | 显示全部楼层
 楼主| 東南博士 发表于 2019-10-25 15:07 | 显示全部楼层
磨砂 发表于 2019-11-18 13:03 | 显示全部楼层
非常感谢楼主的分享
晓伍 发表于 2019-11-18 13:10 | 显示全部楼层
非常感谢楼主的分享
八层楼 发表于 2019-11-18 13:23 | 显示全部楼层
非常不错的资料
观海 发表于 2019-11-18 13:37 | 显示全部楼层
非常不错的资料
guanjiaer 发表于 2019-11-18 13:43 | 显示全部楼层
非常不错的帖子
小涛DZGZS 发表于 2020-6-5 15:02 | 显示全部楼层
非常不错的帖子
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部