STM32F0实战:基于HAL库开发
上QQ阅读APP看书,第一时间看更新

第1章 “芯”系ARM

在剑桥郊外一个不起眼的商业园区中,坐落着几栋随意排列的办公楼,这就是英国最成功的科技公司之一——ARM公司的总部所在地。也许你对ARM这个名字还不太熟悉,但它的产品却在几乎所有智能手机中处于核心地位。从本章开始,我们将一起步入ARM的世界,领略它惊人的运算和处理能力。

1.1 强劲的ARM芯

ARM(Advanced RISC Machines)公司是微控制器行业的一家知名企业,设计了大量高性能、廉价、低耗能的RISC微控制器和相关技术及软件。通过将其技术授权给世界上许多著名的半导体、软件和OEM厂商,ARM公司成为许多全球性RISC标准的缔造者。目前总共有30余家半导体公司与ARM签订了硬件技术使用许可协议,其中包括Intel、IBM、LG半导体、NEC、SONY、飞利浦和国家半导体等知名企业。

1.1.1 最成功的科技公司

采用ARM技术知识产权的微处理器已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占32位RISC微处理器75%以上的市场份额。目前,全世界超过95%的智能手机和平板电脑都采用ARM架构,ARM技术正在逐步渗入我们生活的方方面面。

20世纪90年代,ARM业绩平平,处理器的出货量徘徊不前。由于资金短缺,ARM做出了一个意义深远的决定,不再制造芯片,只将芯片的设计方案授权给其他公司,由它们来生产。正是这个模式,最终使得ARM芯片遍地开花。进入21世纪,由于手机制造行业的快速发展,出货量呈现爆炸式增长,ARM处理器占据了全球智能手机市场的主导地位。2016年7月,ARM被日本软银收购,并欲成为下一个潜力巨大的科技市场即物联网的领导者。

在传统的计算设备中,如笔记本电脑、台式计算机和服务器等,Intel和AMD两家公司生产的处理器占据了绝大多数的市场份额。应当说,单纯从计算能力来讲,Intel和AMD的处理器都是非常强大的,大量机器运行的操作系统也都依靠这两家公司的芯片产品,包括Windows、Mac OS和Linux。但强大的计算能力带来的是功耗的成倍提升,以Intel的处理器为例,其平均80W的功率显然不是一般移动设备所能承受的。而由ARM公司授权生产的处理器运行功率非常小,一个多核心的ARM处理器大约只有4W的功率,并能让整个系统都运行在一个芯片上。这一特点使其产品特别适合用于个人电子设备,更小的功率意味着更小的占用空间、更好的散热和更加经济的成本。这也是ARM处理器成功的关键。

1.1.2 ARMv6-M架构

Cortex是ARM公司一个处理器系列的名称。ARM公司最初的处理器产品都以数字命名,如ARM7、ARM9和ARM11等。在ARM11之后,新推出的处理器产品则改用Cortex命名。Cortex系列基于先进的ARMv7架构。按照应用领域不同,基于ARMv7架构的Cortex处理器系列所采用的技术也不尽相同:基于v7A的称为Cortex-A系列,定位为应用处理器,支持复杂的运算,主要面向尖端的、基于虚拟内存的操作系统和用户应用,代表型号如Cortex-A9;基于v7R的称为Cortex-R系列,定位为实时高性能处理器,主要针对实时系统的应用,如硬盘控制器和汽车控制系统等,代表型号为Cortex-R4;基于v7M的称为Cortex-M系列,定位为微控制器处理器,用于工业控制和低成本消费产品等嵌入式系统,代表型号为Cortex-M3。我们所熟悉的STM32F103xx就是基于Cortex-M3内核的微控制器产品。

也许好多好的想法都源于偶然,就像牛顿的万有引力定律与苹果的关系一样。在基于Cortex-M3内核的微控制器产品获得成功后,一个全新的设计理念诞生了,这就是基于Cortex-M0的新系列微控制器产品。Cortex-M0的设计理念源于酒吧里几位工程师的对话。作为ARM的开发者,他们都在寻找一种很小的32位处理器,这个想法很快就成为一个成熟的项目(代号为Swift),于是在2009年,Cortex-M0设计完成,并在很短的时间里便成为最成功的ARM处理器产品之一。

