问下大家有没有办法让PIC内部程序自动判断该单片机的型号?

[复制链接]
2742|10
 楼主| angelsa0106 发表于 2013-1-10 16:10 | 显示全部楼层 |阅读模式
问下大家有没有办法让PIC内部程序自动判断该单片机的型号,以便更改配置位及寄存器设置?
谈的元 发表于 2013-1-10 18:45 | 显示全部楼层
莫非你一个程序要烧到几种型号的单片机中?
vix213 发表于 2013-1-10 18:57 | 显示全部楼层
找个官方PIC的开发板程序看看,里面会自适应好几款芯片
yewuyi 发表于 2013-1-11 09:05 | 显示全部楼层
不能。

第一:PIC内部应用程序不能读到芯片型号的特征代码,这个只能通过仿真或编程器读取。
第二:PIC内部应用程序不能修改配置位,这个也只能通过编程器烧写。

评分

参与人数 1威望 +3 收起 理由
angelsa0106 + 3

查看全部评分

程序会不会 发表于 2013-1-11 11:20 | 显示全部楼层
yewuyi 发表于 2013-1-11 09:05
不能。

第一:PIC内部应用程序不能读到芯片型号的特征代码,这个只能通过仿真或编程器读取。

请问什么是PIC内部应用程序啊??
yewuyi 发表于 2013-1-11 14:25 | 显示全部楼层
程序会不会 发表于 2013-1-11 11:20
请问什么是PIC内部应用程序啊??

就是你写的那些代码
diweo 发表于 2013-1-13 22:16 | 显示全部楼层
yewuyi 发表于 2013-1-11 09:05
不能。

第一:PIC内部应用程序不能读到芯片型号的特征代码,这个只能通过仿真或编程器读取。

应该不能一概而论。虽然我没试过,但是根据PIC18F87K90的数据手册:
*******
P425:
28.1 配置位
可以通过对配置位编程(读为0)或不编程(读为1)来选择不同的器件配置。这些配置位被映射到程序存储
器从300000h 开始的单元中。用户会注意到地址300000h超出了用户程序存储空间的范围。事实上,它属于配置存储空间(300000h-3FFFFFh) ,该空间仅能通过表读和表写操作进行访问。
使用软件对配置寄存器编程类似于对闪存存储器编程。EECON1 寄存器中的WR位可启动对配置寄存器的自定时写操作。在正常工作模式下,执行TBLWT 指令时,如果TBLPTR 指向配置寄存器地址,将按照此指令指定的地址和数据写配置寄存器。将WR 位置1 可启动对配置寄存器的长写操作。每次向配置寄存器写入1 个字节。要写入或擦除一个配置单元,可用TBLWT 指令向该单元写入1 或0。欲知更多详情,请参见第7.5 节“ 写入闪存程序存储器”。
*******
P426:
DEVID 寄存器为只读寄存器,用户不能对其进行编程。(就是说,读出来作判断的话还是可以的)

yewuyi 发表于 2013-1-14 08:34 | 显示全部楼层
diweo 发表于 2013-1-13 22:16
应该不能一概而论。虽然我没试过,但是根据PIC18F87K90的数据手册:
*******
P425:

P425:以往超过程序FLASH空间的地址是无法寻址的,所以不能读写。现在新型号是否支持,我还需要查查。
P426:根据我的理解,这句可能是这个意思
DEVID是只读寄存器,只能通过编程器读,用户不能对其进行编程应当指的是用户不能用编程器对其写入,如果编程器都不能写入的话,一般应用代码也肯定不会支持修改的,读出来当然是可以的,但估计只能是用编程器读吧。

评分

参与人数 1威望 +3 收起 理由
angelsa0106 + 3

查看全部评分

dodome521 发表于 2013-1-16 16:23 | 显示全部楼层
PIC的有些芯片是可以通过内部应用程序读取芯片ID和修改配置位的,大多数PIC24,dsPIC33,PIC32都是可以的。PIC16的好像都不可以。有些芯片必须是BOOT区的代码才可以修改配置位,配置时要开BOOT权限。
lanyong 发表于 2013-2-6 10:52 来自手机 | 显示全部楼层
这有意思,问用其它pic能否读出某pic特征码?
duhemayi 发表于 2013-2-18 20:44 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

108

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部