MCU

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

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

在本文中,小编用“小身板”和“俊模样”来指代一个带有图形用户界面的系统的两个方面。“小身板”是指相对有限的MCU资源,例如:相对较低的主频、相对较少的存储资源、没有专门的LCD显示控制器、较低的显示接口速度等等;而“俊模样”是指对用户友好,漂亮且富于吸引力的图形界面,就如同男生的帅、女生的美。

男生的帅和女生的美,除了与天生的基因有关,外在的修饰也同样必不可少。俗话说,人靠衣裳马靠鞍,衣裳和鞍都是外部的修饰,都是实现美好事物所需要的资源。

由此及彼,一个“俊模样”的GUI设计,同样对资源有比较高的要求。这些资源包括主频、Flash和RAM以及美工设计等等。那么,是不是“小身板”就不能有“俊模样”呢?

不是的!如同一个优秀的化妆师可以用卓越的手段实现美,嵌入式工程师也可以通过各种手段进行资源优化,力争让“小身板”的MCU也能实现“俊模样”的界面设计。

对GUI设计进行资源优化的路很漫长,涉及的方面很多,需要我们不断发现,不断思考。小编在这里通过一些示例和大家分享如何使用Slider对某一类动画进行存储资源优化。

我们在生活中经常会见到这样一类应用,如下图所示:

1.png

通过观察我们发现,尽管上面的图形元素,外观各异、形状各异,但是都可以被抽象为两个部分:静态部分和动态部分。比如,咖啡液位,由静态的杯子和动态的咖啡组成;温度计由静态的玻璃容器和动态的水银组成。

我们再看看GUI设计中经常使用到的控件——Slider,其典型结构如下图所示。这是一个典型的Slider控件,由静态的背景 (main) 和动态的指示器 (Indicator) 以及调节点 (Knob) 组成。


2.png

在LVGL中,设置样式的函数名都是以lv_obj开始,例如:

  • lv_obj_set_style_bg_color

  • lv_obj_set_style_bg_opa

  • lv_obj_set_style_bg_img_src

可见,样式是针对所有控件的父对象而言的。换句话说,我们既可以通过lv_obj_set_style_bg_img_src为Slider控件的背景、指示器和调节点设置图片样式,也可以通过lv_obj_set_style_bg_opa将Slider控件的背景、指示器和调节点的透明度设置为0从而达到隐藏Slider控件相应组成部分的目的。

接下来,我们看看如何使用Slider实现咖啡液位变化的动画效果。

首先,通过美工设计,将咖啡液位的图分解为两部分,杯子和咖啡,并将它们分别作为Slider的背景部分和指示器部分,同时隐藏Slider的调节点部分,如下面的简图所示。

3.png


▲咖啡液位的分解及与Slider的对应关系

完成上面的工作之后,后面的工作就是为Slider创建动画,并在动画的回调函数中周期性地调用lv_slider_set_value函数以改变Slider指示器的值,从而实现咖啡液位变化的效果。

看到这里,大家会问了,你讲这么多,和存储资源优化有什么关系吗?大家请想想看,通常我们如何实现这样的动画效果?大致如下图所示,将咖啡液位变化的动画分解为若干不同液位的静态图片,然后,每隔一个时间间隔播放一张图片。时间间隔越短,图片数量越多,动画的效果越流畅。但是,图片数量越多,需要的存储资源越多。

但是,使用上面的方法,实现相同的动画效果,只需要两张图片即可,节约存储资源。

4.png

那么,最后总结一下,有两点与大家分享:

01、前面的三个显示应用,可以抽象出共同的特性。那就是,它们都可以清晰地剥离出静态部分和动态部分。动态部分都具有有限的变化范围,也就是具有一个起始值和结束值。比如,咖啡液位总是在最低液位和最高液位之间变化;又比如,温度计显示的温度值也总是在最低温度和最高温度之间变化。那么,对于这类应用,就可以用Slider实现。

每一种显示动画的方法,都有适用范围,没有好坏之分。我们只有为自己的显示应用选择合适的方案,才能最大限度地优化存储资源。

02、一点GUI动画显示的心得体会,与大家分享,欢迎各位大神指导。

来源:NXP客栈

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

围观 36

环顾我们当前日常生活中的 Bluetooth® 应用,我们有理由期待未来世界能够实现更高程度的互联。据蓝牙技术联盟 (SIG) 估计,蓝牙设备的年出货量将在 2026 年超过 70 亿。在医疗设备、玩具、个人电子产品、智能家居设备等领域,市场需要更高的蓝牙集成度。为满足该市场需求,富有创新精神的工程师将有机会大展拳脚。

