主题中讨论的其他器件:Energia、 TM4C123
工具/软件:Code Composer Studio
我正在尝试使用 TM4C123G Tiva LaunchPad 来驱动 CCD、目的是开发用于科学教育的开源光谱仪。 CCD 应输出一系列随光强度和曝光时间而变化的电压。 虽然 CCD 应该根据微控制器的信号序列提供输出、但我的输出没有随光或时间的变化、只是使用示波器测量的直流电压。 我怀疑这个问题可能是由于我的信号序列时序的不受控制的延迟引起的。 如果对这一问题有任何建议或见解,将不胜感激。 如果这是由于微控制器的物理限制造成的、那么这些信息也会很有用。
CCD 数据表显示、它需要一个运行频率介于0.8MHz 和2.4MHz 之间的时钟。 另外两个引脚(ICG 和 SH)必须在采集开始和结束时与时钟同步。 时序要求在以下位置进行了说明: tcd1304.wordpress.com/.../。 此处的图中显示了预期输出: tcd1304.wordpress.com/.../。 直到最近、我对 LaunchPad 进行编码的经验一直局限于 Energia IDE。 对于该项目、我学习使用 Code Composer Studio、主要通过在 Tiva 实验课程之后进行学习。 我最初尝试使用计时器中断来运行时钟(如实验2中所述)、但中断似乎会引入限制时钟速度的延迟。 我有一个使用两种交替方法的简化代码:StartSequence 方法和时钟方法。 最后、我需要在时钟方法期间整合 ADC 测量、但现在我只是尝试清理 LaunchPad 输出时序。 时钟方法只会切换 PF1引脚。 它最终将执行此操作数毫秒。 为了获得对称方波、我将时钟周期低电平期间的2个系统时钟周期延迟设置为高电平和低电平时间、每个时钟周期为~450ns (用示波器测量)。 StartSequence 方法在高电平和低电平状态之间切换 PF2和 PF3上的 ICG 和 SH 设置。 ICG 随着时钟变为高电平而变为低电平、然后200ns 后、SH 变为高电平。 三个时钟周期后、SH 返回低电平。 然后、在另外三个时钟周期后、ICG 返回高电平。 之后、StartSequence 方法结束、代码返回到时钟方法。
更改方法(即保留时钟以进入 StartSequence)会引入~150ns 的延迟。 如果不增加超过~350ns 的延迟、我也无法按顺序更改 ICG 和 SH 脉冲的状态。
我的系统控制时钟设置(如下所示)应该为我提供100MHz 或100ns 的周期。
SysCtlClockSet (SYSCTL_SYSDIV_2|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHz|SYSCTL_OSC_MAIN);
感谢你的帮助。
插孔