I2C EEPROM接口测试

合集下载

实验三 I2C总线串行E2PROM 24C02A实验

实验三  I2C总线串行E2PROM 24C02A实验

实验三I2C总线串行E2PROM 24C02A实验一、实验目的与要求了解I2C总线读写方式;掌握I2C总线的读写操作和对24C02A进行数据读写二、实验设备STAR系列实验仪一套、PC机一台。

三、实验内容1、24C02A:(1) 24C02是I2C总线(二线串行接口)的串行EEPROM,容量4K Bit。

(2)分为字节写和页写(8字节)模式,可以单字节读取或连续读出数据。

2.实验过程(1)写满24C02A内部整个4K bit串行EEPROM,然后检验写入数据是否正确并显示结果,正确;点亮8个红色发光管(G6区),错误;熄灭8个红色发光管(2)起始写入地址为OOH,起始写入数据为OOH,之后地址与数据都以+l递增,直到写满整个EEPROM四、实验原理图五、实验步骤1、主机连线说明;;E4区;SDA —l A3区;P3.2(INTO)iE4区;SCL 一;A3区;P3.3(INTl)!G6区;JP65 一A3区;JP51 (Pl)2、运行程序;向24C02A写入数据,然后读出数据检验,检验正确,8个发光管(G6区)全亮;检验错误,8个发光管(G6医)全灭六、演示程序(完整程序见目录24C02A);l、24C02A子程序(24C02A. ASM)SDA BIT P3.2 ;数据传输口SCL BIT P3.3 ;时钟;24C02的片选地址;100HA24C02_WRITE EQU OA8H ;写指令A24C02_READ EQU OA9H ;读指令;初始化A24C02_INIT;SETB SCL ;将SCL,SDA置位,释放IIC总线SETB SDARET;写操作,分字节写和页写模式;字节写,一次写入一个字节数据,A-写入地址,B-数据Write_Byte;PUSH ACC ;A中地址压栈MOV A,#A24C02_WRITE ;写操作指令LCALL Start ;开始信号LCALL Write_8bits ;写入8位数据LCALL Acknowledge ;查询接收端应答信号POP ACC ;写入A中地址LCALL Write_8bitsLCALL AcknowledgeMOV A,B ;写入B中数据LCALL Write_8bitsLCALL AcknowledgeLCALL Stop ;结束信号LCALL AckPolling ;等待写操作完成RET;页写,一次写入8个字节数据,A中存放起始写入地址,RO中存放数据首地址Write_Page: PUSH 07HMOV R7, #8PUSH ACC ;A中地址压栈MOV A,#A24C02_WRITE ;写操作指令LCALL Start ;开始信号LCALL Write_8bits ;写入8位数据LCALL Acknowledge ;查询接收端应答倍号POP ACC ;写入A中地址LCALL Write_8bitsLCALL AcknowledgePUSH ACCWrite_Page_l: MOV A,@R0 ;缓存区数据逐一写入LCALL Write_8bitsLCALL AcknowledgeINC RODJNZ R7, Write_Page_l ;写8次LCALL Stop ;结束信号CLR ALCALL AckPolling ;等待写操作完成POP ACCPOP 07HRET;等待写操作完成AckPolling;MOV A,#A24C02_Write ;写操作指令LCALL Start ;开始信号LCALL Write_8bitsSETB SDA ;从机应答SETB SCL ;应答占用一个脉冲LCALL Delay_Time'JB SDA,AckPolling ;接收端应答标志;将SDA置低CLR SCLLCALL Stop ;停止信号RET;读操作,分为字节读和连续读取操作;字节读,一次读取一个字节,A一读取地址Read_Byte;PUSH ACC ;A中地址压栈LCALL Start ;开始信号MOV A,#A24C02_ Write ;写操作指令LCALL Write_8bitsLCALL AcknowledgePOP ACC 写入A中地址LCALL Write_8bitsLCALL Acknowledge;立即读,读取当前内部地址的数据,一个字节Read_Current;LCALL Start ;开始信号,下面读取数据MOV A,#A24C02_Read ;读操作指令LCALL Write_8bitsLCALL AcknowledgeLCALL Read_8bits 读取数据,放在A中LCALL Stop ;停止信号RET;连续读取n个教据,A-读取首地址,B一存放读取数据个数;RO-缓冲区Read_Sequence: , PUSH 07HPUSH ACCDEC BMOV R7,B ;B中存放读取数据个数LCALL Start ;开始信号MOV A,#A24C02_Write ;写操作指令LCALL Write_8bitsLCALL AcknowledgePOP ACCLCALL Write_8bitsLCALL AcknowledgeLCALL Start ;开始信号,下面读取数据MOV A,#A24C02_Read ;读操作指令LCALL Write_8bitsLCALL AcknowledgeRead_Sequence_l: LCALL Read_8bitsLCALL MasterACKMOV @R0,A ;将数据存到RO指向的RAM中INC RODJNZ R7, Read_Sequence_lLCALL Read_8bits ;最后一次读无应答MOV @R0, ALCALL Stop ;停止信号POP 07HRead_Sequence_2;RET;写入8位数据Write_8bits: PUSH 07HMOV R7, #8Write_8bits_l: RLC ACLR SCL;数据在SCL为低时SDA上的数据可以改变,此时送上欲写数据LCALL Delay_Time ;延时MOV SDA,CSETB SCLLCALL Delay_TimeDJNZ R7, Write_8bit s_lCLR SCLPOP 07HRET;读取8位数据Read_8bits: PUSH 07HMOV R7, #8Read_8bits_l: CLR SCLLCALL Delay_TimeSETB SCL ;高电平读出数据MOV C.SDARLC ADJNZ R7, Read_8bit s_lCLR SCLPOP 07HRET;开始信号Start: SETB SDA;I2C总线操作开始信号;SCL为高时,SDA由高一>低SETB SCLLCALL Delay_TimeCLR SDALCALL Delay_TimeRET;结束信号Stop:CLR SDA;I2C总线操作结束信号;SCL为高时,SDA由低一>高SETB SCLLCALL Delay_TimeSETB SDA 结束操作,将SCL、SDA置高,释放总线LCALL Delay_TimeRET;应答查询;从机应答Acknowledge:SETB SDA ;从机应答SETB SCL ;应答占用一个脉冲LCALL Delay_TimeJB SDA,$ ;接收端应答标志;将SDA置低CLR SCLRET;主机应答MasterACK: CLR SDA ;数据线SDA清O应答SETB SCL 产生一个脉冲令从机接收到应答LCALL Delay_TimeCLR SCLSETB SDA .必须置高数据RET;延时Delay_Time;RETEND;2、主程序(MAIN. ASM);写入数据,256字节串行EEPROM顺序写入OOH-OFFHA24C02_Write:MOV R7,#32 ;32次页写,每次页写写入8个字节,共256个字节MOV R3,#OOH 写入首地址MOV R2,#VERIFYDATA ;起始写入数据A24C02_Write_l:MOV RO,#buffer ;写入数据先放在buffer (30H开始的内部RAM)A24C02_Write_2: MOV @RO, 02HINC ROINC R2CJNE RO.#buffer+8,A24C02_Write_2;一页写入8个字节MOV RO,#bufferMOV A,R3LCALL Write_PageMOV A,R3ADD A,#8MOV R3,ADJNZ R7,A24C02_Write_lRET;检验数据,读出数据与写入数据一一对应相比较,检验写入是否正确MOV R7,#OFFH ;读取整个EEPROM内的数据,256个字节MOV Rl.#bufferMOV R2,#VERIFYDATA ;数据检验MOV B,#OOH ;检验EEPROM起始数据地址A24C02_Verify_l: MOV A,BLCALL Read_Byte 读取数据XCH A.RlCJNE A,#buffer+30H,$+3 ;写入片内RAM,超过30H个字节,停止写入XCH A,RlJNC A24C02_Verify_3MOV @Rl,A ;读出的数据顺序写入片内RAM,便于检查INC RlA24C02_Verify_3: CJNE A,02H, A24C02_V erify_2INC R2INC BDJNZ R7, A24C02_Verify_lCLR FO .FO为数据检验结果标志,0-正确RETA24C02_Verify_2;SETB FO 卜检验错误RET七,实验扩展及思考题实验内容;学会使用24C02A的其余指令,如字节写入、连续读取等,进一步熟悉I2C 总线操作。

