[STM32F1] 被DS18B20支配的恐惧,怀疑买到假的芯片(CRC8校验不通过)

[复制链接]
2358|17
 楼主| oolong 发表于 2020-1-13 09:17 | 显示全部楼层 |阅读模式
本帖最后由 oolong 于 2020-1-13 09:20 编辑

最近在调1-wire协议,时序应该没问题,搜索rom、匹配rom、跳过rom、转换、读取温度都没问题
ds18b20_model.jpg 这个集成模块上测试没问题


集成模块 6.52元/个,丝印 1804C4+051AG
某次读温度数据:
8c 1 4b 46 3f ff 3f 10 c0
第五位固定的0xFF,第七位固定的0x10,和datasheet描述一致,且校验和匹配0xC0


ds18b20.jpg

但我手上还有一批散装的DS18B20,测试就各种校验和不通过(没有一次通过),但是如果忽略校验和也能读取温度,和上面的模块误差0.5°左右

散装DS18B20 1.42元/个,丝印 1916c4+051AG
某次读温度数据:
64 1 55 5 3f a5 a5 66 a9
正确的校验和应该为 0x66,且第五位不是固定的0xFF,第七位不是固定的0x10


我怀疑是不是买到的假芯片,毕竟和别家的价格差异还是蛮大的,如果忽略CRC8校验,倒也是能读取,无奈改下驱动,配置下是否忽略CRC8校验

对于我这样的业余玩家实在无法辨别真假,只能看价格了,但是我单独买的 3.53元,x宝描述是进口的,也是测试有问题,另外我还发现,加不加上拉电阻对结果没有影响,也是奇了怪了了,没有上拉也能正常工作



ayb_ice 发表于 2020-1-13 09:24 | 显示全部楼层
温度正常应该差不了,我一般忽略CRC
 楼主| oolong 发表于 2020-1-13 09:30 | 显示全部楼层
ayb_ice 发表于 2020-1-13 09:24
温度正常应该差不了,我一般忽略CRC

自己瞎玩,做些小玩意,忽略倒也无所谓。而且一条线挂多个DS18B20也能正确识别和读取,看在价格的份上,只能选择忽略了
ayb_ice 发表于 2020-1-13 09:43 | 显示全部楼层
oolong 发表于 2020-1-13 09:30
自己瞎玩,做些小玩意,忽略倒也无所谓。而且一条线挂多个DS18B20也能正确识别和读取,看在价格的份上, ...

这东西假的确实比较多,
想当年这个东西价格很贵的时候,遇到过假的,什么都正常,就是温度不变,
你这个厚道多了,至少关键东西是真的
chongdongchen 发表于 2020-1-13 09:46 | 显示全部楼层
读取温度没问题并不代表时序没问题。
用示波器观察波形,对照官方时序图,各个细节都对上了才能说时序已经没问题了。遇到问题了不要怕麻烦,核对一下没几分钟的事。
 楼主| oolong 发表于 2020-1-13 10:16 | 显示全部楼层
chongdongchen 发表于 2020-1-13 09:46
读取温度没问题并不代表时序没问题。
用示波器观察波形,对照官方时序图,各个细节都对上了才能说时序已经 ...

特地买了逻辑分析仪,但是我觉得二叉树搜索rom、匹配rom、跳过、读取、开启转换、设置精度,这些操作都测试通过的时序,不应该有问题,而且每次转换都预留了800ms的时间给设备
gx_huang 发表于 2020-1-13 10:42 | 显示全部楼层
大概率是时序问题了,没有上拉,也许MCU内部有上拉。
如果你没有示波器只有逻辑分析仪,就不要说时序没有问题,人不能太自负。
一切以示波器测试的波形为准,当然示波器的波形也许也有误差,关键要有足够的余量。
chongdongchen 发表于 2020-1-13 10:47 | 显示全部楼层
oolong 发表于 2020-1-13 10:16
特地买了逻辑分析仪,但是我觉得二叉树搜索rom、匹配rom、跳过、读取、开启转换、设置精度,这些操作都测 ...

