代码下载
颜色传感器 Pmod 控制器(顶层文件):
pmod_color_sensor.vhd (17.4 KB)
I2C 主控制器(项目中必须包含):
i2c_master.vhd (14.1 KB)
特点
- 用于 Digilent 的 PmodCOLOR(适配 AMS TCS3472 颜色光数字转换器的 Pmod 模块)的简化接口 VHDL 源代码
- 持续通过4个并行接口输出最新的光线与颜色数据
- 处理 I2C 通信以及从颜色传感器 Pmod 模块检索所有数据
- 处理颜色光-数字转换器的增益和atime参数配置
- 用户可自定义增益与atime
- 可配置系统时钟频率
介绍
这详细介绍了一个 VHDL 组件,该组件用于处理 FPGA 与 Digilent 颜色传感器 Pmod 的接口连接,如图 1 所示。图 2 展示了将此颜色传感器 Pmod 控制器集成到系统中的一个典型示例。如图所示,颜色传感器 Pmod 控制器连接至 Pmod 端口,并执行事务以配置 Pmod 和收集数据。数据持续更新并通过4个简易并行接口呈现,分别对应透明、红、绿、蓝数据值。
图 1 。 Digilent颜色传感器Pmod
图 2 。 实现示例
操作原理
颜色传感器 Pmod 控制器主要由一个状态机和一个 I2C 主控制器组件组成。
状态机
该设计采用图 3 所示的状态机来实现其操作。启动时,该组件立即进入初始( start ) 状态。该状态持续100ms以确保Pmod完成上电。随后进入set_gain 状态,配置TCS3472颜色光-数字转换器内部ADC的增益。完成后进入set_atime 状态配置这些ADC的积分时间。最终在set_pon_aen 状态完成初始化序列。在此状态下设置电源开启位(PON)激活内部振荡器,同时设置ADC使能位(AEN)激活ADC。pause 状态实现2.4毫秒暂停,为Pmod留出采集数据并更新数据寄存器的时间。在接下来的 read_data 状态中,控制器从 Pmod 模块收集最新的光线和颜色数据。最后,它在output_result 状态中输出数据。随后在 暂停( pause ) , read_data和output_result 状态间循环切换,保持光线和颜色数据的更新。尽管状态图中未显示,但任何时候重置该组件都会使其返回到初始( start ) 状态。
图 3 。 状态图
I2C 主控制器
在设置增益( set_gain ) 、设置积分时间( set_atime ) 、设置电源与使能( set_pon_aen ) 和读取数据( read_data ) 状态期间,状态机控制一个 I2C 主控制器组件,以与 Pmod 模块上的 TCS3472 颜色光数字转换器进行通信。I2C主控的文档可在此处查阅。
配置颜色传感器 Pmod 控制器
颜色传感器 Pmod 控制器通过在实体中设置通用参数进行配置。
系统时钟频率
通用参数 sys_clk_freq 必须设置为通过 clk 端口提供给颜色传感器 Pmod 控制器的系统时钟频率。
增益
通用参数gain 设置TCS3472颜色光-数字转换器中读取光电二极管的四个ADC的模拟增益。可调整该值以提升不同光照条件下颜色与光线测量的准确性。有效增益值为1、4、16和60。若指定其他值,颜色传感器将默认采用增益值1进行配置。
积分时间
通用参数a time 设置TCS3472颜色光-数字转换器中读取光电二极管的四个ADC的积分时间。积分时间影响读数的分辨率与灵敏度,可设置范围为2.4毫秒至614毫秒。参数atime 为二进制补码值,根据所需积分时间按公式1计算得出。

详见TCS3472数据手册(4.6MB)第15页顶部说明。
端口描述
表 1 描述了颜色传感器 Pmod 控制器的端口。
表 1. 端口描述
连接方式
该Pmod配备一个6针连接器。表2提供了该连接器的引脚定义。颜色传感器 Pmod 控制器的端口需要分配给路由至该连接器的 FPGA 引脚,如下所列。
表 2. 颜色传感器 Pmod 引脚分配及与颜色传感器 Pmod 控制器的连接
该 Pmod 模块还设有多个跳线。必须启用JP1和JP2(即短接)以连接SCL和SDA所需的I2C上拉电阻。JP3和JP4不影响颜色传感器Pmod控制器的运行。
复位
reset_n 输入端口必须为逻辑高电平,颜色传感器 Pmod 控制器组件才能工作。该端口的低电平将异步复位组件。在复位期间,该组件会中止与 Pmod 的当前事务,并清除 clear 、red 、green 和 blue 数据输出以及 i2c_ack_err 输出。一旦复位解除,颜色传感器 Pmod 控制器将重新启动其操作。重新配置Pmod后继续采集并输出光线与颜色数据。
结论
该颜色传感器 Pmod 控制器是一个可编程逻辑组件,用于实现与 Digilent 公司 PmodCOLOR(颜色传感器 Pmod)的接口连接。它负责处理与该 Pmod 的所有通信,以配置 Pmod 的颜色光数字转换器,并在并行输出端持续提供更新的光线和颜色数据流。




