打印
[Kinetis]

M4开发:I2C的使用

[复制链接]
902|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Micachl|  楼主 | 2016-1-24 19:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
I2C接口是一种很常用的串行总线接口,特别是在一些数字传感器的采集应用中使用起来非常常见,在许多单片机中都有I2C的控制器,先来说说I2C的一些主要特性吧!
1.串行两线通信,即一时钟线,一数据线
2.主从通信模式
3.标准模式下通信速率可以达到100kbps,快速模式的通信速率可以达到400kbps
在FRDM-K64中3D加速度传感器FX8700CQ正好通过I2C连接MCU,FX8700CQ这款单片机支持SPI,I2C两种数传模式通信,不过用的比较多的还是I2C。
先来看看原理图上使用的哪个I2C接口

连接的是单片机的PTE24和PTE25

如图,PTE24做SCL时钟线,PTE25做数据线,如果是使用超核固件库的话,初始化固件库相对来说比较简单
I2C_QuickInit(I2C0_SCL_PE24_SDA_PE25, 1000);
这样就完成了I2C的初始化操作,接下来就是芯片地址,操作芯片的寄存器地址,芯片地址已经给出,在原理图上
[img]file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\123421514\QQ\WinTemp\RichOle\3MSOAKY2}[2MO$B0XR$NRIK.png[/img]


相关帖子

沙发
Micachl|  楼主 | 2016-1-24 19:51 | 只看该作者
从原理图上看到,芯片地址是0x1D,芯片的IO口SA0,SA1是设置芯片地址的,找到芯片地址之后可以读一个寄存器测试一下,这款
芯片有一个设备ID的,先看设备ID的寄存器

读一下这个寄存器看看是否如文档写的ID值0x0E,
I2C_ReadSingleRegister(HW_I2C0, 0x1d, 0x0d, &i2c_devval);
logmsg("FXOS8700CQ device ID: %d\r\n", i2c_devval);

看看串口的打印信息:

跟数据手册上面的值一样:C7,这样子就可以确定I2C上没有太多的问题了。

使用特权

评论回复
板凳
mleisure| | 2016-1-28 09:21 | 只看该作者
你好,请问你熟悉imx53吗

使用特权

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

本版积分规则

43

主题

300

帖子

1

粉丝