蓝牙在医疗领域的发展趋势

蓝牙功能在医疗方面的应用越来越多,包括血糖监测仪、医疗传感器贴片,甚至还有智能牙刷。对于设计者来说,需要满足消费者对以下特性的需求:

  • 尺寸小巧且便于使用。没有人希望在使用血糖监测仪或温度贴片时有诸多限制条件。

  • 电池寿命较长。较长的电池寿命有助于让消费者在危急时刻去安心使用一些设备。

  • 强大的性能。提供可靠的连接至关重要。

蓝牙在个人电子产品领域的发展趋势

尽管游戏产品、玩具或遥控器等个人电子产品与医疗救生设备大不相同,但对集成蓝牙的特性要求则较为类似,包括:

  • 时尚且实用的设计。不管是无线键盘还是鼠标,消费者都偏爱时髦的产品。

  • 更长的电池寿命。充一次电即可保持稳定的运行。

  • 低成本。提供的产品物美价廉。

助您满足上述发展趋势要求

直到现在,工程师在实现蓝牙技术时都需要做出一定的权衡,比如由于成本限制而牺牲射频性能和质量。

德州仪器 (TI) 的 SimpleLinkTM 产品系列包含 CC2340 无线微控制器 (MCU),可帮助应对医疗和个人电子产品应用中遇到的设计挑战:

  • 高达 512KB 的闪存和 36KB 的 RAM 可实现灵活的配置和扩展的特性支持。

  • 小巧的外形(4mm x 4mm 或 5mm x 5mm 封装)和集成式平衡-非平衡变压器,有助于实现空间受限型应用的设计。

  • 该 MCU 的低功耗复位/关断电流小于 150nA,待机电流小于 830nA,可更大程度地延长电池寿命。

  • 有助于设计人员将高质量蓝牙部署到更多低成本产品中。

除了在本文中所举的例子,TI 设计的低功耗蓝牙无线 MCU 还可以满足楼宇自动化、照明和零售自动化等许多其他行业不断发展的需求。CC2340 系列具有不同的特性和价位,适用于各种低功耗蓝牙应用,可助您创建更加互联的世界。

如需获取更多在线技术支持,请访问 TI E2E™ 中文支持论坛 (e2echina.ti.com)。

来源:德州仪器

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

围观 27

提供超丰富半导体和电子元器件™的业界知名新品引入 (NPI) 代理商贸泽电子 (Mouser Electronics) 即日起开售Microchip TechnologyAVR64EA 8位AVR® MCU。AVR64EA MCU为工程师提供基于硬件的高速低功耗集成式模拟核心独立外设 (CIP),适用于工业消费汽车应用的各种实时控制、传感器节点和辅助安全监测。 

PRINT_Microchip Technology AVR64EA 8-Bit AVR® Microcontrollers (MCUs).jpg

贸泽供应的AVR64EA MCU搭载带有硬件乘法器的AVR CPU,时钟速度最高可达20MHz。这些器件提供64KB的闪存、6KB的SRAM和512KB的EEPROM,并配备12位差分模数转换器 (ADC) 和高达16倍增益的可编程增益放大器 (PGA)。AVR64EA 8位AVR MCU可测量较小振幅的信号、在嘈杂环境中采集信号,并在严苛环境中执行快速转换以实现快速准确的信号测量,并且所有这些都以低功耗完成。 

AVR64EA MCU具有精准且温度稳定的内部20 MHz RC振荡器、可配置自定义逻辑 (CCL)、事件系统和CIP,可大幅减少对外部组件的需求。这些器件采用引脚数从28到48的SPDIP、SSOP、TQFP和VQFN封装,工作温度范围-40°C到+85°C。 

贸泽还提供与AVR64EA 8位AVR MCU配套的Microchip Technology AVR64EA48 Curiosity Nano评估套件 (EV66E56A)。AVR64EA48 Curiosity Nano评估套件包含预装的AVR64EA48 MCU。在MPLAB® X 集成开发环境 (IDE) 和Microchip Studio的支持下,该评估板可以轻松访问AVR64EA48的功能,以探索如何将器件集成到自定义设计中。Curiosity Nano系列评估板拥有板载调试器,无需外部工具即可对AVR64EA48进行编程和调试。 

要进一步了解AVR64EA 8-Bit AVR MCU,请访问https://www.mouser.cn/new/microchip/microchip-avr64ea-mcus/。 

