MCU

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

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

车规级电容触控型MCU

曦华科技车规级电容触控型CVM012x系列MCU正式上市(简称TMCU)。作为国产首颗可以实现HoD应用的真车规级单芯片解决方案,该系列产品继承了已经批量量产的曦华CVM01平台,集成了ARM Cortex-M0+内核、大容量的Flash存储器、SRAM存储器和丰富的外设资源。同时,CVM012x系列车规MCU集成了高性能电容检测IP,采用曦华独创的专利电容检测技术,具备极高的电容检测精度,自互一体电容检测技术,最高支持4nF负载电容、30ch自容通道以及15 x 15ch互容通道支持Active Shielding技术以更好的支持触摸防水性能。CVM012x系列支持多封装和多Flash配置,具有丰富的产品矩阵以满足客户的产品实际需求。产品满足可靠性AEC-Q100 Grade 2,可支持ISO 26262 ASIL-B功能安全标准的车规应用

1718267357638590.png

CVM012x系列产品开发板

突出的产品性能

产品性能:

  • 高达80MHz的CPU工作主频

  • 最高224KB的程序闪存(PFlash)

  • 32KB的数据闪存(DFlash)

  • 最高16KB的数据存储器(SRAM)

  • 30 ch的自电容,15*15 ch的互电容

  • 最高支持4nF负载电容检测

  • 支持Active Shielding功能

  • 支持CAN-FD(CAN 2.0)、SPI、LIN(UART)、I2C、ADC、PWM、MFT等特色应用;I2C支持高达1Mbit/s的通信速率

技术支持:

  • 自主CVA CapSensor算法

  • 软件适配灵活可靠

  • 支持隔空手势/滑条/滚轮/长按/短按等操作模式

  • 完整的开发套件:文档、SDK和开发工具

  • 一站式服务:支持从方案导入,原理图设计,软件支持,可靠性测试,量产的全链条完整方案服务

1718267354157839.png

车规级电容触控型MCU CVM012x系列产品系统框图

成熟的应用方案

当前座舱域控制器、中控娱乐、方向盘HoD、尾门脚踢感应器等交互方式中的触控按键、手势识别呈现出生物识别的智能化趋势,市场潜力巨大。CVM012x系列车规级电容触控型MCU提供LQFP48和QFN32两种封装,共8余款型号产品可供选择,更加满足智能座舱、智能驾驶的多种应用需求。

1718267351964177.png

智能表面应用方案概览

来源:深圳曦华科技

围观 17

随着中国人口老龄化的加剧,国人健康意识的提升,医疗技术的进步,新冠疫情影响以及政府政策支持等因素,中国的医疗器械市场在过去几年中保持了高速增长。据中商产业研究院发布的《2022-2027年中国医疗器械产业发展趋势及投资风险研究报告》显示,近五年年均复合增长率为16.88%,据分析师预测,2024年中国医疗器械市场规模将达到1.36万亿元,后续的发展空间极为广阔。医学影像、患者监护、体征测量、医疗机器人、连续血糖等多个方向都是目前热门领域。

在医疗器械行业中,尽管半导体元件所占比率并不大,规模相对有限,但却是现代医疗设备的核心驱动力,正在不断地推动着医疗行业的进步。医疗电子元件主要包含有电源电路、前端传感器及信号调理电路、处理单元(MCU&MPU)、存储单元及人机交互(HMI)等五类器件,其中电源电路保证了医疗设备的可靠运行,传感器决定了前端信号的高精度采集,处理器实现关键算法及系统控制等等。同时便携式医疗设备与一次性诊断设备的发展,使部分医疗电子元器件表现出量大、更新快、成本敏感等新趋势。

本文将结合目前医疗领域中不同应用方向对应的技术需求以及瑞萨产品(MCU&MPU)的特点,为大家解读瑞萨嵌入式产品线在医疗领域的布局。

1.png

瑞萨目标医疗应用汇总

上图为目前瑞萨嵌入式产品在医疗领域的各种应用汇总,产品覆盖从相对简单的家庭监护(血压,血糖,血氧等),运动健康(跑步机,智能穿戴等)到复杂的医疗器械(医疗影像,监护仪,IVD)等,这些设备都离不开主控芯片(处理单元)的控制。

相比消费类市场,医疗设备具有开发周期长,前期研发投入大,进入门槛高,同时产品生命周期长,利润相对较好等特点。再加上医疗领域对产品的可靠性、安全性、长供货周期,甚至低功耗(便携式)等有着更高的要求,这些都让处于“核心大脑”位置的处理器单元选型变得异常重要,客户一般会对供应商从产品成熟度,稳定供货能力,性能及产品可延续性,价格等多个角度做评估。

2.png

瑞萨MCU产品阵容

上图为瑞萨MCU产品阵容介绍,从8/16/32Bit的自有内核(RL78 & RX系列)到ARM内核(RA系列),客户可以根据其不同的产品应用需求,从性能、封装、外设等不同维度选择合适的MCU产品。比如集成24Bit Sigma-delta ADC的RL78/H1D可用于家用血压计;通用RL78/G1x & RA2E1系列因为高性价比大量应用于按摩椅主控,家庭健康类产品;RX-T & RA-T系列集成马达驱动所需Timer,ADC等资源,广泛用于呼吸机、跑步机,牙科手机等领域的马达控制,RA6M3 & RA8D1集成TFT屏驱动,可满足注射泵,便携式监护仪等带显示屏的设备。

瑞萨已上市的MCU产品基本都有加入瑞萨“15年 Product Longevity Program”,客户可以在瑞萨官网上查询相关信息以获得瑞萨对产品供应保障的官方承诺,来满足医疗产品“长供货周期”的需求。同时瑞萨基于对过去10年持续的产品跟踪,目前非车规MCU失效率可以做到DPP(每百万件产品的缺陷数)< 1,这对医疗产品的可靠性和安全性需求提供了充分的支持。

