查看: 2616|回复: 0

NXP LPC1768宝马开发板 第十四章IIC---- EEPROM

[复制链接]

该用户从未签到

发表于 2015-2-3 10:27:34 | 显示全部楼层 |阅读模式
分享到:
本帖最后由 一座城 于 2015-2-3 10:42 编辑

第十四章  宝马1768——IIC---- EEPROM
开发环境:集成开发环境μVision4 IDE版本4.60.0.0
主机系统:Microsoft Windows XP
开发平台:旺宝NXP LPC1768开发板


14.1 EEPROM
14.2 硬件描述
14.3 程序说明
14.4  实验现象
1EEPROM
   I2C总线是有飞利浦开发的两线制串行总线接口,现在被广泛地应用在很多单片机和其它芯片上,比如我们很熟悉的EEPROM存储芯片AT24CxxMMA7455加速度传感器、pcf85563 RTC实时时钟芯片等都可以用I2C总线对其进行控制。
     LPC1768上集成了I2C0/1/2三个I2C接口。
2、硬件描述:
图片1.png
               宝马1768开发板EEPROM硬件连接图
3、程序说明:
LPC1768PIN25PIN24有三个功能。一个是GPIO引脚P0.27P0.28;一个是USB_SDA,USB_SCL作外部OTG收发器;还有一个就是I2C通信用的SDASCL。我们要选择这个引脚作为什么功能,就需要用到引脚功能选择寄存器PINSEL1
图片2.png
图片3.png
图片4.png
选择合适的I2C总线速率和占空比;
   软件必须通过对I2SCLHI2SCLL寄存器进行设置来选择合适的总线速率和占空比。I2SCLH定义SCL高电平所保持的PCLK_I2C周期数,I2SCLL定义SCL低电平的PCLK_I2C周期数。位频率由下面的公式得出
PCLK_I2C是外围总线APB的频率):
       图片5.png
因为我们要求在一定的PCLK_I2C时钟频率和I2C总线速率下通信,由此可得I2SCLHI2SCLL之和。假如PCLK_I2C50MHzI2C总线速率是100k
I2SCLHI2SCLL之和为500。在标准模式下,I2SCLHI2SCLL的值可以相同。
图片6.png
#define I2SCLH_SCLH                0x000000FA  // I2C SCL Duty Cycle High Reg
#define I2SCLL_SCLL                0x000000FA // I2C SCL Duty Cycle Low Reg
                                                                                  // 50MHz下传输速率大概是100k
图片7.png
图片8.png
图片9.png
    以上程序是在i2c.c文件中定义的,限于篇幅,我们不一一贴出来。要实现读写AT24C02,要根据AT24C02的读写时序写好读写函数,读者可打开i2c.c文件浏览。
图片10.png
图片11.png
主函数实现原理:
    向AT24C020x00地址写入8个数据,然后再从该地址读出来,以验证是否能正确读写数据。
4、实验现象:
    程序编译无误后,即可进入Debug模式来验证我们写进去的数据和读出来的数据是否一致。
图片12.png


【14】宝马1768_EEPROM(2014.05.10).rar (79.82 KB, 下载次数: 11)
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条



手机版|小黑屋|与非网

GMT+8, 2024-11-22 13:58 , Processed in 0.128795 second(s), 16 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.