MCU

MCU是Microcontroller Unit(微控制器单元)的缩写,它是一种集成了中央处理器(CPU)、存储器(ROM、RAM)、输入/输出端口(I/O)、定时器(Timer)、串行通信接口(UART、SPI、I2C等)和其他外围设备控制器的单个芯片。MCU通常用于嵌入式系统中,用于控制各种电子设备和系统。

由于其集成度高、体积小、功耗低以及成本相对较低等特点,MCU被广泛应用于各种嵌入式系统中,例如智能家居设备、医疗设备、汽车电子系统、工业自动化等。MCU的选择通常基于应用的需求,如处理性能、功耗、外设接口等因素。

嵌入式电子+人工智能

在技术发展的历史上,技术先独立发展再相互融合以改变世界的例子比比皆是。原子能和喷气式发动机的融合催生了核动力航母,改变了20世纪大部分战争的形态。计算机和射频通信的融合产生了智能手机,同时也重新定义了我们与技术以及彼此之间的互动方式。今天,嵌入式电子和人工智能(AI)的融合正日益成为下一个具有颠覆性的技术组合。接下来我们就看一下这种融合的发展演变。

欢迎来到网络边缘

人工智能的概念最早出现在古希腊人的著作中,但直到20世纪上半叶,才开始将其作为一种实际技术进行开发。从根本上来说,人工智能让数字技术仿佛人脑一样,能够与模拟世界高效而快速地互动沟通。为了让人工智能在现实世界获得实际应用,比如在自动驾驶车辆中,那么在处理多个动态输入时,电子设备和物理世界之间的交互必须接近瞬时完成。值得庆幸的是,随着机器学习算法的发展,嵌入式电子系统也在不断进步。他们的联姻催生出了边缘计算的概念。
边缘计算将过去只有云端强大处理硬件才具备的处理能力,带给了位于物理-数字接口边缘的本地设备。再加上MCU和传感器等价格便宜而又性能强大的嵌入式组件的普及,最终在自动化领域掀起了一场规模、功能都史无前例的革命。

“图1:Google的“TensorFlow
图1:Google的“TensorFlow Lite for Microcontrolller”网站(图片来源:Google)

TensorFlow Lite:基于微型硬件的大型机器学习算法

TensorFlow是Google主导开发的一套开源软件库,使开发人员能够轻松地将复杂的数值计算算法和机器学习(ML)集成到他们的项目中(图1)。按照Google的说法,这些库为Python(所有平台上的Python 3.7+)和C语言提供稳定的应用程序编程接口(API)。此外,它们还为C++、Go、Java和JavaScript提供不保证向后兼容的API。针对Apple公司的Swift语言,它也提供了一个alpha版本。

TensorFlow为深度神经网络(DNN)的开发和利用提供了我们常说的端到端机器学习支持。DNN是机器学习的一种应用类型,特别擅长模式识别以及对象检测与分类。TensorFlow库支持机器学习过程的两个阶段,即训练和推断。其中第一阶段是深层神经网络的训练,这需要大量算力,通常由服务器级硬件和图形处理单元(GPU)提供。张量处理单元(TPU)则是最近开发的一种专用集成电路,用于支持这种训练。第二阶段是推断,即利用在现实世界中接受训练的DNN来回应新的输入:按照培训好的模型分析这些输入,并根据分析结果提出建议。这应该是嵌入式产品开发人员比较感兴趣的阶段。

适用于MCU的TensorFlow Lite(TensorFlow库的一个子集)专门用于在内存受限的设备上执行推断,大多数嵌入式系统应用中都存在这种设备。它不允许您训练新的网络,那仍然需要更高端的硬件。

实用为王:ML应用实例

在嵌入式系统上运行人工智能算法的目标,就是要比传统程序或面向对象的编程方法更高效地处理传感器收集的真实世界数据。也许在大家的意识中,最常见的使用案例是从传统汽车到具有自动辅助功能(如车道偏离警报和防撞系统)的汽车,再到无人驾驶汽车这个最终目标的发展历程。不过,深度学习还有其他一些不那么显眼的用例,虽然你不知道,但已经在使用了。智能手机中的语音识别或Amazon Alexa等虚拟助手均使用了深度学习算法。其他用例包括用于安防领域的面部检测和/或背景替换、去除绿幕、远程会议软件(如Zoom)等。

人工智能、神经网络和机器学习等术语有时候给人的印象就像科幻小说或行话。那么这些新兴技术的现实意义何在?