Cortex-M0系列并没有基于传统的ARMv7架构,而是在Cortex-M3的基础上,在易用性和低功耗方面加以改进,以ARMv7-M架构的异常处理和调试特性为基础,使用了ARMv6架构的Thumb指令集,从而设计出了崭新的ARMv6-M架构。

1.1.3 Cortex-M0处理器简介

Cortex-M0系列处理器具有低功耗和操作简单的特点,主要面向的是入门级市场。为了实现这一目的,并且能够保留Cortex-M3特有的先进高端特性,Cortex-M0系列的硅片面积进一步缩小,并且代码量极少,这使得该系列处理器能够在低成本应用中实现32位的高性能。Cortex-M3和Cortex-M0指令集之间的对应关系如图1-1所示。

图1-1 Cortex-M0指令集(图片源自ST技术手册)

不仅如此,为了降低功耗,微控制器的结构也做了重大修改,从哈佛结构改为冯·诺依曼结构(单总线接口),进一步降低了系统的复杂性。Cortex-M0使用32位的精简指令集(RISC)。该指令集被称为Thumb,其中增加了几条ARMv6架构的指令,并且纳入了Thumb-2指令集的部分指令。Cortex-M0处理器的内部结构如图1-2所示。

图1-2 Cortex-M0处理器的内部结构

Cortex-M0处理器的各部分功能如下。

1)处理器内核包含寄存器组、算术逻辑单元(ALU)、数据总线和控制逻辑。按照设计要求,流水线可以工作在取指、译码和执行三种状态下。

2)嵌套向量中断控制器(NVIC)用于处理最多32个中断请求和一个不可屏蔽中断(NMI)输入,NVIC需要比较正在执行中断和处于请求状态中断的优先级,然后自动执行高优先级的中断。

3)唤醒中断控制器(WIC)在低功耗应用中使用。当微控制器的大部分模块关闭后,微控制器会进入待机状态。此时,WIC可以在NVIC和处理器处于休眠的情况下执行中断监测功能,当WIC检测到一个中断时,会通知电源管理器给系统上电,让NVIC和处理器内核执行剩下的中断过程。

4)调试子系统由多个模块构成,用于处理调试控制、程序断点和数据监视点。当调试进行时,处理器内核会自动进入暂停状态。

5)JTAG和SWD接口提供了通向内部总线系统和调试功能的入口。JTAG一般用作测试功能,而SWD则是一种新型接口,只需两根线(时钟线和数据线)就可以完成芯片编程或实现与JTAG相同的调试功能。

6)内部总线系统、处理器内核的数据通路以及AHB-LITE总线均为32位宽,其中AHB-LITE是片上总线协议,应用于多款ARM处理器中。AMBA是ARM开发的总线架构,已经广泛应用于IC设计领域。

1.1.4 Cortex-M0处理器的特点

Cortex-M0微控制器功耗非常低、门数量少、代码占用空间小,能在8位微控制器的价位上获得32位微控制器的性能,可明显降低系统成本,同时能保留对功能强大的Cortex-M3微控制器开发工具的兼容能力。Cortex-M0微控制器的主要特点如下。

1.功耗低

降低功耗是Cortex-M0处理器的设计初衷,在使用65nm半导体制造工艺时,处理器的功耗为12μW/MHz,在180nm工艺时功耗也仅为85μW/MHz,这对于32位处理器来说已经是很低的水平了。在Cortex-M0处理器的开发过程中,ARM应用了多种技术和优化措施,以确保硅片面积尽量小,并对处理器的每一部分都经过了小心处理和反复验证以降低功耗。通过尽量减少门数量,直接降低了芯片的动态功耗和漏电流:最低配置的ARM处理器仅需12000个门;为了追求更佳的性能,门的数量通常控制在17000~25000个,这已经同一般的16位处理器差不多了,但性能却是16位处理器的两倍有余。

2.效率高

Cortex-M0处理器拥有高效率的架构,这主要归功于Thumb指令集以及高度优化的硬件设计,可以使用较低的时钟频率来降低动态电流并获取高性能。Cortex-M0处理器片内有快速乘法器(单周期)和小型乘法器(32周期)可供选择,在使用快速乘法器时,处理能力可以达到0.9 DMIPS/MHz,而使用小型乘法器时,可以达到0.85 DMIPS/MHz。这个性能与老式台式机使用的80486DX2的0.81 DMIPS/MHz处理能力差不多,但从硅片面积和功耗方面来看就有相当大的差距了。

