葡京赌场
  • 2011阅读
  • 53回复

[MSP]从零开始来入门玩MSP430 [复制链接]

上一主题 下一主题
离线2545889167
 

发帖
11552
M币
50173
专家
232
粉丝
4487
只看楼主 倒序阅读 我要置顶 楼主  发表于: 昨天 22:55
— 本帖被 香瑶 设置为精华,作者+3000M币+5专家(2017-12-22) —
首先是看到了坛友的这个帖子
TI福利:MSP430FR2433铁电MCU开发板$4.30,可用支付宝,免国际邮费|http://www.boshilun2018.com/pjdc/read.php?tid=2301105
现在这个福利还有,还可以上车

有坛友问是不是涨价了,要9.9美元了。其实不是的。截至发帖,优惠活动还一直在
看图



虽然标识是售价是9.9美元,但是在结算的时候,需要输入优惠码Coupon Code: NEWMSP430LP,就自动变成4.3美元

帖子里给大家提供了ti(德州仪器)家的优惠开发板,我一想玩过8位机也玩过32位机了,16位机还从来没玩过,而且这个mcu还有个很特殊的地方就是储存方式是FRAM,据说优点很多,也是没玩过的东西,遂入手了一片。价格4.3美元,用支付宝付了折合人民币28.5元左右,良心的是居然全球包邮,这个价钱应该是连邮费都不够的。
铁电fram的优点,网上摘取了一点:
非易失,相比sram;

读写速度快,FRAM可以以总线速度写入数据,而且在写入后不需要任何延时等待;
寿命长,FRAM有近乎无限次写入寿命;
功耗低,比flash低一半以上。

扯了这么多,回到正题

第一次海淘电路板,还是有点小激动的。fedex速度不错,用了5天就到了

拆开看
本来想着真正的洋玩意了。赫赫大字写着made in china。
看来是漂了两次大洋身价就提升不少啊~



盒子正面

打开看 有静电袋包装 送了一根usb线


有个卡片写了引脚定义


开发板正面
这个板子上有三个msp430
MSP430F5528IRGCT调试器
MSP430G2452IRSA16R软件dcdc控制器
MSP430FR2433IRGER主角mcu 铁电储存



装上铜柱,准备开工