I2C总线EEPROM测试

I2C总线EEPROM测试

I2C 总线EEPROM 测试
1 I2C 总线的工作原理及其特点
I2C 总线是一种用于IC 器件之间连接的二线制总线,最早由Philips 公
司推出。

它通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上
的器件之间传送信息,并根据地址识别每个器件,不管是单片机、存储器、LCD 驱动器还是键盘接口。

串行扩展总线有突出的优点,电路结构简单,程序编写方便,易于实现用户系统软硬件的模块化、标准化等。

采用I2C 总线标准的单片机或IC 器件,其内部不仅有I2C 接口电路,
而且将内部各单元电路按功能划分为若干相对独立的模块,通过软件寻址实现片选,减少了器件片选线的连接。

I2C 总线接口电路结构如图1 所示。

当某个器件向总线上发送信息时,它就是发送器(也叫主器件),而当其从总线上接收信息时,又成为接收器(也叫从器件)。

主器件用于启动总线上传送数据并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为。

i2c信号测试标准

i2c信号测试标准

i2c信号测试标准
I2C信号测试标准主要包括信号完整性和信号时序两个方面。

信号完整性测试包括SCL和SDA两个信号的测试。

在信号时序方面,需要测量的参数有tHD;STA、tSU;STO、tSU;DAT、tHD;DAT和tBUF。