3.架构先进

Cortex-M0本身在架构上支持低功耗,还提供了睡眠和深度睡眠两种低功耗模式,同时也支持Sleep-on-exit功能,即一旦中断处理完成,微控制器会重返睡眠模式,从而缩短微控制器处于活跃状态的时间。另外,Cortex-M0还提供了可选的WIC功能,在深度睡眠模式下整个系统时钟关闭,只保持WIC处于工作状态,用于在紧急时刻唤醒微控制器。

4.中断时间确定

内置的嵌套向量中断控制器(NVIC)使中断配置和异常处理简洁而迅速。当接收到中断请求后,中断处理会自动执行,而且无须软件查找中断向量的位置,中断响应时间确定,同时保留了不可屏蔽中断(NMI)输入,对打造高可靠性系统提供了可能。

5.软件可移植

Cortex-M系列处理器主要是用于微控制器产品,其中Cortex-M3处理器首先发布,其功能丰富且性能出众;Cortex-M1随后发布,主要用于FPGA产品。而Cortex-M0则是Cortex-M系列发布的第三个处理器。尽管这些处理器的应用场景不同,但它们都有一致的内核架构、相似的系统模型和兼容的指令集。

Cortex-M3处理器基于ARMv7-M内核架构,使用Thumb-2指令集,而Cortex-M0和Cortex-M1处理器都是基于ARMv6-M内核架构,使用Thumb指令集。Thumb-2指令集是Thumb指令集的超集,因此在Cortex-M0上设计的程序可以在完全不用修改的情况下应用在Cortex-M3处理器上。

对于所有基于Cortex-M内核的微控制器,其软件代码都可以使用C语言来编写,这样编程时间更短,而且可移植性强。另外,Cortex-M0架构支持嵌入式操作系统——在一些复杂的应用中,使用嵌入式操作系统会让并行任务处理变得更加得心应手。

1.1.5 RISC架构

RISC(Reduced Instruction Set Computer,精简指令集计算机)是一种执行较少类型计算机指令的微控制器。ARM公司设计的微控制器均基于RISC架构,它能够以更快的速度执行操作。因为计算机执行每个指令类型都需要额外的晶体管和电路元件,指令集越大,微控制器就会变得越复杂,执行操作也会更慢,因此使用RISC架构的微控制器可以增加工作效率并降低功耗。

RISC微控制器不仅精简了指令系统,还采用了超流水线结构。虽然它们的指令数目只有几十条,却大大增强了并行处理能力,可以在单一指令周期内容纳多个并行操作。另外,RISC芯片的工作频率一般在400MHz数量级,时钟频率低,功率消耗少,温升也少,机器不易发生故障和老化,提高了系统的可靠性。

1.1.6 AMBA总线

ARM研发的AMBA(Advanced Microcontroller Bus Architecture)提供了一种特殊的机制,可将RISC微控制器集成在其他IP芯核和外设中。2.0版的AMBA标准中定义了三组总线:高级高性能总线(Advanced High-performance Bus, AHB)、高级系统总线(Advanced System Bus, ASB)和高级外设总线(Advanced Peripheral Bus, APB)。

1. AHB

高级高性能总线由主模块、从模块和基础结构三部分组成,整个AHB上的传输都由主模块发出,由从模块负责回应。其基本结构由仲裁器、主模块到从模块的多路选择器、从模块到主模块的多路选择器、译码器、虚拟从模块、虚拟主模块等组成,是应用于高性能、高时钟频率的系统模块。它构成了高性能的系统骨干总线。

2. ASB

高级系统总线适用于连接高性能的系统模块。它的读/写数据总线采用的是同一条双向数据总线,可以在某些高速且不需要使用AHB的场合作为系统总线使用,并可以支持处理器、片上存储器和片外处理器接口以及与低功耗外部单元之间的连接。

3. APB

APB是本地二级总线,通过桥与AHB或ASB相连,主要是为了满足不需要高性能流水线接口或不需要高带宽接口的设备互连。APB只有一个APB桥,用于将来自于AHB或ASB的信号转换为合适的形式以满足挂接在APB上设备的要求,如串行口、定时器等。

1.1.7 微控制器软件接口标准(CMSIS)

