在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

EEPROM芯片24C02的字節寫時序和字節讀時序

嵌入式應用開發 ? 來源:嵌入式應用開發 ? 作者:嵌入式應用開發 ? 2022-05-16 15:09 ? 次閱讀


24C02芯片介紹
EEPROM (Electrically Erasable Programmable read only memory),帶電可擦可編程只讀存儲器——一種掉電后數據不丟失的存儲芯片。

24Cxx芯片是EEPROM芯片的一種,它是基于IIC總線的存儲器件,遵循二線制協議,由于其具有接口方便,體積小,數據掉電不丟失等特點,在儀器儀表工業自動化控制中得到大量的應用。24Cxx在電路的作用主要是在掉電的情況下保存數據。

本文使用的是24C02芯片,總容量是2k個bit(256個字節)。這里芯片名稱里的02代表著總容量。

24C02芯片的引腳分布和具體的作用見下圖:

pYYBAGKB926Ae-GaAAA9F3D-YBA581.png24C02 引腳圖
引腳名稱 說明
A0-A2 地址輸入線
SDA 數據線
SCL 時鐘
WP 寫保護
GND、VCC 供電


下圖是本文中24C02和STM32的引腳連接圖:

poYBAGKB-DiAXBfyAAEhRMSpQRw767.png引腳連接圖

從圖中可以看出:A0、A1、A2都為0。

對于并聯在一條IIC總線上的每個IC都有唯一的地址。那么看一下從器件地址,可以看出對于不同大小的24Cxx,具有不同的從器件地址。由于24C02為2k容量,也就是說只需要參考圖中第一行的內容:

pYYBAGKB-FiACV9iAACMQdZpGhw408.png設備地址

根據圖中的內容:如果是寫24C02的時候,從器件地址為10100000(0xA0);讀24C02的時候,從器件地址為10100001(0xA1)。

24C02芯片的時序圖
這部分的內容應結合上文:I2C總線的數據傳送的內容一起理解。

24C02字節寫時序

poYBAGKB-I2AZmvcAACKyy8epDA520.png寫時序


對24C02芯片進行寫字節操作的時候,步驟如下:

(1) 開始位,后面緊跟從器件地址位(0xA0),等待應答,這是為了在IIC總線上確定24C02的從地址位置;
(2) 確定操作24C02的地址,等待應答,也就是將字節寫入到24C02中256個字節中的位置;
(3) 確定需要寫入24C02芯片的字節,等待應答,停止位。
24C02字節讀時序

poYBAGKB-M2AfPqfAADJWM6fWGA088.png讀時序


對24C02芯片進行讀字節操作的時候,步驟如下:

(1)開始位,后面緊跟從器件地址位(0xA0),等待應答,這是為了在IIC總線上確定24C02的從地址位置;
(2)確定操作24C02的地址,等待應答,也就是從24C02中256個字節中讀取字節的位置;
(3)再次開始位,后面緊跟從器件地址位(0xA1),等待應答;
(4)獲取從24C02芯片中讀取的字節,發出非應答信號,停止位。

進行數據傳送時,在SCL為高電平期間,SDA線上電平必須保持穩定,只有SCL為低時,才允許SDA線上電平改變狀態。并且每個字節傳送時都是高位在前;
對于應答信號,ACK=0時為有效應答位,說明從機已經成功接收到該字節,若為1則說明接受不成功;
如果從機需要延遲下一個數據字節開始傳送的時間,可以通過把SCL電平拉低并保持來強制主機進入等待狀態;
主機完成一次通信后還想繼續占用總線在進行一次通信,而又不釋放總線,就要利用重啟動信號。它既作為前一次數據傳輸的結束,又作為后一次傳輸的開始;
總線沖突時,按“低電平優先”的仲裁原則,把總線判給在數據線上先發送低電平的主器件;
在特殊情況下,若需禁止所有發生在I2C總線上的通信,可采用封鎖或關閉總線,具體操作為在總線上的任一器件將SCL鎖定在低電平即可;
SDA仲裁和SCL時鐘同步處理過程沒有先后關系,而是同時進行的。
讀取24C02芯片程序

