久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1963|回復(fù): 13
打印 上一主題 下一主題
收起左側(cè)

EEPROM的扇區(qū)操作是用IAP好還是ISP好

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:95375 發(fā)表于 2022-8-10 12:29 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式


/*----------------------------
扇區(qū)擦除
----------------------------*/
void IapEraseSector(WORD addr)
{
    IAP_CONTR = ENABLE_IAP;         //使能IAP
    IAP_CMD = CMD_ERASE;            //設(shè)置IAP命令
    IAP_ADDRL = addr;               //設(shè)置IAP低地址
    IAP_ADDRH = addr >> 8;          //設(shè)置IAP高地址
    IAP_TRIG = 0x5a;                //寫觸發(fā)命令(0x5a)
    IAP_TRIG = 0xa5;                //寫觸發(fā)命令(0xa5)
    _nop_();                        //等待ISP/IAP/EEPROM操作完成
    IapIdle();
}


/*----------------------------





//========================================================================
// 函數(shù): void        EEPROM_SectorErase(u16 EE_address)
// 描述: 擦除一個扇區(qū).
// 參數(shù): EE_address:  要擦除的EEPROM的扇區(qū)中的一個字節(jié)地址.
// 返回: none.
// 版本: V1.0, 2014-6-30
//========================================================================
void        EEPROM_SectorErase(u16 EE_address)
{
        ISP_ENABLE();                                                //設(shè)置等待時間,允許ISP/IAP操作,送一次就夠
        ISP_ERASE();                                                //宏調(diào)用, 送扇區(qū)擦除命令,命令不需改變時,不需重新送命令
                                                                                //只有扇區(qū)擦除,沒有字節(jié)擦除,512字節(jié)/扇區(qū)。
                                                                                //扇區(qū)中任意一個字節(jié)地址都是扇區(qū)地址。
        ISP_ADDRH = EE_address / 256;                //送扇區(qū)地址高字節(jié)(地址需要改變時才需重新送地址)
        ISP_ADDRL = EE_address % 256;                //送扇區(qū)地址低字節(jié)
        EEPROM_Trig();                                                //觸發(fā)EEPROM操作
        DisableEEPROM();                                        //禁止EEPROM操作
}



上面這兩個扇區(qū)擦除函數(shù)都是stc-isp給出的,對于IAP和ISP在網(wǎng)看查了好久,還是沒搞清楚它們使用的區(qū)別,請大神們指點一下,謝謝!


比如我想做一個瓦力機(jī)器人,每塊芯片都是他的一個大腦記憶細(xì)胞,所以有大量的擦除讀寫操作,那么請問上面兩種函數(shù)哪種更適合呢?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:624769 發(fā)表于 2022-8-10 14:18 來自手機(jī) | 只看該作者
ISP和iap,對應(yīng)的sfr寄存器地址不同,不是哪個好,而是為了區(qū)別不同的地址。
回復(fù)

使用道具 舉報

板凳
ID:161164 發(fā)表于 2022-8-10 15:12 | 只看該作者
在STC-ISP的EEPROM范例程序里從89看到8H
全都是用IAP
ISP的程序從哪來的?
回復(fù)

使用道具 舉報

地板
ID:624769 發(fā)表于 2022-8-10 15:45 來自手機(jī) | 只看該作者
lkc8210 發(fā)表于 2022-8-10 15:12
在STC-ISP的EEPROM范例程序里從89看到8H
全都是用IAP
ISP的程序從哪來的?

89的手冊,寄存器是ISP_????,頭文件也是,89,90的寄存器是ISP_xxxx,15,8的頭文件是iapxxxx,指向的地址是不同的。
回復(fù)

使用道具 舉報

5#
ID:123289 發(fā)表于 2022-8-10 16:42 | 只看該作者
以51單片機(jī)為例:其存儲器分為三塊。
1、程序存儲器:可尋址空間64K,用于存放用戶的程序,CPU取指令只能在此空間。
2、外部分?jǐn)U展存儲器:可尋址空間64K,用于存放數(shù)據(jù),CPU無法在此空間取指令。
3、內(nèi)部分RAM:256字節(jié)。這里略去功能介紹。
問題來了:如果用戶弄了2K的EEPROM,如何讓它能被CPU尋址(訪問)到呢?
有兩種方案:
1、程序一般用不了64K的全部空間,于是在【程序存儲器】中挖出2K的空間,將它做成EEPROM。這是STC一種做法。例如:IAP15Fxxxx型號芯片。
由于程序存儲器通常只能在燒錄時寫入,而EEPROM卻需要在程序運行中,由程序讀、寫或擦除,為此STC又特意開發(fā)了一套寫、擦它的方式。但讀取仍可以用通用的指令進(jìn)行,如:MOVC A, @A+DPTR。
這種方案好處是:無需單獨再做EEPROM,直接利用【程序存儲器】的FLASH空間當(dāng)作EEPROM用,且大小空間比較自由靈活,用不完的FALSH空間可以隨便用。
這里有一個風(fēng)險:比如:0000-11FFH放的是程序,如果你把此區(qū)域當(dāng)作是EEPROM,對它進(jìn)行寫、擦操作,則程序就被破壞掉了。所以這個方案需要你知道程度占多長?哪些區(qū)域是程序用不到的地方。
不過風(fēng)險中,也有一個重要的好處:可以用程序,修改自己的程序!例如,程序在運行中就能進(jìn)行自我升級:擦除原來的程序重新寫入新的程序!這是高級用法,就不在此介紹了。
2、在【外部分?jǐn)U展存儲器】中挖出2K的空間,將它做成EEPROM,這是常用的方式,不多介紹了。
樓主用C語言寫程序,兩種方式無所謂好壞之分。但必須知道EEPROM的數(shù)據(jù)是在哪個區(qū)域,因為你在定義一個EEPROM中的數(shù)據(jù)變量時,需要用到。
如果不考慮在線或遠(yuǎn)程升級程序,建議用第2種方式的EEPROM芯片,需要考慮的問題少,不易出錯。
回復(fù)

使用道具 舉報

6#
ID:161164 發(fā)表于 2022-8-10 17:04 | 只看該作者
188610329 發(fā)表于 2022-8-10 15:45
89的手冊,寄存器是ISP_????,頭文件也是,89,90的寄存器是ISP_xxxx,15,8的頭文件是iapxxxx,指向的地 ...

???

回復(fù)

使用道具 舉報

7#
ID:95375 發(fā)表于 2022-8-10 18:46 | 只看該作者
188610329 發(fā)表于 2022-8-10 14:18
ISP和iap,對應(yīng)的sfr寄存器地址不同,不是哪個好,而是為了區(qū)別不同的地址。

什么不同的地址呢?是不是說這兩個只是兩種不同的方法,用哪種都行?

     型號        大小   扇區(qū)數(shù)  開始地址  結(jié)束地址   MOVC讀偏移地址
STC15F/L2K32S2   29K    58扇區(qū)  0x0000  ~  0x73FF        0x8000

比如要讀寫STC15F2k32s2,用哪種方法都一樣是吧
回復(fù)

使用道具 舉報

8#
ID:95375 發(fā)表于 2022-8-10 18:52 | 只看該作者
lkc8210 發(fā)表于 2022-8-10 15:12
在STC-ISP的EEPROM范例程序里從89看到8H
全都是用IAP
ISP的程序從哪來的?

在stc-isp范例程序里的實驗箱4程序包里范例14有



回復(fù)

使用道具 舉報

9#
ID:624769 發(fā)表于 2022-8-10 20:39 | 只看該作者

STC手冊   89系列  第 270 頁。
http://www.zg4o1577.cn/bbs/dpj-82368-1.html


看到如下圖:



注意,紅框位置的  地址。

STC15 系列手冊   第 841 頁。

看到如下圖:


注意,紅框位置的 地址。

由于,地址本身不同,所以  一個用 ISP 命名, 一個用 IAP命名, 防止因為用錯頭文件,而出了問題也不知道問題在哪里。
即,雖然是同一個操作方式,但是,由于寄存器地址不同,所以給了不同的名字。目的是為了區(qū)分 版本差別。
同理, T2 定時器, 89系列名字 叫 TL2, TH2,  15系列里面叫  T2L, T2H,  都是 定時器 初值定義, 但是寄存器地址 變了,所以,名字就要變。
回復(fù)

使用道具 舉報

10#
ID:624769 發(fā)表于 2022-8-10 20:45 | 只看該作者
liyago 發(fā)表于 2022-8-10 18:46
什么不同的地址呢?是不是說這兩個只是兩種不同的方法,用哪種都行?

     型號        大小   扇區(qū)數(shù) ...

你用不用 頭文件的?

你打開  STC15.H     這個頭文件
你只能找到:
sfr IAP_CONTR = 0xC7;
而找不到:
sfr ISP_CONTR = ????

反過來,你打開  STC89C5xRC.H 這個頭文件
你只能找到:
sfr ISP_CONTR = 0xE7;
而找不到:
sfr IAP_CONTR = ????

這就是 STC的改版,地址不一樣了,名字也不一樣,明白了??
沒有哪個更好,因為 一個單片機(jī)里 只有其中一個。

回復(fù)

使用道具 舉報

11#
ID:401564 發(fā)表于 2022-8-11 13:47 | 只看該作者
我感覺沒有必要糾結(jié)什么的吧
數(shù)據(jù)手冊上有什么,就用什么
如果想知道,可以對比一下擦除時間之類的區(qū)別
回復(fù)

使用道具 舉報

12#
ID:95375 發(fā)表于 2022-8-14 23:12 | 只看該作者
188610329 發(fā)表于 2022-8-10 20:45
你用不用 頭文件的?

你打開  STC15.H     這個頭文件

明白了,就是頭文件里沒定義想用都沒得用
回復(fù)

使用道具 舉報

13#
ID:95375 發(fā)表于 2022-8-14 23:14 | 只看該作者
yzwzfyz 發(fā)表于 2022-8-10 16:42
以51單片機(jī)為例:其存儲器分為三塊。
1、程序存儲器:可尋址空間64K,用于存放用戶的程序,CPU取指令只能 ...

已明白,謝謝!
回復(fù)

使用道具 舉報

14#
ID:95375 發(fā)表于 2022-8-14 23:15 | 只看該作者
188610329 發(fā)表于 2022-8-10 20:39
STC手冊   89系列  第 270 頁。

謝謝,就是硬件不同而不同。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲成人激情在线观看 | 成人福利在线视频 | 国产一区91精品张津瑜 | 亚洲精品久久久久久首妖 | 久草在线在线精品观看 | 日韩视频福利 | 成人精品国产免费网站 | 天天色图 | 99热热热热| 久在草 | 一级毛片黄片 | 中文字幕一区二区三区乱码在线 | 一区二区三区高清 | 久久合久久 | 性生生活大片免费看视频 | 久久久国产一区二区三区 | 亚洲国产精品99久久久久久久久 | 国产精品自产拍 | 亚洲精品成人在线 | 国产精品小视频在线观看 | 午夜伊人| 久久天天躁狠狠躁夜夜躁2014 | 亚洲 中文 欧美 日韩 在线观看 | 日本久久网 | 日韩一区二区三区视频在线观看 | 国产精品一区二区视频 | 亚洲一区二区三区四区五区午夜 | 亚洲视频三区 | 亚洲一一在线 | 国产一区二区在线观看视频 | 99久久99 | 中文字幕国产日韩 | 亚洲一区二区三区四区五区中文 | 日本精品视频 | 久久一区视频 | 成人精品在线观看 | 99精品免费视频 | 久久久久久久久久久高潮一区二区 | 四虎影视| 久久久蜜臀国产一区二区 | 精品国产一区二区三区久久久蜜月 |