“图2:使用AI,可以自动监测安全源来识别某些人(图源:Monopoly919
图2:使用AI,可以自动监测安全源来识别某些人(图源:Monopoly919 - stock.adobe.com)

同时使用机器学习算法和联网设备(如物联网设备)带来的一个巨大优势就是,随着时间的推移,产品可以通过简单的OTA固件更新来集成新的或经过更好训练的模型。这意味着产品可以逐渐变得更加智能,并且不局限于制造时能够实现的功能,只要新的模型和固件不超出硬件的物理内存和处理能力即可。

“图3:将TensorFlow模型转换为可在MCU等内存受限设备上使用的版本。(图源:NXP)"
图3:将TensorFlow模型转换为可在MCU等内存受限设备上使用的版本。(图源:NXP)

工作流程

根据适用于MCU的TensorFlow Lite的说明文档,开发人员的工作流程可以分为五个关键步骤(图3),具体如下:

1、创建或获取一个TensorFlow模型

该模型必须足够小,以便在转换后适合目标设备,并且它只能使用支持的运算。如果要使用当前不支持的运算,可以提供自定义实现。

2、将模型转换为TensorFlow Lite FlatBuffer

使用TensorFlow Lite转换器将模型转换为标准TensorFlow Lite格式。您可能希望输出一个量化模型,因为这种模型的尺寸更小,执行效率更高。

3、将FlatBuffer转换为C位数组

模型保存在只读程序内存中,并以简单的C文件形式提供。可以使用标准工具将FlatBuffer转换为C位数组。

4、集成适用于MCU的TensorFlow Lite C++库

编写MCU代码来收集数据,使用C++库执行推断,然后使用结果。

5、部署到设备

编写程序并将其部署到您的设备。

选择与TensorFlow Lite库一起使用的兼容嵌入式平台时,开发人员应注意以下几点:

  • 基于32位架构(如Arm Cortex-M处理器)和ESP32的系统。

  • 它可以在内存仅有数十KB的系统上运行。

  • 适用于MCU的TensorFlow Lite采用C++ 11编写。

  • 适用于MCU的TensorFlow Lite可作为Arduino库提供。该框架还可以为其他开发环境(如Mbed)生成项目。

  • 不需要操作系统支持、动态内存分配或任何C/C++标准库。

后续步骤

Google提供四个预先训练的模型作为示例,可用于在嵌入式平台上运行。只需稍做修改,就能在各种开发板上使用。这些示例包括:

1、Hello World

演示使用适用于MCU的TensorFlow Lite的必备基础知识。

2、Micro-Speech

用麦克风捕捉音频以检测单词“yes”和“no”。

3、Person Detection

用图像传感器捕捉摄像头数据,以检测是否有人。

4、Magic Wand

捕获加速度计数据以对三种不同的身体姿势进行分类。

本文为贸泽电子独家原创文章,转载请注明来源。
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:
cathy@eetrend.com)。

围观 279

随着电子行业的迅猛发展,微控制单元(Microcontroller Unit;MCU,以下简称MCU)已经成为大多数电子产品上不可或缺的一部分。使用MCU,必然接触到IO(Input,Output)口,对于IO口的输入输出状态就要有所了解。什么是漏极开路输出?什么是推挽电路?什么时候要加上拉电阻?什么时候加下拉电阻。要学习IO口状态,首先要知道三极管及mos管是MCU内部电路的重要组成部分,漏极开路的漏指的就是mos管的漏极(Drain——D),所以首先我们要先搞清楚三极管及mos管的工作原理。

1、PN结

PN结是三极管以及场效应管中最基本的组成部分,要想彻底搞明白三极管以及场效应管的工作原理,必须先搞清楚PN结形成的原理和工作特性。

在纯净的硅晶体中掺入五价元素(如磷),使之取代晶格中硅原子的位置,就形成了N型半导体。在纯净的硅晶体中掺入三价元素(如硼),使之取代晶格中硅原子的位置就形成了P型半导体。采用不同的掺杂工艺,将P型半导体和N型半导体制作在同一片硅片上,他们的交界面就形成了PN结。对于PN结的理解需要注意几点:

(1)N型半导体和P型半导体都是电中性的,所谓的P和N不代表电性,代表的是多数载流子的电性。

(2)加入这些杂质元素后就会形成多余载流子(空穴或者自由电子)的根本原因在于在原子内部,负电荷可分(每个电子带一个负电荷),正电荷不可分(全部集中于原子核)。

(3)空穴本身无法运动,所以空穴作为载流子的根本还在于吸收电子。也就是说空穴传输电流的本质还是电子的移动产生的电流。

PN结具体单向导电性,当给PN结加正向电压(正向偏置),即与内电场方向相反的外加电场时,内电场被削弱,最终的结果是N区的电子不断的进入P区,且N区可以从外加的电源中源源不断的汲取电子,于是就形成了较大的正向电流,如下图所示。

“图1"
图1

如果反过来加反向电压(反向偏置),即外电场与内电场方向相同,导致的是多子难以扩散,少子的漂移运动加强。但是由于少子数量极少,所以无法形成持续不断的电流,此时PN结处于截止状态。

PN结外加正向电压时处于导通状态,PN结外加反向电压时处于截止状态。

2、三极管

晶体三极管中有两种带有不同极性电荷的载流子参与导电,故称之为双极型晶体管(BJT),又称半导体三极管,简称晶体管。根据掺杂方式的不同在同一硅片上制造出三个掺杂区域,并且形成两个PN结,这就构成了晶体管三极管。晶体管三极管根据PN结不同分为NPN和PNP型。采样平面工艺制成的NPN型硅材料晶体管位于中间的P区称为基区,它很薄切杂质浓度很低;位于上层的N区是发射区,掺杂浓度很高;位于下方的N区是集电区,面积很大;三个区引出的电极分别称为基极b、发射极e和集电极c。发射区与基区之间的PN结称为发射结,基区与集电区之间的PN结称为集电结。三极管的结构及符号如下图所示:

“图2"
图2

三极管的主要功能有:交流信号放大、直流信号放大和电路开关。同时三极管有三个工作区间,分别是:放大区、饱和区和截止区。

