MSP430 EEPROM-24C512使用总结及代码说明.pdf
文本预览下载声明
EEPROM:AT24C512
24C512是Atmel公司生产的64KB串行电可擦除可编程存储器(EEPROM)。
24C512 内部有512K位(bit)共64K字节,分为512页(Page),每页128字节,
地址为16位,范围为0000~FFFFH 。采用8引脚DIP封装,通过2个地址引脚可以
在总线上并联4片24C512 。
编号 引脚 功能
1 A0 地址输入,用来区分芯片,一般接地
即可,悬空为地址0
2 A1
3 NC 未使用
4 GND 电源地
5 SDA 串行数据输入输出
6 SCL 串行时钟输入
7 WP 写保护,高电平写保护,悬空接地
8 VCC 可接5v、2.7v、1.8v三种电压
24C512典型连接方式
A0,A1接地:地址为0 。多片24C512需要通过高低电平设置不同的地址。
WP接地为可读写,当然,WP也可以通过跳线或软件控。
VCC为5.0v、2.7v、1.8v三种之一,芯片自适应。电压越高,工作频率越高。
SCL,SDA一般接单片机I/O 口,由于SDA是漏极开路的,需要接上拉电阻,当然你的I/O带上拉就不用接了。
24C512的驱动方式(一)
24C512使用I2C总线驱动方式。因此,它遵守I2C的协议规范。I2C中有7种基本操
作: 1、发送起始信号;2、发送结束信号;3、发送应答信号;4 、总线无应答;
5、接收并检测应答信号;6、发送1字节数据;7、接收1字节数据
关于I2C的具体原理及说明详见 《I2C总结》。
以下是每种I2C操作的具体代码:I2C.c
0-1、准备工作:包含头文件和数据类型定义
#ifndef __msp430x14x //包含msp430x14x.h
#include msp430x14x.h
#endif
#define __i2c //文件标志符
#define I2C_DIR P5DIR //I2C芯片的输入输出切换,这里使用P5端口,用户可根据具体实际情况修改端口寄存器即可
#define I2C_OUT P5OUT //I2C芯片的输出
#define I2C_IN P5IN //I2C芯片的输入
#define SDA BIT1 //数据位,P5.1
#define SCL BIT2 //时钟位,P5.2
#ifndef uchar //定义数据类型
#define uchar unsigned char //uchar
#endif
#ifndef uint //uint
#define uint unsigned int
#endif
0-2、准备工作:延迟函数
void I2C_delay(void)
{
_NOP(); //本函数在MSP430F149,8MHz/8分频主频下通过验证
_NOP(); //用户可以根据所用430单片机具体的性能适当调整延迟时长
}
//毫秒级延迟,stop信号后的长延迟
void I2C_delay_ms(uint ms)
{
显示全部