返回首页
当前位置: 主页 > 网络编程 > Jsp实例教程 >

VHDL读写18B20数据错误原因查找

时间:2017-09-18 21:55来源:知行网www.zhixing123.cn 编辑:麦田守望者

最近项目中使用到了18B20温度传感器,平台使用的altera的FPGA,由于温度对系统的稳定运行很重要。要时刻检测,低于某个温度要开启加热,考虑到使用软件读要占用CPU时间,决定把读取18B20温度写到硬件中去。

18B20的时序还是比较简单的,网上有详细的资料介绍,在此只是记录一下调试过程:

写完时序下载到FPGA之后,读到的数据全是FFFF,开始以为时序写的不对,对照着18B20时序看了好久感觉没问题,最后没有办法使用示波器查看读写波形:

18B20-ERR

18B20-ERR

通过查看波形,复位信号等都正常,接着发送命令,发送CC命令时,通过查看图中红框处发现丢失了1bit数据,导致发送的命令都不对,导致在后边的读取部分18B20根本没有返回数据,读到的FFFF只是FPGA释放总线之后由上拉电阻拉到了高电平。

通过分析问题应该出在了如下部分:主机发出复位信号之后,18B20回反馈一个存在信号(拉低数据总线一段时间),由于我在时序中检测到18B20的存在信号之后立马开始传输命令,此时数据总线还是低电平,到底命令字节的第一位数据时序不完整,没有发送出去。

下面是修改后的读取波形,此时已能成功读取到温度数据。

18B20-ok

18B20-ok

顶一下
(1)
100%
踩一下
(0)
0%
标签(Tag):VHDL 18B20数据
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
猜你感兴趣