输出特性曲线描述基极电流Ib为一常量的时候,集电极电流Ic与管压降Uce之间的函数关系,对于每一个确定的Ib,都有一条曲线,对于某一条曲线,当Uce从零逐渐增大时,集电结电场随之增强,收集基区非平衡少子的能力逐渐增强,因而Ic也就逐渐增大。当Uce增大到一定数值的时候,集电结电场足以将基区非平衡少子的绝大部分收集到集电区来,Uce再增大,收集能力已经不能显著提高,表现为曲线几乎平衡于横轴,即Ic几乎仅仅决定于Ib。晶体管有三个工作区域,如图所示:

“图3"
图3

(1)截止区(发射极反向偏置,集电极反向偏置):其特征是发射结电压小于开启电压且集电结反向偏置。对于共射电路,Ube<=Uon且Uce>Ube。此时Ib=0,而ic非常小,对于小功率的晶体管Ic甚至在1uA以下,因而可以认为晶体管在截止时的Ic=0.

(2)放大区(发射极正向偏置,集电极反向偏置):特征是发射结正偏且Ube>Uon,并且集电结反相偏置,即对于共射电路Ube>Uon且Uce>Ube。由于发射结正偏,发射极的多数载流子(无论是P的空穴还是N的自由电子)会不断扩散到基极,并不断从电源补充多子,形成发射极电流Ie。由于基极很薄,且基极的多子浓度很低,所以从发射极扩散过来的多子只有很少一部分和基极的多子复合形成基极电流Ib(发射极和基极的极性一定是相反的,所以各自的多子极性相反)。而剩余的大部分发射极传来的多子会继续扩散到集电极边缘。由于集电结反偏,所以反偏电压会将在集电极边缘的来自发射极的多子拉入集电极,形成较大的集电极电流Ic。这个时候Ic几乎仅仅决定于Ib与Uce无关,表现出Ib对Ic的控制作用。

(3)饱和区(发射极正向偏置,集电极正向偏置):特征是发射结和集电结均处于正向偏置,对于共射电路,Ube>Uon且Uce<Ube.此时Ic不仅与Ib有关,而且明显随Uce增大而增大。

在上面的描述中无论是截止区还是放大区都相对容易理解,但是对于饱和区就不太容易理解了。首先三极管导电的原理是:射极和基极之间正偏,发射极有电子可以注入基极。其中极少部分与基极的多子复合后仍有大量的电子处于基极边缘。此时集电极和基极之间反偏,于是集电极有足够的吸引电子的能力。此时只要基极电流增大就意味着有更多的电子处于基极和集电极边缘,此时这些电子全部可以被集电极吸走。于是此时的Ic只受到Ib的控制。但是当Uce逐渐减小,吸引电子的能力逐渐下降。当在Ib的作用下注入基极和集电极之间的电子没有办法被集电极全部吸走的时候,也就是随着Ib的增大,Ic的增大量与对应放大区相比减小或者不再增大的时候,就进入了饱和区。所以所谓的饱和区指的是集电极的吸收电子能力的饱和。工程上近似认为Uce=Ube时为临界饱和,但饱和曲线的真正物理意义应该是要得到某一数值的Ic,至少需要加上多大的Uce。

3、场效应管

场效应管(FET)是利用输入回路的电场效应来控制输出回路电流的一种半导体器件,由于紧靠半导体中的多数载流子导电,又称单极型晶体管。场效应管分为结型和绝缘栅两种,因为绝缘栅型晶体管(mosfet,下面简称mos管)的栅源间电阻比结型大得多且比结型场效应管温度稳定性好、集成化时工艺简单,因而目前普遍采用绝缘栅型晶体管。

Mos管分为N沟道和P沟道两类,每一类又分为增强型和耗尽型两种,只要栅极-源极电压Ugs为零时漏极电流也为零的管子均属于增强型管,只要栅极-源极电压Ugs为零时漏极电流不为零的管子均属于耗尽型管,这样就形成了四种类型。但实际应用的只有增强型的N沟道MOS管和增强型的P沟道MOS管,所以通常提到NMOS,或者PMOS指的就是这两种。对于这两种增强型MOS管,比较常用的是NMOS。原因是导通电阻小,且容易制造。所以开关电源和马达驱动的应用中,一般都用NMOS。下面的介绍中,也多以NMOS为主。MOS管的三个管脚之间有寄生电容存在,这不是我们需要的,而是由于制造工艺限制产生的。寄生电容的存在使得在设计或选择驱动电路的时候要麻烦一些,但没有办法避免。漏极和源极之间有一个寄生二极管,叫体二极管,在驱动感性负载(如电机),这个二极管很重要。体二极管只在单个的MOS管中存在,在集成电路芯片内部通常是没有的。N沟道增强型MOS管如下图所示:

“图4"
图4

MOS管电路符号如下图所示:

“图5"
图5

N沟道增强型MOS管基本上是一种左右对称的拓扑结构,它是在P型半导体上生成一层SiO2 薄膜绝缘层,然后用光刻工艺扩散两个高掺杂的N型区,从N型区引出电极,一个是漏极D,一个是源极S。在源极和漏极之间的绝缘层上镀一层金属铝作为栅极G。当Vgs=0 V时,漏源之间相当两个背靠背的二极管,在D、S之间加上电压不会在D、S间形成电流。当栅极加有电压时,若0<Vgs<Vgs(th)(Vgs(th)称为开启电压)时,通过栅极和衬底间形成的电容电场作用,将靠近栅极下方的P型半导体中的多子空穴向下方排斥,出现了一薄层负离子的耗尽层;同时将吸引其中的少子向表层运动,但数量有限,不足以形成导电沟道,将漏极和源极沟通,所以仍然不足以形成漏极电流Id。