要进一步了解可供订购的AVR64EA48 Curiosity Nano评估套件,请访问

https://www.mouser.cn/new/microchip/microchip-avr64ea48-evaluation-kit/

作为全球授权代理商,贸泽电子库存有极其丰富的半导体和电子元器件并支持随时发货™。贸泽旨在为客户供应全面认证的原厂产品,并提供全方位的制造商可追溯性。为帮助客户加速设计,贸泽网站提供了丰富的技术资源库,包括技术资源中心、产品数据手册、供应商特定参考设计、应用笔记、技术设计信息、设计工具以及其他有用的信息。 

工程师还可以一键订阅免费的贸泽电子报,及时了解业界新品动态和资讯。在订阅贸泽的电子报时,我们可以根据您不断变化的具体项目需求来提供相关的新闻报道和参考信息。贸泽充分尊重用户的权利,让您能自由掌控想要接收的内容。欢迎登陆https://sub.info.mouser.com/subscriber-sc 注册,及时掌握新兴技术、行业趋势及更多资讯。

关于贸泽电子 (Mouser Electronics)

贸泽电子隶属于伯克希尔哈撒韦集团 (Berkshire Hathaway) 公司旗下,是一家授权电子元器件代理商,专门致力于向设计工程师和采购人员提供各产品线制造商的新产品。作为一家全球代理商,我们的网站mouser.cn能够提供多语言和多货币交易支持,提供超过1200家品牌制造商的680多万种产品。我们通过遍布全球的27个客户支持中心,为客户提供无时差的本地化贴心服务,并支持使用当地货币结算。我们从占地9.3万平方米的全球配送中心,将产品运送至全球223个国家/地区、超过65万个顾客的手中。更多信息,敬请访问:http://www.mouser.cn。 

围观 8

Holtek新推出锂电池保护MCU HT32F61630/HT32F61641,在原有HT45F8650/HT45F8662 8-bit MCU系列外,新增更高阶的32-bit Arm® Cortex®-M0+锂电池保护系列MCU产品,重点规格特性如下:锂电池电压侦测精准度±24 mV、低待机功耗、内建被动均衡、高压Gate-driver等功能,LDO输出能力达50 mA,适合应用于3~8串锂电池产品,如电池管理系统(BMS)保护板、电动工具、无线吸尘器等。

1.jpg

HT32F61630/HT32F61641具备32 KB / 64 KB Flash ROM、SRAM存储容量为2 KB / 8 KB,最高运行速度为16 MHz / 20 MHz,I/O方面具有22个多功能引脚并提供丰富外围资源,如UART、SPI、I²C、6通道最快1 Msps SAR ADC、最多16通道16-bit PWM等。整合2组Low-side高压Gate-driver、1组High-side高压Gate-driver用于驱动MOSFET;内建待机零功耗与高压唤醒电路,可增加电池待机时间;内建被动均衡电路,大幅减少零件数量并缩减PCB空间。封装提供48LQFP-EP。

HT32F61630/HT32F61641的开发环境与HT32系列相同,支持多种开发环境(Keil/IAR/SEGGER/GNU),并提供硬件开发工具包、周边驱动函数库(Firmware Library)及应用范例等完整的开发资源。Holtek全系列M0+ MCU取得Keil MDK-ARM用户许可证,可提供客户免费使用。搭配ISP(In-System Programming)及IAP(In-Application Programming)技术方案,可轻易升级固件,也提供自检程序库(Safety Test Library),可通过UL/IEC 60730-1 Class B认证,缩短产品认证时间。

来源:HOLTEK

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

围观 32

在现代电子产品设计中,芯片的集成度和复杂度越来越高,如何充分利用芯片的资源,满足不同场景的需求,是每位工程师和设计师需要面对的挑战。芯片IO重映射功能恰好解决了这一问题,为用户提供更加灵活、便捷、可定制的芯片使用方式,助推产品创新和突破。

IO口是MCU内部模块和外部硬件唯一的进出口。每个内置外设都有若干个输入输出引脚,一般这些引脚的输出端口都是固定不变的,芯片IO重映射就是将芯片原有的通用IO端口重新定义为特定功能用途。例如,在硬件设计之初,开发人员通过移位寄存器和端口直接映射的方式实现了控制PWM波输出的功能。如果需要用同一颗芯片控制两个不同的电机,此时就需要映射另一个用于控制第二个电机的PWM波输出端口,这样才能满足应用需求。IO重映射功能即可通过编写特定的程序来实现。

