FT8213Q,使用模拟IIC通讯,一直没有应答

[复制链接]
2022|11
手机看帖
扫描二维码
随时随地手机跟帖
hclwj181|  楼主 | 2018-10-24 16:38 | 显示全部楼层 |阅读模式
     
       最近,接触到FT8213Q,使用模拟IIC与其通讯,结果写完之后,SDA一直为高,也就是没有应答。IIC从24c16上搬过来,已验证没问题,可是跟FT8213Q通讯,就一直无应答,读出的数据也一直为FF。话说这款芯片,资料好少,没有很实际的IIC波形图,使用说明上只说是标准的IIC,然后给个几个读写寄存器。求大侠么指点下,崩溃中

相关帖子

hclwj181|  楼主 | 2018-10-24 18:56 | 显示全部楼层
话说这款芯片连个手册都没有,只有个使用说明,使用说明上写的是标准IIC接口,可是试了下,除了发送0,有应答,发送其他都没有应答,SDA一直高。有没有哪位大虾,指点一二啊,急!!!!

使用特权

评论回复
tyw| | 2018-10-24 19:33 | 显示全部楼层
本帖最后由 tyw 于 2018-10-24 19:44 编辑
hclwj181 发表于 2018-10-24 18:56
话说这款芯片连个手册都没有,只有个使用说明,使用说明上写的是标准IIC接口,可是试了下,除了发送0,有应 ...

FT8213直流无刷马达驱动芯片的调试说明手册.pdf (1.45 MB)

使用特权

评论回复
Prry| | 2018-10-24 23:25 | 显示全部楼层
1、时序不对
2、从机地址不对,注意是否包含读写位。
通用模拟i2c:
https://blog.csdn.net/qq_20553613/article/details/78878211

使用特权

评论回复
hclwj181|  楼主 | 2018-10-25 08:45 | 显示全部楼层

你发的这个调试手册我有,不过没有那个调试软件和调试器,我现在使用STM32模拟IIC想来驱动它,可是除了发送0有应答,其它的都无应答,不知道哪里出了问题,IIC模拟时序是没问题的,应该用24c256可以正常读写,而EEROM也是标准的IIC。话说你用过这个芯片没,给个参考啊,资料太少了头都大了

使用特权

评论回复
hclwj181|  楼主 | 2018-10-25 08:52 | 显示全部楼层
Prry 发表于 2018-10-24 23:25
1、时序不对
2、从机地址不对,注意是否包含读写位。
通用模拟i2c:

IIC时序是对的,因为IIC的驱动程序是从AT24C256搬过来,AT24C256能够正常驱动。

使用特权

评论回复
tyw| | 2018-10-25 09:47 | 显示全部楼层
hclwj181 发表于 2018-10-25 08:45
你发的这个调试手册我有,不过没有那个调试软件和调试器,我现在使用STM32模拟IIC想来驱动它,可是除了发 ...

木玩过这芯片,IIC通信原理应该是一样,静心啃资料吧.建议去淘宝几十元弄只逻辑分析仪,可事半功倍.

Saleae 逻辑分析仪DIY 手册.pdf (667.18 KB)

使用特权

评论回复
hclwj181|  楼主 | 2018-10-25 10:13 | 显示全部楼层
这个基本上就是手册了

FU-AM-005_FT8213_I2C调速说明_V1.0.pdf

251.96 KB

使用特权

评论回复
hclwj181|  楼主 | 2018-10-25 10:16 | 显示全部楼层
tyw 发表于 2018-10-25 09:47
木玩过这芯片,IIC通信原理应该是一样,静心啃资料吧.建议去淘宝几十元弄只逻辑分析仪,可事半功倍.

IIC只要是标准的都是通用的,你说的这个很久以前用过,我也买过一个还可以,不过IIC时序问题应该不大,毕竟EEPROM at24c256也是标准的IIC,我用的模拟时序,IIC部分程序直接从以前工程里面搬过来的

使用特权

评论回复
Prry| | 2018-10-25 22:26 | 显示全部楼层
hclwj181 发表于 2018-10-25 08:52
IIC时序是对的,因为IIC的驱动程序是从AT24C256搬过来,AT24C256能够正常驱动。 ...

注意速率、上拉电阻。阻容匹配。

使用特权

评论回复
hclwj181|  楼主 | 2018-10-26 11:18 | 显示全部楼层
Prry 发表于 2018-10-25 22:26
注意速率、上拉电阻。阻容匹配。

能调速了,就是读出来的数据不对,下面是我的读数据的程序:
u8 FT8213_ReadOneByte(u16 ReadAddr)
{
        u8 temp=0;
    IIC_Start();     
        IIC_Send_Byte(FT8213ADDR);
        IIC_Wait_Ack();
   
        IIC_Start();                           
    IIC_Send_Byte(ReadAddr);
        IIC_Wait_Ack();

        IIC_Start();         
        IIC_Send_Byte(FT8213ADDR+1);
        IIC_Wait_Ack();
        temp=IIC_Read_Byte(0);                           
    IIC_Stop();   
        return temp;
}
速度寄存器高位和地位读出来的值一样,郁闷,资料又少这种芯片

使用特权

评论回复
hclwj181|  楼主 | 2018-10-26 13:37 | 显示全部楼层
已经搞定了,仔细查看代码发现读的那里多了个 IIC_Start();,去掉正常了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

72

主题

720

帖子

9

粉丝