热电偶Pmod控制器(VHDL)

逻辑主页

代码下载

热电偶Pmod控制器(顶层文件): pmod_thermocouple.vhd (7.1 KB)

SPI主控制器(必须包含在项目中): spi_master.vhd (8.8 KB)

特性

  • Digilent热电偶Pmod(PmodTC1)的简化接口VHDL源代码
  • 持续输出最新的热电偶数据、参考结温数据及并行接口上的故障位
  • 处理SPI通信及从热电偶Pmod获取所有数据
  • 可配置系统时钟频率

简介

本文详述了与Digilent热电偶Pmod接口的VHDL组件,如图1所示。图2展示了将该热电偶Pmod控制器集成到系统中的典型实例。如图所示,热电偶Pmod控制器连接Pmod端口并执行事务以获取热电偶温度数据、内部结温数据和故障位。数据随后通过简单并行接口输出,可连接至用户逻辑或FPGA的输出端口。

1. Digilent热电偶Pmod TC1

2. 应用示例

背景

热电偶Pmod采用Maxim Integrated的MAX31855对K型热电偶信号进行数字化,并提供补偿用的参考结温。测得的热电偶温度为14位精度,分辨率达0.25ºC。参考结温为12位精度,分辨率达0.0625ºC。

工作原理

热电偶Pmod控制器主要由状态机和SPI主控组件构成。

状态机

该设计采用图3所示的简单状态机来实现其操作。启动时,组件立即进入起始状态。在此状态保持300毫秒,确保Pmod有充足时间上电并完成首次温度转换。随后进入获取数据( get_data 状态,通过SPI与Pmod启动事务以获取转换结果。事务开始后,组件进入暂停( pause 状态。在此状态下,当数据可用时,通过tc_temp_datajunction_temp_data 和­fault_bits端口输出接收到的信息。100毫秒转换周期结束后,组件返回获取数据( get_data 状态以启动下一次数据获取事务。虽然状态图中未显示,但任何时候重置组件都会使其返回起始( start 状态。

3. 状态图

SPI 主控

状态机控制SPI主控组件与Pmod上的MAX31855转换器通信。SPI主控配置为CPOL=0和CPHA=0,以满足MAX31855的要求。SPI主控组件的完整文档可在此处获取。

时钟配置

热电偶Pmod控制器的时钟通过为ENTITY中定义的GENERIC参数clk_freqspi_clk_div 赋值来配置。参数clk_freq 必须设置为提供的系统时钟clk 的频率(单位为MHz)。公式1定义了spi_clk_div 的计算方式。

其中fclk 是提供的系统时钟频率(单位为MHz)。系统时钟通过clk 输入端口提供。

公式2定义了由此产生的SPI时钟频率fsclk

该计算确保SPI时钟接近但不超出MAX31855规定的最大串行通信频率5MHz。

端口描述

表1描述了热电偶Pmod控制器的端口。数据格式及输出的详细说明如下所述。

1. 端口描述

热电偶温度数据

tc_temp_data 端口输出14位热电偶温度数据。数据采用二进制补码格式,分辨率为每比特0.25℃。

结点温度数据

junction_temp_data 端口输出12位参考结点温度数据。数据采用二进制补码格式,分辨率为每比特0.0625℃。

故障位

表2定义了fault_bits 总线的输出。

2. 故障位

连接方式

该Pmod采用6针连接器。表3提供了该连接器的引脚定义。热电偶Pmod控制器的端口需按所列对应关系分配到连接器所连的FPGA引脚。

3. TC1 Pmod引脚定义及与热电偶Pmod控制器的连接

复位

reset_n 输入端口必须保持逻辑高电平,热电偶Pmod控制器组件才能工作。该端口的低逻辑电平会异步复位组件。复位期间,组件将中止与热电偶Pmod的当前事务,并清除tc_temp_datajunction_temp_datafault_bits 输出。复位释放后,热电偶Pmod控制器将恢复运行。

结论

这款热电偶Pmod控制器是一个可编程逻辑组件,可与Digilent的热电偶(TC1) Pmod模块对接。它能处理与TC1 Pmod模块的所有通信,通过并行输出端口持续提供更新的热电偶温度数据、参考结温度数据及故障信号。

相关主题

SPI主控制器(VHDL)

解耦过程中信号传输有什么变化规律,怎么样确保控制器电路输出一直稳定!