为了让设计工程师更好地安排引脚的走向和功能,爱普特在系列全国产32位MCU产品中均加入了外设引脚重映射的功能,即一个外设的引脚除了具有默认的端口外,还可以通过设置重映射寄存器的方式,把这个外设的引脚映射到其它的端口。为了使不同器件封装的外设IO功能数量达到最优,还可以把一些复用功能重新映射到其他一些引脚上。这种灵活性为产品硬件布局和型号适配提供了更多的可能性,方便PCB设计,减少了信号的交叉干扰;分时复用某些外设,还可以虚拟增加端口数目,从而整体提高工程师的研发效率。

接下来我们以爱普特APT32F110X系列为例进行介绍:APT32F110X系列芯片为提供更灵活的 IO 功能配置,提供了自定义 GPIO 复用的功能。

芯片提供两个预设的 GPIOGROUP,分别为 GROUP0 和 GROUP1,两个 GROUP 分别对应 8 个预设的可选择的复用功能。在每个 GROUP 内,每个 GPIO可以被指定为这 8 个预设功能中的任意一个作为该 GPIO 的 AF8 功能。

1.png

IO GROUP0和 GPIO 对应关系

2.png

IO GROUP1和 GPIO 对应关系

3.png

 IOGROUP 配置信息表

如图中1对应的红色框所示,标识的是APT32F110X GROUP0/GROUP1对应的复用功能列表,左边是GROUP0,右边是GROUP1。从图中2对应的红色框可直观看到复用列表中具体功能对应的配置数值,数值是配置在IOMAP的CFGVAL(CFGVAL0~CFGVAL7)域中;如GROUP0中选择I2C_SDA功能,需要在对应的CFGVAL域中写入0x01。

APT32F110X系列是爱普特基于国产RISC-V核架构和自研的IP库研发设计的全国产MCU。该系列具有多达44个GPIO口,均支持外部中断,支持IO重映射,内置多路通用及增强型定时器,可实现灵活的 PWM 输出,同时具有DMA和高速SPI通讯接口,内嵌多模式段码液晶驱动控制器,可以直接驱动LCD显示屏幕,支持20通道的12位ADC,还支持LCD/LED/Touch/温度传感器等功能。目前APT32F110X系列产品已被广泛应用于智能家电、工业控制、物联网、消费电子、消防、医疗电子等领域。

来源:爱普特微电子

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

围观 32

在《玩转MCU双核(上)》文章里,我们给大家介绍了先楫HPM6000系列双核的特性、使用方法以及工程编译与调试。本文紧接上篇内容,给大家详细阐述双核的通信方式、资源分配以及双核应用eRPC架构。

1.png

双核的通信方式

HPM双核通信方式有那些?这里列举如下:

A. 通信外设通信

如enet/uart/spi/can/i2c/gpio等等。Core0和Core1可通过通信外设相互之间发送消息来通信。

( 注意:此方案会浪费对应的通讯外设,且需要硬件上支持。)

B. 共享内存RAM通信

Core0和Core1通过访问同一片内存RAM来达到通信。如:一个核写,另一个和读。

共享RAM要点

1. 双核下的共享RAM区域地址及大小必须相同。

2. 为防止CPU cache的影响,共享的RAM区域在双核下均要设置为nocache区域或者在访问前后强制刷新cache。

注意:如果设置为nocache区域,core0和core1中均要调用初始化PMP。

例如:

HPM-SDK双核例程下,双核linker文件中,均已分配了SHARE_RAM区域。

Core0 linker文件中的SHARE_RAM区域分配:

2.png

Core1 linker文件中的SHARE_RAM区域分配:

3.png

工程中定义共享RAM区域,并访问读写。

  • Core0工程下设定nocache区域,并初始化PMP。

  • Core1工程下同样设定为nocache区域,并初始化PMP。

如下:

Core0工程

4.png

Core1工程

5.png

通过debug调试,在core1中打断点,core1中写共享区域。

通过串口发送数据,在core0中读取共享区域。

运行结果如下:

6.png

从运行结果看,core1中写入的共享区域的数据和core0中读取的共享区域的数据是一致的。

C. 通信信箱MBX通信

HPM支持独有的通信信箱MBX来进行处理器核间通信。主要特性如下:

● 支持 2 个寄存器访问接口

● 每个接口支持 TX FIFO 和 RX FIFO

● 支持标志位反映 TX FIFO 和 RX FIFO 状态

● 支持生成中断

