【Launchpad 心得】launchpad eeprom reader
[复制链接]
手上的launchpad是一年前25元买的,一直没有玩,压箱底了。不是不想玩,在这里吐槽一下ti的MSP430x2xx FamilyUser's Guide,不同系列的ic都写在一块,像g2452要使用spi i2c只能用usi模块,到MSP430x2xx FamilyUser's Guide发现spi,i2c有独立模块,寄存器的名称也对不上,自己刚使用时就硬是没有明白,后来,到后来就慢慢习惯了呵呵。后来发现ti的例子太太太详细,基本上也不看datasheet,简单的程序对着例子改就ok了。ti的学习视频挺好的,我自己从头到尾看了两次,大大加深了对msp430了解。考试题一看,感觉完全跟视频内容无关吧,呵呵。胡乱填了几个答案。前几天,突然收到笔记本跟包包,很意外,在这里感谢ti跟eeword了。 介绍这个eeprom reader 是使用msp430g2452的usi模块的i2c接口,读eeprom然后通过timera模拟usat发送到电脑显示程序是支持24c01,24c02,到24c256,实际上只测试过24c02,24c64手上没有其他的eeprom。i2c是使用ti例子改的,使用中断方式。另外,g2452的ram太小了,只有256B,编译程序时就发生堆栈跟ram出现重叠的错误,将堆栈改小后编译通过了,仿真时又出现堆栈不够的警告,发现有些寄存器莫名被改了。想想可能是全局变量太多,于是老老实实优化程序,原来很多写好功能都删了,像用xmodem协议下载程序到eerpom这个功能改到我的eeprom writer这个项目里面去了.为了省ram,操作eeprom没有使用页写功能,只有byte write,读一次,只读16byte。 线路图连接: SCL->P1.6 SDA->P1.7 WP->GND A0,A1,A2->GND
操作过程: 我的eeprom是 24c64 然后选择6
如果想测试写入操作请去掉main函数的注释 //write test /* for(i=0;i<(ee_tab[device].size);i++) { j=i%16; EEPROM_ByteWrite(0x50, i,j); while(TI_USI_I2CBusy()); } */
由于水平有限代码只做简单测试,有错请指出。
|