分享

【新提醒】基于STM32F0驱动BQ40Z50电源管理芯片

 笑在書域 2020-10-25
 本帖最后由 yaosongjin 于 2020-9-4 12:01 编辑

最近用到BQ40Z50芯片,这个片子是走的SMBUS协议,与IIC协议类似,本以为很容易,把平台搭好后,发送命令没有响应,然后在网上找相关内容,找了几个程序移植过来都不能用,示波器和逻辑分析仪全都用上了,发命令的波形也是对的就是没有正常的响应,调试了3天都没有结果,正准备换个平台来测试的时候发现,等待应答的时候正常的波形是有一段长延时,试着在等待应答函数中加入了长延时后,通讯终于正常了,现将调试正常的程序分享出来,有需要的可以下载去用。
// Read_BQ40Z50_Data
uint16_t Read_BQ40Z50_Data(uint8_t Reg)
{
        uint16_t data=0,data1=0;
        IIC_Start();                    //发送起始信号
        Write_IIC_Byte(BQ40Z50_ADDR);          //发送器件地址写操作
        IIC_Wait_Ack();        
        
        Write_IIC_Byte(Reg);                              //发送寄存器地址
        IIC_Wait_Ack();        
        
        IIC_Start();
        Write_IIC_Byte(BQ40Z50_ADDR+1); //发送器件地址读操作
        IIC_Wait_Ack();        
        
        data = Read_IIC_Byte(1);        //读完第一个字节后发送应答信号
        
        data1 = Read_IIC_Byte(0);       //读完最后一个字节后发送非应答信号
        
        IIC_Stop();                     //发送停止信号
        
        data=data|data1<<8;
        return data;
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多