在进行I2C信号测试时,需要注意以下几点:
确认测试人员静电环接触良好,避免静电对测试结果产生影响。

在测量时应检查示波器是否运行正常,确保测试设备的准确性。

检查信号连接是否正确,接地是否合理,避免因连接问题导致的测试误差。

确定待测系统SUT是否工作在预定的模式,以便根据相应的测试指标进行判断。

为保证量测的准确性,测量中请用探头直接连接测量点。

如确有必要连接探头和测量的传输线及信号接地线,其长度不能超过0.5英寸。

遵循以上标准和注意事项,可以确保I2C信号测试的准确性和可靠性。

实验二 I2C存储器实验

实验二 I2C存储器实验

I2C存储器实验实验目的1、了解I2C总线的工作原理2、掌握I2C总线驱动程序的设计和调试方法3、掌握I2C总线存储器的读写方法实验仪器单片机开发板、稳压电源、计算机实验原理1、 I2C总线常识I2C总线采用一个双线式漏极开路接口,可在一根总线上支持多个器件和主控器。

所连接的器件只会把总线拉至低电平,而决不会将其驱动至高电平。

总线在外部通过一个电流源或上拉电阻器连接至一个正电源电压。

当总线空闲时,两条线路均为高电平。

在标准模式中,I2C 总线上的数据传输速率高达100kbit/s,而在快速模式中则高达400kbit/s。

I2C总线上的每个器件均由一个存储于该器件中的唯一地址来识别,并可被用作一个发送器或接收器(视其功能而定)。

除了发送器和接收器之外,在执行数据传输时,还可把器件视作主控器或受控器。

主控器是负责启动总线上的数据传输并生成时钟信号以允许执行该传输的器件。

同时,任何被寻址的器件均被视作受控器。

CAT24WC01/02/04/08/16是一个1K/2K/4K/8K/16K位串行CMOS EEPROM,内部含有128/256/512/1024/2048个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗,CAT24WC01有一个8字节页写缓冲器,CAT24WC02/04/08/16有一个16字节页写缓冲器,该器件通过I2C总线接口进行操作,有一个专门的写保护功能,并且器件能与400KHzI2C 总线兼容。

引脚名称和功能如图1所示。

图1 24系例I2C存储器引脚说明通过器件地址输入端A0、A1和A2可以实现将最多8个24WC01和24WC02器件4个24WC04器件,2个24WC08器件和1个24WC16器件连接到总线上。

2、I2C总线协议(1)只有在总线空闲时才允许启动数据传送。

(2)在数据传送过程中,当时钟线为高电平时,数据线必须保持稳定状态,不允许有跳变。

时钟线为高电平时,数据线的任何电平变化将被看作总线的起始或停止信号。

I2C读写EEPROM问题总结

I2C读写EEPROM问题总结

I2C读写EEPROM问题总结2017 年6 月3 0 日星期五目的:利用TMS320F2801芯片上外设I2C (2线串口)读写EEPROM数据(24LC128)关键点1 : 24LC时钟频率400KHZ,寄存器设置如下://Prescaler- need7-12Mhzo nm oduleclk=10; 〃NOTE:mustbe non zero=5; 〃NOTE:mustbe non zero时钟频率也可设为200KHz,三个参数分别为9、20、20(CPU时钟频率为100MHz)(未测试)关键点2 :波形分析问题:I2C模块是不是只有I2CCNT减到0才会发出停止信号I2C模块是硬件的,当检测到发送完了就会发结束自动发信号,不需要人为干预问题1:字节写操作正常,但是字节读函数出错原因:写EEPROM是在七位器件地址后添加写标志,而读EEPROM需要在七位器件地址后添加写标志。

关键点:读EEPROM数据需要发送两次命令。

第一次为写地址(此地址会被赋值给EEPROM 内的地址指针),因此需要添加写标志;第二次为读数据,将写标志改为读标志。

问题2:主机接收时,SDA数据线上有数据传输,且I2CDRR接收数据寄存器有数据更新,但寄存器显示不可读,即CPU认为一直没接收到数据,一直停在下面语句while!=1);关键点:初始化设置时采用的是FIF O接收方式,因此无效,应查询FIF O接收中断位while!=1);//FIFORX 方式查询位。