随着嵌入式软件越来越复杂,软件代码的兼容性和可重用性变得非常重要,这样既可减轻项目开发者的压力、缩短开发时间,又方便第三方软件组件的使用。为了使这些软件产品具有高度的兼容性和可移植性,ARM同许多微控制器和软件供应商共同努力,为Cortex-M处理器产品开发出一个通用的软件接口标准CMSIS。该标准相当于Cortex-M处理器的跨平台驱动程序,用于在不同的开发环境中调用。

1. CMSIS的软件功能

CMSIS通常作为微控制器厂商提供的设备驱动库的一部分来使用,它提供了一种标准化的软件接口,并且针对Cortex-M0、Cortex-M3等处理器特性,定义了相应的操作函数,这也提高了软件的可移植性。CMSIS的软件功能如图1-3所示。

图1-3 CMSIS的软件功能

图1-3中,采用ARM内核的微控制器产品由Cortex-M0核和外设构成。对于外设来说,微控制器厂商通常会提供标准外设函数库来作为其外设产品的驱动,而CMSIS则是ARM公司为Cortex-M系列内核定义的驱动函数库。CMSIS提供了以下标准化的内容。

❑标准化的操作函数,用于访问NVIC、系统控制块(SCB)以及SysTick定时器。

❑使用Cortex-M微控制器特殊指令的标准化函数。因为有些指令不能由普通的C代码生成,如果需要这些指令,就可以使用CMSIS提供的相应函数来实现。

❑系统异常处理的标准化命名。当系统异常有了标准化命名以后,在一个操作系统里支持不同的设备驱动库也变得更加容易。

❑系统初始化函数的标准化命名。通用的系统初始化函数被命名为“SystemInit()”,提高了软件的兼容程度。

❑为时钟频率信息建立标准化的变量。这个变量被命名为“SystemFreq”或者“System CoreClock”,用于确定处理器的时钟频率。

2. CMSIS的组织结构

CMSIS被集成在微控制器供应商提供的设备驱动包中。当使用设备驱动库进行软件开发时,就已经在使用CMSIS了。CMSIS设备驱动库具有相似的内核函数和接口,一旦使用了一种Cortex-M微控制器,就可以触类旁通,很快上手另外一款微控制器产品。CMSIS的软件结构可以分为核心外设访问层、中间件访问层、设备外设访问层和外设访问函数等,具体如图1-4所示。CMSIS提供的驱动文件功能详见表1-1。

图1-4 CMSIS结构

表1-1 CMSIS中的文件

1.2 STM32系列微控制器

意法公司推出的STM32F0系列微控制器集成了高性能的32位ARM Cortex-M0 RISC内核,内嵌高速存储器,具有广泛增强的外设和I/O端口、标准的通信接口、多个定时器、ADC和DAC转换设备,以及一整套可以用于低功耗应用的节电模式设计。这些特点使得STM32F0系列产品可以适用于各种应用,如家电控制、用户界面、手持设备、A/V接收器和数字TV、PC辅助设备、游戏和GPS平台、工业应用、PCL、逆变器、打印机、扫描仪、报警系统和视频应用等。

1.2.1 STM32微控制器家族

从意法公司的网站上,我们能清楚地看到该公司旗下微控制器的产品线构成。意法公司的微控制器产品可以分为低成本的8位单片机产品STM8系列、基于32位ARM处理器的STM32系列以及32位的SPC56车用系列。意法公司的微控制器产品线结构如图1-5所示。

图1-5 微控制器产品线结构(源自意法公司网站)

在意法公司微控制器产品中,目前型号最多、功能最丰富的当属STM32系列。该系列产品基于ARM Cortex-M内核,可划分成超低功耗系列、主流系列和高性能系列,分别基于Cortex-M0/M0+、Cortex-M3、Cortex-M4和Cortex-M7内核,为微控制器用户提供多种选择。STM32系列微控制器产品家族如图1-6所示。

图1-6 STM32系列微控制器产品家族(源自意法公司网站)

1.2.2 STM32的命名规则

STM32系列微控制器产品遵循统一的命名规则,产品型号的最开始部分“STM32”代表意法公司的32位产品家族,之后的型号定义规则如图1-7所示。

图1-7 STM32系列微控制器命名规则

❑产品类型

■ F=通用

■ L=超低功耗

❑设备子系列