[ 此帖被2545889167在2017-12-22 00:36重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共24条打赏M币+347专家+2
wjhwpp M币 +13 謝謝分享 40分钟前
南湘小隐 M币 +13 謝謝分享 2小时前
abigbell M币 +10 确实不错,会玩的上吧 4小时前
潜隆 M币 +13 謝謝分享 4小时前
飞向狙沙 专家 +1 優秀文章 4小时前
飞向狙沙 M币 +20 優秀文章 4小时前
mipslinux M币 +15 優秀文章 4小时前
goodanytime M币 +13 謝謝分享 4小时前
hgmn M币 +13 原創內容 6小时前
wska M币 +13 謝謝分享 6小时前
离线2545889167

发帖
11552
M币
50173
专家
232
粉丝
4487
只看该作者 1楼 发表于: 昨天 22:56
第一部分:开发环境准备

已经安装好开发环境的可以直接跳过该部分


1、集成开发环境

因为之前传来没玩过msp430系列。所以我也是从零从小白阶段开始学习的。
要编程芯片,首先得有开发环境。
网上介绍说msp430系列有多个可以用的开发环境,
最常用的是IAR For MSP430和CCS,gcc用的人要少些。
其中ccs是官方提供的环境。
因为考虑到我之前在玩stm8也是用iar进行开发,所以对iar要更熟悉写,入手也容易些,所以我就选了iar
据说ccs也不错,容易配置,还有低功耗分析。不过要 稍微多占用硬盘些。

首先下载iar。
从官网下载最新版本,因为这个芯片比较新,有些老版本的软件可能不支持。所以建议下载最新。外网网速不好的朋友可以找找网盘什么的应该有
下载网页地址:http://www.boshilun2018.com/pjdc/iar-embedded-workbench/#!?architecture=MSP430
也可以直接点这个连接直接开始下载:http://www.boshilun2018.com/pjdc/SuppDB/Protected/PRODUPD/012584/EW430-7112-Autorun.exe


下载好以后
我这里几个安装包一比较的,430的也不算大,arm的可能是因为芯片种类多搞出一大坨


开始安装
点第一个选项



安装过程略过不提
第一次打开是这样的,提示需要激活。
因为iar并不是免费软件,所以需要解释一下(解释意为po-jie,下同)
解释过程请断开网络连接


打开解释工具(下载见楼下附件)
该工具可以解释iar个各个系列,这里选择msp430版本iar


在iar的许可证管理器里面选择离线注册选项

在弹出的窗口里面复制粘贴解释器给出的序列号


下一步,这里的硬件加密狗选择否


这里生成一个激活信息文件。选择路径保存到桌面(当然存别处也是可以的,这里只是为了方便,毕竟后面需要用的这个文件)


在解释器中导入刚才激活信息文件

点击activate license
这时会生成解释文件


回到iar激活向导,将解释文件导入,点击下一步,就大功告成了。怎么样,简单吧?


可见许可证管理器显示已经被解释~



2、安装调试器驱动
一般安装iar的时候会安装此驱动。如果没安装成功,可以在自己下载驱动安装
驱动下载地址:http://www.boshilun2018.com/pjdc/msp430/msp430_public_sw/mcu/msp430/MSP430_FET_Drivers/latest/index_FDS.html

需要登陆ti的myTI账号(可以是购买开发板的时候注册的那个账号)才可以下载。点击下载后,页面要求签署一个美国软件出口许可证,勾选民用,同意许可,就可以下载了。
安装过程略过不提



驱动安装成功以后,用usb线连接电脑和开发板,可以在设备管理器里面看到两个串口
其中applocation uart串口是和mcu的串口连接,相当于ch340的作用。直接在单片机上发送消息,串口助手就能收到
Debug Interface串口是调试器使用的,咱们不用管他



3、安装flash烧录软件(选装,不一定用得上)
flash烧录软件有两个版本一个是官方提供的uniflash,一个是第三方的elprotronic
官方提供的uniflash免费使用,但是个人感觉不怎么好用
下载地址:http://www.boshilun2018.com/pjdc/tool/cn/uniflash
http://www.boshilun2018.com/pjdc/index.php/Category:CCS_UniFlash

这是软件界面


第三方的需要收费,网上找的破解版版本太老,不支持这个芯片,所以我安装完又卸载了
下载地址http://www.boshilun2018.com/pjdc/products?show&id=34



折腾了半天,终于吧软件都安装完了,楼下开始写程序





[ 此帖被2545889167在2017-12-21 23:30重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共6条打赏M币+88
潜隆 M币 +13 謝謝分享 4小时前
goodanytime M币 +13 謝謝分享 4小时前
hfsp M币 +9 謝謝分享 4小时前
佳维 M币 +20 看不懂,但很羡慕楼主 7小时前
eros8269 M币 +13 謝謝分享 17小时前
snowman007 M币 +20 - 昨天 23:39
离线2545889167

发帖
11552
M币
50173
专家
232
粉丝
4487
只看该作者 2楼 发表于: 昨天 22:56
第二部分 新建工程
从安装开发环境到今天俺折腾了一天多点,终于摸了点入门,学习了新建工程,gpio,串口,adc,定时器pwm和fram读写,现在给大家分享下,共同进步。
首先打开iar
点击文件-新建工作区

点击文件-保存工作区

点击工程-创建新工程

选择空工程

ok以后需要保存工程。和工作区保存在一起即可。

点击图标,新建文件

保存为main.c

点击工程-加入文件  吧刚才创建的main.c加入到工程中

现在工程长这样

点击工程-配置

首先选择mcu型号
咱们的板子上的mcu是msp430fr2433

左边调整到debugger选项
选择调试器为fet debugger。这个也就是评估板上板载的调试器

左边调整到fet debugger选项
选择配置为swire模式,即两线调试 。速度选快速

完成配置后点ok。此时新工程就配置好了。
可以开始编程了

编程好了以后
点击编译图标,或者按f7键进行编译

点击下载并调试图标,会吧写好的程序自动下载到芯片内(不像51还要单独的烧写软件,这里很方便)

同时,界面进入到调试模式
这时候逐行执行代码,就会在开发板上显现出执行代码的效果。
常见按键的功能我已经在图上标注


如果是只为了下载程序,可以1、点击下载并调试 2、然后点击退出调试,程序就进入芯片了

[ 此帖被2545889167在2017-12-21 23:50重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
离线2545889167

发帖
11552
M币
50173
专家
232
粉丝
4487
只看该作者 3楼 发表于: 昨天 22:56
第三部分 开始正式学习编程
官方提供的文件和资源下载地址汇总:
1、开发板使用手册,原理图

    地址:http://www.boshilun2018.com/pjdc/tool/msp-exp430fr2433
     直接下载:http://www.boshilun2018.com/pjdc/lit/pdf/slau739


2、mcu数据手册

     地址:http://www.boshilun2018.com/pjdc/product/MSP430FR2433/technicaldocuments
     直接下载:http://www.boshilun2018.com/pjdc/lit/pdf/slase59


3、芯片编程使用者手册

     地址:http://www.boshilun2018.com/pjdc/product/MSP430FR2433/technicaldocuments
     直接下载:http://www.boshilun2018.com/pjdc/lit/pdf/slau445





好了准备了那么多,正式开始

1、按我的惯例,啥mcu到手都是先点灯嘛。
首先了解下点灯怎么玩。查看开发板原理图得知开发板上mcu的p1.0和p1.1接了LED。



接着查看User's Guide的Digital I/O部分
io可以配置输出输出,输入是可以配置浮空、上拉和下拉
PxOUT寄存器负责输出值设置,或者上下拉
PxDIR寄存器负责配置io是输出还是输入
PxREN寄存器负责配置在输入模式下是否上拉或者下拉

明白了GPIO控制原理以后,点灯就简单了

其中要注意的是

WDTCTL = WDTPW | WDTHOLD; 这句的意思是看门狗默认上电是开启的,所以我们在程序开始将看门狗暂停
PM5CTL0 &= ~LOCKLPM5;这句的意思是解除io的锁定状态,使其可以被配置
完整的程序我贴一下
  1. #include <msp430.h>
  2. #include <stdint.h>
  3. int main(void)
  4. {
  5.   uint32_t i;
  6.   WDTCTL = WDTPW | WDTHOLD;               // Stop watchdog timer
  7.   
  8.   P1OUT &= ~(BIT0|BIT1);
  9.   P1DIR |= (BIT0|BIT1);                          // Set P1.0 and P1.1 to output direction
  10.   
  11.   PM5CTL0 &= ~LOCKLPM5;                   // Disable the GPIO power-on default high-impedance mode
  12.                                            // to activate previously configured port settings  
  13.   while(1)
  14.   {    
  15.       P1OUT |= BIT1;
  16.       P1OUT &= ~BIT0;
  17.      for(i=10000; i>0; i--);
  18.       P1OUT &= ~BIT1;
  19.       P1OUT |= BIT0;
  20.      for(i=10000; i>0; i--);    
  21.    }
  22. }

编译下载后可以看到两个led在轮流爆闪



这里再简单介绍下在线调试怎么使用。
点击调试按钮进入在线调试模式

毕竟单片机区不少朋友玩51的比较多。51基本没有支持在线调试的功能的芯片,所以会用在线调试的朋友也不多。
当然大神自动略过就好




此时单片处于刚复位完并运行到main函数第一句的状态。图上的绿色条即为下一句需要执行的命令,绿色条以上为已经执行过的
此时灯不亮(因为刚复位)


初始化io后
此时io为低电平,灯不亮(高电平亮低电平不亮)



执行吧P1.1拉高
可见绿色led被点亮



执行完吧P1.0拉高指令后

可见红色led被点亮

执行吧P1.1拉低
绿色led熄灭

然后整个程序就如此循环执行,成两个灯爆闪。
其中for(i=10000; i>0; i--); 为延时

简单的点灯完成以后,我们来试试复杂点灯,按键控制led
程序不难。但是有些新引入的知识点~
主函数很简单


按键消抖使用状态机的方法来实现,
每1ms轮询一次按键
如果按下持续20ms,则认定为一次有效的按键,一旦检测到按键抬起,计数器立马归零


同时引入了配置时钟的概念
单片机有内部振荡器,也有外部振荡器。频率都是32.7khz,
内部振荡器不太精确,但是比较省电,且节约引脚(本来这货就没几个io)
外部要精确些。板子上R2、R3、R4、R5是选择外部晶振的电阻。默认是不用,需要用外部晶振的时候需要改焊一下。板子上丝印有说明
本实验因为时钟要求不高,又懒得动烙铁,就用内部时钟凑合了。
配置时钟一定要看时钟树


图在ug手册114页
可以看到高主频率发生的方法,是用fll(Frequency Locked Loop)生成的,这玩意中文叫锁频环,里面由反馈环路,鉴相器和数控振荡器组成,和pll锁相环类似的玩意,但是比pll复杂些。具体细节就不展开讲了,我们只用懂使用原理就行
配置如下,就可以得到8mhz的主频,此段代码可直接copy自官方demo



同时,mps430的编译器还支持一种精确的延时指令
__delay_cycles(),此命令的意思就是延时多少个cpu时钟。但是需要注意此指令不能传参。
只能是固定的数,然后编译器会翻译成准确的多少个cpu时钟延时


因为这个程序太长了,就不完整贴上来占版面了,请自行下载楼下附件
[ 此帖被2545889167在2017-12-22 01:08重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共2条打赏M币+17
zhkrid M币 +9 已撸,但完全看不懂(51都没入门),估计是吃灰的命 8小时前
keye M币 +8 謝謝分享,我的前几天就到了,快递还是非常快的 17小时前
离线2545889167

发帖
11552
M币
50173
专家
232
粉丝
4487
只看该作者 4楼 发表于: 昨天 22:57
继续玩耍
这次要更深入些
涉及到串口和pwm还有adc
串口部分需要注意的是波特率的配置
为了提高波特率的精确度,ti设置了整数分频位寄存器和小数分频位计数器


按照手册上的公式计算即可,代码中有详细计算注释

串口我使用了printf以方便使用,和其他mcu一样,需要重定义putchar


因为调试器自带vcp虚拟串口,所以一条线同时调试+串口信息输出,简直不要太方便

关于adc方面,ti的adc相当良心好评,毕竟是专业做模拟的。
就算这么少的引脚还引出了正负基准输入,且内部也带基准。
支持单次/连续/序列单次/序列连续模式,设置有数值阈值比较器,可以软件触发,也可以定时器或者外部触发,简直不要太良心
个人除了是10位以外,比stm32的adc要良心啊。

咱们先玩个简单的,软件触发,单次转换就行。测量的是内部adc

设置使用内部参考基准,转换速度最慢

内置出厂校准有30度是的adc读数和85度时的读数,直接可以换算出当前温度


如果不做平均的话,跳动还是不小哈,仅供参考哈


pwm部分比较简单


两个按键一个增加占空比,一个减小占空比
刚好定时器a0的ch1就在绿色led的引脚pa1.1上,所以按键可以调整led的亮度



完整程序见附件。

今天就先到这里,隔天再来更新。fram读写已经实验成功,但是还有点乱,等整理好了再发上来哈~


[ 此帖被2545889167在2017-12-22 01:32重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
离线2545889167

发帖
11552
M币
50173
专家
232
粉丝
4487
只看该作者 5楼 发表于: 昨天 22:57
资源和程序

附件包含:
楼上提到的所有程序的iar工程和源代码
ti官方提供的例程包
ti官方提供的开箱固件和源代码
iar解释工具






网盘连接:链接: http://www.boshilun2018.com/pjdc/s/1sluTCRj 密码: f8pv
[ 此帖被2545889167在2017-12-22 01:07重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共10条打赏M币+150
wjhwpp M币 +9 謝謝分享 40分钟前
zhuqing-1920 M币 +13 玩单片机的大神。 3小时前
潜隆 M币 +13 謝謝分享 4小时前
goodanytime M币 +13 認真發帖 4小时前
msi12 M币 +20 優秀文章 6小时前
佳维 M币 +20 謝謝分享 7小时前
mousebat04 M币 +20 大佬威武,但是建议还是把“解释”过程删除掉吧。 8小时前
qrut M币 +20 lz玩的都是高端 研究透了打算折腾个啥呢? 10小时前
福源人 M币 +13 謝謝分享 10小时前
ljlun M币 +9 謝謝分享,LZ玩MCU挺顺溜的 10小时前
离线lf1286

发帖
3950
M币
1776
专家
0
粉丝
20
只看该作者 6楼 发表于: 昨天 23:03
插楼,哈哈,前排观看,现场直播了
离线qrut

发帖
11561
M币
14746
专家
267
粉丝
212
只看该作者 7楼 发表于: 昨天 23:05
这个真便宜呀 等于白送  搬个马扎先占个座~
本帖最近打赏记录:共1条打赏M币+20
2545889167 M币 +20 真心便宜。重点是全球包邮,4刀邮费都不够 昨天 23:58
离线huchuan987

发帖
4443
M币
1065
专家
10
粉丝
101
只看该作者 8楼 发表于: 昨天 23:06
火前刘明,坐等直播!
离线ligoti

发帖
77
M币
1035
专家
1
粉丝
6
只看该作者 9楼 发表于: 昨天 23:07
座定定,看直播,,,,呵呵
快速回复
限80 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个
      合作: 博彩公司 新葡京娱乐 葡京赌场