NO.002:dsPIC33EP系列配置位的配置方法

对小白来说,最困难的一步终于来了。我之前一直使用dsPIC30F4011,它的配置位相对来说比较简单,就4个寄存器需要配置,本以为有了4011的基础,上手dsPIC33EP系列比较简单,谁知参考了它的数据手册,自己做了一个dsPIC33EP512MC504最小系统板后(在文章最后有几张实物图),发现它的配置位多达6个之多,而且每个寄存器内部有些位配置起来摸不着头脑,看了好多天的数据手册加上网上查资料,最后索性直接购买了33EP系列的开放板,看看人家是怎么写的,毕竟开发板的程序比较规范,学起来上手快。

NO.002:dsPIC33EP系列配置位的配置方法

典型的配置寄存器以及寄存器的位,括号中表示寄存器对应的功能:
1、FICD(调试配置):JTAGEN、ICS
2、FPOR(复位配置):WDTWIN、ALTI2C2、ALTI2C1
3、FWDT(看门狗定时器配置):FWDTEN、WINDIS、PLLKEN、WDTPRE、WDTPOST
4、FOSC(振荡器配置):FCKSM、IOL1WAY、OSCIOFNC、POSCMD
5、FOSCEL(振荡器选择):IESO、PWMLOCK、FNOSC
6、FGS(通用段保护):GCP、GWRP

配置位直接贴出来吧,最好是对照着数据手册看哈。

配置如下:

// FICD
#pragma config ICS = PGD1               // ICD通信通道选择位(PGEC1和PGED1通讯)
#pragma config JTAGEN = OFF             // 禁止JTAG

// FPOR
#pragma config ALTI2C1 = OFF            // 备用I2C1引脚(I2C1映射到SDA1 / SCL1引脚)
#pragma config ALTI2C2 = OFF            // 备用I2C2引脚(I2C2映射到SDA2 / SCL2引脚)
#pragma config WDTWIN = WIN25     // 看门狗窗口选择位(WDT窗口为WDT周期的25%)

// FWDT
#pragma config WDTPOST = PS32768        // 看门狗定时器后分频比(1:32,768)
#pragma config WDTPRE = PR128           // 看门狗定时器预分频器位(1:128)
#pragma config PLLKEN = ON             // PLL锁定使能位(PLL源的时钟切换将等待PLL锁定信号有效)。
#pragma config WINDIS = OFF             // 看门狗定时器窗口使能位(非窗口模式下的看门狗定时器)
#pragma config FWDTEN = OFF              // 看门狗定时器使能位(看门狗定时器始终使能)

// FOSC
#pragma config POSCMD = XT            // 主振荡器模式选择位(主振荡器禁用)
#pragma config OSCIOFNC = OFF           // OSC2引脚功能位(OSC2为时钟输出)
#pragma config IOL1WAY = ON             // 外设引脚选择配置(仅允许一次重新配置)
#pragma config FCKSM = CSDCMD       // 时钟切换模式位(时钟切换和故障安全时钟监视器都被禁用)

// FOSCSEL
#pragma config FNOSC = PRIPLL         // 带 PLL 模块的主振荡器 (XT + PLL、 HS + PLL 和 EC + PLL)
#pragma config PWMLOCK = ON      // PWM锁定使能位(某些PWM寄存器只能在按键序列之后写入)
#pragma config IESO = ON                // 双速振荡器起振使能位(使用FRC启动器件,然后切换到用户选择的振荡器源)

// FGS
#pragma config GWRP = OFF               // 通用段写保护位(通用段可写)
#pragma config GCP = OFF                // 通用段代码保护位(通用段代码保护已禁用)

其实吧,MPLAB早之前就已经推出了**代码配置器MCC,功能超级强大,直接在图形中配置,勾选相应的配置位,直接生成代码,免去用户使用外设时还需要自己去写外设的初始化函数,很方便了。STM32也有自己的代码配置器CubeMX**,同样功能超级强大,减少项目的开发时间。感觉以后代码编辑器是单片机编程发展的大势所趋,不过还是建议有一定的开发基础后再上手MCC,不然有些地方看起来有点吃力哦。

有兴趣的同学可以去麦博士看看MCC的使用说明,在麦博士的视频频道里直接搜索MPLAB代码配置器(本来想贴个网址,老提示说有敏感词)。

差点忘了附上dsPIC33EP512MC504的最小系统。水平有限,单面板布线飞了几条线,不过总体布局还是看得过去的,板子也测试通过了。
NO.002:dsPIC33EP系列配置位的配置方法_第1张图片
NO.002:dsPIC33EP系列配置位的配置方法_第2张图片
本文参考文献:
(1)dsPIC33EP系列数据手册第27.1节 配置位;
(2)dsPIC33E/PIC24E Flash Programming Specification for Devices with Volatile Configuration Bits .(具有易失性配置位的器件的dsPIC33E/ PIC24E闪存编程规范);
(3)dsPIC33E&PIC24E FRM的第30章:器件配置。

对于程序,我是搬运工了。如果杨老板看见这篇博文有任何疑问,请留言哦。

你可能感兴趣的:(NO.002:dsPIC33EP系列配置位的配置方法)