电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
【dsPIC33】dsPIC33初识
分 享
扫描二维码分享
【dsPIC33】dsPIC33初识
dsPIC
MPLAB
KVIN
关注
发布时间: 2019-09-26
丨
阅读: 1686
# 前言 由于项目需要,之前做无感FOC一直是用的STM32F103,最近领导决定要更换芯片为dsPIC,因为最后的产品是做卡车水泵,因此环境比较恶劣,环境温度可能会有100摄氏度左右,因此担心32扛不住,更换更能扛的dsPIC芯片。之后便是dsPIC芯片的学习过程,这款芯片的资料着实不好找,没有32那么普及,但是官方给的说明文档倒是写得比ST好很多,他们的手册看起来也比较详细,上手也算是比较快了。 因为这个是没有库的,所以全部都要看寄存器手册来手撸了,不过也还好,他们的寄存器不是特别多。 Microchip的工程师最开始是给了我一个推荐的原理图,也就只有原理图参考了,我先根据原理图与自己的一些功能画了一块初步的测试板,看看FOC的功能能不能实现,可以实现的画,就再优化出新的板。 ![](https://cf03.ickimg.com/bbsimages/201909/0eff2d8bc0b1a3ec5e8490996fa7ab3c.jpg) ![](https://cf03.ickimg.com/bbsimages/201909/1b53e8a0dc31aacde1c22b83e392e836.jpg) 下载器的话,向代理商申请了一个PICkit3: ![](https://cf03.ickimg.com/bbsimages/201909/4dc1b0647d87ee3dc227836219233ef9.png) 关于这个调试器的话,手册也有一些说明,手册写得很多,我们常用的也就是接口怎么接,外围电路怎么画这样的,如图: ![](https://cf03.ickimg.com/bbsimages/201909/14d729b4898cbc7822fe61f1fbe830db.png) ![](https://cf03.ickimg.com/bbsimages/201909/435eb3ce3e435decac3c6e9d5b6fe83a.png) 使用PICkit3来下载的话,一般是需要外部供电的,也可以手动设置使用PICkit3来供电,步骤如下(不过我一般就使用外部供电了): ![](https://cf03.ickimg.com/bbsimages/201909/6f7173b06b7d10b54bdbd7c6883b3499.png) ![](https://cf03.ickimg.com/bbsimages/201909/a1b48b418b60d82886031ece226f469b.png) ![](https://cf03.ickimg.com/bbsimages/201909/f28d7448ef58cf87a8e04c0148b0bb01.png) 上图中我使用的IDE为Microchip官方的MPLAB X,这个IDE用起来没有keil顺手,可能我用keil时间长了,不过这个IDE是免费的,不用担心被keil养肥了再宰的问题。 在这个IDE里,配置位是非常重要的,配置位也即对于芯片的一些基本配置,包括下载口,晶振选择,PWM,IIC引脚选择,看门狗等等,因此创建工程之后,首先要记得对配置位进行配置,这里配置位可以自己手动书写,也可以使用MPLAB生成,然后把生成的代码复制过去,步骤如下: 1.点击 窗口->PIC存储器视图->Configuration bits ![](https://cf03.ickimg.com/bbsimages/201909/8413514e3ac123180684bbe297cc0b6d.png) 2.在此更改配置位,然后点击 输出生成源代码 ![](https://cf03.ickimg.com/bbsimages/201909/605a2756ffc4826339f6b35037dd9165.png) 3.复制程序,粘贴到程序中 ![](https://cf03.ickimg.com/bbsimages/201909/eb7851b8fd041f615b0ca59ff46b6c24.png) 检验第一个程序是否成功的标准当然是点亮LED,这已经成为了芯片入门的标志,关于dsPIC的IO端口操作,只需要简单阅读一下手册即可,这部分的程序也不是很难,基本上只需要用到两个寄存器:TRISx与PORTx,TRISx用来指定端口模式,0为输出,而PORTx就可以读写数据,在这里要说明一下,dsPIC的编程有些意思,它可以像其他芯片一样进行位操作,例如: TMR3 = 0x0000;//数值高位字 同时,也为使用者封装好了寄存器的结构体,操作也比较顺手: dsPIC可直接使用结构体:TRISBbits.TRISB4 = 0; (即在寄存器后加bits即为结构体名) 就像下图的定时器配置的两种风格: ![](https://cf03.ickimg.com/bbsimages/201909/06a4f71dede3a7063ee5db1a5665862f.png) 最后,点灯程序奉上: ```c TRISA = 0xffef; //A4端口配置为输出 PORTAbits.RA4 = 1;//熄灭LED ```
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
0
)
KVIN
关注
评论
(0)
登录后可评论,请
登录
或
注册
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交