本文导读
NXP推出的S32K3XX系列微控制器在电机控制方面具有丰富的外设资源,相比较上个系列S32K1xx来说,控制方式有明显的不同。S32K3xx微控制器通过eMIOS、LCU、BCTU和ADC等硬件外设对电机实现控制,显得更加灵活和方便。
NXP S32K3xx系列微控制器,相比较上个系列S32K1xx来说存在着诸多亮点,从主频,外设资源、安全等级以及安全加密等都有很大的提升。虽然S32K3是S32K1的升级版,但是很多外设以及功能实现方式却完全不同。单纯从电机控制方面来说,S32K3xx硬件外设eMIOS、LCU、BCTU和ADC的组合方式,相比较S32K1xx的FTM、PDB和ADC明显不同,对电机的控制更加灵活方便。
S32K3xx系列微控制器具有生成PWM、输入捕获和输出比较功能的eMIOS、可以自由灵活配置的小型FPGA外设LCU、专门为了方便控制ADC触发的BCTU和多路ADC通道。S32K3这些硬件资源足以对PMSM、BLDC和ACIM等电机进行控制。下面一起来了解S32K3xx eMIOS、LCU、BCTU和ADC外设的功能介绍。
eMIOS
eMIOS(Enhanced Modular IO Subsystem,增强型模块化IO子系统),该外设主要用于生成PWM、捕获外部信号和输出比较。eMIOS内部有计数总线机制,可以支持各通道使用不同的时钟频率计数,且每个通道都是独立,可以自由配置各种模式。 eMIOS通道可以配置的模式按照功能可以分类如下:
以S32K344举例,其具有3个eMIOS实例,每个emios实例具有24个通道,每个通道有四种通道类型(X、Y、G和H)区分,比如Y类型通道就只支持SAIC SAOC OPWMB OPWMT功能,其他通道类型支持的模式可以在用户手册自行查找。 但并不是所有模式只要一个通道配置成该模式,该模式功能就可以实现的。有些模式是需要用另一个通道配置成计数总线模式,用另一个通道给该模式提供时钟频率,该模式才可以正常工作。比如以OPWMT模式为例,手册规定OPWMT模式时钟必须是由MC或者MCB模式通道提供,所以就需要将一个通道配置成MC或者MCB模式去提供时钟,另一个通道配置成OPWMT模式才能起作用。
LCU
LCU(Logic Control Unit,逻辑控制单元), LCU用于创建小型组合时序逻辑电路,该外设主要是与eMIOS或者SIUL2外设组合使用,将eMIOS生成的PWM或者SIUL2输入的电平经过LCU进行查表操作,从而输出对应的PWM或者电平。因为LCU可以理解为一个FPGA,其实现逻辑电路的灵活性也给电机控制提供了更多可能性。 一个LCU内部由3个LC组成,一个LC具有4个输入和4个输出,同时还具有强制控制功能,如图1所示。LC将输入的信号,通过查找表(LUT)产生输出信号,可以通过TRGMUX给到对应的外设,而查找表(LUT)就是LCU的核心内容,可由软件自由设置。用户可以使用LCU编程为与或非和异或等逻辑器件,也可以编程为S-R触发器,D触发器,JK触发器,增量编码器以及ACIM、PMSM和BLDC电机控制器。
图1 LCU内部框图
eMIOS+LCU组合使用
eMIOS和LCU的组合使用需要借助TRGMUX进行连接。以产生互补的PWM为例,如图2所示,eMIOS产生的PWM,通过TRGMUX连接到LCU其中一个LC的输入,LC内部进行查表,从而在LC的输出端产生一对互补的PWM波形。
图2 eMIOS和LCU组合使用
这上面只是eMIOS+LCU的一个应用,还可以有其他的应用方式,具体要根据实际场景进行使用。
ADC
S32K3XX系列微控制器ADC具有可选分辨率:8/10/12/14 bit,转化结果始终为15bit宽;在80MHz转化时钟下采样和转化时间约为1us,即高达1M samples/sec,且转化精度为+/-6LSB。
S32K3XX系列微控制器最多有3个ADC,每个ADC具有8个精密通道,16个标准通道,和最多支持32路外部通道,这三种通道的转化优先级顺序为:精密通道>标准通道>外部通道。其中精密通道和标准通道是实实在在可以在芯片引脚上可以找到复用引脚的,但外部通道却不一样,看手册描述一个ADC支持32路外部通道ADC,但看说手册发现一个ADC的外部通道输入引脚就只有4个,那么怎么支持32路外部通道呢? 每个ADC提供三个外部解码信号(“MA”),用于从外部多路选择器选择一个通道(最多八个)输入到ADC的外部通道引脚,如图3所示。因为一个ADC有4个外部通道输入引脚,就可以有四个8通道数据选择器,所以最多连接32个外部通道。需要注意的是,ADCx_MA是格雷编码的,因此它不会从0到7连续计数,它计数顺序为0、1,3,2,6,7,5,4。
图3 ADC外部通道硬件实现框图
ADC支持三种转化模式:
正常转换:支持一次转换和连续转换。
注入转换:仅支持单次转换。注入转换可以在一组输入通道已经开始转化的过程中,注入另一组输入通道进行转换。
BCTU转换:由BCTU外设触发ADC,每次触发运行一次转换,转化支持单一和列表转化。
BCTU
BCTU(Body Cross-triggering Unit),BCTU外设可以理解就是为了方便控制ADC触发的外设。BCTU用于接收ADC转化请求触发输入,将请求路由到一个或多个ADC。BCUT触发源有三种方式:eMIOS定时器通道;TRGMUX输入和软件触发。BCTU具有多个并行转换功能,可以同时触发3个ADC同时进行转化,使用eMIOS同时触发ADC的框图如图4所示:
图4 BCTU同时触发多个ADC
并且,BCTU还具有对ADC通道有重复触发的功能,支持单个通道转化多次、单个触发产生一连串的转化、以及转化过程中暂停,等另一个触发过来再转化等功能,同时每个ADC具有两个FIFO来缓存ADC转化结果。
应用场景
如图5所示是S32K3xx外设硬件对带霍尔传感器的无刷直流电机BLDC的控制框图。
图5 S32K3xx对BLDC的控制框图
图中①路径是通过“eMIOS-TRGMUX-LCU”输出六路三相PWM,从而给到三相无刷电机预驱动器对电机进行控制;
图中②路径是通过“TRGMUX-LCU-TRGMUX-eMIOS”获取霍尔传感器的速度,通过TRGMUX和LCU结合,实现了根据霍尔信号硬件自动换向的,无需内核的干预。 图中③路径是通过“eMIOS-BCTU-ADC”或者eMIOS重装载时通过“EMIOS-TRGMUX-BCTU-ADC”触发ADC采集外部电压。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !