大家好、
我在电路中使用2个 bq76pl455A-Q1器件。 它们都位于同一 PCB 板上、并通过菊花链电路连接。 当我通过唤醒信号电压唤醒基板时、只有基板会被唤醒。 其他电路板不会被唤醒。
我们是否需要编写软件来唤醒另一个电路板?
请帮帮我。
谢谢
Ritul Shah
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.
大家好、
我在电路中使用2个 bq76pl455A-Q1器件。 它们都位于同一 PCB 板上、并通过菊花链电路连接。 当我通过唤醒信号电压唤醒基板时、只有基板会被唤醒。 其他电路板不会被唤醒。
我们是否需要编写软件来唤醒另一个电路板?
请帮帮我。
谢谢
Ritul Shah
尊敬的 Andy:
我已经尝试过提到的步骤。 这样、我就只能唤醒基板。 顶部板无法唤醒。
请在下面找到所附的原理图片段以供参考。 如果 IC 有问题、请告诉我。
谢谢
Ritul Shah
尊敬的 Andy:
感谢你的答复。
我在焊接方面遇到了一些问题、因此第二个 bq76pl455A-Q1无法唤醒。 我已经解决了这个问题、现在能够唤醒两个 IC。
接下来、我将执行自动寻址并尝试读取器件 ID。 我已将基板写入 ID = 0、将顶部板写入 ID = 1。 但基板和顶部板均读取为0。
因此、我认为我无法与顶部板通信。
请在下面查找我的代码以供参考。 请告诉我是否有任何错误或我遗漏的任何内容。
nDev_ID = 0;
nSent = WriteReg (nDev_ID、COMCONFIG、0x10E0、2、 FRMWRT_All_NR);//将通信波特率设置为250KB 波特
率 nSent = WriteReg (nDev_ID、DEV_CTRL、0x08、1、FRMWRT_All_NR);//自动地址启用
nSent = WriteReg (nDev_ID、DEV_CTRL、0x08、1、FRMWRT_All_NR);//自动地址使能
uint8_t wTemp、wTemp1;
//为
(nDev_ID = 0;nDev_ID < TOTALBOARDS;nDev_ID++)设置菊花链中所有板的地址
(第1.2.3节){
nSent = WriteReg (nDev_ID、ADDR、nDev_ID、nDev_ID、nHRT_1、mWFRNr); //向每个电路板发送地址
}
//读取器件 ID 以查看是否有响应
nDev_ID = 0;
nRead = ReadReg (nDev_ID、ADDR、&wTemp、1、 0);// 0ms 超时
printf ("设备 ID 0:%d\r\n"、wTemp);
nDev_ID = 1;
nRead = ReadReg (nDev_ID、ADDR、 &wTemp1、1、0);// 0ms 超时
printf ("设备 ID 1:%d\r\n"、wTemp1);
nDev_ID = 1;
nSent = WriteReg (nDev_ID、COMCONFIG、 0x1020、2、FRMWRT_SGL_NR);//针对顶部板仅启用通信低电平
nDev_ID = 0;
nSent = WriteReg (nDev_ID、COMCONFIG、0x10C0、2、 FRMWRT_SGL_NR);//在底板上启用通信高电平、单端通信端口