除MCU以外,瑞萨MPU产品在医疗领域的应用场景也非常多,下图为瑞萨MPU产品阵容介绍,

3.png

瑞萨MPU产品阵容

瑞萨MPU产品主要分为两个方向,一个是工业专用MPU(RZ/T N系列),一个是通用MPU系列(RZ/A G V系列)。RZ/T N系列集成了高性能实时内核(800Mhz CortexR52),主要面向伺服和电机驱动以及对多工业以太网协议的支持(PROFINET、ETHERCAT等),在工业自动化领域已被广泛应用。而在医疗领域,随着外科手术机器人,康复机器人以及药房自动化等应用的兴起,已有越来越多的医疗产品采用RZ/TN系列平台。RZ/G系列(A55内核)是可支持Linux系统的高性价比平台,可满足医疗监护仪,IVD等产品需求。同时随着AI人工智能在医疗领域的发展(比如对病灶进行定性分级或定量分析),RZ/V系列(最高8Tops算力)为客户提供了最优的高性能低功耗的嵌入式AI解决方案平台。

基于以上产品资讯以及瑞萨对医疗领域的高度重视和持续投入,瑞萨的嵌入式产品正在被越来越多的客户所认可,将为国内医疗领域的发展做出更多的贡献。

下面为大家介绍瑞萨嵌入式产品在各种医疗设备中的应用。

4.png

适合医疗应用的嵌入式平台

Patient Monitor监护仪

监护仪主要用来测量和监护病人生理参数,比如心电(ECG,HR)、有创/无创血压、体温、血氧饱和度(SpO2)、脑电图、呼吸参数、麻醉气体等,可分为胎儿监护仪、母婴监护仪、多参监护仪、中央监护系统等。

55.png

AED(自动体外除颤仪)

心脏骤停(室颤)是中国心脑血管疾病致死率最高的疾病,3-5分钟即可致人死亡,及时抢救至关重要,自动体外除颤器是一种便携式的医疗设备,它可以诊断特定的心律失常,并且给予电击除颤,是可被非专业人员使用的用于抢救心脏骤停患者的医疗设备。

6.png

Home Healthcare(按摩椅/仪,血氧仪)

按摩是中国传统的养生保健方法,以中医的脏腑、经络学说为理论基础,并结合现代医学成果,作用于人体体表的特定部位以调节机体生理、病理状况,达到健康理疗的目的。

7.png

电机控制(家用呼吸机,牙科手机,电动轮椅)

家用呼吸机多数用于不能正常呼吸的患者,肺部功能衰竭及气道阻塞,还有睡眠呼吸暂停综合征包括打鼾并且暂停的患者,和严重肺心病及肺气肿、慢阻肺或二型呼衰且二氧化碳偏高的病人。通过MCU控制涡轮风机,可以提供正压气体,辅助患者呼吸,增强气体交换和心肺耦合。此次新冠疫情的爆发,推动了国内呼吸机行业的飞速发展。

牙科手机是一种专用于口腔科的医疗器械,可以用于清洁牙齿,研磨龋齿坏牙的产品,是口腔综合治疗的主要部件之一,由于电动(BLDC)手机功率、扭矩、转速更稳定,备牙时可以达到涡轮手机无法媲美的光滑效果,使市场中电动手机比率逐渐增多。并且为有效解决口腔诊疗病毒的交叉感染、二次传播的历史性难题,防回吸手机和一次性手机的市场比重也在逐渐增加。

8.png

AI+影像医疗

“AI+医疗”一直被视为极具发展潜力的新兴领域,而AI医学影像是AI医疗商业化前沿阵地。通过打通多模态影像器械系统及海量的数据训练后,AI医学影像可以实现病灶识别、病情诊断、治疗规划等辅助服务。目前市场上AI医学影像产品覆盖心肺、脑部、肝脏、骨骼等多部位多病种,已开始应用于各级医院,并正在渗透到体检中心等院外场景,赛道聚集了专注于医疗健康的AI技术企业、互联网巨头等多领域玩家。

9.png

结论

回顾2023年中国医疗器械市场,我们可以看到医疗设备市场规模持续增长,显示出强劲的发展势头,在国际市场中的地位也日益提升,出口增长迅速,同时行业也面临政府集中采购政策对成本控制的更高要求,以及技术创新以提升产品竞争力等。展望未来,中国医疗器械市场将继续保持增长趋势,人工智能、大数据等对应的AI应用将为医疗器械行业带来新的市场机会。

来源:瑞萨嵌入式小百科

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

围观 13

本文以 STM32H7 系列的功能为例,重点介绍了选择 MCU 系列时应考虑的标准。此外,还介绍了适用于 STM32H7 MCU 的开发板和工具,并说明了如何使用这些基础设施启动项目。

随着人工智能 (AI) 和具有丰富图形的复杂人机界面 (HMI) 等先进功能在应用中变得越来越普遍,产品设计人员开始寻找功能更强大的微控制器单元 (MCU)。但与此同时,设计人员也被要求开发成本最优的产品,而放弃这些华而不实的功能。在这些相互矛盾的压力下,选择一款能够轻松扩展以满足不同市场需求的 MCU 就势在必行。

不断加快的创新速度也加剧了这种压力。应用要求可能会发生意想不到的变化,因此轻松获取替代 MCU 就显得至关重要。此外,还必须考虑未来适用性和重复使用问题。如果设计元素可以在其他项目中重复使用,就可以大幅节省时间和成本。

应对这些挑战的方法之一就是选择具备丰富选项的 MCU 系列。STMicroelectronics 的 STM32H7 就是一个很好的例子。该系列既有高性价比的入门级 32 位 MCU,也有功能丰富的双核MCU。

实现 MCU 系列灵活性和可扩展性的因素