双核MBX通信,参考HPM-SDK例程drivers/mbx。

(注意:当然也支持读写Flash来通信,考虑到并发读写Flash带来的异常,此通信方案不推荐使用。)

在这里,推荐大家结合B和C方案,通过MBX做双核间的消息传递,通过共享RAM的方式来达到大数据的通信。

当然通过双核通信来实现双核间的同步和互斥。例如:通过MBX通信,实现类似OS互斥锁和信号量的功能。

双核的资源分配

HPM双核资源,除了以下资源是Core0和Core1各自私有的,其余资源均需要合理分配。

● CPU 自身的指令/数据本地存储器 ILM / DLM 为私有

● FGPIO 为私有

● 平台中断控制器 PLIC 为私有

● 软件中断控制器 PLICSW 为私有

● 机器定时器 MCHTMR 为私有

A:双核Flash 资源分配要点

防止Core0和Core1并发同时访问同一个flash。例如:结合MBX通信,实现互斥锁来避免并发访问。并且考虑到flash_xip(非xip的除外) 片上运行,同时应在访问flash前后,禁止和使能全局中断。

B:双核RAM 资源分配要点

1. 除了共享ram区域和各自私有的ILM/DLM区域。其余sram和sdram在core0和core1的分配中不可重叠,避免出现未知数据错误。

2. Core0和Core1共享RAM区域的分配,地址及大小必须相同。

C:双核访问同一外设要点

通常应该避免双核访问同一个外设。如果有需求要同时访问同一外设,需要注意以下几点:

1. 禁止双核均初始化同一外设。如:Core0已经初始化相关外设,Core1无需再次初始化。

2. 防止Core0和Core1并发操作同一外设。例如:结合MBX通信,实现双核互斥锁来防止并发操作。

D:双核使能同一外设中断要点

由于双核Core0/Core1各自的PLIC平台中断控制器是私有的,如果双核均使能了同一个外设中断,需注意以下几点:

1. 禁止双核均初始化同一外设。如:Core0已经初始化相关外设,Core1无需再次初始化。

2. 双核各自的私有PLIC中均要使能当前中断。如:Core0的PLIC中使能了IRQn_GPIO0_Z中断,Core1的PLIC中同样也要使能IRQn_GPIO0_Z中断。

3. 禁止双核外设中断处理接口中均清除中断标识位。如:Core0中清除了当前外设中断标识位,Core1中无需再次清除。如下:

7.png

8.png

E:双核异常要点

由于HPM双核是两个独立的CPU,是主从架构。

当双核出现异常情况,需要注意以下几点:

1. 其中一个核出现异常(crash)但未重启,另一个核仍能正常运行,不受影响。

2. Core0异常重启,Core1也会随之重启。

主从架构,Core0为主,Core1为从。当复位发生时,系统总是由Core0启动,而Core1处于待机状态,需要Core0装载启动Core1。

3. Core1异常重启,Core0仍正常运行,不受影响。

推荐结合看门狗WDG来合理处理双核异常情况。

双核应用eRPC架构

eRPC(Embeded Remote Procedure Call) 是一个简单的、易用的、高效的远程调用框架。

RPC是一种机制,Client端通过简单的本地函数调用,就能使用Server端提供的服务。对于Client端而言,使用远程服务就像调用应用程序中内置的库函数一样。

当Client端调用远程函数时,该函数的标识(identifier)和函数的参数(parameters)将被序列化到字节流中,此字节流通过传输层的通信通道(IPC、TCP/IP、UART、SPI等)传至Server端。Server端收到字节流数据后,解析函数参数并根据标识选择调用的服务函数。若函数有返回值,则Server端将返回值序列化并发送回Client端。

以下是RPC架构框图(此图仅显示一个传输方向,省略了来自Server端的回复)。

9.png

对应多核(MultiCore)应用,通过RPMsg-Lite是作为传输层;对于多芯片(MultiProcessor)应用,通过UART、SPI、TCP/IP等作为传输层信号通道。

HPM6000系列双核应用,将使用RPmsg-Lite作为传输层。

RPMsg-Lite(Remote Processor Messaging Lite)是ePRC的传输层,RPMsg协议定义了一个标准化的二进制接口,用于在多核系统中内核之间的通信。

RPMsg协议的分层模型如下:

10.png

它是实现eRPC的关键部分,采用的数据通讯方式为共享内存和消息通知。

详细介绍参考GitHub官方网站:

https://github.com/EmbeddedRPC/erpc

https://github.com/nxp-mcuxpresso/rpmsg-lite

