【赚周年币】技术帖Week2-Day2——LPC824 Lite之九、EEPROM
#线上活动
2930 人阅读
|
0 人回复
|
2017-01-09
TA的每日心情 | 开心 10 小时前 |
|---|
签到天数: 4273 天 连续签到: 2 天 [LV.Master]伴坛终老
司徒
- 积分
- 49099
    

|
|
本帖最后由 toofree 于 2017-1-17 23:38 编辑
【赚周年币】技术帖Week2-Day3——LPC824 Lite之九、EEPROM
介于LPC824 Breakout 板上没有集成I2C EEPROM芯片,本贴用LPC824 Lite来实验。
使用YL-LPC824光盘资料.rar中程序模板。程序在哪下载,不就多说了吧。论坛上有,在LPC824 Lite盒子上也有网址。
板上集成EEPROM芯片型号 AT24C02CM ,关键参数,在下图中圈出。不要只看原理图,实际板上焊的芯片是这颗C系列,不是B的。
容量256x8,即256字节;
1.7V支持400KHz波特率,2.5V、2.7V、5V最大适用1MHz波特率;
8字节页写模式;(一个页是8字节,超过8字节就跨页了,不重新指定页地址的话,仍会在本页循环。)
自定时5ms最大。(这个5ms非常重要。前一个写停止,到下一个写开始,必须有足够长的时间,这个时间理论最大值5ms;实际芯片可能比5ms要小,但是延时5ms是最保险的做法。)
I2C时序,这里不做解释,AT24C02手册中有。
先跑个程序试试。打开工程“YL-LPC824光盘资料\SDK\peri_example\i2c\i2cm_eeprom\project_i2cm_eeprom.uvoptx”。
直接编译,生成“i2cm_eeprom.bin”文件。把这个文件,直接拖到LPC824 Lite板卡在本地自建的MBED 模拟盘中,直到“i2cm_eeprom.bin”文件自动消失,表示程序下载成功。
点仿真按钮,或CTRL+F5,进入仿真状态。
在第264行处,设置断点,并把wrBuf、rdBuf添加到memory观察窗口。
按F5全速跑程序,直到在断点处停止。对比,wrBuf、rdBuf的内容完全一致,变量testFail值为0,表示校验一致,读写测试成功。
但是测试程序,只测试了240个单元。我们为何不把它全部测试呢,一共就256个字节,总不会有什么问题吧。那么修改一下程序,接着测试。
将BUF_SIZE改为256。
编译下载程序,依然是运行仿真。很不幸,测试失败。testFail值为1,rdBuf无内容。
程序做了小改动,写的时候,wrBuf = i;读取的时候,按字节全部读回。这次校验成功,
这次校验成功,那么256字节全读写失败,可能就出在读函数上。查看代码,读字节数的参数类型竟然是uint8_t,uint8_t,uint8_t,重要的事情说三遍,我叻个去。
人家原函数,本来就是uint16_t类型的,非要封一层改成uint8_t。
果断改回来,改成uint16_t。
再次测试,校验通过。噢了!!!修改Bug一处,主程序打外包传上来。
|
评分
-
查看全部评分
|
|
|
|
|
|
|
|