打印

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

[复制链接]
2184|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
5
程序会不会| | 2013-1-11 11:20 | 只看该作者
yewuyi 发表于 2013-1-11 09:05
不能。

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

请问什么是PIC内部应用程序啊??

使用特权

评论回复
6
yewuyi| | 2013-1-11 14:25 | 只看该作者
程序会不会 发表于 2013-1-11 11:20
请问什么是PIC内部应用程序啊??

就是你写的那些代码

使用特权

评论回复
7
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 寄存器为只读寄存器,用户不能对其进行编程。(就是说,读出来作判断的话还是可以的)

使用特权

评论回复
8
yewuyi| | 2013-1-14 08:34 | 只看该作者
diweo 发表于 2013-1-13 22:16
应该不能一概而论。虽然我没试过,但是根据PIC18F87K90的数据手册:
*******
P425:

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

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
angelsa0106 + 3
9
dodome521| | 2013-1-16 16:23 | 只看该作者
PIC的有些芯片是可以通过内部应用程序读取芯片ID和修改配置位的,大多数PIC24,dsPIC33,PIC32都是可以的。PIC16的好像都不可以。有些芯片必须是BOOT区的代码才可以修改配置位,配置时要开BOOT权限。

使用特权

评论回复
10
lanyong| | 2013-2-6 10:52 | 只看该作者
这有意思,问用其它pic能否读出某pic特征码?

使用特权

评论回复
11
duhemayi| | 2013-2-18 20:44 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

108

帖子

1

粉丝