温度传感器TCN75A Pmod控制器(VHDL实现)

逻辑主页

代码下载

温度传感器Pmod控制器(顶层文件): pmod_temp_sensor_tcn75a.vhd (11.7 KB)

I2C主控制器(必须同时包含在项目中): i2c_master.vhd (14.1 KB)

特点

  • 针对Digilent PmodTMP3模块(基于Microchip TCN75A温度传感器的Pmod)的简化接口VHDL源代码
  • 通过并行接口持续输出最新温度数据
  • 处理I2C通信及温度传感器Pmod的所有数据采集
  • 配置温度传感器的分辨率
  • 可配置系统时钟频率

介绍

本文详述了与Digilent温度传感器TCN75A Pmod对接的VHDL组件,如图1所示。图2展示了该温度传感器Pmod控制器集成至系统的典型应用实例。如图所示,该温度传感器Pmod控制器连接Pmod端口,执行配置传感器与采集数据的传输事务。数据持续更新并通过简易并行接口输出,可连接至用户逻辑或FPGA输出端口。

1. Digilent温度传感器TCN75A Pmod模块

2. 实现示例

操作原理

温度传感器Pmod控制器主要由状态机和I2C主控组件构成。

状态机

该设计采用图 3 所示的状态机来实现其操作。启动时,该组件立即进入初始( start 状态。该状态持续100ms以确保Pmod完成上电。随后进入set_resolution 状态,配置温度传感器的分辨率参数。完成后进入set_reg_pointer 状态,为温度数据读取初始化传感器寄存器。在随后的read_data 状态中,从Pmod温度传感器采集最新温度数据。最终在output_result 状态输出温度值。之后在read_dataoutput_result 状态间循环切换,确保温度数据持续更新。任何时候复位组件都将使其返回初始 (start) 状态。

3. 状态图

I2C 主控制器

set_resolutionset_reg_pointerread_data 状态期间,状态机控制一个I2C主组件与Pmod上的温度传感器通信。I2C主控的文档可在此处查阅。

配置温度传感器 Pmod 控制器

温度传感器Pmod控制器通过设置实体中的通用参数进行配置。

系统时钟频率

通用参数sys_clk_freq 必须设置为提供给温度传感器Pmod控制器clk 端口的系统时钟频率。

分辨率

通用参数resolution 定义了TCN75A温度传感器的配置分辨率(以位为单位)。表1描述了相关选项与权衡。默认分辨率为9位。任何无效的分辨率设置都将恢复为9位。

1. 分辨率选项

Pmod I2C 地址

温度传感器Pmod控制器必须知道Pmod的7位I2C地址才能通信。最高4位为"1001",随后3位分别由Pmod的跳线块JP3、JP2和JP1设置。

通用参数temp_sensor_addr 必须设置为该地址。默认值"1001000"对应所有3个跳线均接地的情况。

端口描述

表2描述了温度传感器Pmod控制器的端口。

2. 端口描述

连接方式

该Pmod配备8针连接器。表3提供了该连接器的引脚定义。需要将温度传感器Pmod控制器的端口分配给所列出的连接至该接头的FPGA引脚。Pmod板上J1连接器的两排引脚已内部连通,因此只需将单侧连接至FPGA。

3. 温度传感器Pmod引脚定义及其与控制器的连接

Pmod模块还配备了几个跳线。必须启用JP4和JP5(即连接)以接入SCL和SDA所需的I2C上拉电阻。JP6未使用。JP1、JP2和JP3用于设置Pmod的I2C地址。具体设置请参阅前文Pmod I2C 地址章节。

复位

要使温度传感器Pmod控制器正常工作,reset_n 输入端口必须保持逻辑高电平。该端口的低电平将异步复位组件。复位期间,组件将中止与Pmod的当前通信,并清除温度数据输出和i2c_ack_err 输出。退出复位状态后,温度传感器Pmod控制器将重新开始工作。它会重新配置温度传感器,并继续采集和输出温度数据。

结论

该温度传感器Pmod控制器是可编程逻辑组件,可与Digilent的PmodTMP3(TCN75A温度传感器Pmod)对接。该控制器负责处理与Pmod的所有通信,配置Pmod的温度传感器,并通过并行接口持续输出更新的温度数据流。

附加信息

Microchip TCN75A datasheet (498.7 KB)

相关主题

I2C主控制器(VHDL)