进一步增加Vgs,当Vgs>Vgs(th)时,由于此时的栅极电压已经比较强,在靠近栅极下方的P型半导体表层中聚集较多的电子,可以形成沟道,将漏极和源极沟通。如果此时加有漏源电压,就可以形成漏极电流Id。在栅极下方形成的导电沟道中的电子,因与P型半导体的载流子空穴极性相反,故称为反型层。随着Vgs的继续增加,Id将不断增加。在Vgs=0V时Id=0,只有当Vgs>Vgs(th)后才会出现漏极电流,所以,这种MOS管称为增强型MOS管,如下图所示:

“图6"
图6

整个MOS管从关闭到开通的过程比较复杂,后面介绍电机应用的时候会重点介绍MOS管导通和关断过程及米勒电容(Miller Capacitance)在开关过程中起到的作用。

Vgs对漏极电流的控制关系可用转移特性曲线描述,转移特性曲线如下图b所示,转移特性曲线的斜率的大小反映了栅源电压对漏极电流的控制作用。

“图7"
图7

上图a称为输出特性曲线,曲线中在Vgs=2V的曲线下方可以成为截止区,该区域的情况是Vgs还没有到达导电沟道导通电压,整个MOS管还没有开始导电。

可变电阻区又称为放大区,在Vds一定的的情况下Id的大小直接受到Vgs的控制,且基本为线性关系。注意三极管中的放大区和MOS管的放大区有很大区别,不能觉得是相似的。

恒流区又称为饱和区,此时Id大小只收到Vgs的控制,Vds变化过程中Id的大小不变。

4、开漏输出及推挽电路

经过前面的学习,我们对三极管及MOS管的工作原理已经有了大致的了解,下面开始介绍IO常用的模式,下图是某MCU公司的IO口模式配置表:

“图8"
图8

从上表中可以清晰看到IO的输入输出状态是有漏极开路和推挽输出区别的,并且还有是否增加上拉电阻或者下拉电阻。首先解释一下上拉电阻和下拉电阻的概念。如果一个线路中的电压处于不确定的状态(例如一个引脚不和任何其它回路连通时),那我们就说它的电压是浮动的,他会随着时间不断变化跳动,而且很容易受到外界环境的影响。处于这种不确定状态的电路会被随机解释为高或者低电平,这种现象也叫电子噪声。然而程序必须是严格准确的,所以电路的设计一定要避免线路电压处于浮动状态。可以使用上拉电阻或者下拉电阻将电路的电压在任何时候都保持在确定的状态下,这就是上拉电阻和下拉电阻的作用。下拉电阻的作用就是将一个未知的电平拉低到稳定的低电平状态。上拉电阻的作用就是将一个未知的电平拉高到稳定的高电平状态。

漏极开路:要理解漏极开路输出要先理解开集输出,开集的意思就是三极管集电极(collector)一端什么都不接,直接作为输出端口(如下图中C端与R1断开)。如果要用这种电路带负载,比如接一个LED,必须接一个上拉电阻。当Vin没有电流的时候(三极管基极没有电流流入),三极管Q5断开,LED灯亮;当Vin流入电流的时候,Q1导通,LED灯灭。开漏输出就是把三极管换成场效应管(Field effect transistor)。

“图9"
图9

推挽电路:如下图所示,上面的三极管是NPN型三极管,下面的三极管是PNP型,当Vin电压为Vf时,上面的三极管控制端有电流流入,上管Q6导通,于是电流从上往下通过,提供电流给负载,经过上面的NPN三极管提供电流给负载R2,这就叫做推;下表1为推挽输出和开漏输出对比:

“”

当Vin为GND时,下面的三极管有电流流出,Q7导通,有电流从Q7上往下导通,这个过程就叫做挽。

“图10"
图10

对于开漏(开集)输出,看一个更典型的经典应用,如下图所示:

“图11"
图11

上图电路为电机控制的一个驱动输出电路。MCU输出端能量级低,不足以驱动MOS管V1,这个时候就需要借助电路辅助输出。当PWM为低电平的时候,NPN三极管Q7(MMBT5551)由于Vbe=0V,所以属于关断状态,PNP三极管Q13(SS8550)的Vbe也为0V,所以Q13也在关断状态,MOS管的Vgs=0V,所以V1无法开通。

当PWM信号为高电平时(一般MCU输出为3.3V或5V),在Q7的发射结正向偏置且大于开启电压,此时Q7导通。由于Q7导通,R93、Q7及R87形成回路,Q13的的基极与发射极电压不再等电位,此时Vbe<0,Q13导通,15V电源通过R101给MOS管的栅极充电,MOS管逐渐开通。

5、单片机的并行口结构介绍

了解了IO口输入输出模式,下面先以8051单片机的IO口为例进行IO口模式解析。

1)P0口结构

P0口由一个输出锁存器、一个转换开关MUX、两个三态输入缓冲器、输出驱动电路和一个与门及反相器组成,如下图所示:

“图12"
图12