在寻找具有灵活性的 MCU 系列时,必须考虑众多因素。提供广泛的性能和功率水平选项尤为重要。首选的 MCU 系列应包括针对不同目标优化的各种时钟速度和内核选项。例如,低功耗的 Arm® Cortex®-M4和高性能的 Arm Cortex-M7。

该系列应包含具有基本处理能力的 MCU 和具有扩展能力的选件。许多应用需要数据保护和安全通信。硬件型加密、安全启动和加密加速器等功能对于这些用例至关重要。同样,数字信号处理器 (DSP) 和浮点指令对于数据密集型应用也至关重要。

MCU系列还应提供各种大小的 RAM 和闪存,以适应从简单应用到需要大量软件框架或数据存储空间的各种应用。这些 MCU 应为超出内部存储器能力的应用提供外部存储器接口,以提供必要的可扩展性。

最后,拥有更多外设选项的 MCU 系列也能够应对更广泛的应用。确保 MCU 系列包括具有 USB、以太网、蓝牙和 Wi-Fi 等先进 I/O 的选件至关重要,因为可能难以在后续设计中作为升级增加这些接口。理想情况下,选择的 MCU 系列应在其产品范围内提供引脚兼容性,以便在不对印刷电路板(PC 板)做出重大设计变更的情况下,就能实现硬件升级或降级。

开发工具应从软件角度支持整个 MCU 系列。为了加快开发速度,还应该有一个统一的软件应用程序编程接口 (API) 和一套强大的库、中间件和实时操作系统 (RTOS)。

STM32H7:多功能性案例研究

STMicroelectronics的 STM32H7 系列是符合这些标准的 MCU 系列典范。如表 1 所示,该系列具有高度可扩展性,围绕 Arm Cortex-M7 构建,涵盖基础和高级 MCU。该系列分为四个子系列,分别针对不同应用进行了优化。


MCU 内核和时钟

最大闪存/RAM

主要特性

超值系列

280 MHz 至 550 MHz
 Arm Cortex-M7

128 KB 闪存
 1 MB RAM

低成本、以太网、QSPI、TFT

单核系列

280 MHz 至 550 MHz
 Arm Cortex-M7

2 MB 闪存
 1.4 MB RAM

TFT、以太网、Q-SPI、低功耗

双核系列

480 MHz
 Arm Cortex-M7 +
 240 MHz
 Arm Cortex-M4

2 MB 闪存
 1 MB RAM

开关模式电源 (SMPS)、TFT-LCD、MIPI-DSI、JPEG

BootFlash 系列

600 MHz
 Arm Cortex-M7

外部闪存、620 KB RAM

NeoChrom GPU、I3C、XiP、USB PHY

表 1:STM32H7 系列四个子系列的主要亮点。(表格来源:作者,使用 STMicroelectronics 提供的原始资料)

超值系列的速度范围为 280 MHz 至 550 MHz,采用 128 KB 嵌入式闪存和 1 MB RAM。该系列支持各种通信接口和外部存储器扩展,为以性能为导向的系统提供经济高效的解决方案。TM32H750VBT6 就是这样一款 MCU,其采用 14 x 14 mm 100-LQFP 封装。

单核系列的运行速度范围也是 280 MHz 至 550 MHz。该系列提供高达 2 MB 的闪存和 1.4 MB 的 RAM,与需要丰富用户界面和实时控制的应用非常契合。其中一个例子是 STM32H743IIK6,其采用 10 x 10 mm 201-UFBGA 封装。

双核系列采用了针对效率进行优化的辅助 Arm Cortex-M4 内核。嵌入式开关模式电源 (SMPS) 可提高电源效率。其他先进外设包括 TFT-LCD、MIPI-DSI 和硬件 JPEG 编解码器。一个典型例子是 STM32H747AII6,其采用 7 x 7 mm 169-UFBGA 封装。

BootFlash系列以其高性能而著称,其速度高达 600 MHz。该系列旨在支持实时就地执行 (XiP) 应用,并配备 64 KB 引导闪存和 620 KB RAM。此外,系列中的某些型号还可选配 NeoChrom GPU 以增强图形加速功能。此系列的一个典型代表是 STM32H7R3Z8J6,其采用 10 x 10 mm 144-UFBGA 封装。

与 STM32F4 和 STM32F7 系列兼容的好处

STM32H7是 STMicroelectronics MCU 众多产品系列的一员,其引脚布局与同类 STM32F4 和 STM32F7 系列兼容,能够适配最常见的封装形式。这些 MCU 均基于 Arm Cortex-M 内核,并且有着类似的外设和 GPIO 引脚布局。这些共性使得设计人员无需对硬件做出重大改动,便可轻松在 MCU 之间迁移。升级产品或基于每个系列的不同功能设计新产品时,这种兼容性可缩短开发时间并降低成本。

此外,所有 MCU 均由同一软件开发生态系统提供支持,包括用于配置和初始化代码生成的 STM32CubeMX,以及用于开发和调试的 STM32CubeIDE。这种兼容性可确保软件组件、中间件和应用程序代码能够在针对任一系列的项目中重复使用,从而进一步加快开发周期。

开始使用 STM32H7 系列 MCU

开始使用 STM32H7 MCU 涉及几个关键步骤以及开发板和工具的高效使用。下面的分步指南将介绍如何开始使用这些功能强大的微控制器进行开发。

1. 选择开发板

Discovery套件是初学者入门探索的理想选择,该套件配有集成式调试器/编程器,通常还具有各种板载用户 LED、按键、传感器和连接选项。NUCLEO-F767ZI(图 1)等 Nucleo 开发板在灵活性与经济性之间实现了良好平衡。这些开发板兼容 Arduino Uno,易于扩展,并且具有 STLINK 接口,可与调试器/编程器配合使用。

1718255898796917.png

