Microchip
直播中

徐非姗

7年用户 167经验值
私信 关注
[问答]

pe能否读取16位pic、dspic控制器上的唯一设备id

您好,试图理解具有唯一设备ID的dsPIC33和PIC24的编程规范:dsPIC33EP64GS502、dsPIC33EP16GS202、PIC24FJ256GA412、PIC24FJ1024GA610。HApter 61.3列出PE指令,其中RADP读取程序存储器,也可以读取OTP区域,但无法读取UDIDs。READC命令描述很奇怪:“从指定的配置寄存器设备ID寄存器中读取一个8位的单词。”稍后在详细描述中,“READC命令指示PE从Addr指定的24位地址开始读取N个配置寄存器或设备ID寄存器。”这个命令只能用于读取8位或16位的数据。“但是UDID有24位。PE能在16位PIC、dsPIC控制器上读取唯一设备ID吗?”

回帖(5)

李天竹

2019-9-25 15:01:17
我认为体育与普通用户相比没有任何额外的特权。所以,如果你能从用户程序中读到(我不确定),你应该能够通过PE作为常规程序存储器来读它。你当然可以通过ICSP来读它。
举报

李天童

2019-9-25 15:17:13
谢谢你的回答。我可以用ICSP读取UDID,但不能增强ICSP。PE提供两个命令读取,但如果无效内存区域读取,则重置。READP在读取UDID区域时重置。“注意:读取未实现的内存会导致PE重置。为了防止这种情况发生,请确保只访问特定设备上扩展的内存位置。“6.2.4.2定义READC只返回读取位置的下16位。24位UDE如何用PE读取?在dsPIC33EP64GS502(DS70005160B)的编程规范中,更有趣的是:-表3-10只读OTP存储器位置的16位以下,但与作为程序存储器(24位宽)编程的3.9一样。-表3-7用双字编程了两个配置寄存器内容。D编程周期。配置寄存器表(表2-3)列出具有两个LSB 00的地址的寄存器。
举报

李天竹

2019-9-25 15:32:30
如果PE不读它们,它们可能无法从用户程序访问。为什么你一定想用体育课阅读它们?用ICSP读取它们。在微芯片编程规范中有很多错误。所以,你需要通过实验来了解这些事情。如果我没记错的话,OTP是24位,除了不能被擦除外,它是一个规则存储器。dsPIC33EP64GS502上的每个配置实体占用2个指令(4个地址),但是高字节被忽略,在虫洞之后,它映射到一个由这两个低单词组成的指令。指令。
举报

吕聪

2019-9-25 15:46:28
我看了一下PE的汇编代码,Read和Read是类似的猜想…RESET是由地址错误陷阱引起的,因为READP在循环中总是读取两个指令,所以如果我们只需要5个UDID,READP将读取6并导致地址错误陷阱。错误的默认处理程序是RESET,所以……READC不执行TBLRDH,所以它只能返回较低的16位。如果UDID是连续的,我们可以使用READP首先从UDID1读取4个UDID到UDID4,然后读取UDID4和UDID5。如果UDIDs不是连续的,我们可能需要修改PE中的Read来返回其他8位。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分