你还是说了“觉得”两字,你觉得你的操作测试都通过了,“不应该有问题”。
我怀疑你时序有问题,你心里可能会有点点排斥。真相可能时序没问题,只是假货而已。
但这是我的经验分享,其他初学者也可以参考参考:
我第一次用18B20的时候,各种温度、ROM等等的“测试”都完美通过了。
后来换了一批便宜货,50%的ROM校验通不过!
像你一样,第一反应就是:这是批假货!
供应商提醒我检查时序,最后发现真是时序问题,就差1us而已,两批货都没问题!
 楼主| oolong 发表于 2020-1-13 11:16 | 显示全部楼层
chongdongchen 发表于 2020-1-13 10:47
你还是说了“觉得”两字,你觉得你的操作测试都通过了,“不应该有问题”。
我怀疑你时序有问题,你心里 ...

感谢分享!因为我手头的确是没有示波器,只有逻辑分析仪,晚上回去再仔细检查下时序,不过结果可能会是逻辑分析的精度(24MHz的DSLogic便宜货)不够也分析不出来。大佬们觉得淘宝上500多的 DSCope示波器靠谱吗?我是业余的兴趣爱好,也没必要买大几千的示波器
dalarang 发表于 2020-1-13 11:21 | 显示全部楼层
上拉电阻一定要加,用逻辑分析仪来确定时序,严格按照时序来做。
一般18B20的问题九成都是时序偏了。我以前也试过时序误差较大时换一批器件就会无法读,后来严格校对过时序后就完美解决。
gx_huang 发表于 2020-1-13 11:24 | 显示全部楼层
50M的示波器足够了,逻辑分析仪的高低电平和实际器件的高低电平不一样的,必须看RC充放电的波形才可以。
chongdongchen 发表于 2020-1-13 11:25 | 显示全部楼层
oolong 发表于 2020-1-13 11:16
感谢分享!因为我手头的确是没有示波器,只有逻辑分析仪,晚上回去再仔细检查下时序,不过结果可能会是逻 ...

示波器用不到就先别买,以后看好了再买。
逻辑分析仪确实看不到细节。
但可以仔细核对源程序,看看有没有哪个小细节遗漏了。
一定要仔细,因为这种问题一般就是一个小细节,容易忽略的那种。
arduino999 发表于 2020-1-13 13:13 | 显示全部楼层
采购的时候,还是正规的渠道比较好一些。
dayun2019 发表于 2020-1-13 16:44 | 显示全部楼层
买的假的的。这个原装进口价格在4块多这里。做了好几年芯片 。看价格就知道你买到假的了
fly1974 发表于 2020-1-13 16:59 | 显示全部楼层
CRC校验不对也能用,不过场合受限制。有些场合读取的温度CRC校验后没有异常的(长时间运行无CRC校验错情况),有些有小概率CRC校验错,有些场合大概率CRC校验错,CRC错误频繁时有较大概率读取到错误的温度数据,此时进行CRC校验是很有必要的。
 楼主| oolong 发表于 2020-1-13 17:46 | 显示全部楼层
dayun2019 发表于 2020-1-13 16:44
买的假的的。这个原装进口价格在4块多这里。做了好几年芯片 。看价格就知道你买到假的了 ...

是的,我觉得大概率我这一块多的是假的,不用CRC8校验也能读到温度,但是本着学习的目的,还是做下校验比较好,至于这一块钱的芯片,我驱动里增加个参数,可以不校验crc
QQ877789857 发表于 2020-1-15 18:25 | 显示全部楼层
DS18B20 亚洲区正轨订货渠道,可以找硅天下科技 样品 批量 开发板及算法都有
paotangsan 发表于 2020-2-4 19:12 | 显示全部楼层
这假的应该不大吧 这么便宜的东西
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

11

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部