本书以MSP432P401R固件库函数为主线,介绍了MSP432P401R的基本外设特点、结构与功能、固件库的函数列表及使用。本书采用真实硬件MSPEXP432P401RLaunchPad评估板来测试基于固件编写的程序,使用虚拟硬件Proteus8.3来测试基于寄存器编写的程序,以便把高效的基于固件编程与传统的基于寄存器编程的优点结合起来,以加快MSP432软件的开发速度。
本书可作为嵌入式工程师在基于固件MSP432开发时的参考用书,也可作为高校电类专业学习MSP432或Cortex,M4的入门教材。
基于固件的MSP432微控制器原理及应用
本书特色
一、采用基于固件的软件编程模式,让MSP432的编程变得易学与省时,可大大加快软件开发的进度。
二、介绍了完全采用Proteus8.3SP2的软件编写与测试方法,在介绍基于固件编程的同时也兼顾传统基于寄存器的方法。
三、较深入地介绍了软件调试与测试的技术细节,比如设置断点和单步调试方法,以利于初学者尽快跨进嵌入式程序员的行列。
四、本书尽量做到理论联系实际,让大多数程序都有相应的测试结果。
正值超低功耗的MSP430产品在业界做得风生水起的时候,2015年初TI又推出了全新的超低功耗MSP432 MCU产品,这是一款将低功耗MSP430所具有的卓越性能引入ARM Cortex领域中的产品。其凭借Cortex M4F内核、FPU引擎、DSP指令和48 MHz主频,更好地满足了那些正在寻求具有更高性能或行业标准内核的MSP用户和更低功耗的ARM用户的需求。
MSP432 MCU可利用与Cortex M0C+(M4F的性能比M0+强10倍)相当的功耗来实现Cortex M4F的全部性能,使得工业界或消费类应用领域的用户再也无须在低功耗与高性能之间做出取舍与权衡了。MSP432 MCU旨在为业界提供具有最低功耗的ARM Cortex M4F器件,这可通过EEMBC(嵌入式微处理器基准评测协会)的ULPBench(超低功率基准)评分来证明。在该项测试中,MSP432 MCU在所有同类的Cortex M3/M4F器件中获得了最高分——167.4分。
MSP432系列在工作状态下的电流仅为95 μA/MHz,在支持实时时钟的待机状态,电流可低至850 nA,并且还集成了针对超低功耗的外设,包括:
集成的DC/DC,与低压降稳压器(LDO)相比,可降低40%的功耗;
为8个 RAM 段中的每个段提供专用电源,从而使每个段的耗能减少30 nA;
14位 ADC,在1 MSPS 时的电流仅为375 μA;
存储在ROM中的驱动库(即所谓的固件库),可比闪存省电35%;
具有独立段的256 KB闪存,能同步执行内存读取和擦除;
存储在ROM驱动库(即所谓的固件库)中的数据,比保存在闪存中的数据执行速度快200%。
AES 256硬件加密加速器使得程序员能够保护器件和数据安全,而MSP432上的IP保护也可确保数据和代码的安全性。鉴于MSP432具有大的数据吞吐量、更加完整的高级算法和有线或无线物联网 (IoT) 堆栈,以及更高分辨率的显示图像等优点,或许MSP432的设计思想将代表今后MCU的发展方向,因而具有广泛的应用前景。
由于MSP432 MCU刚面市不久,国内还没有针对MSP432的原理及应用的相关技术书籍,因此作者撰写此书对其进行介绍。
本书的特点如下:
采用基于固件的软件编程模式:易学,省时,可降低程序员的入门门槛,并且可以大幅提高软件的开发速度,是替代传统的基于寄存器软件开发模式的不二选择。
较详细地介绍了软件调试与测试的技术细节,比如设置断点和单步调试方法,以利于初学者尽快跨进嵌入式程序员的门槛。
为充分利用现有的书籍及网络资源,本书还介绍了CCS 6.1、Keil for ARM与IAR for ARM三种最新版的开发软件。
最熟悉TI芯片的人莫过于TI自己的工程师,本书尽量原汁原味地把TI工程师的编程方法介绍给读者。
基于固件来介绍MSP432的软件编程方法,并不是抛弃基于寄存器的传统软件开发模式,而是将二者有机地结合起来。这样做,仅需在包含文件中加入MSP432的头文件即可,这样就可以在那些适于基于寄存器编程的地方添加基于寄存器的代码到应用程序中,并以基于Proteus 8.3虚拟软硬件平台的形式出现即可。这也可以使那些有MSPEXP432P401R LaunchPad评估板但外围硬件有限或无该板卡的读者测试基于寄存器编写的代码了。
介绍了基于Proteus 8.3开发平台的软硬件编程与调试方法。
尽量将理论和实践结合起来,规避两种倾向(高校老师编写的书——偏理论,软硬件工程师编写的书——偏程序),特别适用于初学者。
本书的主要内容包括:
开发工具使用入门;
MSPEXP432P401R LaunchPad开发板简介;
系统时钟模块;
数字I/O端口;
电源系统;
内部存储器;
ADC14模块;
比较器E及基准A模块;
定时器模块;
嵌套向量中断控制器;
eUSCI_A的UART模式;
eUSCI的SPI模式;
eUSCI_B的I2C模式;
DMA控制器;
基本图形库。
在本书的编写过程中使用了大量TI公司的中英文资源,并得到了TI中国大学计划部谢胜祥工程师和潘亚涛经理等的大力协助;此外,TI还为本书的软件测试提供了全部实验器材。王凯、程泳、郭丹、李晗、吴仪炳、陈添丁、杨元廷、史进、谢文福、杨叶腾、陈松雷、寿永勇、寿永勇、余延臻、林东灿、林亮亮、许惠敏 、王爱忠、苏泓、史永祥、陈鸿霖、周楠、赵建欣、王丽琴、谭笑、林静、黄荣、高建鸿、杜程远、张志鸿、张伟敏、吴承清、林肖、李加滨、江丽珍、黄冠莉、陈阳、董晓芳、 陈志成、姜杨、彭浩书等同学参与了个别章节和固件库函数的初始翻译与资料整理工作;同时,在编写本书的过程中得到了北航出版社编辑的全程指导,以及EEWORLD网站http://bbs.eeworld.com.cn/ 的大力支持,在此一并表示感谢。
本书可作为嵌入式工程师在基于固件的MSP432开发时的参考用书,也可作为高校电类专业学习MSP432或ARM Cortex M4的入门教材。
由于时间紧,任务重,加上本人的水平有限,难免会有纰漏,敬请读者批评指正。
刘杰
2015年11月于福大怡园
第1章 搭建软件开发环境…………………………………………………………….…….……….……1
第2章 MSP EXP432P401R LaunchPad评估板简介……………………………….…….……29
第3章 时钟系统模块(CS)………………………………………………………………….…………48
第4章 数字IO端口…………………………………………………………………………………….……64
第5章 电源系统……………………………………………………………………………………….….……81
第6章 内部存储器(Memory)………………………………………………………………….……97
第7章 ADC14模块……………………………………………………………………………………………120
第8章 比较器及基准模块………………………………………………………………………………..142
第9章 定时器模块……………………………………………………………………………………………157
第10章 嵌套向量中断控制器(NVIC)………………………………………………………………187
第11章 UART模块……………………………………………………………………………………………197
第12章 增强型通用串行通讯接口SPI模式…………………………………………………….217
第13章 eUSCI的I2C模块………………………………………………………………………………..236
第14章 DMA模块…………………………………………………………………………………………….260
第15章 基本图形库(Grlib) ……………………………………………………………………………….281