图 1:NUCLEO-F767ZI开发板提供了一个简单而灵活的试验起点。(图片来源:STMicroelectronics)
评估板提供最全面的外设和连接选项,有助于全面探索各种功能。例如,STM32H745I-DISCO(图 2)和 STM32H750B-DK 等 Discovery 套件可以快速评估各种接口,并且具有如下特性:
  • 4.3 英寸RGB 界面 LCD,带触摸屏
  • 符合 IEEE-802.3-2002 标准的以太网
  • 以太网供电 (PoE)
  • USB OTG FS
  • SAI 音频编解码器
  • 一个 ST-MEMS 数字麦克风
  • 2 个 512 Mbit Quad-SPI NOR 闪存
  • 128 MB SDRAM
  • 4 GB 板载eMMC
  • 2 个 CAN FD
  • 兼容 Arduino 扩展板
  • 具有 USB 重新枚举功能的板载STLINK-V3E 调试器/编程器:大容量存储、虚拟 COM端口和调试端口

1718255915386682.png

图 2:STM32H745I-DISCO 评估板提供丰富的硬件资源。(图片来源:STMicroelectronics)

2. 软件工具设置

STMicroelectronics为其 MCU 提供了集成开发环境(IDE)(图 3)。包括用于初始化代码生成和外设设置的编译器、调试器以及配置器。

1718255936575335.png

图 3:STM32H7 IDE 的屏幕截图。(图片来源:STMicroelectronics)

3. 学习和试验

接下来,建议阅读相关文档。最好从开发板的用户手册和相关的 STM32H7 参考手册入手。这些文档提供了有关 MCU 架构、外设配置、Pin-Mux 以及硬件特性的重要信息。

使用示例项目进行试验是学习这些工具的有效方法。STMicroelectronics 为各种 STM32 MCU 提供了一系列示例项目。这些示例可让您初步了解如何使用 MCU 的不同功能。

最后,开发人员社区还可提供更多支持。利用 ST 社区、教程和视频等资源可以找到常见问题的解决方案,并为可能的项目提供灵感。

4. 开发和调试

集成开发环境提供了开始编写、编译和调试代码所需的一切。集成开发环境中的配置器可用于外设初始化和中间件设置。开发板的集成式 STLINK 调试器/编程器接口可进行实时调试。可使用断点、观察变量和单步执行代码来发现问题。

5. 扩展项目

扩展板可以为 Discovery 和 Nucleo 开发板增加连接或传感器等功能。一旦通过开发板确定了所需功能,就可以使用开发板的原理图作为参考来设计定制 PC 板。Seeed Technology Co., Ltd 的 OpenMV4 CAM H7 摄像头平台(图 4)就是一个例子,其采用单核 STM32H743。

4.png

图 4:Seeed Technology OpenMV4 CAM H7 专用于视觉系统。(图片来源:Seeed Technology Co. Ltd.)
另一个例子是 Arduino 的 ABX00051 Nicla Vision(图 5),其采用双核 STM32H747。


5.png

图 5:ABX00051 Nicla Vision 可帮助开发人员评估不同的图像传感器。(图片来源:Arduino)

结语

在产品设计中,要兼顾先进功能与成本优化这一对相互矛盾的需求,选择 MCU 就至关重要。选择正确的 MCU 系列能够提供可扩展的灵活解决方案,满足当前和未来的需求,STMicroelectronics 的 STM32H7 系列就是一个很好的例子。

小编的话

选择合适的MCU对于项目开发至关重要,它直接影响到项目的性能、功耗、成本和开发效率。因此,在项目开始阶段就应进行充分的评估和选择。如文章所言,除了性能匹配,兼容性、可扩展性和灵活性、以及集成度与外设支持和开发工具的支持都十分重要,相信这一点大家也都深有体会。

来源:得捷电子DigiKey

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

围观 22

KRABO® 是 Fontana Gruppo 的关联公司,专注于互联网连接紧固件领域,致力于通过远程监控系统了解体育馆、风力发电机、铁路设施、车辆及桥梁等关键基础设施中的螺栓连接的状态。这些创新螺栓基于完全集成到螺栓内部的传感器,借助德州仪器的连接技术,能够测量钳位负载,并在任意特定时刻将数据无线传输至系统监控器。这项螺栓技术能够随时监测螺栓连接状态,并防患于未然。此类预测性维护功能有助于增强安全性并降低维护成本。

在开发联网螺栓时,Krabo 采用了德州仪器 的 CC2652RSIP 多协议 2.4GHz SimpleLink™ 无线 MCU。这些元件是 Krabo 联网螺栓技术的核心组成部分,得益于德州仪器在有线与无线连接解决方案领域超过二十年的深厚积累,及其对产品的工程技术支持,确保可靠、无缝设计得以实现。

挑战

Krabo 需要一种可靠的无线通信技术,该技术不仅要实现精准测量,还要兼具低功耗、高能效和小巧外形,能够适应螺栓头的尺寸限制。

解决方案

德州仪器 SimpleLink 无线 MCU 系列(特别是其中的系统级封装无线模块)功耗低,可延长电池寿命,并采用 Zigbee® 协议,显著提升了易用性。这项德州仪器的技术能够满足螺栓头的小尺寸设计需求。

1.png

成果

Krabo 现已推出可用于大规模工业化生产的联网螺栓。该公司将德州仪器的无线技术融入产品之中,因其不仅满足了尺寸上的严苛要求,还使得企业能够随时获取数据,及时了解何时需要进行关键性更新。展望未来,Krabo 计划研发更小型的螺栓,以期将此项技术拓展至更多应用领域,如汽车领域。

德州仪器器件在 Krabo 物联网螺栓中的应用

Krabo 用户可以随时随地获取螺栓数据,监控其张力状态,这些数据随后通过 Zigbee® 或 Bluetooth® 等通信标准发送至本地网关。Zigbee 基于网状网络,不仅易于使用,而且具有跨网络兼容性。这些行业标准能确保 10 至 100 米的通信距离。网关则通过 Wi-Fi® 或蜂窝网络连接至互联网。所有数据最终抵达 Krabo 中央云,用户可通过笔记本电脑、平板电脑或智能手机进行查看。借助远程数据访问的预测性维护功能,可大幅节省成本。例如,仅在大城市桥梁基础设施的常规维护方面,每年就能节省高达 2,000 万至 3,000 万美元。

