EEPROM(帶電可擦可編程只讀存儲(chǔ)器)是用戶可更改的只讀存儲(chǔ)器,可通過高于普通電壓的作用來擦除和重編程(重寫)。不像EPROM芯片,EEPROM不需從計(jì)算機(jī)中取出即可修改。在一個(gè)EEPROM中,當(dāng)計(jì)算機(jī)在使用的時(shí)候可頻繁地反復(fù)編程,因此EEPROM的壽命是一個(gè)很重要的設(shè)計(jì)考慮參數(shù)。EEPROM是一種特殊形式的閃存,其應(yīng)用通常是個(gè)人電腦中的電壓來擦寫和重編程 。-(來自百度)
該芯片特性(AT93C46):
1、高速操作,最大速度3MHZ的讀寫操作。
2、1KB的存儲(chǔ)空間。
3、寬電壓輸入(1.8V-6V)。
4、可通過ORG(6腳)來選擇8位-16位數(shù)據(jù)流
5、上電寫保護(hù)功能
6、1百萬個(gè)編程周期
7、100年的數(shù)據(jù)保存壽命
01引腳連接及時(shí)序
| 管腳名稱 | 功能 |
|---|---|
| CS(1) | 芯片片選信號(hào)(高電平有效) |
| SK(2) | 數(shù)據(jù)傳輸?shù)?a href="http://m.brongaenegriffin.com/tags/時(shí)鐘/" target="_blank">時(shí)鐘信號(hào) |
| DI(3) | 串行數(shù)據(jù)輸入 |
| DO(4) | 串行數(shù)據(jù)輸入 |
| GND(5) | 電源地 |
| ORG(6) | 數(shù)據(jù)位選擇(GND:8Bit數(shù)據(jù)流 VCC:16位數(shù)據(jù)流) |
| NC(7) | 空腳 |
| VCC(8) | +1.8V-6V電壓 |
內(nèi)部結(jié)構(gòu):

連接方式如圖:

C93_CS->CS
C93_SCK->SCK
C93-DI->DI
C93_DO->DO(引腳配置為輸入模式)
除DO引腳配置為輸入模式外,其余引腳均配置為輸出模式。
時(shí)序圖:
寫時(shí)序:

讀時(shí)序:

寫保護(hù)使能(Disable):

去寫保護(hù):(Enable)

另外還有幾條指令我們需要知道的