数字越大,即表示具有更多的功能。例如,STM32L0系列包括STM32L051、L052、L053、L061、L062、L063等子系列,其中STM32L06x系列具有AES功能,但STM32L05x系列没有这样的功能。另外,设备子系列编号的最后一个数字显示器件具备的功能:

■ 1=通用产品

■ 2=具备USB接口

■ 3=具备USB接口和液晶控制器

❑引脚数量

■ F=20引脚

■ G=28引脚

■ K=32引脚

■ T=36引脚

■ S=44引脚

■ C=48引脚

■ R=64引脚(或66引脚)

■ M=80引脚

■ O=90引脚

■ V=100引脚

■ Q=132引脚

■ Z=144引脚

■ I=176(+25)引脚

■ B=208引脚

■ N=216引脚

❑ Flash存储器容量

■ 4=16KB Flash存储器

■ 6=32KB Flash存储器

■ 8=64KB Flash存储器

■ B=128KB Flash存储器

■ C=256KB Flash存储器

■ D=384KB Flash存储器

■ E=512KB Flash存储器

■ F=768KB Flash存储器

■ G=1024KB Flash存储器

■ I=2048KB Flash存储器

❑封装

■ B=SDIP

■ H=BGA

■ M=SO

■ P=TSSOP

■ T=LQFP

■ U=VFQFPN

■ Y=WLCSP

1.2.3 STM32F0系列微控制器功能概述

STM32F0系列微控制器大致可以分成三类产品:STM32F030系列是F0家族中的低成本系列,其特点是引脚和外设数量较少,价格也经济实惠;STM32F0x1系列是主流产品,有着较多的产品型号、较多的外设、多种封装选择和适当的价格,是产品开发设计的首选;STM32F0x2系列代表F0家族中的最强阵容,该类产品在F0x1系列的基础上增加了全速USB2.0接口和CAN通信接口,是性能和低功耗的有机组合。本书余下的篇幅将以STM32F072VBT6微控制器为例,力求对其功能进行较为全面的叙述。

STM32F072VBT6微控制器基于ARM Cortex-M0的32位RISC内核,工作频率为48MHz,具有高达128KB的闪存和16KB的SRAM存储器,具有多个增强型外设,如定时器、串行通信接口、ADC、DAC、CAN、USB和I/O接口等。STM32F072家族微控制器的特性和外设配置详见表1-2。

表1-2 STM32F072家族器件特性和外设配置

1.内核

STM32F072家族微控制器内核采用了ARM公司的32位Cortex-M0 CPU,最大频率为48MHz,在低成本、低功耗的前提下提供了出色的运算性能、较高的代码执行效率和快速的中断响应。

2.存储器

❑ Flash存储器:配置有64~128KB的Flash存储器,这些存储器可以被分成两部分,其中内部存储器区域用于存放程序和数据,选项字节则用于设定芯片的工作特性或为存储区域提供读写保护。

❑ SRAM存储器:内部16KB SRAM能以CPU的速度进行读写访问,无需等待周期,内置的奇偶校验功能可以防止在复杂苛刻的应用条件下发生错误。

3. CRC计算单元

独立的CRC(循环冗余校验)计算单元可以依靠硬件计算并生成CRC码,用于检验数据传送或存储的完整性。

4. DMA控制器

7通道DMA控制器用于管理存储器到存储器、外设到存储器以及存储器到外设的数据传送。每个DMA通道都连接到专用的DMA请求,并且每个通道都支持软件触发。使用DMA可以极大地减轻CPU的数据传输压力,提高运算性能。

5.复位和供电管理

❑ STM32F072家族微控制器的电源供电分为几个部分:VDD的供电电压为2.0~3.6V,用于给I/O口和内部电压调节器供电;VDDA的供电电压同样为2.0~3.6V,用于给ADC、复位时钟、RC振荡器和PLL供电;VBAT的供电电压为1.6~3.6V,当微控制器的VDD掉电后,VBAT用于给RTC、外部32kHz时钟振荡器和备份寄存器供电。

❑微控制器内部集成了上电复位(POR)和掉电复位(PDR)电路。这两个电路会一直保持有效,以确保微控制器在2V阈值之上正常工作。当电源电压低于规定的阈值VPOR/VPDR时,微控制器将处于复位状态。

❑微控制器还内嵌一个可编程的电压检测器(PVD)以监控VDD电源。当VDD低于或高于VPVD阈值时,会引发中断用于产生警告信息或将微控制器置于某个安全状态。

