我通过FPGA访问bq34z100-g1这个电池管理芯片,发送地址0xAA后,芯片没有响应ACK,反复多次后有一次响应,响应后向芯片发送CMD地址0x0A后,又没有了响应,仿真时序在附件中,麻烦各位看下是哪里出了问题?
Star Xu:
用EV2300和Battery Management Studio连线一下看能不能通讯呢
Hugo Zhang:
回复 Star Xu:
你用FPGA做I2C通讯时,当需要FPGA释放总线时,FPGA是输出高电平还是高阻态?
bo cheng:
回复 Hugo Zhang:
高阻态
Richard Tang:
回复 bo cheng:
请问你通讯的频率是多少?需要确认下脉冲是否符合通讯要求。
bo cheng:
回复 Richard Tang:
最小脉宽(高电平或低低电平)25us,所有信号频率小于大于芯片时钟周期要求(400kHz=25us)
bo cheng:
使用FPGA进行开发,该芯片在使用前需要进行什么配置么?现在我这里直接焊在PCB上就用fpga进行访问了。我看有很多都要用EV2300等工具配置,是不是一定要用这个工具?
Star Xu:
回复 bo cheng:
是的,CHEM_ID需要通过EV2300连接battery management stuido进行配对的。
Richard Tang:
回复 bo cheng:
你是直接采用I2C访问芯片的,这个不需要EV2300之类的,那个适配器主要用于上位机进行操作。
对于你的这个通讯问题,如果你能测量BQ34Z100的VCC管脚的2.5V没有问题,说明芯片是起来了。这个时候不能通讯可能主要是通讯时序或者波形的问题了。从你的时序来看,每次开始通讯之前,一定要有stop信号,你的波形每次NACK之后就直接发送start了,这个是不对的,需要先发送stop,然后有一个60us以上的间隔,然后才能尝试下一次通讯。