寫入的數(shù)據(jù)包含1位開始位兩位操作位及地址位。
02編程方法操作
因?yàn)椴脸戎噶钚枰?.5V上的電壓這里提供不了,所以并沒有使用,但是寫入數(shù)據(jù)的時(shí)候會(huì)自動(dòng)覆蓋原先數(shù)據(jù),所以不用擔(dān)心
其代碼如下:
/****************************************/
/*****AT93C46 EEPROM 驅(qū)動(dòng) 8Bit數(shù)據(jù)流 ****/
/****************************************/
//2021.09.03 羊羊課代表By DDY
//讀取及寫入需要存在一定時(shí)間間隔,請(qǐng)注意。
void Start_Bit()//寫入開始位
{
AT93C_CS_L;
AT93C_CLK_L;
AT93C_DI_H; //待寫入1
AT93C_CS_H;//選中芯片
AT93C_CLK_H;
AT93C_CLK_L;//給時(shí)鐘信號(hào)
AT93C_DI_L;//置位引腳
}
void AT93_Clock()//時(shí)鐘信號(hào)
{
AT93C_CLK_H;
HAL_Delay(1);
AT93C_CLK_L;
}
void AT93_Send_9_Dat(uint16_t Data)
{
for(uint8_t i=0;i< 9;i++)//加上面的開始位
{ //送進(jìn)的格式為1 01XXXXXXX 指令加地址
if(Data&(0x100 >>i))
AT93C_DI_H;
else AT93C_DI_L;
AT93_Clock();
}
}
void AT93C_Enable(uint8_t Bit)
{
uint8_t Temp=0;
if(Bit) Temp=0x98;//Enable寫使能
else Temp=0x80; //Disable寫禁使能
AT93C_CS_L;//引腳電平重置
AT93C_CLK_L;//引腳電平重置
AT93C_CS_H;//選中芯片
for(uint8_t i=0;i< 10;i++)//發(fā)送10位指令
{
if(Temp&0x80 >>i)
AT93C_DI_H ;
else AT93C_DI_L;
AT93_Clock();
}
AT93C_CS_L;//置低降低功耗
AT93C_DI_L;
}
void AT93C_Write(uint8_t Addr,uint8_t Data)
{
AT93C_Enable(1);//寫使能
Addr|=0x80;//數(shù)據(jù)變?yōu)?XXXXXXX
Start_Bit(); //寫一個(gè)開始位
AT93_Send_9_Dat(Addr);
AT93C_DI_L;
for(uint8_t i=0;i< 8;i++) //送進(jìn)8Bit數(shù)據(jù)
{
if(Data&(0x80 >>i))
AT93C_DI_H;
else AT93C_DI_L;
AT93_Clock();
}
AT93C_CS_L;//置低降低功耗
AT93C_Enable(0); //禁寫使能
}
uint8_t AT93C_Read(uint8_t Addr)//讀該地址的8Bit數(shù)據(jù)
{
uint8_t Data=0;
AT93C_Enable(1);
Start_Bit();
AT93_Send_9_Dat((0x7f&Addr)|0x100);//數(shù)據(jù)變成10XXXXXXX;
AT93_Clock();
for(uint8_t i=0;i< 8;i++)//接收8位數(shù)據(jù)
{
if(AT93C_ReadDO)
{
Data|=0x80 >>i;
}
AT93_Clock();
}
AT93C_CS_L;//置低降低功耗
AT93C_Enable(0);
return Data;
}
//extern char str[20];
//void Test()
//{
// temp=AT93_Read(0x01);
// sprintf(str,"%03d",temp);
// OLED_Show_Str(96,0,str,Font8x16,0);
// Updata_OLED();
// HAL_Delay(100);
// temp+=1;
// AT93C_Write(0x01,temp);
//}
-
芯片
+關(guān)注
關(guān)注
462文章
53608瀏覽量
459992 -
閃存
+關(guān)注
關(guān)注
16文章
1885瀏覽量
117048 -
存儲(chǔ)器
+關(guān)注
關(guān)注
39文章
7716瀏覽量
170980 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7769瀏覽量
92814 -
EEPROM
+關(guān)注
關(guān)注
9文章
1129瀏覽量
85589
發(fā)布評(píng)論請(qǐng)先 登錄
labview 實(shí)時(shí)機(jī)與上位機(jī)之間的數(shù)據(jù)通訊
遠(yuǎn)程醫(yī)療的數(shù)據(jù)通訊分析
智能網(wǎng)關(guān)IGT-DSER是如何實(shí)現(xiàn)PLC與數(shù)據(jù)庫之間的數(shù)據(jù)通訊的?
基于TMS320C5402的數(shù)據(jù)通訊系統(tǒng)的設(shè)計(jì)
PLC數(shù)據(jù)通訊在水壓機(jī)控制系統(tǒng)中的實(shí)現(xiàn)與研究
一種新的數(shù)據(jù)通訊方式----電力線數(shù)據(jù)通訊
基于Matlab環(huán)境的串行數(shù)據(jù)通信
井下供電自動(dòng)化系統(tǒng)數(shù)據(jù)通訊電路的研究與設(shè)計(jì)
PLC與NC間的實(shí)時(shí)數(shù)據(jù)通訊
應(yīng)該了解300 CPU MPI全局數(shù)據(jù)通訊組態(tài)的方法
如何在STM32中要實(shí)現(xiàn)數(shù)據(jù)通訊
安科瑞帶防逆流功能的數(shù)據(jù)通訊網(wǎng)關(guān)
HT1S-COP-MDN-S10 網(wǎng)關(guān)與臺(tái)達(dá)PLC(CANOPEN)數(shù)據(jù)通訊配置說明
如何實(shí)現(xiàn)不同品牌多網(wǎng)段PLC數(shù)據(jù)通訊

3線串行數(shù)據(jù)通訊EEPROM的使用
評(píng)論