|
今天給大家分享一下:NXP JN5168/JN5169簡單說明及貨源提供
NXP JN5168/JN5169JN5168/9是NXP推出的ZigBee芯片EEProm片內EEPROM有4KB,并按64字節分段,共64段。擦除中按段擦除。每個bit擦除后數據為全零,可編程由0改寫為1。EEPROM的API函數使用(參考JN-UG-3087 17.EEPROM):初始化:u16AHI_InitialiseEEP() 初始化時調用,必須在讀寫之前調用寫操作:iAHI_WritEDAtaIntoEEPROMsegment(),可對隨機地址進行寫操作,但只能從0改寫為1讀操作:iAHI_ReadDataFromEEPROMsegment(),可隨機讀取,但是智能在段內讀取,起始地址+長度超過段的總長時將會抱錯。擦除段:iAHI_EraseEEPROMsegment()
除EEPROM直接讀寫外,NXP還提供了PDM支持,可像訪問文件系統一樣訪問EEPROM,對存儲空間的管理有PDM進行管理。用戶層可只接進行簡單的讀、寫、刪除操作。PDM(Persistent Data Manager)NXP提供的PDM功能支持片外spi Flash和片上EEPROM,此處說明的是片上的EEPROM。參考JN-UG-3075 第四章,第三章介紹片外Flash。
主要的API接口函數:PDM_eInitialise():初始化函數,一般使用PDM_eInitialise(63);
初始化CFLAGS += -DPDM_NO_RTOS:使用IEEE802.15.4 SDK(如JN-SW-4163)時,需要在MAKEfile中增加此宏定義。此模式下不支持互斥。使用JenNet-IP SDK(如JN-SW-41645)時,不需要修改Makefile,PDM默認的是此模式,此模式下支持互斥。初始化函數PDM_eInitialise需要增加互斥參數
數據管理數據在EEPROM中的存儲是按段為單位的,即最小的存儲單元是64字節,即便只存儲了1個字節,數據存儲超出當前段,將使用另一個段。每個段中的64字節中有效存儲空間為56字節,另外的8個字節由PDM使用。并且PDM中對每條記錄的訪問是按ID進行的,類似于文件名。按ID進行存儲操作每條存儲占用的空間為56字節的整數倍(實際上是64字節,有效字節數是56)參考DEMO中的ID定義在PDM_IDs.h中
協議棧通PDM進行的數據存儲由協議棧自動完成存儲、更新。
可存儲內容包含,但不限于:Application layer data:
AIB members, such as the EPID and ZDO state
Group Address table
Binding table
Application key-pair descriptor
Trust Centre device tableNetwork layer data:
NIB members, such as PAN ID and rADIo channel
Neighbour table
Network keys
Address Map table
存儲API: PDM_eSaveRecordData()
數據的存儲過程是把待存儲的數據先存儲到空閑的空間中,然后再回收原來的存儲空間,因此寫數據之前最好檢查當前空閑段是否夠用。API函數為PDM_u8GetSegmeNTCapacity()讀取API: PDM_eReadDataFromRecord()
讀之前可判斷數據是存在,API函數PDM_bDoESDataExist(),返回數據長度刪除API: PDM_eDeleteData()計數器一個計數器占用1個段,即64字節。包含起始值(start Value)和增量值(Incremental Value)。當前值=起始值+增量值。為了均衡EEPROM的擦除次數,段內的每個空余字節的每個位代表1,即每增加一次段中將會把下一個空閑位寫1,當寫到字段末尾時,將自動切換到下一個段重新開始,即起始值=上一段的起始值+增量值的和,增量值被重新賦值為0。舊的段內的數據會由PDM進行回收
API:創建:PDM_eCreateBitmap(),同樣創建時需要一個16位的ID增加:PDM_eIncrementBitmap(),超出當前段時會自動切換到新的段中讀值:PDM_eGetBitmap(),返回當前段的起始值與增量值的和刪除:PDM_eDeleteBitmap(),會擦除當前段和歷史段
關于PDM的自動回收問題并沒有找到確切的說明,算是猜測。不過如果不回收,豈不是會很快就填滿PDM,這樣的bug就好呵呵了。擦寫均衡每個段有個擦除次數記錄,PDM使用時會優先找值低的段,以均衡各段的擦寫次數。需要現貨供應的找動能小歐 18025398193 2355573203
|
|