[电源] HDQ协议

[复制链接]
7396|10
 楼主| playboy8877 发表于 2012-6-19 09:12 | 显示全部楼层 |阅读模式
我在学习hdq协议,在用bq26500读的时候为什么读出来的都是FF?
以下是我的读的程序
unsigned char read_hdq(unsigned char addr)
{
unsigned int i,j=0;
unsigned char out=0;
   
   HDQBreak();
    HDQ_SETOUT;
   write_byte(addr|0x7F);
   delay_us(300);
   HDQ_SETIN;//读取数据
   for(i=0;i<8;i++)
   {
   delay_us(90);
   if(P3IN&BIT0) out|=0x80;
   if(i<7) out=out>>1;
   delay_us(100);
   }
   return out;
}
一两研发 发表于 2012-6-19 11:37 | 显示全部楼层
由于HDQ通信是靠高低电平的时间宽度来代表0和1,对时序要求高,通信过程要将中断关闭,防止被打断引起时序错乱导致通信出错。
一两研发 发表于 2012-6-19 11:37 | 显示全部楼层
你用什么做的,是用fpga还是普通单片机的gpio模拟的

注意不要使用中断,还有用示波器看看你发的波形时序,是否正确
 楼主| playboy8877 发表于 2012-6-19 18:36 | 显示全部楼层
3# 一两研发
我用430了做的。没有用中断也没有用GPIO。。。。
无极邪灵 发表于 2012-11-27 11:33 | 显示全部楼层
楼主问题解决了么?如何解决的?我的一直读出0呢?
1# playboy8877
wrigleymint 发表于 2012-11-27 17:12 | 显示全部楼层
无极邪灵 发表于 2012-12-3 11:50 | 显示全部楼层
没有愿意指点的吗?不要这么保留啊,大侠们
无极邪灵 发表于 2012-12-5 11:25 | 显示全部楼层
hawksabre 发表于 2012-12-5 19:16 | 显示全部楼层
帮你顶一个   呵呵    多多努力   希望有高人冒泡   
无极邪灵 发表于 2012-12-10 15:49 | 显示全部楼层
我用的是DSP  5509A的GPIO模拟HDQ与BQ26220通信,为什么只能读出高4位啊,纠结
江枫渔火 发表于 2012-12-11 14:32 | 显示全部楼层
不用多想,肯定时序问题。仔细对照手册玩。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

4

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部