Krabo 项目经理 Paolo Redaelli 表示:“在建造各类基础设施时,在满足尺寸、功耗以及可靠的连接性要求方面给工程师带来了诸多挑战。通过采用德州仪器的 SimpleLink 器件,我们获得了超紧凑型解决方案,其功耗非常低,并且能轻松融入 Zigbee 生态系统,从而使我们能直接从这些基础设施向网关发送可靠数据,让我们的客户对自己的设计充满信心。”

Krabo 旨在推动新兴市场的创新,其中器件微型化将促进大规模生产,并在历来成本高昂的基础设施中实现更高的安全性和更低的维护成本。

来源:德州仪器

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

围观 12

GPIO简介

GPIO是通用输入输出端口的简称,也是CKS32可控制的引脚,CKS32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。CKS32芯片的GPIO被分成很多组,每组有16个引脚,如型号为CKS2F107VET6型号的芯片有GPIOA、GPIOB、GPIOC至GPIOE共5组GPIO,芯片一共100个引脚,其中GPIO就占了一大部分,所有的GPIO引脚都有基本的输入输出功能。

最基本的输出功能是由CKS32控制引脚输出高、低电平,实现开关控制,如把GPIO引脚接入到LED灯,那就可以控制LED灯的亮灭,引脚接入到继电器或三极管,那就可以通过继电器或三极管控制外部大功率电路的通断。最基本的输入功能是检测外部输入电平,如把 GPIO引脚连接到按键,通过电平高低区分按键是否被按下。

GPIO框图结构分析

CKS32F107系列MCU的GPIO内部硬件结构如下图所示,通过GPIO硬件结构框图,可以从整体上深入了解GPIO外设及它的各种应用模式。该图从最右端看起,最右端就是代表 MCU引出的 GPIO引脚,其余部件都位于MCU芯片内部。

1.png

图1 GPIO硬件结构框图

序号①是引脚的两个保护二级管,可以防止引脚外部过高或过低的电压输入,当引脚电压高于VDD时,上方的二极管导通,当引脚电压低于VSS时,下方的二极管导通,防止不正常电压引入芯片导致芯片烧毁。尽管有这样的保护,并不意味着CKS32的GPIO能直接外接大功率驱动器件,如直接驱动电机,如果强制驱动可能会造成电机不转或者导致芯片烧坏,必须要在GPIO和电机之间增加大功率及隔离电路驱动。

序号②是GPIO引脚线路经过两个保护二极管后,下方“输出模式”电路中的一个由P-MOS和N-MOS管组成的结构单元。这个结构使GPIO具有了“推挽输出”和“开漏输出”两种模式,输出模式是根据这两个MOS管的工作方式来命名的。在该结构中输入高电平时,经过反向后,上方的P-MOS导通,下方的N-MOS关闭,对外输出高电平;而在该结构中输入低电平时,经过反向后,N-MOS管导通,P-MOS关闭,对外输出低电平。当引脚高低电平切换时,两个管子轮流导通,P管负责灌电流,N管负责拉电流,使其负载能力和开关速度都比普通的方式有很大的提高。推挽输出的低电平为0伏,高电平为3.3伏,推挽等效电路如下图(左)。推挽输出模式一般应用在输出电平为0和3.3伏而且需要高速切换开关状态的场合。在实际应用中,除了必须用开漏模式的场合,一般都习惯使用推挽输出模式。

2.png

图2 GPIO硬件结构框图

在开漏输出模式时,上方的P-MOS管完全不工作。如果我们控制输出为0低电平,则 P-MOS管关闭,N-MOS管导通,使输出接地,若控制输出为1 (它无法直接输出高电平) 时,则P-MOS管和N-MOS管都关闭,所以引脚既不输出高电平,也不输出低电平,为高阻态,因此正常使用时必须外部接上拉电阻。开漏等效电路如上图(右),它具有“线与”特性,若有很多个开漏模式引脚连接到一起时,只有当所有引脚都输出高阻态,才由上拉电阻提供高电平。若其中一个引脚为低电平,那线路就相当于短路接地,使得整条线路都为低电平0伏。开漏输出一般应用在I2C、SMBUS通讯等需要“线与”功能的总线电路中。除此之外,还用在电平不匹配的场合,如需要输出5伏的高电平,就可以在外部接一个上拉电阻,上拉电源为5伏,并且把GPIO设置为开漏模式,当输出高阻态时,由上拉电阻和电源向外输出5伏的电平。

序号③是GPIO输出数据寄存器组,前面提到的双MOS管结构电路输入信号,就是由这个寄存器组中的GPIOx_ODR提供的,因此我们通过修改输出数据寄存器的值就可以修改GPIO引脚的输出电平。而“置位/复位寄存器GPIOx_BSRR”可以通过修改输出数据寄存器的值从而影响电路的输出。

序号④是连接MCU片内外设和GPIO引脚的复用功能输出模块,通过此功能可以将GPIO引脚用作指定外设功能的一部分,算是GPIO的第二用途。从其它外设引出来的“复用功能输出信号”与GPIO本身的数据据寄存器都连接到双MOS管结构的输入中,通过内部开关切换选择。例如我们使用USART串口通讯时,需要用到某个GPIO引脚作为通讯发送引脚,这个时候就可以把该GPIO引脚配置成USART串口复用功能,由串口外设控制该引脚发送数据。

序号⑤是输入数据寄存器组,位于GPIO结构框图的上半部分,GPIO引脚经过内部的上、下拉电阻,可以配置成上/下拉输入,然后再连接到施密特触发器,信号经过触发器后,模拟信号转化为0/1数字信号,然后存储在“输入数据寄存器GPIOx_IDR”中,通过读取该寄存器就可以获取GPIO引脚的电平状态。

序号⑥是连接MCU片内外设和GPIO引脚的复用功能输入模块,与序号④类似,在“复用功能输入模式”时,GPIO引脚的信号传输到指定片内外设,由该外设读取引脚状态。例如我们使用USART串口通讯时,需要用到某个GPIO引脚作为通讯接收引脚,这个时候就可以把该GPIO引脚配置成USART串口复用功能,由串口外设控制该引脚接收外部数据。

序号⑦是用于ADC采集电压输入通道的专用“模拟输入”功能,由于ADC外设要采集到原始的模拟信号,所以输入信号不经过施密特触发器,因为经过施密特触发器后信号只有0/1两种状态。类似地,当GPIO引脚作为“模拟输出”功能用于DAC模拟电压输出通道时,模拟信号输出也不经过双MOS管结构而直接输出到GPIO引脚。

GPIO工作模式总结

根据上述结构分析,可以总结出在固件库中GPIO可以配置成如下8种工作模式,且大致归为三类。

//Configuration Mode enumeration
typedef enum
{    
    GPIO_Mode_AIN = 0x0,                    //模拟输入    
    GPIO_Mode_IN_FLOATING = 0x04,     //浮空输入    
    GPIO_Mode_IPD = 0x28,                  //下拉输入    
    GPIO_Mode_IPU = 0x48,                  //上拉输入    
    GPIO_Mode_Out_OD = 0x14,            //开漏输出    
    GPIO_Mode_Out_PP = 0x10,             //推挽输出    
    GPIO_Mode_AF_OD = 0x1C,             //复用开漏输出   
    GPIO_Mode_AF_PP = 0x18               //复用推挽输出
} GPIOMode_TypeDef;

第一类是输入模式(模拟/浮空/上拉/下拉),在输入模式时,施密特触发器打开,输出被禁止,可通过输入数据寄存器GPIOx_IDR读取I/O状态。其中输入模式,可设置为上拉、下拉、浮空和模拟输入四种。上拉和下拉输入很好理解,默认的电平由上拉或者下拉决定。浮空输入的电平是不确定的,完全由外部的输入决定,一般接按键的时候用的是这个模式。模拟输入则专用于ADC采集。

第二类是输出模式(推挽/开漏),在推挽模式时双MOS管以轮流方式工作,输出数据寄存器GPIOx_ODR可控制I/O输出高低电平。开漏模式时,只有N-MOS管工作,输出数据寄存器可控制I/O输出高阻态或低电平。输出速度可配置,此处的输出速度即I/O支持的高低电平状态最高切换频率,支持的频率越高,功耗越大。在输出模式时施密特触发器是打开的,即输入可用,通过输入数据寄存器GPIOx_IDR可读取I/O的实际状态。

第三类是复用功能模式(推挽/开漏),复用功能模式中,输出使能,输出速度可配置,可工作在开漏及推挽模式,但是输出信号源于其它外设,输出数据寄存器GPIOx_ODR无效;输入可用,通过输入数据寄存器可获取I/O实际状态,但一般直接用外设的寄存器来获取该数据信号。

以上各类型的GPIO口每一个都可以自由编程,此外,CKS32F107的很多IO口都是5V兼容的,这些IO口在与5V电平的外设连接的时候很有优势,具体哪些IO口是5V兼容的,可以从该芯片的数据手册管脚描述章节查到(I/O Level标FT的就是5V电平兼容的)。

GPIO寄存器

CKS32的GPIO口寄存器必须要按32位字被访问,每个IO端口都有7个寄存器来控制。分别是:配置模式的2个32位的端口配置寄存器CRL和CRH;2个32位的数据寄存器IDR和ODR;1个32位的置位/复位寄存器BSRR;一个16位的复位寄存器BRR;1个32位的锁存寄存器LCKR。如果想要了解每个寄存器的详细使用方法,可以参考《CKS32F107参考手册》。

(1)CRL和CRH控制着每个IO口的模式及输出速率,本文以CRL为例,看看端口低配置寄存器的描述,如下图所示。该寄存器的复位值为0x44444444,从图中可以看到,复位值其实就是配置端口为浮空输入模式。从下图还可以得出:CRL控制着每组IO端口的低8位模式。每个IO端口的位占用CRL的4个位,高两位为CNF,低两位为MODE。这里我们可以记住几个常用的配置,比如0x0表示模拟输入模式(ADC用)、0x3表示推挽输出模式(做输出口用,50M速率)、0x8表示上/下拉输入模式(做输入口用)、0xB表示复用输出(使用IO口的第二功能,50M速率)。CRH的作用和CRL完全一样,只是CRL控制的是低8位输出口,而CRH控制的是高8位输出口。这里我们对CRH就不做详细介绍了。

3.png

图3 GPIOx_CRL寄存器

(2)IDR是一个端口输入数据寄存器,低16位有效。该寄存器为只读寄存器,并且只能以16位的形式读出。该寄存器各位的描述如下图所示:

4.png

图4 GPIOx_CRL寄存器

(3)ODR是一个端口输出数据寄存器,也只用了低16位。该寄存器为可读写,从该寄存器读出来的数据可以用于判断当前IO口的输出状态。而向该寄存器写数据,则可以控制某个IO口的输出电平。该寄存器的各位描述如下图所示:

5.png

图5 GPIOx_CRL寄存器

(4)BSRR寄存器是端口位设置/清除寄存器。该寄存器和ODR寄存器具有类似的作用,都可以用来设置GPIO端口的输出位是1还是0。

6.png

图6 GPIOx_CRL寄存器

通过固件库操作GPIO

