11205|16

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请问版主能否在STM32程序内部判断芯片型号? [复制链接]

                                 主要是想根据型号判断Flash和RAM的地址范围。
此帖出自stm32/stm8论坛

最新回复

                                 不知道96bit的芯片ID是否包含芯片类型信息?可以多读几片看一下  详情 回复 发表于 2010-1-14 00:13
点赞 关注
 

回复
举报

74

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
                                 同问,Luminary系列的Cortex-M3,就可以通过读内部寄存器知道Flash的大小。
此帖出自stm32/stm8论坛
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
找到了:
闪存容量寄存器
地址:0x1FFF F7E0
F_SIZE:闪存存储器容量  位15:0
以K字节为单位指示产品中闪存存储器容量。
例:0x0080 = 128 K字节
此帖出自stm32/stm8论坛
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 
STM32F10x微控制器参考手册(2009年12月第10版).pdf
第732页
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

5
 
                                 但是还没找到RAM地址范围的相关信息。
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

6
 
除了4楼给出的Flash容量信息之外,还可以使用同一个文档的第29.6节(第738页)的信息——STM32F10x微控制器参考手册(2009年12月第10版).pdf。

不管芯片的封装是什么,Flash的容量与RAM的容量都是对应的,知道了Flash的容量就知道了RAM容量。

5楼问RAM地址范围的相关信息:不管RAM容量多大,RAM的起始地址都是固定的,有了RAM容量的信息,也就知道RAM地址范围了。
此帖出自stm32/stm8论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

7
 
不对吧,例如
STM32F101RC——Flash为256K,RAM为32K
STM32F103RC——Flash为256K,RAM为48K

好像103的RAM都比101相应型号的要大
此帖出自stm32/stm8论坛
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

8
 
不过根据
DBGMCU_IDCODE
地址:0xE004 2000

位31:16
该域标识产品的版本
小容量产品  中容量产品  大容量产品
0x1000 = 版本A  0x0000 = 版本A  0x1000 = 版本A
  0x2000 = 版本B  0x1001 = 版本Z
    0x2001 = 版本Z
    0x2003 = 版本Y
互联系列产品:
─ 0x1000 = 版本A
─ 0x1001 = 版本Z
位15:12  保留
DEV_ID[11:0]:设备识别  位11:0
这个部分指示了设备编码。对于STM32F10x微控制器:
小容量产品,设备编码为0x412;
中容量产品,设备编码为0x410;
大容量产品,设备编码为0x414;
互联系列产品,设备编码为0x418。

应该也可以推导出RAM的大小了,呵呵
此帖出自stm32/stm8论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(中级)

9
 
                                 可这是2个不同系列的产品呀,你总不会也要识别产品系列吧?  这样做有什么特别的必要吗?
此帖出自stm32/stm8论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

10
 
                                 有必要,因为我们的多个产品将逐步更换成STM32,而且用的最多的只是ADC和串口……程序里能识别自身,程序版本管理方面可以省很多事,呵呵
此帖出自stm32/stm8论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

11
 
这个嘛,我去问问看。

不过,是否可以通过一个I/O脚,在PCB上接上拉或下拉来识别是STM32F101还是STM32F103系列,因为使用STM32F103主要是使用CAN或USB,PCB板肯定与STM32F101的PCB板不同。
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

12
 
                                 判断101/103简单实用的方法,可通过直接访问USB/CAN寄存器存在来判别,但要注意异常处理。
此帖出自stm32/stm8论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

13
 
8楼列出的这个信息,从Flash的容量也可以得到,而且Flash容量的信息更精确。

比如读出Flash容量为64KB,则可以知道这是一个中容量产品;反之,中容量产品的Flash容量可以是64KB,也可以是128KB。

--------------
12楼的办法也许可行,但不一定,记得论坛中有人提到过,买到STM32F101的产品,但是可以用USB的功能,我估计这是典型的把不符合STM32F103的性能,但满足STM32F101性能的芯片,标记为STM32F101的结果。

--------------
在没有其它更好的办法时,我认为11楼的办法是最好的;利用PCB板(应用对象)的不同加以区分。
此帖出自stm32/stm8论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

14
 
编译的时候加些数据进去就好了 不同的片子烧不同的代码我想这个应该不过分把
反正你都得重新编译的 否则内存分配岂不是出问题
此帖出自stm32/stm8论坛
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

15
 


正常俺们都加一个宏 代表自己的代码版本 从中可以区分出是芯片型号 用多大容量之类的
此帖出自stm32/stm8论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

16
 
                                 如果自己在程序里面区分,肯定有很多种方法
此帖出自stm32/stm8论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

17
 
                                 不知道96bit的芯片ID是否包含芯片类型信息?可以多读几片看一下
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表