#define AT24C01  127
#define AT24C02  255
#define AT24C04  511
#define AT24C08  1023
#define AT24C16  2047
#define AT24C32  4095
#define AT24C64     8191
#define AT24C128 16383
#define AT24C256 32767  
//Mini STM32開發板使用的是24c02,所以定義EE_TYPE為AT24C02
#define EE_TYPE AT24C02
//初始化IIC接口
void AT24CXX_Init(void)
{
IIC_Init();
}
//在AT24CXX指定地址讀出一個數據
//ReadAddr:開始讀數的地址  
//返回值  :讀到的數據
u8 AT24CXX_ReadOneByte(u16 ReadAddr)
{      
u8 temp=0;                          
       IIC_Start();  
if(EE_TYPE>AT24C16)            //為了兼容24Cxx中其他的版本
{
 IIC_Send_Byte(0XA0);    //發送寫命令
 IIC_Wait_Ack();
 IIC_Send_Byte(ReadAddr>>8);    //發送高地址
 IIC_Wait_Ack();   
}else      IIC_Send_Byte(0XA0+((ReadAddr/256)<<1));   //發送器件地址0XA0,寫數據   

IIC_Wait_Ack(); 
       IIC_Send_Byte(ReadAddr%256);   //發送低地址
IIC_Wait_Ack();     
IIC_Start();        
IIC_Send_Byte(0XA1);           //進入接收模式      
IIC_Wait_Ack();  
       temp=IIC_Read_Byte(0);     //讀一個字節,非應答信號信號    
       IIC_Stop();        //產生一個停止條件     
return temp;
}
//在AT24CXX指定地址寫入一個數據
//WriteAddr  :寫入數據的目的地址    
//DataToWrite:要寫入的數據
void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite)
{                                
       IIC_Start();  
if(EE_TYPE>AT24C16)
{
 IIC_Send_Byte(0XA0);     //發送寫命令
 IIC_Wait_Ack();
 IIC_Send_Byte(WriteAddr>>8);    //發送高地址
 }else
{
 IIC_Send_Byte(0XA0+((WriteAddr/256)<<1));   //發送器件地址0XA0,寫數據 
}  
IIC_Wait_Ack();    
       IIC_Send_Byte(WriteAddr%256);   //發送低地址
IIC_Wait_Ack();                    
IIC_Send_Byte(DataToWrite);     //發送字節          
IIC_Wait_Ack();            
       IIC_Stop();    //產生一個停止條件 
delay_ms(10);  
}
//在AT24CXX里面的指定地址開始寫入長度為Len的數據
//該函數用于寫入16bit或者32bit的數據.
//WriteAddr  :開始寫入的地址  
//DataToWrite:數據數組首地址
//Len        :要寫入數據的長度2,4
void AT24CXX_WriteLenByte(u16 WriteAddr,u32 DataToWrite,u8 Len)
{   
u8 t;
for(t=0;t>(8*t))&0xff);
}                
}

//在AT24CXX里面的指定地址開始讀出長度為Len的數據
//該函數用于讀出16bit或者32bit的數據.
//ReadAddr   :開始讀出的地址 
//返回值     :數據
//Len        :要讀出數據的長度2,4
u32 AT24CXX_ReadLenByte(u16 ReadAddr,u8 Len)
{   
u8 t;
u32 temp=0;
for(t=0;t
;t++)>;t++)>

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • EEPROM
    +關注

    關注

    9

    文章

    1033

    瀏覽量

    81954
  • 存儲芯片
    +關注

    關注

    11

    文章

    902

    瀏覽量

    43271
  • IIC總線
    +關注

    關注

    1

    文章

    66

    瀏覽量

    20399