此位只有在非FIFO中断接收方式时才有效。

问题3:断续单字节读写正常,但是采用连续的单字节读写出错。

原因:EEPRO M写过程的结束并不是I2C总线写结束就结束,实际上I2C总线的写入数据先被保存到了EEPRO M内部的缓冲区,当遇到I2C结束条件后,EEPROM才启动内部写过程,这个过程才是保存数据的过程。

非常悲哀的是这个过程比较长,官方文档标注为5ms。

如果在这5ms以内对EEPROM芯片访问将被忽略。

EEPROMI2C操作说明

EEPROMI2C操作说明

EEPROMI2C操作说明EEPROM (Electrically Erasable Programmable Read-Only Memory)是一种非易失性存储器,可以通过电子方式擦除和编程,同时可以通过I2C总线进行操作。

本文将详细介绍EEPROM的I2C操作说明。

I2C(Inter-Integrated Circuit)是一种串行通信接口协议,可以在多个设备之间进行通信。

在EEPROM的I2C操作中,需要了解以下几个重要的概念和步骤。

1.设备地址:每个通过I2C连接的设备都有一个唯一的设备地址。

在EEPROM的I2C操作中,需要使用设备地址来与EEPROM进行通信。

2.起始条件和停止条件:I2C通信中,起始条件表示通信的开始,停止条件表示通信的结束。

起始条件由一个高电平到低电平的SCL上升沿和一个低电平的SDA下降沿组成,停止条件由一个低电平到高电平的SCL上升沿和一个高电平的SDA上升沿组成。

3. 数据传输:I2C通信中,数据可以以字节的形式进行传输。

每个字节由8个bit组成,包括7个数据位和1个校验位。

在进行EEPROM的I2C操作时,通常需要经过以下几个步骤:1.发送起始条件:将SCL和SDA引脚拉高,然后将SDA引脚拉低,形成起始条件。

2.发送设备地址和写命令:根据EEPROM的设备地址,将设备地址和写命令(0)发送到SDA引脚。

3.发送要写入的地址:将要写入数据的地址发送到SDA引脚。

4.发送数据:将要写入的数据发送到SDA引脚。

5.发送停止条件:将SCL引脚拉高,然后将SDA引脚拉高,形成停止条件。

实际的EEPROM的I2C操作可能还包括以下一些操作:1.读操作:通过发送读命令(1)和读取数据的地址,可以从EEPROM 中读取数据。

读操作与写操作类似,只是需要在发送设备地址时,将写命令(0)改为读命令(1)。

2.擦除操作:EEPROM的主要特点之一是可以擦除数据。

通过发送擦除命令和要擦除的数据的地址,可以将指定数据段擦除为初始值。

i2c测试用例

i2c测试用例

i2c测试用例
i2c测试用例是指在测试I2C接口时所采用的一系列测试步骤和条件,以确保I2C设备正常工作并符合预期。

这些测试用例通常包括以下几个方面的测试:1.基础通信测试:测试I2C设备是否能够正常地进行通信,包括主设备和从
设备的识别、读写操作等。

2.参数测试:测试I2C设备的参数是否符合规格要求,如通信速率、数据位
长度、奇偶校验等。

3.错误处理测试:测试I2C设备在出现错误时的表现和处理方式,如地址冲
突、数据传输错误等。

4.电源管理测试:测试I2C设备的电源管理功能是否正常,如低功耗模式、
唤醒功能等。

5.兼容性测试:测试I2C设备与其他设备的兼容性,以确保能够正常地与其
他设备进行通信。

在进行I2C测试时,需要根据具体的设备和应用需求来选择和设计相应的测试用例。

总结来说,i2c测试用例指的是用于测试I2C接口的一系列步骤和条件,以确保设备的正常工作和性能。

i2c的验证方法

i2c的验证方法

I2C的验证方法主要包括以下步骤:
1.验证I2C接口的功能:确保I2C接口能够正常工作,能够进行数据传输。

2.验证I2C接口的通信速率:确保I2C接口的通信速率符合要求,能够满足系统的性能要求。

3.验证I2C接口的数据传输稳定性:确保I2C接口在长时间运行过程中,数据传输的稳定性能够得到保证。

4.验证I2C接口的兼容性:确保I2C接口能够与不同的设备进行通信,具有良好的兼容性。

5.验证I2C接口的安全性:确保I2C接口的数据传输安全性得到保证,防止数据被窃取或篡改。

在验证过程中,可以采用一些测试工具和方法,例如使用示波器观察I2C接口的信号波形,使用逻辑分析仪捕获I2C接口的数据传输过程,以及编写测试程序对I2C接口进行自动化测试等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档