尊敬的技术人员:您好!
现目前我使用的BQ79631-Q1与单片机通信,从机只有一个该设备。通讯采用的是串口,单片机输出的串口波特率为1M、采用的是8-N-1的协议。使用的是自己画的板,各方面供电都正常
现目前的情况是:
我在程序中的初始化代码里首先将MCU侧的TX引脚拉低了2.5ms(WAKE_PING),随后延时了11ms,随后按照软件参考指南进行了一遍自动寻址(广播写和广播读)的步骤在每次封装通信帧(
WriteReg 函数)之后延时了1ms(想法是等待芯片稳定)),接着就发送了配置ADC_CTRL相关的命令帧。
在主函数while循环中一直发送: 1、写REF的启用TSREF LDO输出的功能,【90 00 03 0A 01 D3 7D】
2、延时100ms,
3、读REF的启用TSREF LDO输出的功能,[80 00 03 0A 01 12 8E ]
。但输出的从设备(BQ79631)的TX无数据,TSREF引脚出的电压值为0;
我的问题是:
1、判断芯片是否进入到ACTIVE MODE 就是根据AVCC和DVCC的电平来确认吗?
2、唤醒序列是否在初始化的时候给一次就可以了?现目前每次主循环中的每次发送写和读之前都给一个WAKE_PING,查询到AVDD和CVDD的值都为5V的高电平。但如果没有持续给,电平值为0
3、如果只使用一个设备,我是否可以忽略自动寻址的步骤,如果不能忽略,那应该广播读写还是用单器件读写指令?
4、如果只使用一个设备,它的默认器件地址是0x00吗?
5、请问这个流程是一个完整的通讯流程吗?
5、在与它通信中,我是否遗漏了什么细节吗?比如说MCU发出的信号,如何来判断它是否接收到了我的讯号并进行了响应。
期待您的答复,
感谢!