您好,
我Single Device Read/Write和器件B0通信时,我用的Device Address 是1,按照手册Device Address应该是0,这个该怎么解决,会是导致后面器件无法通信的原因吗?自动寻址流程是否需要改动?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好,
已经收到了您的案例,调查需要些时间,感谢您的耐心等待。
您好,
我认为自动寻址过程会有一些问题。
假设您可以对地址为01的器件进行单次读取/写入。 我想 B0器件是 BQ79616、而不是 BQ79600。
您可以按照 BQ79616数据表中的表格进行操作。
您还可以从以下链接申请示例代码。
https://www.ti.com/secureresources/BQ7X61X-Q1-DEVELOPMENT
您好,
自动寻址过程很好。 我想 S1有一些错误(第二616 ).
616的默认地址是01。 在自动寻址前、当单次读取 B0时没有响应是正常情况。 单次读取 S1时有响应是正常的。
寻址后、第一个616的地址更改为00。 所以单次读取 S0时会有一个响应、这是正常情况。
因为 S1有一些错误、单次读取 S1无响应。 由于将 S1设置为栈顶失败、因此栈读取和广播读取将无响应。
可能1:S1 (第二616)未通电。 检查 BAT 引脚> 18V、NPNB>5V、LDOIN>5V、CVDD>4.5V
可能2:S1 (第二616)不会被唤醒。 检查 AVDD 引脚= 5V。
可能性3:菊花链通信硬件电路存在问题。
B0的 COMHP 应连接到 S1的 COMLP。
B0的 COMHN 应连接到 S1的 COMLN。
BQ79616的Wake Ping最大2.5ms和BQ79600不一样。建议改成2.3ms。
BQ79616做BASE, 只需要wake ping一次(BQ79600 需要两次wake ping)。发完Wake Ping 要等12ms*Num(AFE数量),等待所有AFE都唤醒后再发下一个指令或者Ping。
看数据第二个AFE S1没有答复。三种可能的原因Lydia已经答复,这个三个可能性都测过了吗?
我建议你把原理图和逻辑分析仪的原始数据发我。把后缀名改成docx,我下载后再改回去。
其他建议如下:
1. VC通道耐压80V,不需要TVS. TVS质量差有漏电的话在100R的压降还会影响精度。建议把TVS放在连接器,或者CB通道之间。
2. VC和CB之间的电容,手册推荐470nF
3. 手册要求最高CB和BAT之间要有470nF电容
4. 手册要求CB0和GND之间要有470nF电容
5. NPNB和三极管基极直连不能加电阻
6. 供电线要采样线分开,否则AFE工作电流在线束上的压降会影响最高串的电压。
7. GND 和 CELL0 不能连在一起。原因和6一样。
看下这两个寄存器。比如你想通讯中断后1min后,616 进入shutdown。可以将0x0019设置成0b00001100.
寄存器的值掉电后会丢失,每次上电都要配置。
手册9.3.6.3.2 OTP Programming
配置好寄存器后,使用OTP把寄存器的值固化下来,掉电后不会丢失。即使误唤醒, MCU没有配置,timeout也是使能的。
0x701写了0x16后,UART波特率就是250kHz了,MCU的UART也要改成250k才能通讯。BQ79616不建议更改波特率,所有客户都是用默认的1M UART通讯的。