【深入浅出CortexM4-SWM320 第一章】SWM320控制器简介
INTEL的8080是最早按照这种思想设计出的处理器,当时的单片机都是4位或8位的。其中最成功的是INTEL的8051,此后发展出了MCS51系列单片机系统,因为简单可靠而性能不错获得了很大的好评。可2000年以后ARM公司先后推出了32、64位,主频从几十MHz到上GHz。在很多方面单片机比专用处理器更适合应用于嵌入式系统,因此它得到了广泛的应用。事实上单片机是世界上数量最多处理器,随着单片机家族的发展壮大,单片机和专用处理器的发展便分道扬镳。
几乎现代人类生活中的每件有电子器件的产品中都会集成有单片机。例如手机、智能穿戴、智能家居、掌上电脑等电子产品。 汽车上一般配备几十片单片机,复杂的工业控制系统上甚至可能有数百、上千片单片机在协同工作!单片机的数量不仅远超过PC机和其他计算机的总和。截止17年末,据官方统计,基于ARM核的芯片出货量达到了600多亿,是世界人口的10倍之多。
可见单片机应用之广,前景之大,随着物联网、人工智能、区块链等新兴技术的兴起,加之对速度、功耗、性能等方面的严格要求,基于ARM核的控制器以优越的性价比取代8位机,是大势所趋,设计所向,那么学习基于ARM核的单片机也迫在眉睫。
1.1 ARM知多少
一、ARM公司简介
ARM(Advanced RISC Machine)有三种含义,它是一家公司的名称;是一种技术的名称;是一类处理器的通称。
ARM公司是微处理器行业的一家知名企业,提供基于ARM体系的知识产权。ARM公司并不生产芯片,也不出售芯片;转让设计方案给半导体厂商,由半导体厂商生产SOC,并销售;同时提供一些其他的技术服务,比如物理IP、图像内核、开发工具、实时操作系统。
二、ARM处理器家族
ARM处理器家族现阶段有四大类,具体如下:
- 早先经典处理器,包括ARM7、ARM9、ARM11,称之为Classic系列;
- Cortex-M系列,该系列为单片机驱动的系统提供了低成本优化方案,应用于传统的微控制器市场,蓝牙、WiFi设备,智能传感器,汽车周边部件等。具体分类有Cortex-M0、Cortex-M1、Cortex-M3、Cortex-M4、Cortex-M7。
- Cortex-A系列,主要针对开放式操作系统的高性能处理器。应用于智能手机、数字电视、智能本等高端领域。按性能可分为Cortex-A5、Cortex-A7、Cortex-A8、Cortex-A9、Cortex-A15、Cortex-A53、Cortex-A57。
- Cortex-R系列,主要针对实时系统、满足实时性的控制需求,应用于汽车控制系统、动力系统等。分类有Cortex-R4、Cortex-R5、Cortex-R7。
三、ARM处理器指令集
所谓指令集就是处理器能够识别并执行的指令集合,每条指令可处理一个简单或复杂操作(加、加乘…),并且每一条指令对应一条或几条汇编指令。
常见指令集分两大类,复杂指令集(CISC),包括处理复杂操作的特定指令,指令长度不固定,执行需要多个周期;精简指令集(RISC),指令简单有效,格式和长度通常是固定的,大多数指令在一个周期内可以执行完毕。其中ARM的内核是基于RISC体系结构的。
四、片上系统-SOC
片上系统是指在单个芯片上集成一个完整的计算机系统,所谓完整的系统一般包括*处理器(CPU)、存储器、外围电路等。我们入门的51单片机同样是一个片上系统,只是他的资源没有基于ARM的这么丰富,运行主频么有那么快,功耗等方面没有那么有优势。
既然ARM公司不出芯片,那我们用的IC是有哪些厂商制造了?世界上能制造芯片的厂商很多,这里不一一列举,其中以Cortex-M为核心的有欧美的Microchip、Silicon Labs、NXP、ST等,*的新唐、松翰、合泰,大陆的上海灵动、北京兆易、佛山华芯微特。这里我们着重以华芯微特的SWM320(M4核)为主,来讲述SWM320的学习和应用。
1.2 SWM320简述
SWM320是一款基于ARM公司CortexTM-M4的32位微控制器。具有高性能、低功耗、代码密度大等突出特点,适用于工业控制、白色家电、电机驱动等诸多应用领域。
SWM320内嵌CortexTM-M4控制器,片上包含精度为1%以内的20MHz、40MHz时钟,可通过PLL倍频到120MHz时钟,提供多种内置FLASH/SRAM大小可供选择,支持ISP(在系统编程)操作及IAP(在应用编程)。
外设串行总线包括1个CAN接口,多个UART接口、SPI通信接口(支持主/从选择)及I2C接口(支持主/从选择)。此外还包括1个32位看门狗定时器,6组32位通用定时器,1组32位专用脉冲宽度测量定时器,12通道16位的PWM发生器,2个8通道12位、 1MSPS的逐次逼近型ADC模块,1 SDIO接口模块,TFT-LCD液晶驱动模块以及RTC实时时钟、SRAMC、SDRAMC、NORFLC接口控制模块,同时提供欠压检测及低电压复位功能。同时外设可通过编程,*分配到各个GPIO口上,这样极大简化了PCB的设计。
1.3 SWM320的特性
- 内核
- 32位CortexTM-M4内核
- 24位系统定时器
- 工作频率最高120MHz
- 硬件单周期乘法
- 集成嵌套向量中断控制器(NVIC),提供最多240个、8级可配置优先级的中断
- 通过SWD接口烧录
- 内置LDO,供电电压范围为2.0V~3.6V
- 128KB的片上SRAM存储器
- 256/512KB的片上FLASH存储器,支持用户定制ISP(在系统编程)更新用户程序
- 串行接口
- UART模块,具有独立8字节FIFO,最高支持主时钟16分频
- SPI模块,具有8字节独立FIFO,支持SPI、SSI协议,支持master/slave模式
- I2C模块,支持7位、10位地址方式,支持master模式
- CAN模块,支持协议2.0A(11Bit标识符)和2.0B(29Bit标识符)
- PWM控制模块
- 12通道16位PWM产生器
- 可设置高电平结束或周期开始两种条件触发中断
- 具有普通、互补、中心对称等多种输出模式
- 支持死区控制
- ADC采用触发
- 定时器模块
- 6路32位通用定时器
- 可做计数器使用
- 支持输入单脉冲捕获功能
- 32位看门狗定时器,溢出后可配置触发中断或复位芯片
- RTC 模块
- 使用支持自校正功能的内部32KHz时钟
- 可*设置日期(年、月、周、日)和时间(时、分、秒
- 可*设置闹钟(周、时、分、秒)
- 自动识别当前设置年份是否为闰年
- 支持RTC中断从Sleep模式下唤醒芯片
- DMA 模块,支持存储器到存储器之间的数据搬运
- SRAMC模块,支持8位数据位宽和16位数据位宽的外部SRAM存储颗粒,最大支持24位地址线
- SDRAMC模块
支持16Bit位宽的SDRAM
支持兼容PC133标准的SDRAM颗粒
支持2MB到64MB的外部SDRAM颗粒
- NORFLC模块
支持并行NOR FLASH接口
支持8位数据位宽和16位数据位宽的外部NOR FLASH存储颗粒
最大支持24位地址线
- SDIO接口模块,支持标准SDIO接口协议
- TFT-LCD 驱动模块
- 支持MPU/SYNC两种接口的外部LCD扩展
- 支持最高分辨率1024*768,实际分辨率可以配置
- 输出数据宽度16Bit
- 支持横屏和竖屏模式
- GPIO
- 可配置成4种IO模式(上拉输入、下拉输入、推挽输出、开漏输出)
- 灵活的中断配置
- 触发类型设置(边沿检测、电平检测)
- 触发电平设置(高电平、低电平、双电平)
- GPIO可配置灵活配置为I2C、UART、SPI、CAN等接口
- 模拟外设
- 12位8通道高精度SAR ADC
- 采样率高达3M SPS
- 内建7档参考电压,最低至100mV
- 支持single、scan两种模式
- 独立的结果寄存器
- 提供独立 FIFO
- 可由软件、PWM、TIMER 触发
- 支持 DMA
- 欠压检测( BOD)
- 支持欠压检测
- 支持欠压中断和复位选择
- 时钟源
- 20MHz/40MHz 精度可达1%的片内时钟源
- 32KHz精度可达5‰的片内时钟源
- 2~32MHz片外晶振
- 环境
- 工作温度:-40℃~105℃
- 保存温度:-40℃~150℃
- 湿度等级:MSL3
- 可定制 ISP 程序,可定制96BIT独立ID
1.4 SWM320功能框图及其封装实物
前面了解到,每个单片机实质是一个片上系统,这里我们看看SWM320的片上系统结构框图,具体如图1-1所示。
、
图1-1 SWM320结构框图
具体资源在特性里有详细介绍这里,这里不再赘述。其封装形式有LQFP64(图1-2左)、LQFP100(图1-2右),其示意图见图1-2。
1.5 SWM320应用领域
基于以上丰富的特性和惠民的价格,可广泛应用于各行各业。
- 音频系统:专业麦克风、吉他控制板
- 工业计算设计:EBS、PLC、测量和测试、工厂自动化、HMI控制系统
- 消费类产品:智能家电、LCD、数码产品
- 楼宇和家庭自动化:物联网关、照明控制、温湿度控制
- 电机控制和电源转换:3D打印机、无人自动驾驶、机器人