OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5098|回复: 0

NXP JN5168/JN5169的简单说明

[复制链接]

33

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2020-9-25
在线时间
20 小时
发表于 2020-11-20 15:11:27 | 显示全部楼层 |阅读模式
今天给大家分享一下: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
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-9-21 08:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表