图中控制信号状态决定转换开关的位置。当控制信号为1时,开关处于图中所示位置;当控制信号为0时,开关拨向锁存器的反相输出端。

这里只讨论P0口作为通用IO使用的情况,此时单片机硬件自动的使控制信号为0,MUX多路开关接向锁存器的反相输出端,多路开关的控制信号同时与与门的一个输入端是相接的,与门的逻辑特点是“全1出1,有0出0”那么控制信号是0的话,这时与门输出的也是一个0(低电平),与门输出的“0”使输出驱动器的上拉场效应管V1处于截止状态。

P0口用作向引脚输出(即输出状态Output)的工作过程:当写锁存器信号CP 有效,数据总线的信号→锁存器的输入端D→锁存器的反向输出Q非端→多路开关→V2管的栅极→V2的漏极到输出端P0.X。当多路开关的控制信号为低电平0时,与门输出为低电平,V1管是截止的,所以作为输出口时,P0是漏极开路输出,当驱动上接电流负载时,需要外接上拉电阻。流程图如下:

“图13"
图13

P0口用作向引脚输入(即输入状态Input)的工作过程,数据输入时(读P0口)有两种情况:读引脚和读锁存器,这里只分析读引脚的情况,读引脚数时,读引脚缓冲器打开(即三态缓冲器的控制端要有效),通过内部数据总线输入,并被送入累加器。执行该类输入指令之前要先把锁存器写入“1”,目的是使场效应管V2截止,从而使引脚处于悬浮状态,可以作为高阻抗使用。否则,在作为输入方式之前曾向锁存器输出过“0”,V2导通会使引脚钳位在“0”电平,使输入电平“1”无法读入。请看下图:

“图14"
图14

2)P1口结构

P1口一般使8051单片机的唯一单功能口,只能作为通用的数据输入和输出。结构如下图所示:

“图15"
图15

由图可见,P1口由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成,内部设有上拉电阻。输出高电平的时候,能向外提供拉电流负载,不像P0那样需要上拉电阻。当用作读引脚的时候,控制器打开读引脚三态门,引脚上的数据经过三态门进入内部总线,并被送入累加器。同P0口一样,也需要注意先把锁存器写入“1”,使场效应管V2截止,从而使引脚处于悬浮状态,可以作为高阻抗使用。否则,在作为输入方式之前曾向锁存器输出过“0”,V2导通会使引脚钳位在“0”电平,使输入电平“1”无法读入。

6、M0内核的IO口模式

“图16"
图16

上图为某MCU的IO口基本结构。可以看到上图中的PMOS和NMOS组成了一个CMOS(互补金属氧化物半导体,Complementary Metal Oxide Semiconductor)。下面简述一下用CMOS组成的应用电路的工作过程(见下图)。

“图17"
图17

电路将一个增强型P沟道MOS管和一个增强型N沟道MOS场效应管组合在一起使用。当输入端为低电平时,P沟道MOS管导通,输出端与电源正极接通。当输入端为高电平时,N沟道MOS场效应管导通,输出端与电源地接通。在该电路中,P沟道MOS场效应管和N沟道MOS场效应管总是在相反的状态下工作,其相位输入端和输出端相反。通过这种工作方式我们可以获得较大的电流输出。同时由于漏电流的影响,使得栅压在还没有到0V,通常在栅极电压小于1到2V时,MOS场效应管即被关断。不同场效应管其关断电压略有不同。也正因为如此,使得该电路不会因为两管同时导通而造成电源短路。

通过上面分析的上拉电阻和下拉电阻的作用,结合图16可知,当我们需要读取IO端口状态的时候,为了将电路的电压在任何时候都保持在确定的状态下,可以使用上拉电阻或者下拉电阻;作为输出的时候,根据自己的需要,可以将IO口配置为漏极开路或推挽输出的模式。

7、小结

对于IO模式如果概念不清,很可能会错误的配置IO状态,轻点的可能达不到想要的效果,严重的后果可能会烧毁MCU,所以合理的配置IO模式对于使用MCU至关重要。相信经过本次学习,大家都可以合理的配置IO为自己想要的模式了。

来源:晟矽微电子
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 4251

极海半导体工业增强型APM32F091xC系列新品MCU,其在APM32F030xC的产品性能上实现增强优化,为用户提供丰富的通信方式。该增强版芯片片上资源丰富,通信外设接口数量增多,且集成TSC电容触摸功能以及HDMI CEC控制器等功能,可适用于家电控制、电机驱动、变频控制器、电源管理与控制、车载音响导航设备等应用场景。

“APM32F0系列新品

高速存储,稳定可靠

APM32F091xC系列MCU基于ARM® Cortex®-M0+内核,工作主频48MHz,内置高速存储器Flash 128KB-256KB,SRAM 32KB;供电电压2.0V~3.6V,内部集成上位复电和掉电复位电路,支持可编程电源电压检测器,增强芯片电源管理可靠性;该芯片工作温度可覆盖-40℃~+105℃,ESD等级6KV,可保障产品在各类场景均可稳定运行。

片上资源丰富

芯片内置 8个USART,1个CAN,以及2个SPI/I2S等多种片上资源,增强的通信外设为工程师的应用开发带来多样化的选择;支持16个外部通道的12位ADC,可实现动态数据的高精度实时采样,支持2路通道的12位DAC,可实现多个触发源执行触发转换;同时内部嵌有2个可独立使用的可编程模拟比较器,用户可综合实际应用场合进行配置。