❑电压调节器有主电源(MR)、低功耗(LPR)和掉电三种工作模式。其中,MR用于正常工作模式,功率消耗最大;LPR用于停止(STOP)模式,这时微控制器工作在低功耗模式下;掉电用于待机(STANDBY)模式,电压调节器输出为高阻状态,内核电路掉电,寄存器和SRAM的内容全部丢失。

6.低功耗模式

STM32F072家族微控制器支持睡眠、停止和待机三种低功耗模式,以便在低电源功耗、快速启动时间和可唤醒三者之间实现最佳的低功耗解决方案。

7.时钟管理

STM32F072家族微控制器可用的时钟源有4~32MHz外部晶体振荡器、32kHz的RTC振荡器、内部8MHz RC振荡器(带×6锁相环倍频)、内部40kHz RC振荡器和48MHz振荡器。当微控制器复位后,默认情况下选择内部的8MHz RC振荡器作为默认的时钟。通过配置也可以选择4~32MHz的外部时钟。如果外部时钟出现故障,系统会自动切换到内部RC振荡器上继续运行。通过设定相应的预分频器,软件可以配置AHB和APB总线频率,AHB和APB的最大频率为48MHz。

8.通用输入输出接口(GPIO)

STM32F072家族微控制器最多可以配置87个高速I/O口,每个GPIO引脚都可以通过软件配置为输出(上拉或开漏)、输入(带或不带上拉/下拉)或作为外设的复用功能,所有GPIO可配置为外部中断输入。

9.模-数转换器(ADC)

STM32F072家族微控制器内部集成有1个12位模-数转换器,转换范围为0~3.6V,最多有16个外部通道和3个内部通道(温度传感器、参考电压和VBAT电压测量)。ADC可以执行单次或扫描转换。ADC还具有模拟看门狗功能,允许精确地监测一个或多个模拟电压,当模拟电压超出可编程阈值时会产生一个中断。

10.数-模转换器(DAC)

12位的DAC转换器可以将数字信号转换成模拟电压信号输出,内部集成有运算放大器,可以选择电压或电流输出,DAC可以通过定时器触发输出。

11.模拟比较器

微控制器内嵌两个快速低功耗轨至轨(rail to rail)模拟比较器,具有可编程的参考电压源。模拟比较器可以将微控制器从STOP模式中唤醒、产生中断或中止定时器,还可组合成窗口比较器。

12.触摸感应控制器

独立触摸感应控制器(TSC)具有最多24个电容感应通道,用于I/O端口上触控感应采集,支持接近、触摸按键、线性和旋转触摸感应控制。

13.实时时钟(RTC)

实时时钟(RTC)是一个独立BCD编码的定时器/计数器,用于产生亚秒、秒、分、时、周、天、日、月、年等时间信息,时间数据采用BCD编码格式,并可自动调整月天数;可编程闹钟可以将微控制器从停止或待机中唤醒;具有两个可编程防侵入检测引脚,当检测到侵入事件时可以将微控制器从停止或待机模式中唤醒;时间戳功能用来在发生时间戳事件时,保存日历内容并唤醒微控制器。

14.定时器

STM32F072家族微控制器内部配置有1个16位高级控制定时器,用于6通道PWM输出,并且带有死区时间发生器和紧急刹车功能;1个32位和7个16位定时器,具有最多4路输入捕获或输出比较通道,可用于红外控制和解码或DAC控制;1个独立的窗口看门狗定时器和24位向下计数的SysTick定时器。

15.通信接口

❑ 2个I2C接口:支持快速脉冲模式(1Mbit/s),其中1个还支持SMBus/PMBus功能。

❑ 4个USART接口:支持主同步SPI和Modem控制功能,其中2个还支持ISO7816接口、LIN、IrDA、自动波特率检测和唤醒功能。

❑ 2个SPI接口:通信速率18Mbit/s,支持4到16位可编程字长,支持I2S接口。

❑ 1个CAN通信接口。

❑ 1个USB2.0全速接口,可以使用内部48MHz振荡器时钟运行。

16.高清晰度多媒体接口(HDMI)

微控制器内嵌HDM-CEC控制器,提供消费电子控制(CEC)协议的硬件支持,可供多媒体设备间的高级控制和互联使用。