打印
[STM32F1]

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

[复制链接]
1918|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
oolong|  楼主 | 2020-1-13 09:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 oolong 于 2020-1-13 09:20 编辑

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


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




但我手上还有一批散装的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也能正确识别和读取,看在价格的份上, ...

这东西假的确实比较多,
想当年这个东西价格很贵的时候,遇到过假的,什么都正常,就是温度不变,
你这个厚道多了,至少关键东西是真的

使用特权

评论回复
5
chongdongchen| | 2020-1-13 09:46 | 只看该作者
读取温度没问题并不代表时序没问题。
用示波器观察波形,对照官方时序图,各个细节都对上了才能说时序已经没问题了。遇到问题了不要怕麻烦,核对一下没几分钟的事。

使用特权

评论回复
6
oolong|  楼主 | 2020-1-13 10:16 | 只看该作者
chongdongchen 发表于 2020-1-13 09:46
读取温度没问题并不代表时序没问题。
用示波器观察波形,对照官方时序图,各个细节都对上了才能说时序已经 ...

特地买了逻辑分析仪,但是我觉得二叉树搜索rom、匹配rom、跳过、读取、开启转换、设置精度,这些操作都测试通过的时序,不应该有问题,而且每次转换都预留了800ms的时间给设备

使用特权

评论回复
7
gx_huang| | 2020-1-13 10:42 | 只看该作者
大概率是时序问题了,没有上拉,也许MCU内部有上拉。
如果你没有示波器只有逻辑分析仪,就不要说时序没有问题,人不能太自负。
一切以示波器测试的波形为准,当然示波器的波形也许也有误差,关键要有足够的余量。

使用特权

评论回复
8
chongdongchen| | 2020-1-13 10:47 | 只看该作者
oolong 发表于 2020-1-13 10:16
特地买了逻辑分析仪,但是我觉得二叉树搜索rom、匹配rom、跳过、读取、开启转换、设置精度,这些操作都测 ...

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

使用特权

评论回复
9
oolong|  楼主 | 2020-1-13 11:16 | 只看该作者
chongdongchen 发表于 2020-1-13 10:47
你还是说了“觉得”两字,你觉得你的操作测试都通过了,“不应该有问题”。
我怀疑你时序有问题,你心里 ...

感谢分享!因为我手头的确是没有示波器,只有逻辑分析仪,晚上回去再仔细检查下时序,不过结果可能会是逻辑分析的精度(24MHz的DSLogic便宜货)不够也分析不出来。大佬们觉得淘宝上500多的 DSCope示波器靠谱吗?我是业余的兴趣爱好,也没必要买大几千的示波器

使用特权

评论回复
10
dalarang| | 2020-1-13 11:21 | 只看该作者
上拉电阻一定要加,用逻辑分析仪来确定时序,严格按照时序来做。
一般18B20的问题九成都是时序偏了。我以前也试过时序误差较大时换一批器件就会无法读,后来严格校对过时序后就完美解决。

使用特权

评论回复
11
gx_huang| | 2020-1-13 11:24 | 只看该作者
50M的示波器足够了,逻辑分析仪的高低电平和实际器件的高低电平不一样的,必须看RC充放电的波形才可以。

使用特权

评论回复
12
chongdongchen| | 2020-1-13 11:25 | 只看该作者
oolong 发表于 2020-1-13 11:16
感谢分享!因为我手头的确是没有示波器,只有逻辑分析仪,晚上回去再仔细检查下时序,不过结果可能会是逻 ...

示波器用不到就先别买,以后看好了再买。
逻辑分析仪确实看不到细节。
但可以仔细核对源程序,看看有没有哪个小细节遗漏了。
一定要仔细,因为这种问题一般就是一个小细节,容易忽略的那种。

使用特权

评论回复
13
arduino999| | 2020-1-13 13:13 | 只看该作者
采购的时候,还是正规的渠道比较好一些。

使用特权

评论回复
14
dayun2019| | 2020-1-13 16:44 | 只看该作者
买的假的的。这个原装进口价格在4块多这里。做了好几年芯片 。看价格就知道你买到假的了

使用特权

评论回复
15
fly1974| | 2020-1-13 16:59 | 只看该作者
CRC校验不对也能用,不过场合受限制。有些场合读取的温度CRC校验后没有异常的(长时间运行无CRC校验错情况),有些有小概率CRC校验错,有些场合大概率CRC校验错,CRC错误频繁时有较大概率读取到错误的温度数据,此时进行CRC校验是很有必要的。

使用特权

评论回复
16
oolong|  楼主 | 2020-1-13 17:46 | 只看该作者
dayun2019 发表于 2020-1-13 16:44
买的假的的。这个原装进口价格在4块多这里。做了好几年芯片 。看价格就知道你买到假的了 ...

是的,我觉得大概率我这一块多的是假的,不用CRC8校验也能读到温度,但是本着学习的目的,还是做下校验比较好,至于这一块钱的芯片,我驱动里增加个参数,可以不校验crc

使用特权

评论回复
17
QQ877789857| | 2020-1-15 18:25 | 只看该作者
DS18B20 亚洲区正轨订货渠道,可以找硅天下科技 样品 批量 开发板及算法都有

使用特权

评论回复
18
paotangsan| | 2020-2-4 19:12 | 只看该作者
这假的应该不大吧 这么便宜的东西

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

11

帖子

0

粉丝