ft5x06驱动

frogcoder 2013-02-01 09:25:46
这几天在调ft5x06,刚开始wake线没有拉高,导致I2C设备一直不能响应!!网上的代码也有点坑爹!

现在用了BSP自带的检测函数,可以判断I2C设备有ACK回来。问题就是,我去读I2C设备,读回来的居然是我发出去的I2C设备寄存器的地址。希望大大在准备年货的百忙之中抽空解决一下!!!!
...全文
1753 13 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
frogcoder 2013-02-18
引用 12 楼 coder_jack 的回复:
引用 11 楼 fjlhlonng 的回复:引用 10 楼 coder_jack 的回复:"读回来的居然是我发出去的I2C设备寄存器的地址。" 先不管硬件是不是有反应,你的这个现象只有一种可能:你的读写操作函数本身就是错的! 代码我已经参考了很多了,所有的读写都是BSP自带的函数。 直接调用i2c_transfer 函数吧。
有空么,帮我看看代码有没问题?
  • 打赏
  • 举报
回复
风中之哨 2013-02-14
引用 11 楼 fjlhlonng 的回复:
引用 10 楼 coder_jack 的回复:"读回来的居然是我发出去的I2C设备寄存器的地址。" 先不管硬件是不是有反应,你的这个现象只有一种可能:你的读写操作函数本身就是错的! 代码我已经参考了很多了,所有的读写都是BSP自带的函数。
直接调用i2c_transfer 函数吧。
  • 打赏
  • 举报
回复
frogcoder 2013-02-12
引用 10 楼 coder_jack 的回复:
"读回来的居然是我发出去的I2C设备寄存器的地址。" 先不管硬件是不是有反应,你的这个现象只有一种可能:你的读写操作函数本身就是错的!
代码我已经参考了很多了,所有的读写都是BSP自带的函数。
  • 打赏
  • 举报
回复
风中之哨 2013-02-06
"读回来的居然是我发出去的I2C设备寄存器的地址。" 先不管硬件是不是有反应,你的这个现象只有一种可能:你的读写操作函数本身就是错的!
  • 打赏
  • 举报
回复
HuaiShuShuV 2013-02-04
引用 楼主 fjlhlonng 的回复:
这几天在调ft5x06,刚开始wake线没有拉高,导致I2C设备一直不能响应!!网上的代码也有点坑爹! 现在用了BSP自带的检测函数,可以判断I2C设备有ACK回来。问题就是,我去读I2C设备,读回来的居然是我发出去的I2C设备寄存器的地址。希望大大在准备年货的百忙之中抽空解决一下!!!! ……
你这QQ群里面问过我这个问题了。呵呵。 我再分析一下: 首先 你得保证器件上电正确,I2C工作正常。 看你描述的是I2C获取的值不正确 这原因有3: 1:器件上电不正确,导致工作不正常。你可以按照手册对比上电、reset时序。 2:I2C通讯的问题,这个你最好用示波器测量,不信任BSP函数。 3:你访问I2C的规则对吗?有些是 器件地址==》寄存器地址==》获取值,而有的是 器件地址==》寄存器地址,然后再:器件地址==》获取值。 希望我的分析对你解决问题有帮助。 如果上电正确、I2C工作正确、器件正常的话 是完全可以正常使用FT5X06的。 我在高通手机平台调试过FT5X06。
  • 打赏
  • 举报
回复
HuaiShuShuV 2013-02-04
引用 8 楼 fjlhlonng 的回复:
引用 2 楼 HuaiShuShuV 的回复:引用 楼主 fjlhlonng 的回复:这几天在调ft5x06,刚开始wake线没有拉高,导致I2C设备一直不能响应!!网上的代码也有点坑爹! 现在用了BSP自带的检测函数,可以判断I2C设备有ACK回来。问题就是,我去读I2C设备,读回来的居然是我发出去的I2C设备寄存器的地址。希望大大在准备年货的百忙之中抽空解决一下……
兄弟,用示波器测试。
  • 打赏
  • 举报
回复
frogcoder 2013-02-04
引用 2 楼 HuaiShuShuV 的回复:
引用 楼主 fjlhlonng 的回复:这几天在调ft5x06,刚开始wake线没有拉高,导致I2C设备一直不能响应!!网上的代码也有点坑爹! 现在用了BSP自带的检测函数,可以判断I2C设备有ACK回来。问题就是,我去读I2C设备,读回来的居然是我发出去的I2C设备寄存器的地址。希望大大在准备年货的百忙之中抽空解决一下!!!! ……
器件的上电时序datasheet上没有,RST引脚我是先拉低100ms,然后拉高100ms。接着WAKE引脚,拉低100ms之后拉高100ms,这个时候去读写i2cslave不会出现-6的错误,(我用了BSP自带的检测地址是否有效的函数i2c-default-probe)而是有ACK回来的。但是就是读不到正确的寄存器值,读回来的都是发出去的寄存器地址!!!
  • 打赏
  • 举报