智能控制多设备连接

芯片内嵌HDMI CEC控制器,允许终端用户使用单个遥控器控制多种类CEC音视频设备;内置TSC触摸传感控制器,多达 8 个模拟 I/O 组 ,最多支持24 路电容传感器通道,能检测电容的变化,兼容点触、线性、旋转的触摸识别,可帮助用户在不同的使用场景中精准识别触摸输入指令。

“APM32F0系列新品

来源:Geehy极海半导体
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 74

自动化工厂和智能汽车的进一步发展需要高级联网、实时处理、边缘分析和更先进的电机控制拓扑。这些功能的加入使得对高性能微控制器 (MCU) 的需求快速增长,这种微控制器需要超越传统MCU并提供类似处理器的功能。本文将介绍高性能SitaraTm AM2x MCU帮助设计工程师克服当前和未来系统挑战的五大特性,如图1所示。

“图1:Sitara
图1:Sitara AM2x高性能MCU的优势

实现更强大的性能

MCU最近在内存大小、模拟功能集成和低功耗方面取得了不少进步。但在很多应用中,快速处理大量实时控制和传感器数据的能力同样重要。在自动化工厂中,可编程逻辑控制器(PLC)和机器人电机控制系统的处理要求已从每个内核大约100MHz增加到400MHz以上,并可能在未来三到五年内达到1GHz以上。

在一些应用场景中,MCU还需要更高的性能来满足处理需求,包括:

  • 日益增加的工业通信,因为机器和中央数据系统需要通过各种协议共享大量数据。
  • 边缘分析以进行预测性维护,使工厂平稳运行。

通过提高每个MCU内核的时钟速度以及在同一芯片上集成多个MCU内核,Sitara AM2x MCU可满足更高的性能要求。AM2434有四个内核,每个内核以800MHz运行,与传统MCU相比,它能够在工厂车间实现更快且更复杂的数据处理、更低的延迟控制以及高速通信。例如,更快、更顺畅地控制机械臂可以提高操作安全性、生产效率、质量和吞吐量。

如需了解更详细内容,请阅读白皮书借助SitaraTm AM2x MCU革新实时控制、网络和分析性能

提升实时处理和分析

随着现代工厂自动化程度的提高,对实时数据分析和控制的需求也在增加。很多传统系统通过多个MCU来处理这些不同的功能。高性能MCU,尤其是具有多核架构的MCU,可以通过在单个设备上进行数据处理和实时控制功能来实现更多系统集成。

Sitara AM2x MCU集成了快速数据采集功能和精确的实时控制外设,从而进行高速输入和处理数据。想象一下,一个单独的MCU控制机械臂的电机,还集成了音频、电流和位置传感接口,以提高机器人与人类协作的安全性,这一切都是在没有其他MCU协助下实现的。或者集成音频输入及声音识别和分类的MCU,可提高楼宇安全系统中的边缘智能。通过在单个芯片上实现多种处理能力,高性能 MCU 不仅可以使工业系统更智能,而且更实惠且更易于设计。

简化设计和实现软件复用

MCU的定义特征包括简单的系统设计和软件开发。Sitara AM2x MCU对易于使用的软硬件的期望不会改变,即使MCU性能和集成度变得与处理器更相似。

借助Sitara AM2x MCU,工程师可继续获得以下体验:

  • 简单的软件开发环境和工具(例如基于实时操作系统的软件),支持跨平台重用,从而减少开发时间和成本。
  • 高效的实时任务管理和更简单的电源管理架构,可实现更具成本效益的电源管理解决方案。
  • 经过优化的速度和低延迟功能,这得益于集成型随机存取存储器 (RAM)。

实时传感和响应应用程序(例如PLC)必须处理时间限制的问题,以确保安全和连续运行。这意味着系统需要针对最坏情形下所需的时间进行设计。提供易于使用的软件可帮助您快速有效地设计此类系统。

通过存储器的灵活性优化系统成本

传统MCU具有板载非易失性存储器,例如闪存。但是,从自动化工厂到自动驾驶等应用中不断增加的数据处理需求给存储器的可扩展性带来了难题。此外,更快的中央处理器带来了两个难题:

  • 系统性能完全依赖闪存速度和性能,尤其是在系统需要进行实时数据读写的情况下。
  • 受限于当前可以支持非易失性存储器的处理工艺,例如16nm。

基于外部非易失性存储器架构的灵活性,MCU设计工程师可以从中受益。借助Sitara AM2x MCU,您无需更改MCU或重新设计电路板,即可满足不断增长的存储器需求,从而实现更灵活的设计并降低开发成本。AM2x器件的大型板载RAM和简单的软件架构解决了外部存储器的延迟和性能问题。

提高系统功效

传统MCU以低功耗著称,随着应用转向高性能MCU,降低功耗仍然至关重要。电源效率体现在设计师很重视的两个方面:

  • 每瓦性能(有源功耗效率)。散热超过2W至3W通常会导致传统MCU系统在成本、重量和占用空间方面的问题,尤其是那些需要主动冷却措施(如散热器和风扇)的系统。因此,性能的提高不能与成比例的功耗增加相伴。高性能Sitara AM2x MCU可支持超过5,000 DMIPS/W的性能。
  • 低功耗(关断)模式。MCU通常在较低占空比的环境中运行,鉴于高性能MCU采用先进工艺节点设计,其漏电流影响高于传统MCU。设计人员需要在电源门控技术和低功耗模式(如睡眠、深度睡眠、关机、仅实时时钟和输入/输出唤醒)方面不断创新。

