分享

【Z

 Smartyy 2016-01-02
       最近一个项目上用到温度传感器,刚好Z-turn Borad上有一款温度传感器,由于使用的是IIC接口,IIC地址为0x1,需要用FPGA实现一个IIC接口。根据STLM75器件手册,内部有4个寄存器,通过IIC读写访问,需要先分析时序,用FPGA实现IIC接口。

部分原理图




    1.逻辑设计实现FPGA和STLM75之间的IIC通信,当然首先要设计IIC接口


IIC接口

   2.FPGA内做个小的测试代码,测试IIC接口,这里以读取STLM内部寄存默认值为例(寄存器3),验证接口的正确,测试代码如下图:


FPGA读去温度值 FPGA顶层设置.png



通过ChipScope观察到的数据,读到的数据为0x5000 ;

寄存器3默认值读取


  3.FPGA内做个小的测试代码,测试IIC接口,这里以读取STLM内部寄存默认值为例(寄存器2),验证接口的正确,测试代码如下图:
FPGA读寄存器2值

   通过ChipScope读到值为0x4B00

寄存器2值
   和datasheet上提供的值一样,验证接口正常。

STLM寄存器默认值.png

4 .读取温度,FPGA设置

FPGA读去温度值 FPGA顶层设置.png

读到的温度值
读取的温度值.png
温度值0x23C0 ,取得有效为为0X47
Temp = 0x47 * 0.5 = 71 * 0.5 =35.5摄氏度。

总结,关键在IIC接口设计,分析时序。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多