回复
Panda_熊猫 2013-02-04
引用 6 楼 HuaiShuShuV 的回复:
引用 5 楼 zlgkaixin68 的回复: 引用 4 楼 HuaiShuShuV 的回复:引用 3 楼 zlgkaixin68 的回复: 引用 2 楼 HuaiShuShuV 的回复:引用 楼主 fjlhlonng 的回复: 这几天在调ft5x06,刚开始wake线没有拉高,导致I2C设备一直不能响应!!网上的代码也有点坑爹! 现在用了BSP自带的检测函数,可以判断I2C设备有AC……
多谢!
  • 打赏
  • 举报
回复
HuaiShuShuV 2013-02-04
引用 5 楼 zlgkaixin68 的回复:
引用 4 楼 HuaiShuShuV 的回复:引用 3 楼 zlgkaixin68 的回复: 引用 2 楼 HuaiShuShuV 的回复:引用 楼主 fjlhlonng 的回复: 这几天在调ft5x06,刚开始wake线没有拉高,导致I2C设备一直不能响应!!网上的代码也有点坑爹! 现在用了BSP自带的检测函数,可以判断I2C设备有ACK回来。问题就是,我去读……
调用probe之前,是要通过match函数检查 设备和驱动的name是否一致,如果一致的话才会调用probe。 如果他急缺人,你这样回答是可以入职的。 如果他不是急缺人他再问你两个问题你都答上他也不会让你入职的。 找工作、三分实力七分运气。
  • 打赏
  • 举报
回复
Panda_熊猫 2013-02-04
引用 4 楼 HuaiShuShuV 的回复:
引用 3 楼 zlgkaixin68 的回复: 引用 2 楼 HuaiShuShuV 的回复:引用 楼主 fjlhlonng 的回复: 这几天在调ft5x06,刚开始wake线没有拉高,导致I2C设备一直不能响应!!网上的代码也有点坑爹! 现在用了BSP自带的检测函数,可以判断I2C设备有ACK回来。问题就是,我去读I2C设备,读回来的居然是我发出去的I2C设备寄存器的地址。希望大大在准……
谢谢了。 我也是那么答的,然后他就问我,调用driver的probe之前的probe详细过程。 然后,他只问了我上面的那一个问题,是不是没戏? 是不是觉得没必要问下去了? 大牛,面试驱动是不是问的很多?都问些啥?
  • 打赏
  • 举报
回复
HuaiShuShuV 2013-02-04
引用 3 楼 zlgkaixin68 的回复:
引用 2 楼 HuaiShuShuV 的回复:引用 楼主 fjlhlonng 的回复: 这几天在调ft5x06,刚开始wake线没有拉高,导致I2C设备一直不能响应!!网上的代码也有点坑爹! 现在用了BSP自带的检测函数,可以判断I2C设备有ACK回来。问题就是,我去读I2C设备,读回来的居然是我发出去的I2C设备寄存器的地址。希望大大在准备年货的百忙之中抽空解决……
你告诉面试官: 在调用driver里面的probe函数的时候会失败(因为去读写I2C的时候会找不到地址)。
  • 打赏
  • 举报
回复
Panda_熊猫 2013-02-04
引用 2 楼 HuaiShuShuV 的回复:
引用 楼主 fjlhlonng 的回复: 这几天在调ft5x06,刚开始wake线没有拉高,导致I2C设备一直不能响应!!网上的代码也有点坑爹! 现在用了BSP自带的检测函数,可以判断I2C设备有ACK回来。问题就是,我去读I2C设备,读回来的居然是我发出去的I2C设备寄存器的地址。希望大大在准备年货的百忙之中抽空解决一下!!!! ……
请教一个面试题, 比如,i2c 设备 和 driver驱动都注册了,也匹配成功了, 但是板子上,该设备不存在,会出现什么情况? 能给我一个提示,或者是思路之类的,方法吗? 谢谢哦
  • 打赏
  • 举报
回复
guocaigao 2013-02-03
用示波器抓个波形出来,看你发的设备地址和寄存器地址是否对。这东西很简单就一个电源,一个reset,然后就用I2C读写就可以了。硬件没问题的话多半是你的读写函数有问题。
  • 打赏
  • 举报
回复
发帖
驱动开发/核心开发

2.1w+

社区成员

硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
帖子事件
创建了帖子
2013-02-01 09:25
社区公告
暂无公告