结束语

高性能MCU让处理器级别的计算性能更加可得,将为设计人员和客户系统开启新的机会。随着应用的不断演变和设计工程师在其系统中充分发挥高性能MCU的潜力,MCU创新者、产品设计人员和消费者都将体验到高性能MCU所带来的好处。

本文转载自:德州仪器 (TI)
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 24

华芯微特公司SWM系列单片机提供的TIMER个数和功能有些微差别,为了让您更加简单的使用这一功能,下面小编将以SWM190为例,我们今天详细讲解一下TIMER的计数器功能。

TIMER精准延时

一、TIMER定时器之计数功能

我们今天详细讲解一下TIMER的计数器功能。

计数器功能使用片外时钟作为计数基准,以SWM190加强型定时器为例,有4个32 bit向下计数的TIMER,根据配置,外部信号每一次上升沿,计数寄存器数值将减1。

每一个TIMER都可以配置定时器溢出中断。使能溢出中断,计数器溢出会触发中断操作。

二、SWM190 TIMER延时功能配置库函数

下面我们以最简单的计数器器为例,使用加强型定时器,用计数器的方法实现每计数3个上升沿进入中断。在此例程中,我们将A4间隔一段时间翻转一次,模拟外部信号源;A5设为每计数三个上升沿翻转一次IO,通过翻转LED的状态来观察现象;将A7设置为计数器的输入引脚,与模拟外部信号源的A4脚物理连接。

我们之前有讲到GPIO和PORT的配置方法,在这里就不在做赘述,将A4/A5输出引脚通过GPIO_Init设置为输出,与外部LED引脚相连;将A7通过PORT_Init引脚设置为TIMER2的输入功能引脚。

在SWM190固件库中对TIMER的配置进行了说明,下面将根据库函数对SWM190的TIMER配置,首先来看一下TIMR_Init函数的原型void TIMR_Init(TIMR_TypeDef * TIMRx, uint32_t mode, uint32_t prediv, uint32_t period, uint32_t int_en)。这个函数的实现是在SWM190_timr.c文件中,若要使用该函数在相应的应用程序的前面包含SWM190_ timr.h头文件。

函数的第一个参数为TIMR_TypeDe,它是一个结构体类型,该类型在SWM190.h中被定义。具体参数为指定TIMER模块,有效值包括TIMR0,TIMR1,TIMR2,TIMR3,BTIMR0,BTIMR1,BTIMR2,BTIMR3;

第二个参数为uint32_t mode,为TIMER模式配置,有效值包括TIMR_MODE_TIMER(定时器)、TIMR_MODE_COUNTER(计数器上升沿)、TIMR_MODE_OC(输出比较)、TIMR_MODE_IC(输入捕获);其中基础定时器只支持TIMR_MODE_TIMER(定时器);

第三个参数为uint32_t prediv,为TIMER分频配置,其中加强型定时器无分频只能为1;基本定时器可取值1-256;

第四个参数为uint32_t period,为计数周期,其中加强型定时器为32bit,基础定时器为24bit。

第五个参数为uint32_t int_en,为中断使能。

我们使用加强型定时器实现timer每计数3个A4引脚上的上升沿信号进入TIMER中断,在中断中翻转A5口。

具体配置函数如下图所示:

“MCU之TIMER精准延时"

接下来我们看下中断服务子函数,在加强型定时器的中断服务函数中,实现每进一次中断,GPIOA5翻转一次。

“MCU之TIMER精准延时"

三、实验现象

下载好程序后,LED实现计数3个A4引脚的上升沿翻转一次A5引脚的LED灯。

来源:华芯微特32位MCU
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 93

华芯微特公司SWM系列单片机提供的TIMER个数和功能有些微差别,为了让您更加简单的使用这一功能,下面小编将以SWM190为例,给大家展示如何使用SWM系列产品的TIMER功能。

TIMER精准延时

一、TIMER简介

TIMER是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。

华芯微特公司SWM系列单片机提供的TIMER个数和功能有些微差别,为了让您更加简单的使用这一功能,下面小编将以SWM190为例,给大家展示如何使用SWM系列产品的TIMER功能。

SWM190系列有4路32位加强定时器,4路24位基础定时器。加强型定时器支持支持定时器、计数器、捕获、脉冲发送、HALL功能及ADC触发功能等功能。基础定时器具备定时器功能,并具备一个8位分频器,每个定时器具备独立中断源。

二、TIMER定时器之精准延时功能

我们今天详细讲解一下TIMER的定时器功能。

定时器功能使用片内时钟作为计数基准,以SWM190加强型定时器为例,有4个32 bit向下计数的TIMER,脉冲每一次下降沿,计数寄存器数值将减1。

每一个TIMER都可以配置定时器溢出中断。使能溢出中断,定时器溢出会触发中断操作,达到精准定时功能。

三、SWM190 TIMER延时功能配置库函数

下面我们以最简单的定时器为例,使用加强型定时器和基础定时器,用定时器的方法实现1S的精准延时。在此例程中,我们将A4设为每2秒翻转一次IO,A5设为每0.5秒翻转一次IO,通过翻转LED的状态来观察现象。

