會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





PIC18f66K80 EEPROM
新會員
註冊日期:
8月23日 11:43:43
所屬群組:
註冊會員
文章: 9
等級: 1; EXP: 86
HP : 0 / 21
MP : 3 / 20
離線
請問EEPROM是否會單獨壞掉像5 6 7格都壞掉其他好的

原因是把資料燒進去,然後再把資料傳出來結果資料是錯的,又或者是0

EEPROM是否有硬體重置及軟體重置

11月30日 17:36:08
轉換PDF檔 列印


Re: PIC18f66K80 EEPROM
資深會員
註冊日期:
2007/06/05 21:45
所屬群組:
註冊會員
文章: 1014
等級: 28; EXP: 16
HP : 0 / 679
MP : 338 / 22887
離線
基本上 是有壽命的 一般約有10萬次

PIC18f66K80規格書有提到...
1,024 Bytes of Data EEPROM:
- 100,000 Erase/write cycle data EEPROM

你是一直寫嗎?還是單一個案...
SSD(硬碟)也是壽命的,也不能一直寫(同一個地方)
所以SSD改善方法,就是盡量寫在不同區塊上--管理.

也許EEPROM不適合你的應用,或者說說你的應用...
也許做一些管理動作,就能改善...

1. 先做讀取比較
如果寫入前後是一樣,就不要浪費時間寫入
且會減少壽命

2.用索引方式來管理
資料可以動態寫在不同的位置上
缺點:需要比較大的空間(用沒在用的空間,就沒差)
優點:增加更多寫入次數(用空間換時間)

方法1+方法2 效果更好,但程式管理能力要更好,才能做到.

12月01日 13:56:35

jason680 於 2018年12月01日 14:11:39
轉換PDF檔 列印


Re: PIC18f66K80 EEPROM
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14564
等級: 73; EXP: 16
HP : 1082 / 1804
MP : 4854 / 77126
離線
你是用 XC8 還是自己寫的 EEPROM 函數來操作 EEPROM ?

XC8 有提供 EEPROM 的函數功能,參考一下 : MPLAB® XC8 C Compiler User’s Guide 裡的 5.5.5.4 EEPROM ACCESS MACROS
或使用 MCC 來產生 EEPROM 的函數庫。

底下是初始值的定義方法:

#include <xc.h>
__EEPROM_DATA(0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07)
__EEPROM_DATA(0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F)

12月03日 18:35:29
轉換PDF檔 列印


Re: PIC18f66K80 EEPROM
新會員
註冊日期:
8月23日 11:43:43
所屬群組:
註冊會員
文章: 9
等級: 1; EXP: 86
HP : 0 / 21
MP : 3 / 20
離線
我是用C18 用涵式去讀取
下面是讀取跟燒入的程式

void EE_Write (unsigned char ee_adr,unsigned char ee_data){//0-4: ID , 5-17 AHC , 18-N stage save
PIR4bits.EEIF=0;
EEADR=ee_adr;
EEDATA=ee_data;
EECON1bits.EEPGD=0;
EECON1bits.CFGS=0;
EECON1bits.WREN=1;
INTCONbits.GIE=0;

_asm
MOVLW 0x55
MOVWF EECON2,0
MOVLW 0xAA
MOVWF EECON2,0
BSF EECON1,1,0
_endasm

INTCONbits.GIE=1;
while(!PIR4bits.EEIF);//3.
PIR4bits.EEIF=0;
EECON1bits.WREN=0;
}

unsigned char EE_Read (unsigned char ee_adr){
EEADR=ee_adr;
EECON1bits.EEPGD=0;
EECON1bits.CFGS=0;
EECON1bits.RD=1;
return EEDATA;
}

12月04日 20:07:36
轉換PDF檔 列印


Re: PIC18f66K80 EEPROM
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14564
等級: 73; EXP: 16
HP : 1082 / 1804
MP : 4854 / 77126
離線
看了你的程式與 W402 第五章的 Access INternal EEPROM 的範例程式相同。該程式在 PIC18F4520 並不會發生資料遺失的現象。只能請你在測看看。

12月05日 01:15:22
轉換PDF檔 列印


Re: PIC18f66K80 EEPROM
新會員
註冊日期:
8月23日 11:43:43
所屬群組:
註冊會員
文章: 9
等級: 1; EXP: 86
HP : 0 / 21
MP : 3 / 20
離線
因為一開始使用沒什麼問題,在沒問題後板子動作了2個禮拜多沒斷電,平均一秒寫入資料給EEPROM ,之後又改程式燒入,燒入之後就變成我一開始說的問題 會不會以上動作而導自它損壞

12月05日 01:34:35
轉換PDF檔 列印


Re: PIC18f66K80 EEPROM
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14564
等級: 73; EXP: 16
HP : 1082 / 1804
MP : 4854 / 77126
離線
這有可能因為一天有86400秒可能已超過 EEPROM 的壽命。 最好的方法是先改寫到 RAM 等累積到一段的時間了以後, 或斷電時的再寫到 EEPROM.

12月05日 03:20:23
轉換PDF檔 列印


Re: PIC18f66K80 EEPROM
新會員
註冊日期:
8月23日 11:43:43
所屬群組:
註冊會員
文章: 9
等級: 1; EXP: 86
HP : 0 / 21
MP : 3 / 20
離線
請問有斷電時會將資料存入EEPROM的機制嗎?

12月05日 03:47:51
轉換PDF檔 列印


Re: PIC18f66K80 EEPROM
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14564
等級: 73; EXP: 16
HP : 1082 / 1804
MP : 4854 / 77126
離線
一般作法是使用外部的電壓偵測器來驅動中斷將 EEPROM 的資料儲存起來。

這裡有一個使用內部 ADC 做掉電偵測的應用。參考底下的圖示:
使用 66K80 內部的參考電壓做為 ADC 的轉換輸入電壓,使用 VDD 做為 ADC 的 +V Reference 的方式。

由圖的公式可以知道,當沒有掉電時 VDD 為定電壓,這時轉出來的值約為: 1.024V / 5V (Vdd) * 1024 = 210

如果掉電到 Vdd= 4.5V 時,為 1.024V/4.5V * 1024 = 233

也就是,一但 VDD 往下掉,ADC 轉換值就會變大,偵測此變化值就可知道有沒有掉電了。


先用示波器量一下關機時 VDD 要多久時間才會掉到 4.5V ,多測試幾下確定時間,如時間短則補上濾波電榮。假如是 50mS 的話,只要啟動 Timer 的每 20mS 中斷一次做掉電的轉緩與偵測,如真有掉電立即儲存 EEPROM 的值。

附加檔案:



jpg  擷取.JPG (33.93 KB)
16_5c07afb521376.jpg 396X296 px

12月05日 19:00:14
轉換PDF檔 列印


Re: PIC18f66K80 EEPROM
新會員
註冊日期:
8月23日 11:43:43
所屬群組:
註冊會員
文章: 9
等級: 1; EXP: 86
HP : 0 / 21
MP : 3 / 20
離線
感謝 我會試試看

12月05日 19:25:04
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結

網頁捷徑
2019 Winter Elite 報名
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project