[問題] BQ40Z80 SMBus通訊問題
各位前輩好,小弟目前有需求用TI BQ40Z80做為電源管理系統,然後用stm32 MCU來讀取
電池的資訊,由於BQ40Z80是走SMBus通訊協定
上網爬文發現STM32硬體上支援SMBus是乎有問題,大部份文章都是說明用軟體方式模擬
SMBus時序來讀取,於是便參考其方式撰寫軔體,程式碼如下
u8 bq40z80_Get_voltage(u8 address,char* buff)
{
SMbus_Start();
SMbus_Send_Byte(0x16);
GPIO_SetBits(GPIOB,GPIO_Pin_11); // SDA_H
SMbus_Wait_Ack();
SMbus_Send_Byte(0x09);
GPIO_SetBits(GPIOB,GPIO_Pin_11); // SDA_H
Delay_us(80);
SMbus_Wait_Ack();
SMbus_Start();
SMbus_Send_Byte(0x17);
GPIO_SetBits(GPIOB,GPIO_Pin_11); // SDA_H
SMbus_Wait_Ack();
*(buff+0) = SMbus_Read_Byte(1);
*(buff+1) = SMbus_Read_Byte(1);
*(buff+2) = SMbus_Read_Byte(1);
SMbus_Stop();
}
在測試過程中傳送Device Addresshoo和ComCode BQ40Z80EVM開發板都有回ACK,但是最後
資料回傳都是0,小弟一直無法解決此問題,是否能有高手能幫忙小弟,非常感謝!
https://imgur.com/CTAgU5i
MSP430回傳
https://imgur.com/iQWYk3C
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.216.36.13 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1610530174.A.01A.html
※ 編輯: nc23nick (61.216.36.13 臺灣), 01/13/2021 17:33:12
推
01/14 00:17,
3年前
, 1F
01/14 00:17, 1F
→
01/14 11:59,
3年前
, 2F
01/14 11:59, 2F
→
01/14 12:04,
3年前
, 3F
01/14 12:04, 3F
→
01/14 12:05,
3年前
, 4F
01/14 12:05, 4F
※ 編輯: nc23nick (61.216.36.13 臺灣), 01/14/2021 12:08:26
推
01/14 13:34,
3年前
, 5F
01/14 13:34, 5F
→
01/21 11:09,
3年前
, 6F
01/21 11:09, 6F
→
01/25 09:30,
3年前
, 7F
01/25 09:30, 7F
→
01/25 09:31,
3年前
, 8F
01/25 09:31, 8F
→
01/25 09:31,
3年前
, 9F
01/25 09:31, 9F
ASM 近期熱門文章
PTT數位生活區 即時熱門文章