:::


Browsing this Thread:   1 Anonymous Users






Re: PIC16F18144 MCC EEPROM設定問題
#3
高級會員
高級會員


查看用戶資訊
謝謝回覆
我發現nvm.c生成之後,NVMCON2 這需要手動修改為0X55,0XAA。
NVMCON2 = 0x55;//unlockKeyLow;
NVMCON2 = 0xAA;//unlockKeyHigh;
還有須手動加入 while (NVMCON1bits.WR){}延遲才能正常使用。
這部份是我MCC沒設定好還是有BUG呢?

void EEPROM_Write(eeprom_address_t address, eeprom_data_t data)
{
//Save global interrupt enable bit value
uint8_t globalInterruptBitValue = INTCONbits.GIE;

//Access EEPROM
NVMCON1bits.NVMREGS = 1;

//Enable write operation
NVMCON1bits.WREN = 1;

//Load NVMADR with the EEPROM address
NVMADRH = (uint8_t) (address >> 8);
NVMADRL = (uint8_t) address;

//Load NVMDAT with the desired value
NVMDATL = data;

//Disable global interrupt
INTCONbits.GIE = 0;

//Perform the unlock sequence
NVMCON2 = 0x55//unlockKeyLow;
NVMCON2 = 0xAA//unlockKeyHigh;

NVMCON1bits.WR = 1;
while (NVMCON1bits.WR)
{
}

//Restore global interrupt enable bit value
INTCONbits.GIE = globalInterruptBitValue;

//Disable write operation
NVMCON1bits.WREN = 0;
}

發表於: 8/22 10:13
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: PIC16F18144 MCC EEPROM設定問題
#2
管理員
管理員


查看用戶資訊
a780917a 你好,
可以參考 PIC16F18144 datasheet 的 EEPROM 、 Data Flash Memory 、NVM和 NVMREG Access 相關章節來了解如何訪問 EEPROM。
縮圖

縮圖

縮圖

縮圖


關於使用 MCC 產生的函式來訪問 EEPROM ,
可以參考 datasheet 的 NVMREG Access 的 EEPROM 欄位來了解可指定的地址範圍:
縮圖

Attach file:



jpg  Data EEPROM Memory.jpg (144.24 KB)
123092_68a6cfa91072a.jpg 1259X273 px

jpg  Data Flash Memory (DFM).jpg (160.08 KB)
123092_68a6cfbb767cc.jpg 1077X371 px

jpg  NVMREG Read Operation.jpg (101.20 KB)
123092_68a6cfc4d63bb.jpg 1057X330 px

jpg  NVMREG Write to DFM.jpg (117.04 KB)
123092_68a6cfce73ab1.jpg 1059X412 px

jpg  EEPROM.jpg (70.06 KB)
123092_68a6cfd76ba51.jpg 1066X287 px

發表於: 8/21 15:48
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


PIC16F18144 MCC EEPROM設定問題
#1
高級會員
高級會員


查看用戶資訊
PIC16F18144 規格書寫有Data EEPROM (bytes):256

在MCC選取使用時Memory 裡的EEPROM似乎只能與I2C一起用?

設定選項裡出現
Hardware Settings
Device
Density
Page Write Buffer

但我只想單純使用EEPROM 該怎麼設定呢?

選擇ON-chip : NVM後
eeprom.c裡的 eeprom_address_t 與EEPROM_Write(), EEPROM_Read()
沒有被自動定義,該怎麼修改呢?
bool EEPROM_ByteWrite(uint32_t address, uint8_t *data)
{
uint8_t getData = *data;
eeprom_address_t writeAddress = (eeprom_address_t) (address);
NVM_UnlockKeySet(UNLOCK_KEY);
EEPROM_Write(writeAddress, getData);
NVM_UnlockKeyClear();
while (NVM_IsBusy());
if (NVM_StatusGet() == NVM_OK)
{
return true;
}
else
{
NVM_StatusClear();
return false;
}
}
bool EEPROM_ByteRead(uint32_t address, uint8_t *data)
{
eeprom_address_t readAddress = (eeprom_address_t) (address);
*data = EEPROM_Read(readAddress);
return true;
}

發表於: 8/18 15:35

Edited by a780917a on 2025年08月18日 15:59:13
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.linkedin.com/company/microchiptechnologytaiwan
https://www.facebook.com/microchiptechnologytaiwan/?locale=zh_TW
https://mkpage.microchip.com/l/1082123/2025-03-12/2stnv5
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------