HPM-SDK已完成了eRPC的移植,采用RPmsg-Lite作为数据传输层,采用MBX作为事件通知。

例程:hpm_sdk\samples\multicore\erpc

来源:先楫半导体HPMicro

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

围观 104

EXTI 简介

EXTI(External interrupt/event controller)—外部中断/事件控制器,管理了控制器的 23个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。EXTI可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。

EXTI 功能框图

EXTI的功能框图包含了 EXTI最核心内容,EXTI可分为两大部分功能,一个是产生中断,另一个是产生事件。EXTI功能框图如下:

1.png

中断/事件线

EXTI有23个中断/事件线,每个GPIO都可以被设置为输入线,占用EXTI0至EXTI15,还有另外七根用于特定的外设事件。

2.png

EXTI0至EXTI15用于GPIO,通过编程控制可以实现任意一个GPIO作为 EXTI的输入源。由上图可知,EXTI0可以通过AFIO的外部中断配置寄存器 1(AFIO_EXTICR1)的EXTI0[3:0]位选择配置为PA0、PB0、PC0、PD0、PE0、PF0、PG0、PH0 或者PI0,其他EXTI线(EXTI中断/事件线)使用配置都是类似的。

外设事件连接模式:

EXTI line 16 连接PVD输出

EXTI line 17 连接RTC闹钟事件

EXTI line 18 连接USB OTG FS唤醒事件

EXTI line 19 连接以太网唤醒事件

EXTI line 20 连接USB OTG HS唤醒事件

EXTI line 21 连接RTC 篡改和时标事件

EXTI line 22 RTC唤醒事件

EXTI 初始化结构体

标准库函数对每个外设都建立了一个初始化结构体,比如 EXTI_InitTypeDef,结构体成员用于设置外设工作参数,并由外设初始化配置函数,比如 EXTI_Init()调用,这些设定参数将会设置外设相应的寄存器,达到配置外设工作环境的目的。

初始化结构体和初始化库函数配合使用是标准库精髓所在,理解了初始化结构体每个成员意义基本上就可以对该外设运用自如了。初始化结构体定义在 cks32f4xx_exti.h 文件中,初始化库函数定义在 cks32f4xx_exti.c 文件中,编程时我们可以结合这两个文件内注释使用。

EXTI操作流程

a)首先配置GPIO引脚模式:

RCC_APB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); 
/* 配置GPIOA.0 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
/* 配置为输入模式 */
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
/* 配置速率为高速模式 */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
/* 使能下拉模式 */
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;
/* 调用初始化函数 */
GPIO_Init(GPIOA, &GPIO_InitStructure);typedefstruct

b)配置EXTI line0中断线连接GPIOA.0:

typedefstrucSYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, GPIO_PinSource0);

c)配置中断线为中断模式,上升沿触发模式并使能:

EXTI_InitTypeDef  EXTI_Structure;
EXTI_StructInit(&EXTI_Structure); 
/*  配置中断线0 */
EXTI_Structure.EXTI_Line = EXTI_Line0;      
/* 使用中断模式 */
EXTI_Structure.EXTI_Mode = EXTI_Mode_Interrupt;
/* 电压低于阀值时产生中断 */     
EXTI_Structure.EXTI_Trigger = EXTI_Trigger_Raising;  
/* 使能中断线  */
EXTI_Structure.EXTI_LineCmd = ENABLE;   
/* 初始化中断  */
EXTI_Init(&EXTI_Structure);

d)配置中断管理器NVIC,设置EXTI0_IRQn中断源优先级并初始化:

Svoid NVIC_Configuration(void)
{  
    NVIC_InitTypeDef NVIC_InitStructure;  
    /* 嵌套向量中断控制器组选择 */  
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  
    /* 配置EXTI0_IRQn中断源 */  
    NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;  
    /* 抢断优先级为1 */  
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;  
    /* 子优先级为1 */  
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;  
    /* 使能中断 */  
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;  
    /* 初始化配置NVIC */ 
    NVIC_Init(&NVIC_InitStructure); 
 }  
    NVIC_PriorityGroupConfig(NVYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, GPIO_PinSource0);

e)当产生 EXTI0中断,在中断程序中进行相应的处理:

typvoid EXTI0_IRQHandler(void)
{  
    if(EXTI_GetITStatus(EXTI_Line0) != RESET)  
    {            
        EXTI_ClearITPendingBit(EXTI_Line0);
        /* 添加用户处理代码 */  
     }
}  edefstruct

