基于FPGA的IIC读取LM74A温度值
IIC总线概述
采用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时,系统的更改和扩充极为容易。常用的串行扩展总线有: I2C (Inter IC BUS)总线、单总线(1-WIRE BUS)、SPI(Serial Peripheral Interface)总线及Microwire/PLUS等。
目前,这类串行总线仍然有很强的生命力,IIC协议本身比较常见,这里不赘述。
本次的测试实验平台是Intel FPGA (原Altera FPGA)的 Cyclone IV E系列的EP4CE6E22C8N,顶层文件如下图
这里,为了验证能够正确读取到LM74A的温度值,调用了Quartus II13.1中的In-System Sources and Probes 核,这样可以直接软件调试就可以看到从LM74A读取的数据。
这里,只读取了一个字节的数据,显示当前温度为17度。LM74A的精度可以达到0.125摄氏度,这里我们省略了小数位。
总结:
通过编写rtl代码实现IIC协议对LM74A的读写比较繁琐,本身时钟经过分频为100KHz,速率不快。不适合用FPGA实现,反而适合在MCU上用C语言实现。