我们之前有讲到GPIO的配置方法,在这里就不在做赘述,将LED输出引脚通过GPIO_Init设置为输出,与外部LED引脚相连。

在SWM190固件库中对TIMER的配置进行了说明,下面将根据库函数对SWM190的TIMER配置,首先来看一下TIMR_Init函数的原型void TIMR_Init(TIMR_TypeDef * TIMRx, uint32_t mode, uint32_t prediv, uint32_t period, uint32_t int_en)。这个函数的实现是在SWM190_timr.c文件中,若要使用该函数在相应的应用程序的前面包含SWM190_ timr.h头文件。

函数的第一个参数为TIMR_TypeDe,它是一个结构体类型,该类型在SWM190.h中被定义。具体参数为指定TIMER模块,有效值包括TIMR0,TIMR1,TIMR2,TIMR3,BTIMR0,BTIMR1,BTIMR2,BTIMR3;

第二个参数为uint32_t mode,为TIMER模式配置,有效值包括TIMR_MODE_TIMER(定时器)、TIMR_MODE_COUNTER(计数器上升沿)、TIMR_MODE_OC(输出比较)、TIMR_MODE_IC(输入捕获);其中基础定时器只支持TIMR_MODE_TIMER(定时器);

第三个参数为uint32_t prediv,为TIMER分频配置,其中加强型定时器无分频只能为1;基本定时器可取值1-256;

第四个参数为uint32_t period,为计数周期,其中加强型定时器为32bit,基础定时器为24bit。

第五个参数为uint32_t int_en,为中断使能。

我们加强型定时器实现0.1S触发一次,2S实现LED灯的翻转;基础定时器实现0.5S实现LED灯的翻转。

具体配置函数如下图所示:

“MCU之TIMER精准延时(一)"

接下来我们看下中断服务子函数,在加强型定时器的中断服务函数中,实现每0.1S进一次中断。定义一个全局变量TimerNum,每当进一次中断的时候,让TimerNum来记录进入中断的次数。我们实现2S的定时,我们只需要判断TimerNum是否等于20,然后把TimerNum清0,执行对应的操作并重新计数,以此循环往复。

“MCU之TIMER精准延时(一)"

在基础定时器的中断服务函数中,实现每0.5S进行LED灯的一次翻转。

“MCU之TIMER精准延时(一)"

四、实验现象

下载好程序后,LED实现分别2S翻转一次和0.5s翻转一次。

来源:华芯微特32位MCU
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 478

物联网时代的MCU

在当前的物联网市场上,很多终端设备对功耗和成本都十分敏感。低功耗和小体积成为了打开市场的关键因素。低功耗无线MCU除了可以大大减小系统体积和功耗外,还可以降低系统成本,因此是物联网时代的理想之选。对于物联网系统中的无线应用来说,在MCU中集成无线通信功能已经成为未来确定的发展趋势。在控制系统中,MCU需要将获取的信息进行高效、智能化的处理。MCU一方面需要满足实时性处理要求,另一方面还要能与远程中心进行信息互换,这也是物联网时代MCU的两个主要特征。

SimpleLink平台

为了解决安全性、功耗限制以及应用连接标准不断演变等问题,TI的SimpleLink平台提供了广泛且与众不同的有线和无线ARM® MCU产品系列。这些产品支持以太网、低功耗蓝牙、Wi-Fi®、Sub-1GHz以及Zigbee®和Thread–所有这些都整合在一个强大的软件架构中。该架构具有100%的应用代码可移植性并包含模块化开发套件和基于云的工具,能够简化IoT的控制与连接。

CC2652P SimpleLink™多协议无线MCU

CC2652P SimpleLink™是一款多协议无线MCU。自带强大的处理器单元,内部集成有功率放大器以及强大的外设,可进行多方位的开发。并且MCU支持ZigBee®、Thread、低功耗蓝牙5、支持IPv6的智能对象、IEEE 802.15.4g以及通过DMM驱动器实现的并行多协议。可使用一个或多个芯片创建复杂的IoT系统。该MCU可优化楼宇安全系统、医疗市场和HVAC中使用的高级感测和低功耗无线通信。

“物联网MCU之选

CC2652P的纽扣电池的工作功率为10dBm,电流消耗为22mA,采用具有快速唤醒功能的可编程传感器控制器CPU进行高级感测。

另外CC2652P还具有低待机电流和专用软件控制无线电控制器,提供灵活的低功耗射频收发器功能,用于更长电池寿命的无线应用。

CC2652P通过集成的20dBm大功率放大器为长距离、低功耗应用提供支持,发射电流消耗极低。其典型应用包括2400MHz至2480MHz ISM和SRD系统、楼宇自动化、电网基础设施、工厂自动化和控制、工业运输、医疗和电子货架等相关领域。尤其是在智能安防领域,其优异的48MHz Arm Contrx-M4F CPU可以处理大量数据,所支持的BLE5.0协议以高速低功耗的方式及时将数据上传至网关,组成智能安防系统的重要一环。

结论

CC2652P以其优异性能将为物联网的应用和发展带来更多可能,助力智能化的应用走的更远。帮助工程师创新、扩展和加速无线连接的部署。

来源: 贸泽电子
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 218

页面

订阅 RSS - MCU