来源:中科芯MCU

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

围观 15

灵动股份推出全新超值型 MM32G0001 系列 MCU。2023 年初,灵动首次发布了其主打高性价比的 MM32G 系列,目前已陆续推出了 G0140,G0160 和 G5330 系列产品。为进一步丰富 MM32G 系列产品组合,灵动和上下游合作伙伴通力合作,打造出全新入门级超值型 MM32G0001 系列 MCU。MM32G0001 系列 MCU 搭载 48MHz Arm® Cortex®-M0 内核,提供 16KB Flash 和 2KB SRAM,并提供丰富的外设资源。MM32G0001 系列 MCU 适用于多种多样的入门级 32 位MCU市场,可覆盖广泛的 8/16 位 MCU 升级需求。

优化 Flash 技术,降低产品成本,助力 8/16 位 MCU 升级

以 Arm 为内核的 32 位 MCU 投入市场已经近 20 年的历史,目前 32 位 MCU 已逐步覆盖应用市场的方方面面,但不容忽视的是 8/16 位 MCU 因其价格便宜、简单易用、小封装丰富等特点,依然牢牢占据着入门级 MCU 市场的主力位置。虽然很多 32 位 MCU 厂商都推出了其 8/16 位的替换产品,但始终因为价格和易用性等因素无法完全撼动 8 位单片机的低成本优势。但同时我们也观察到,很多主流的 8/16 位 MCU 产品都具有一些明显的特征:如采用较为传统的工艺,配置 EEPROM,可提供几个 KB 的小容量 Flash甚至是OTP(一次可编程)或者MTP(多次可编程,如几十次或上百次),以及较小的 RAM 配比,如几百个字节。随着工艺的发展,老工艺的成本劣势越来越凸显,在先进工艺上小 Flash 和 EEPROM 的实现也不再经济,因此从工艺角度看, 8/16 位 MCU 的发展已经达到瓶颈。而随着先进工艺的发展,32 位 MCU 有机会采用最新的技术把成本做到和 8/16 位 MCU 相当甚至更优的水平。

正是观察到了上述趋势,灵动与合作伙伴华虹宏力紧密配合,依托于华虹宏力20多年夯实可靠的嵌入式闪存技术上做的优化,采用更稳定和经大规模量产验证的 12 寸晶圆工艺平台,对产品的功能、性能和成本进行了全方位的打磨,在保持MM32品质目标的前提下,推出了这款极具性价比的 MM32G0001 系列 MCU 产品。

不同于市面上部分出现在低温或高温环境下代码遗失、读写次数降级的嵌入式MCU产品,MM32G0001在各种温度范围内的闪存擦写寿命与数据保存能力、抗干扰性、芯片复位可靠性等性能都已得到充分验证。

MM32G0001 产品配置和特色

1.jpg

MM32G0001 的简要配置如下:

  • 内核

    Arm Cortex-M0,主频可达 48MHz

  • 存储

    16KB Flash,2KB SRAM

  • 通信接口

    2 组 USART 接口,支持 3 线 SPI 模式;1 组 SPI 接口,主机模式速度可达 24Mbps;1 组 I2C 接口

  • 定时器

    3 组 16 位定时器,其中包含 1 组可输出 4 路互补 PWM 的高级定时器;1 组独立时钟看门狗

  • 模拟

    1 组 12 位 8 通道 ADC,速度可达 1MSPS

  • 兼容性

    引脚兼容 MM32F0010 系列

MM32G0001 在提供了极致的性价比的同时,也保证了产品的质量稳定、可靠,并通过了大量的测试和验证。作为 8/16 位升级的首选,MM32G0001 具有以下特色亮点:

  • 高主频

    相较于常见的 8/16 位MCU,性能提升了 3~4 倍

  • 大 SRAM

    Flash:SRAM 配比为8:1,满足升级需求

  • 10 万次擦写

    Flash 支持 10 万次擦写,可替代片上 EEPROM,并为众多使用8/16位OTP/MTP MCU的用户提供代码升级的便利性和健壮性

  • 丰富的通信接口

    提供多种可灵活配置的接口:2个经优化的USART、1个SPI和1个I2C,轻松实现各种接口类应用,如 USART 转 SPI、USART 转 I2C、SPI IO 扩展、I2C IO 扩展等

  • 高速 ADC

    高达 1MSPS 采样率的 12 位 ADC,模拟性能不减配

  • 可驱动三相电机

    提供三相互补 PWM 输出,支持硬件死区

  • 内置高精度时钟

    全温度范围内偏差不超过 ±2%

  • 最高 105°C Tj结温范围

  • ±5KV HBM ESD,±2KV CDM ESD,±300mA 高温 Latch Up 闩锁值

  • 2.0~5.5V 宽压设计

    适用于各种供电电压场景

