TMP112的IIC接口调试

发布时间:2026/7/1 13:12:00

TMP112的IIC接口调试 TMP112是一款高精度、低功耗的数字温度传感器集成IC通信速度高达2.85MHz本次调试主要分为两个子模块I2C_ TMP112_ctr模块和I2C_ TMP112_dri模块。I2C_ TMP112_ctr模块是控制模块控制I2C_ TMP112_dri模块进行读写操作。I2C_ TMP112_dri模块是IIC时序的驱动模块驱动模块进行工作获取温度信息。1、 I2C_TMP112_ctr模块功能描述I2C_TMP112_ctr模块控制I2C_TMP112_dri模块进行读写操作。等待开始信号i_config_enable触发状态机开始工作。写操作首先配置从机地址写指令然后配置8bit指针寄存器的bit1和bit0来寻址一个指定的数据寄存器再配置该数据寄存器的高低字节数据。读操作首先配置从机地址写指令然后配置8bit指针寄存器的bit1和bit0来寻址一个指定的数据寄存器再配置从机地址读指令读回指针寄存器指定寄存器的数据。如果需要从同一寄存器进行重复的读取操作则不必一直发送指针寄存器字节因为器件将保留指针寄存器的值直到该值被下一个写入操作更改。模块流程图和仿真图如下所示图1图2图2表示传感器一次完整的配置过程ST_CS表示配置状态状态2表示主机配置从机地址写指令然后配置指针寄存器(bit1和bit0来寻址一个指定的数据寄存器)高低字节数据状态7表示主机配置从机地址写指令然后配置指针寄存器(bit1和bit0来寻址指定的数据寄存器)的过程。状态10表示配置从机地址读指令读回指针寄存器指向寄存器的16bit数据的过程。至此一次完整的写/读操作过程就结束了。2、 I2C_TMP112_dri模块功能描述I2C_TMP112_dri模块是进行读写操作的驱动单元。在写操作过程中当写使能信号出现后模块开始工作写入7bit从机地址加1bit写使能和8bit指针寄存器并配置该指针寄存器指向寄存器的高8bit和低8bi字节数据(这里需配置三次指针寄存器分别指向配置寄存器、温度下限寄存器和温度上限寄存器)。在读操作过程中当读使能信号出现后模块开始工作首先写入7bit从机地址加1位写使能和8bit指针寄存器(该指针寄存器指向接下来需要进行读取操作的寄存器)再写入7bit从机地址加1位读使能然后开始读该指针寄存器指向寄存器的高8bit和低8bit数据。模块仿真图如下所示图3图4图3表示一次完整的写配置过程状态0和1中 o_i2c_sclk高电平时o_i2c_sdat信号由高向低跳变表示起始信号由主机发起代表主机准备向从机传输数据状态2表示写入7bit从机地址1bit写标志信号状态3表示从机向主机发送ACK应答信号。状态4表示写入8bit指针寄存器用来寻址一个指定的数据寄存器状态5表示从机向主机发送ACK应答信号。状态6表示配置该指针寄存器指向寄存器的高8bit数据状态7表示从机向主机发送ACK应答信号。状态8表示配置该指针寄存器指向寄存器的低8bit数据状态9表示从机向主机发送ACK应答信号。状态10和11中在o_i2c_sclk高电平时o_i2c_sdat信号由低向高跳变表示主机结束向从机传输数据一次写操作完成。状态1到状态11表示一个寄存器的配置该模块需要配置三个不同的寄存器都由指针寄存器的bit1和bit0来进行标识所以该模块需要进行三次完整的状态0到状态11写配置过程才会进入读操作状态。图4表示一次完整的读操作过程状11和12中 o_i2c_sclk高电平时o_i2c_sdat信号由高向低跳变表示起始信号由主机发起代表主机准备向从机传输数据状态13表示写入7bit从机地址1bit写标志信号状态14表示从机向主机发送ACK应答信号。状态15表示写入8bit指针寄存器用来指向温度寄存器状态16表示从机向主机发送ACK应答信号。状态17和18中在o_i2c_sclk高电平时o_i2c_sdat信号由低向高跳变表示主机结束向从机传输数据。状18和19中 o_i2c_sclk高电平时o_i2c_sdat信号由高向低跳变表示起始信号由主机发起代表主机准备向从机传输数据状态20表示写入7bit从机地址1bit读标志信号状态21表示从机向主机发送ACK应答信号。状态22表示读温度寄存器的高8bit数据状态23表示主机向从机发送ACK应答信号。状态24表示读温度寄存器的低8bit数据状态25表示主机向从机发送ACK应答信号。状态26和27中在o_i2c_sclk高电平时o_i2c_sdat信号由低向高跳变表示主机结束向从机传输数据一次读操作完成。以上即一次读写操作过程。

相关新闻