CKS32F107系列GPIO相关的函数和定义分布在固件库文件cks32f10x_gpio.c和头文件 cks32f10x_gpio.h文件中。在固件库开发中,操作寄存器CRH和CRL来配置IO口的模式和速度是通过GPIO初始化函数完成的。

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* 
GPIO_InitStruct);

这个函数有两个参数,第一个参数是用来指定GPIO,取值范围为GPIOA~GPIOG。第二个参数为初始化参数结构体指针,结构体类型为GPIO_InitTypeDef。结构体的定义如下:

typedef struct

{

    uint16_t GPIO_Pin;

    GPIOSpeed_TypeDef GPIO_Speed;

    GPIOMode_TypeDef GPIO_Mode;

}GPIO_InitTypeDef; 

下面通过一个GPIO初始化实例来讲解这个结构体的成员变量的含义。代码的意思是设置GPIOB的第5个端口为推挽输出模式,同时速度为50M。结构体GPIO_InitStructure的第一个成员变量GPIO_Pin用来设置是要初始化哪个或者哪些IO口;第二个成员变量GPIO_Mode是用来设置对应IO端口的输出输入模式;第三个参数是IO口速度设置。

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;               //PB5端口配置

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   //推挽输出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   //速度50MHz

GPIO_Init(GPIOB, &GPIO_InitStructure);                                   //根据设定参数配置 GPIO

在固件库中操作IDR寄存器读取IO端口数据是通过GPIO_ReadInputDataBit函数实现的。比如我要读GPIOA5的电平状态,那么方法是:

uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_5);

在固件库中设置ODR寄存器的值来控制IO口的输出状态是通过函数GPIO_Write来实现的,该函数一般用来一次性往一个GPIO的多个端口设值。

void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);

该寄存器通过举例子可以很清楚了解它的使用方法。例如你要设置GPIOA的第1个端口值为1,那么你只需要往寄存器BSRR的低16位对应位写1即可。该寄存器往相应位写0是无影响的,所以我们要设置某些位,我们不用管其他位的值。

GPIOA->BSRR = 1 << 1;

在固件库中,通过BSRR和BRR寄存器设置GPIO端口输出是通过函数GPIO_SetBits()和函数GPIO_ResetBits()来完成的。在多数情况下,我们都是采用这两个函数来设置GPIO端口的输入和输出状态。比如我们要设置GPIOB5输出1和0,那么方法为:

void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
GPIO_SetBits(GPIOB, GPIO_Pin_5);
GPIO_ResetBits(GPIOB, GPIO_Pin_5);

GPIO相关的库函数我们先讲解到这里。虽然IO操作步骤很简单,这里还是做个概括总结,操作步骤为:

(1)使能IO口时钟,调用函数RCC_APB2PeriphClockCmd();

(2)初始化IO参数,调用函数GPIO_Init();

(3)操作IO。

下面我们来讲解一个基于CKS32F107VxT6开发板的GPIO按键输入和GPIO输出实验软件例程。

实验例程

编程要点

(1)使能GPIO端口时钟;

(2)初始化GPIO按键引脚为输入模式(上拉输入);

(3)初始化GPIO LED引脚为输出模式(推挽输出);

(4)编写简单测试程序,检测按键的状态,实现按键控制LED灯。

代码分析

(1)按键检测引脚相关宏定义

//  引脚定义
#define    KEY1_GPIO_CLK     RCC_APB2Periph_GPIOC
#define    KEY1_GPIO_PORT    GPIOC      
#define    KEY1_GPIO_PIN     GPIO_Pin_0
#define    LED1_GPIO_PORT    GPIOB         
#define    LED1_GPIO_CLK     RCC_APB2Periph_GPIOB
#define    LED1_GPIO_PIN    GPIO_Pin_15

(2)按键GPIO初始化函数

void Key_GPIO_Config(void)
{    
    GPIO_InitTypeDef GPIO_InitStructure;   
    /*开启按键端口的时钟*/    
    RCC_APB2PeriphClockCmd(KEY1_GPIO_CLK,ENABLE);                                                    
                        //选择按键的引脚    
    GPIO_InitStructure.GPIO_Pin = KEY1_GPIO_PIN;                                             
                        // 设置按键的引脚为浮空输入    
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;                                            
                        //使用结构体初始化按键    
    GPIO_Init(KEY1_GPIO_PORT, &GPIO_InitStructure);}

(3)LED GPIO初始化函数

void LED_GPIO_Config(void)
{    
    /*定义一个GPIO_InitTypeDef类型的结构体*/     
    GPIO_InitTypeDef GPIO_InitStructure;  
    /*开启LED相关的GPIO外设时钟*/    
    RCC_APB2PeriphClockCmd(LED1_GPIO_CLK, ENABLE);  
    /*选择要控制的GPIO引脚*/    
    GPIO_InitStructure.GPIO_Pin = LED1_GPIO_PIN;  
    /*设置引脚模式为通用推挽输出*/    
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;     
    /*设置引脚速率为50MHz */       
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
    /*调用库函数,初始化GPIO*/    
    GPIO_Init(LED1_GPIO_PORT, &GPIO_InitStructure);  
    /* 关闭led灯 */    
    GPIO_SetBits(LED1_GPIO_PORT, LED1_GPIO_PIN);
}

(4)主函数

int main(void)
{    
    /* LED端口初始化 */    
    LED_GPIO_Config();    
    /* 按键端口初始化 */    
    Key_GPIO_Config();    
    /* 轮询按键状态,若按键按下则反转LED */   
    while(1)                                 
    {          
        if(GPIO_ReadInputDataBit(KEY1_GPIO_PORT,        KEY1_GPIO_PIN) == Bit_RESET)        
        {          
            GPIO_WriteBit(LED1_GPIO_PORT, LED1_GPIO_PIN, Bit_SET);        
        }        
        else        
        {          
            GPIO_WriteBit(LED1_GPIO_PORT, LED1_GPIO_PIN, Bit_RESET);        
        }        
    }
}