MM32G0001 产品组合

MM32G0001现可提供 TSSOP20,QFN20 和 SOP8 三种封装,提供 -40~85°C 工业级和 -20~70°C 消费级环境温度选项,本次共推出 5 款型号可供选择。

此外,MM32G0001 还支持为特定客户和应用定制 DFN、DIP 和 SOP 等常见的小引脚封装,可联系灵动了解详情。

MM32G0001 的产品组合如下:

2.png

产品供货情况和支持

在硬件配套方面,MM32G0001 支持两种类型的开发板:

用户可根据需要任意选择两款不同配置的开发板。

MM32G0001 现已提供完整的样片、开发板和软件开发包支持。

3.png

MM32G0001 系列已全面量产并可接受大批量订单。有关样片申请与芯片购买事宜,请洽灵动股份的销售、官方代理商和方案设计公司。

更多有关MM32G0001的详细信息,请点击访问:

https://www.mindmotion.com.cn/products/mm32mcu/mm32g/mm32g_value_line/mm32g0001/

来源:灵动MM32MCU

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

围观 177

为确保嵌入式硬件和软件的安全运行,防止由于随机故障和系统故障所带来的使用风险,越来越多的行业规定产品必须取得相应的功能安全认证才能上市。GD32F303/305/307系列MCU符合IEC 60730 B类功能安全标准,并可提供由业界领先的第三方测试、检验、认证机构——SGS出具的检测报告及证书。经过认证的软件自检库和完备的安全文档也已经准备就绪,可以支持家用电器等设备的设计符合安全规范,协助客户快速推出稳定可靠的终端产品。

1.jpg

2.jpg

3.jpg

IEC 60730 B类功能安全证书及测试报告

IEC 60730简介 

IEC 60730安全标准规范由国际电工委员会(IEC)制定,该安全标准定义了家用电器嵌入式控制软件与硬件安全操作的测试与检测方法,以确保家电产品安全可靠地工作。

IEC 60730将基于微控制器的家用电器安全标准分为3类:

∎A类:与设备安全无关的控制功能

应用场景:温湿度控制、照明控制等

∎B类:旨在防止受控设备的不安全运行

应用场景:洗衣机、电冰箱等

∎C类:旨在防止特殊危害,例如防止设备爆炸

应用场景 :自动燃烧器、燃气型烘干机等

典型的家用电器,比如白电需要符合B类级别的保护。IEC 60730 B类定义并涵盖了以下需要监控或者检测的控制器关键部件:CPU寄存器和程序计数器、中断处理及执行、系统时钟频率、存储器检测等。每个部件均提供了可选的检测方法,设备厂商可灵活采用。

GD32 对 IEC 60730 的支持 

IEC 60730规范要求家用电器相关的厂商,对其提供的每个产品装置的部件,通过程序运行中的动态自我检测及时发现问题并采取措施。目前的智能型家电类产品通常是一键启动,当中所导入的功能安全IEC 60730 B类功能安全标准,最重要的组件就是MCU。因为只有MCU能防止受控设备的不安全运行、避免电子器件在功能失效时造成人员的受伤、协助系统诊查失效原因及对应相关的行为。

兆易创新GD32F303/305/307系列主流型MCU已经提供了完整的功能安全库,协助客户实现功能安全设计。家电厂商可以将认证过的GD32安全程序库,嵌入到整套系统软件中实现自我检测功能,进而申请最终产品的IEC 60730功能安全标准相关认证。

启动诊断测试项:

●CPU寄存器检测

● 看门狗定时器检测

● Flash全域检测

●RAM检测

●系统时钟检测

周期诊断测试项:

●CPU寄存器检测

●堆栈溢出检测

●系统时钟检测

●Flash CRC片区检测

●定时中断处理

●RAM片区检测

安全是家电产业实现高质量发展的底层保障。兆易创新一直将客户需求及合规认证视为公司发展的基石,持续完善功能安全相关认证,旨在为开发者提供更完整的安规支持。未来,兆易创新GD32 MCU还将满足面向多元化市场的专业安全认证需求,与行业伙伴携手并进,共同合规、稳健、高质量地发展。

来源:GD32MCU

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

围观 87

页面

订阅 RSS - MCU