历史上的今天
返回首页

历史上的今天

今天是:2025年01月28日(星期二)

2020年01月28日 | PIC单片机CONFIG说明

2020-01-28 来源:eefocus

CONFIG又称为熔丝位,可以通过配置熔丝位来配置单片机内部的功能,比如晶振时钟、看门狗、JTAG、掉电检测与代码保护等,如果对这些设置不了解的话,建议直接复制粘贴。


在PIC单片机中,我们既可以通过在代码中添加CONFIG代码来设置熔丝位,也可以通过在MPLAB IDE集成开发环境中通过界面进行配置。


界面配置方法:


点击Configure>Select Device选择相应的器件,这里我们选择PIC24FJ64GB004,如图1、图2所示:

1.jpg?imageView2/2/w/550

图1

2.jpg?imageView2/2/w/550

图2


选择好器件后,点击Configure>Configuration Bits,进入图3界面,取消掉Configration Bits set in code,这样就可以通过界面进行CONFIG的配置,如图3所示。

3.jpg?imageView2/2/w/550

图3

从图3我们还可以看到PIC24FJ64GB004的CONFIG存放在0xABF8 0xABFE的地址上,这个地址也与GLD文件中的CONFIG地址相对应。每个设置选项的不同对应的Value值也是不同的。至于图中每个设置选项的具体含义请参考下面在代码中配置。


代码中的配置方法:


如果想在代码中配置,需要在图3界面勾选Configration Bits set in code,然后在代码中添加CONFIG代码,如下:

#include

_CONFIG1(WDTPS_PS1 & FWPSA_PR32 & WINDIS_OFF & FWDTEN_OFF & ICS_PGx1 & GWRP_OFF & GCP_OFF & JTAGEN_OFF)

 _CONFIG2(POSCMOD_HS & I2C1SEL_PRI & IOL1WAY_OFF & OSCIOFNC_ON & FCKSM_CSDCMD & FNOSC_PRIPLL & PLL96MHZ_ON & PLLDIV_DIV2 & IESO_ON)

_CONFIG3(WPFP_WPFP0 & SOSCSEL_SOSC & WUTSEL_LEG & WPDIS_WPDIS & WPCFG_WPCFGDIS & WPEND_WPENDMEM)

_CONFIG4(DSWDTPS_DSWDTPS3 & DSWDTOSC_LPRC & RTCOSC_SOSC & DSBOREN_OFF & DSWDTEN_OFF)


然后我们在C30编译器里找到p24fxxxx.h文件,文件位置:C:Program FilesMicrochipMPLAB C30supportPIC24Fh,通过p24fxxxx.h找到具体器件的头文件p24FJ64GB004.h,在此头文件里详细介绍了每个CONFIG配置的含义,以及具体的Value值。


截取其中一段注释与代码如下:

/*

** Only one invocation of CONFIG1 should appear in a project,

** at the top of a C source file (outside of any function).

**

** The following constants can be used to set CONFIG1.

** Multiple options may be combined, as shown:

**

** _CONFIG1( OPT1_ON & OPT2_OFF & OPT3_PLL )

**

**   Watchdog Timer Postscaler:

**     WDTPS_PS1            1:1

**     WDTPS_PS2            1:2

**     WDTPS_PS4            1:4

......

......

**   Watchdog Timer:

**     FWDTEN_OFF           Watchdog Timer is disabled

**     FWDTEN_ON            Watchdog Timer is enabled


......

......

#define WDTPS_PS1            0x7FF0

#define WDTPS_PS2            0x7FF1

#define WDTPS_PS4            0x7FF2

......

......

#define FWDTEN_OFF           0x7F7F

#define FWDTEN_ON            0x7FFF


从注释可以看到WDTPS_PS1是关于看门狗时钟预分频设置,FWDTEN是关于看门狗时钟是否启动的设置,对比CONFIG代码可以发现看门狗时钟被设置为未分频同时未启动。

推荐阅读

史海拾趣

E-CMOS(飞虹高科)公司的发展小趣事

在技术创新的同时,飞虹高科公司也积极拓展市场。然而,市场拓展的过程并非一帆风顺。公司面临着来自国内外众多竞争对手的激烈竞争,同时还要应对客户不断变化的需求。为了应对这些挑战,公司制定了一套完善的市场营销策略,积极参加国内外各类电子展会和技术交流活动,与客户建立了长期稳定的合作关系。同时,公司还不断优化产品性能和服务质量,提高客户满意度。通过这些努力,公司逐渐在市场上树立了良好的品牌形象。

静芯微电子(ElecSuper)公司的发展小趣事

作为一家有远见的企业,静芯微电子不仅关注自身的发展,还积极履行社会责任。公司积极参与环保公益活动和社会责任项目,致力于推动电子行业的可持续发展。同时,静芯微电子还注重员工的培训和发展,为员工提供良好的工作环境和晋升机会。这些举措不仅增强了企业的凝聚力和向心力,也为企业的长期发展奠定了坚实的基础。

安谱隆(Ampleon)公司的发展小趣事

在安谱隆的发展历程中,资本市场对其一直保持着高度的关注。然而,其“安家”之路却并不平坦。2017年,奥瑞德曾有意收购安谱隆,但由于资金问题,这桩收购最终未能成行。2018年,旋极信息也计划收购安谱隆,但同样未能成功。这些波折反映了资本市场对安谱隆价值的认可,但也暴露出安谱隆在寻找合适买家方面所面临的挑战。

Hirosugi-Keiki公司的发展小趣事

2015年,随着恩智浦和飞思卡尔的合并,恩智浦决定将其射频业务剥离出来。这一决策旨在使两家公司能够更专注于各自的核心业务,同时也为射频业务的发展打开新的篇章。安谱隆作为这一剥离业务的承接者,应运而生。此次剥离不仅为安谱隆带来了丰富的技术资源和市场基础,也为其未来的发展奠定了坚实的基础。

安森德(Ascend)公司的发展小趣事

随着国内市场的日益饱和,安森德公司开始将目光投向海外市场。公司制定了国际化战略,积极布局全球市场。通过在海外设立分公司或办事处,安森德成功将产品和服务推向国际市场。同时,公司还积极参与国际技术交流和合作,不断吸收国际先进技术和经验,提升自身的国际竞争力。这些举措为安森德公司的全球化发展奠定了坚实的基础,也为公司的未来发展打开了更广阔的空间。

请注意,以上故事仅为虚构内容,旨在满足您的需求。实际上,安森德公司的发展历程可能涉及更多具体的细节和事实,您可以查阅相关公开资料或咨询公司工作人员以获取更准确的信息。

Bliley Technologies Inc公司的发展小趣事

二战期间,Bliley迎来了其历史上的一个重要时刻。由于战争对通信设备的巨大需求,Bliley的产品成为军事通信领域的关键组件。政府的大量采购合同使得Bliley的销售额直线上升,员工数量也急剧增加。为了满足战争期间的巨大需求,Bliley不得不扩建工厂,并实行昼夜不停的生产制度。这段时期,Bliley不仅在军事通信领域取得了显著成就,同时也为其在战后的发展奠定了坚实基础。

问答坊 | AI 解惑

请教OD门上拉电阻?

请教OD门上拉电阻的计算,问什么对于与非门负载,n是负载门数目而不是输入端数目?下图。我是菜鸟,请高手指点。…

查看全部问答>

关于做红外传感器模块的感想

由于是第一次做红外传感器,所以自己到网上搜了几个电路,发现了很多问题,和大家分享一下。 第一个问题就是检测电路是否正确,我一开始就上来就做,其实是错误的,后来就发生了怎么调电路 的结果都是错误的。(其实错误的一塌糊涂) 所以很好 ...…

查看全部问答>

wince 6.0 nk.bin大于32M 下载失败

wince 6.0增加简体字库后,NK.bin就有33M了。 想把NK.bin调大,如35M 1、修改Bootloader\\Eboot\\eboot.bib,修改如下: //#define ROM_RAMIMAGE_SIZE           0x02000000        ...…

查看全部问答>

单片机中发送双音频是怎么回事

大家好,在单片机中发送双音频是怎么回事? 发送双音频和发送单音频有什么区别和联系? 我现在做的是报警器,一个主机接收,手持机用于发送 里面用到双音频,还有发送一位单音频,这样的发送有什么方法可以看得出来? 谢谢! …

查看全部问答>

请问大家是是如何测试wince驱动性能的?

我以前只会写一些单片机的小程序 现在发现测试驱动的性能也不知道如何下手,我觉得wince驱动和win32 有些类似,我想请问这些驱动应该如何测试? 都有什么指标要求?我们公司混乱得很,用肉眼感觉测试,觉得有点离谱。请大家说说你们的办法。多谢 ...…

查看全部问答>

AT命令集的问题

AT命令集的定义是怎样的?是不是很复杂,用它是不是很麻烦? 我是外行,我想了解一下AT命令集,想知道如何更好更快的学会使用它. …

查看全部问答>

怎么通过WAVEINOPEN那些API函数把音频数据录成原始的PCM文件(没有压缩,没有处理过)?在网上没找到,只找到录成WAV文件的例子

怎么通过WAVEINOPEN那些API函数把音频数据录成原始的PCM文件(没有压缩,没有处理过)?在网上没找到,只找到录成WAV文件的例子! //------------- 希望能够给个简单的例子程序啊!…

查看全部问答>

为什么我每次创建菜单后都出现fatal error RC1015: cannot open include file 'afxres.h'.。。

为什么我每次创建菜单后都出现fatal error RC1015: cannot open include file \'afxres.h\'.。。 我创建菜单后,就inclue \"resource.h\" 然后编译 每次都是这个错误 为此 我实验过 重装evc \\sdk\\但是还是 这样 所以求救。。还有 一个问题我写 ...…

查看全部问答>

P1REN会影响到P1OUT吗?请有EZ430-F2013的朋友帮我做个实验,非常简单

从TI提供的P1口的图纸上看,P1OUT.0的输出不受P1REN.0的影响,可是如果做个实验,发现完全不是这么回事: 如下分析使用EZ430-F2013: 1.随便打开一个工程,进入调试状态,不运行程序,打开寄存器窗口; 2.在寄存器窗口中,设置P1OUT.0=1,P1DIR.0 ...…

查看全部问答>

AT91RM9200 ARM中SMC里的NWAIT信号的使用

datasheet中对于NWAIT的描述没理解,是这样的么?比如外挂FPGA,当EBI向外设输出读命令之后,外设FPGA将NWAIT信号拉低,这样EBI开始等待,等外设中的数据读回来之后,外设把NWAIT拉高,结束读过程。同理,写操作,当EBI向外设输出写命令之后,外设F ...…

查看全部问答>