代码中先初始化LED灯及按键后,在while函数里不断读取查询并判断按键是否按下,若返回值表示按键按下,则反转LED灯的状态。

来源:中科芯MCU

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

围观 10

Holtek新推出感烟与一氧化碳/燃气探测专用Flash MCU BA45F6966,相较之前推出BA45F6956加大Flash ROM和RAM存储空间,可以符合更多样复合型感烟探测产品,例如语音型LCD感烟与一氧化碳/燃气探测报警器、NB-IoT / Wi-Fi感烟与一氧化碳/燃气探测报警器等。

1.jpg

BA45F6966具备16K×16 Flash ROM、2048×8 RAM、256×8 EEPROM、IAP、10-bit PTM、10-bit STM、CRC校验机制、多通道12-bit ADC及SPI/I²C/UART通信接口。内置火灾感烟IR传感器所需的滤波与放大电路AFE,配合双通道IR LED定电流驱动器,提升准确度与降低误报率;一氧化碳/燃气探测AFE整合传感器所需自检与放大电路,确保产品的可靠性;温度传感器可作为一氧化碳传感器温度补偿;16-bit语音DAC能达成语音报警功能;具备LED/LCD驱动可应用于一氧化碳/燃气气体浓度显示,大幅减少产品外围电路组件及简化设计。

BA45F6966提供48-pin LQFP封装,并且引脚完全兼容BA45F6956,满足复合型感烟与一氧化碳/燃气探测器相关产品应用。

来源:HOLTEK

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

围观 4

本方案是基于国产高性能MCU HPM6880,并搭载了国产GUI组件AWTK,开发的10.25寸高清全液晶仪表。实现了三个界面:2.5D指针仪表表盘、科技版异形进度条表盘、IACC自动驾驶表盘。屏幕选用了当前车用液晶仪表的最大分辨率1920×720,并保证60fps实时刷新。支持2.5D图形绘制,硬件JPG编解码。同时使用RTOS系统满足开机速度和运行过程中实时性的要求。

基于AWTK的方案在汽车行业多个头部品牌都有落地量产经验,在其他多个领域也有大量落地量产经验,如电梯外护板、电单车码表、智能家居中控屏、农机中控、电子手表、扫地机器人、3D打印显示屏、86盒子、商用车仪表、乘用车仪表和电动消防泵监控器等。

演示视频

立功科技,赞2

实物图

1.png

图1

方案框图

2.png

图2

方案特性

  • 上电100ms内响应第一个CAN帧,200ms内显示第一屏内容;

  • 支持1920×720分辨率,屏幕60fps动态刷新;

  • 支持素材和程序分离,实现快速更新升级;

  • 接入硬件GPU,支持2.5D图形变换;

  • 支持硬件JPG编解码器编解码JPG图片;

  • 丰富的GUI控件,简单的拖拽放置即可实现实时车道等动画效果。

AWTK简介

AWTK全称为Toolkit AnyWhere,是ZLG倾心打造的一套基于C语言开发的GUI框架。旨在为用户提供一个功能强大、高效可靠、简单易用、可轻松做出炫酷效果的GUI引擎,支持跨平台同步开发,一次编程,到处编译,跨平台使用。

AWTK作为一个开源软件在github和gitee上托管,它使用LGPL2.1开源协议,用户可以自由免费地导入自己的产品中使用。

3.png

图3

同时AWTK提供完全免费的上位机拖拽开发工具,集成界面设计、工程管理、字体裁剪、运行模拟器等功能。客户完全可以在上位机实现所有的界面设计工作。得益于AWTK灵活的扩展能力,用户还可以结合自身产品的共性,设计自己的自定义控件导入上位机中使用。

4.png

图4

来源:立功科技

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

围观 19

2024年6月5日,深圳市航顺芯片技术研发有限公司(以下简称“航顺芯片”)受邀出席于南京举办的2024世界半导体大会,期间,航顺芯片副总经理Ellison发表主题演讲《航顺HK32MCU在汽车电子上的应用》。

1717724223421615.jpg

1717724243585134.jpg

1717724256147135.png

Ellison提到:“随着汽车功能复杂度提高,MCU将需要支撑更高端的汽车应用场景,这就要求MCU具备更强的算力、更大的资源以及更高的功能安全等级和信息安全。作为头部MCU厂商,航顺芯片基于自身32位MCU研发实力,加速车规MCU战略布局——先后通过了ISO 26262:2018汽车功能安全最高等级ASIL D流程认证和AEC-Q100 Grade 1 -40~125℃车规认证。”

1717724456978355.jpg

1717724474728845.jpg

航顺芯片车规级SoC,如HK32AUTO39A、HK32A040和HK32A470(Cortex-M4)等系列产品成功量产进入车规级微控制器市场,多款高性价比高可靠性的成熟方案在东南、东风、中兴、金康、柳汽等车厂部分车型的车身域和座舱域广泛应用。

7.png

8.png

9.png

航顺HK32MCU 车规SoC应用案例

航顺HK32MCU在汽车电子领域已进行深远布局,随着拳头产品与核心技术的积累,航顺车规级SoC将快速覆盖车身、网关、智能座舱、人工智能和自动驾驶等高阶控制领域。

4.png

航顺HK32MCU除了助力汽车电子国产化,更是依托自身强大的研发实力和完善的产品阵列及生态体系,在消费电子、计算机与通信、医疗与工业控制以及汽车电子等关键领域实现广泛应用,并建立了强有力的市场竞争力。


5.png

航顺芯片将坚持研发投入,持续扩大自身在高端32位MCU和车规SoC领域的技术优势,进而提升产品的性能和功能安全等级,满足更高端的行业应用场景的需求。同时,航顺芯片还将加强与国内外知名企业、政府领导、专家学者的合作,“芯升新质·智创未来”!

来源: 航顺芯片

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

围观 12

页面

订阅 RSS - MCU