收藏 人收藏

    評論

    相關推薦

    24C02驅動【掉電保存】

    24C02是一個2Kbit的串行EEPROM存儲芯片,可存儲256個字節數據。工作電壓范圍為1.8V到6.0V,具有低功耗CMOS技術,自定時擦寫周期,1000000次編程/擦除周期,
    的頭像 發表于 07-17 09:24 ?1894次閱讀
    <b class='flag-5'>24C02</b>驅動【掉電保存】

    24C02的連續讀和

    最近在用24C02,可在網上找到的總是單個字節24c02讀寫,想一串字符一直沒搞明白...不過最終功夫不負有心人,還是弄好了開是上傳上來和大家交流一下~{:soso_e100:}初
    發表于 08-23 12:53

    請問24C02是16Byte緩沖的嗎?

    眾所周知,I2C EEPROM可以按字節訪問,也可以按頁訪問。24C02一般緩沖區是8Byte,24C04以上的大容量ROM緩沖區有16/3
    發表于 09-16 23:41

    EEPROM字節讀寫操作時序相關資料下載

    不完全一樣,ATMEL 公司的 24C02 的這個寫入時間最高不超過 5 ms。在往非易失區域的過程,EEPR
    發表于 11-24 07:01

    24c02/24c01/24c04讀寫程序

    24c02/24c01/24c04  I2C EEPROM字節讀寫驅動程序,
    發表于 10-07 12:39 ?19次下載

    24c01/24c02中文資料

    24c01/24c02是一個1K/2K/4K/8K/16K 位串行CMOS E2PROM, 內部含有128/256/512/1024/2048 個8 位字節,CATALYST 公司的先進CMOS 技術實質上減少了器件的功耗.CA
    發表于 10-07 12:43 ?4949次下載

    寫入一個字節24c02并讀出來驗證

    寫入一個字節24c02并讀出來驗證 本課的程序已經包含了上一顆的內容,增加了
    發表于 08-09 22:01 ?3174次閱讀
    寫入一個<b class='flag-5'>字節</b>到<b class='flag-5'>24c02</b>并讀出來驗證

    一個字節24c02中(源程序)

    一個字節24c02中(源程序) 24c02是一個非揮發eeprom存儲器器件,采用的IIC總線技術。
    發表于 08-11 19:17 ?2951次閱讀

    24C02中IIC總線的應答信號(ACK)時序圖分析

    24C02中IIC總線的應答信號(ACK)時序圖分析,很好的單片機學習資料。
    發表于 03-21 17:30 ?93次下載

    24c02基礎程序

    24c02寫入調用程序 用于初次接觸24c02 學習24c02用的
    發表于 07-12 15:14 ?24次下載

    24C02讀寫操作程序設計實例,24C02 read / write process

    );? //從24c02的地址address中讀取一個字節數據void x24c02_write(uchar address,uchar info);? //向24c02的addres
    的頭像 發表于 09-20 19:41 ?1580次閱讀

    使用51單片機進行EEPROM存儲器24C02讀取存儲多字節的程序免費下載

    本文檔的主要內容詳細介紹的是使用51單片機進行EEPROM存儲器24C02讀取存儲多字節的程序免費下載。
    發表于 06-05 17:51 ?16次下載
    使用51單片機進行<b class='flag-5'>EEPROM</b>存儲器<b class='flag-5'>24C02</b>讀取存儲多<b class='flag-5'>字節</b>的程序免費下載

    單片機:EEPROM字節讀寫操作時序

    不完全一樣,ATMEL 公司的 24C02 的這個寫入時間最高不超過 5 ms。在往非易失區域的過程,E
    發表于 11-16 14:21 ?8次下載
    單片機:<b class='flag-5'>EEPROM</b> 多<b class='flag-5'>字節</b>讀寫操作<b class='flag-5'>時序</b>

    24C02 EEPROM 51匯編程序設計

    最近在學習匯編完成常用芯片的控制,并預留一些接口。24C02是我購買的開發板上的芯片,故先從他入手。(更新中)24C02數據手冊理解推薦的數據手冊2
    發表于 11-23 09:51 ?5次下載
    <b class='flag-5'>24C02</b> <b class='flag-5'>EEPROM</b> 51匯編程序設計

    STM32入門開發: 介紹IIC總線、讀寫AT24C02(EEPROM)(采用模擬時序)

    時序的,本文采用的是模擬時序,下篇文章就介紹配置STM32的IIC硬件時序讀寫AT24C02和AT24C08。模擬
    發表于 11-25 20:06 ?39次下載
    STM32入門開發: 介紹IIC總線、讀寫AT<b class='flag-5'>24C02</b>(<b class='flag-5'>EEPROM</b>)(采用模擬<b class='flag-5'>時序</b>)
    主站蜘蛛池模板: 四虎影院官网 | 四虎伦理 | 黄色大片视频网站 | 成人看片在线观看 | 国产一级爱c片免费播放 | www深夜视频在线观看高清 | 国产综合视频在线 | 国产黄色在线看 | 天天操狠狠操夜夜操 | 国产在线精品一区二区夜色 | 好男人社区www在线观看 | 日本三级黄色录像 | free欧美性| 精品欧美 | 国产三级网 | 免费在线色视频 | 色内内免费视频播放 | 手机看片1024久久 | 手机看片福利日韩国产 | 欧美特级生活片 | 免费观看在线观看 | 亚洲4区| 免费观看理论片毛片 | 五月网址 | 国产精品福利视频手机免费观看 | 日本三级hd高清电影 | 美国一级毛片不卡无毒 | 国产午夜不卡在线观看视频666 | 在线视免费频观看韩国aaa | 国产一区二区三区四卡 | 色www视频永久免费 色www视频永久免费软件 | 亚洲毛片儿 | 亚洲日韩色综合视频 | 免费观看黄视频 | 黄色三级三级三级免费看 | 日韩三级在线观看视频 | 欧美成人三级网站 | 激情五月播播 | 日韩在线一区二区 | 欧美激情91 | 久久成人免费网站 |