STM32U5

一、前言

某客户在使用 STM32U5 开发一款产品时需要使用到 USB Custom 进行双向通信,并反馈STM32U5 使用的是 Azure USBx 协议栈,不再支持 ST USB device 库。客户表示只熟悉 ST USB Device 库,对 USBx 协议栈与 API 没有任何使用经验。查阅目前所有 USBx 的例程,发现目前 USBx 均没有可参考的 Custom HID 双向通信范例,客户希望提供使用 USBx HID 进行双向通信的例程,这里简单介绍下利用 CubeMx 创建工程的实现过程。

二、USB 双向通信的几个基本知识点

首先,我们回顾一下 USB2.0 设备端与主机通信的基本原理及数据流,如下图所示。

1.png

设备描述符:向主机提供 USB 版本信息、支持的协议、供应商标识(VID)、产品标识(PID)、及制造商和产品字符串,支持的配置数量等信息。

配置描述符:提供特定设备配置的信息,如接口数量、设备由总线供电还是自供电、设备能否启动一个远程唤醒以及设备功耗。

接口描述符:对配置描述符中的接口信息进行描述,主要包括了接口号、类型以及该接口中的端点(Endpoints)数量等信息。

端点描述符 :用于向主机提供端点信息,主要包括了端点方向(IN/OUT)、传输类型(中断、批量bluck、同步、控制)以及数据包最大长度等信息。

三、USBx HID 设备端 API 介绍

USBx Device 协议栈内部实现了一套复杂的基于事件和消息驱动机制的数据流传输和控制传输逻辑,用户 Application 只需要使用其提供的 APIs 即可实现 USB 通信。USBx Device Stack 所提供的 APIs 如下:

2.png

四、USBx 实现 Custom HID 双向通信的步骤

(一) 系统外设、USB、USBx、Threadx 的添加和基础配置下面我们就使用 NUCELO-U575ZI-Q 基于前面所讲的 USBx Device stack APIs 来实现USB HID 双向通信。使用 STM32CubeMX 创建如下工程,工程基本配置如下。

3.png

USB 和 RCC 时钟系统配置如下:

4.png

配置 NUCLEO-U575-Q 为 SMPS 供电模式。

5.png

配置 USB 引脚及中断功能。

6.png

添加 ThreadX RTOS 协议栈。

7.png

添加 USBx 协议栈支持并配置协议栈。

8.png




9.png

10.png

设置 MX_USB_OTG_FS_PCD_Init 在 main()中不进行调用,并保存工程并生成代码。

11.png

(二) 代码的添加及修改

本例程目的是实现 USB Custom HID 双向通信。本例程共使用了 3 个 Endpoint,如下:

Eendpoint0(控制类型,IN/OUT)、Endpoint1(中断,IN)、Endpoint2(中断,OUT)。Endpoint0:系统默认控制管理端点,用于 Host 对 Device 传输控制和管理命令,如设备描述符、配置描述符等系统信息进行配置和查询。

Endpoint1:输入(IN)类型端点,用于向 Host 发送数据,在本例程我们创建了一个应用线程usbx_cutomhid_thread_entry(),以 1S 为周期向 Host 通过 Endpoint1 发送 64 字节的数据包。

Endpoint2:输出(OUT)类型端点,用于当 Host 向 device 发送数据时,USBx Stack 会自动调用 USBD_Custom_HID_SetReport()的回调函数,通过 Endpoint2 来接收 Host 所发送的数据包。

  1. 在 app_usbx_devich.h 中包含如下几个头文件。

12.png13.png

2. 在 app_usbx_device.c 中申明和定义如下结构,其中 ux_app_MsgQueue 消息队列用于实现USB 的动态管理。

14.png

15.png

3. 在 ux_device_customhid.h/.c 中添加如下申明和定义,并在相关相关函数内分别依次添加下图所示代码。其中线程 usbx_cutomhid_thread_entry 用于周期性通过 Endpoint1 向 host 发送 64 字节数据。

16.png

17.png

18.png

19.png20.png21.png

修改 HID SetReport 函数,接收由 PC 机向 OUT 端点(Endpoint2)发送的数据包。

22.png

在 usbx_customhid_thread_entry 中实现 IN 端点(Endpoint1)向 PC 机 1S 发送一次数据功能。
23.png

添加 HID report 描述符,我们使用 USB 官网 HID 报告描述符工具生成自定义 Custom HID report 描述符,该工具可以到网址 https://www.usb.org/document-library/hid-descriptor-tool   下载。

根据 USB 规范一个 HID 报告描述符至少应包括如下条目(Items)。

24.png

25.png

(三) 功能测试及验证

USB 设备端(Device)发送数据测试,在 usbx_customhid_thread_entry()线程里面每 1S 钟向 Host 发送一包 64Byte 字节数据,然后我们可以在 PC 机端可以看到已成功收到了数据。

26.png27.png

USB 设备端(Device)接收数据测试,我们在 PC 通过向端点 2 发送数据。在 STM32U5 上通过调试窗口我们可以看到 USB device 已经成功的接收到了数据。

28.png

关于利用 STM32U5 创建 USBx_CustomHID 通信的实现过程就介绍到这里,分享出来供有需要的同仁参考。

来源:STM32

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

围观 25

来源:意法半导体博客

凝聚ST超低功耗微控制器技术精华的STM32U52021年问世,是一款堪称可改变游戏规则的低功耗MCU

作为STM32高性能低功耗系列旗舰产品,STM32U5延续STM32F2/F4/F7的应用范围,同时又有更低的能耗,具有更高的性价比。在工业控制系统中,U5可以承担主控器、系统监控以及图形显示等核心职能

1.png

高性能,低功耗,丰富的数字外设和更高性能的模拟接口,强大的安全特性,以及支持图形加速,让STM32U5在工业控制、工业表计和医疗健康,个人穿戴设备等应用领域取得良好的表现,为泛工业系统创新赋能。在这个视觉统治一切的时代,人们对图形效果的追求永远没有止境,同时也希望实现起来更简单快速,性价比更高。如果只需一个简单的解决方案就能设计出高端、动态的显示屏就好了。

这就是STM32U5最新系列产品的使命所在。

意法半导体最近推出新款STM32U5微控制器(MCU) —— STM32U5F9/G9STM32U5F7/G7,集成了新的专用图形加速器,为成本敏感的小型便携产品赋予更出色的图形效果。超低功耗的STM32U5F9/G9STM32U5F7/G7集成3MB片上静态存储器(SRAM),可以为图形显示屏提供多个帧缓存区,节省了外部存储芯片。新产品还集成了STNeoChromVG图形处理器(GPU),能够实现的图形效果可与更昂贵的高端微处理器相媲美。

2.png

单芯片解决方案实现高级图形效果

新系列U5产品是STM32首批支持硬件加速矢量运算的MCU,能够渲染SVG图像和矢量字体。内嵌的NeoChrom GPU帮助CPU承载了图形计算任务,释放内存并提高性能,可实现更流畅、更丰富的图形效果,比如图像旋转、Alpha透明度混合和精确视角的纹理映射等高端图效。

此外,新款MCU还有处理MJPEG视频的JPEG编解码器。这些功能让产品开发人员可以在智能家电、智能家居控制器、电动自行车和工业终端设备中使用动态图标、支持多种不同尺寸的字体、可缩放地图、视频播放等技术,自此消费者可以期待在市场上看到更炫酷、更有趣、更直观好用的新一代便携式产品

3.png

在片上集成先进的图形处理功能和大容量RAM存储器后,设计人员无需外部存储器就可以开发高性能的图形子系统,从而节省了PCB空间,无需片外高速信号传输。除了3MB SRAM存储器外,片上还集成了4MB闪存,为代码和数据提供了充足的非易失性存储空间

4.png

新款MCU以低成本100引脚LQFP封装,可以实现简单的4PCB设计,避免信号布线和电磁兼容性(EMC)引起的常见问题。

ST授权合作伙伴Riverdi已经使用STM32U5F9/G9 MCU开发出了具有高级图形功能的新产品。Riverdi的联席首席执行官Kamil Kozłowski表示:最新的 STM32 MCU是个兼具优异的图显功能与成本灵活性的单芯片解决方案,让我们能够以更具吸引力的价格推出5英寸显示模块,为终端产品厂商提供专业的整体显示方案,帮助他们为自己的产品设计定制化的用户界面。我们的新型嵌入式显示器解决方案完全集成在STTouchGFX GUI设计框架内,客户打开显示器包装后,就可以立即着手开发自己的UI

STM32U5F9/G9STM32U5F7/G7采用先进高能效的Arm® Cortex®-M33处理器内核,在160MHz频率运行时处理速度达到240 DMIPSULPMark-CoreProfile (CP)测试成绩为464分。该系列MCU具有200nA待机模式、支持部分RAM内容保留和快速唤醒功能的多种低功耗模式,运行模式下功耗仅为16μA/MHz,提高了优化功耗和性能的灵活性。

STM32U5产品线根据GPU功能、封装形式、存储器容量和接口配置不同提供了丰富的产品型号,以满足开发者对于实现高级图形效果的不同需求。

5.png

全面的生态系统支持

和所有其他的STM32MCU一样,ST为新款STM32U5提供全面的生态系统支持,提供成熟的STM32外设和IoT硬件安全功能,以及包括软件工具、中间件、库和代码示例在内的STM23Cube生态系统。

ST还为支持STM32U5图形特性提供了丰富的评估和开发工具,包括探索套件STM32U5A9J-DK/STM32U5A9J-DK1,工业级探索套件STM32U5A9J-DK2STM32 Nucleo开发板,以及由合作伙伴提供的参考设计,如Riverdi 50 STM2U599

6.png

此外,ST经典的免费图形软件工具TouchGFX也全面支持所有ST STM32U5显示套件。

围观 18

01、引言

STM32 在内部都集成了一个温度传感器,STM32U5 也不例外。这个位于晶圆上的温度传感器虽然不太适合用来测量外部环境的温度,但是用于监控晶圆上的温度还是挺好的,以防止芯片过温运行。

02、问题

2.1.问题详情

某客户在使用 STM32U575ZIT6Q 时,使用 ADC4 对内部温度传感器 VSENSE进行采样计算,但是总觉得温度值不对。那么,应该如何对内部温度传感器信号的 ADC 采样进行计算以得到正确温度值呢?

2.2. 问题分析

首先,我们应该看一下参考手册如何描述内部温度传感器的。参考手册说明了,未经校准的内部温度传感器更适用于对温度变化而非绝对温度进行测量的应用。为了提高温度传感器测量的准确性,ST 在生产过程中将校准值存储在每个器件的系统存储器中,用户可以在应用中去读取这些数据。 

这个校准值是写在数据手册的,如图 1 所示。

1.jpg

图1. 内部温度传感器

这张表格告诉我们,校准值 TS_CAL1 的数值位于存储器地址 0x0BFA0710 和0x0BFA0711,也就是它是一个 16-bit 的数据;同理,校准值 TS_CAL2 的数值位于存储器地址 0x0BFA0742 和 0x0BFA0743。 

再回过头来看一下参考手册是如何描述怎么读取内部温度传感器的温度的,如图 2 所示。

2.jpg

图2. 读取温度传感器

这里描述的是如何读取内部温度传感器的温度,前面主要介绍 ADC 的配置和对温度传感器的采样,最后根据得到的数据使用公式进行计算,得到温度值。前面的 ADC 的配置和采样就不说了,我们主要来看一下公式的使用。

3.jpg

其中,

Temperature (in ℃) 就是内部传感器的当前温度结果; 

TS_DATA 为内部传感器当前温度对应的采样值; 

TS_CAL2_TEMP 为校准值 2 的温度值,TS_CAL2 为对应的采样值,对于 STM32U5来说,TS_CAL2_TEMP 为 130℃,对应的采样值存储在 0x0BFA0742 和 0x0BFA0743; 

TS_CAL1_TEMP 为校准值 1 的温度值,TS_CAL1 为对应的采样值,对于 STM32U5来说,TS_CAL1_TEMP 为 30℃,对应的采样值存储在 0x0BFA0710 和 0x0BFA0711; 

对于 STM32U5 来说,公式可简化为:

4.jpg

那么,是不是直接读取了 TS_CAL2 和 TS_CAL1,放到公式里,然后通过 ADC 得到TS_DATA,就可以直接算温度了呢?接着往下看。

2.3. 问题解决

在室温下使用 NUCLEO-U575ZI-Q 做个实验: 

读取 0x0BFA0742 和 0x0BFA0743 得到 TS_CAL2 为 0x155D,也就是 0d5469;读取 0x0BFA0710 和 0x0BFA0711 得到 TS_CAL1 的值为 0x102F,也就是 0d4143。 

此时,由 ADC1 对内部温度传感器进行采样转换,得到 TS_DATA 为 0xEAA,也就是0d3754。 

那么,如果直接放进去算:

5.jpg

室温下,这个 0.66℃显然不对。

2.3.1. 使用 ADC1 测量内部温度传感器的温度值 

再来看数据手册里对校准值的描述,如图 3 所示。

6.jpg

图3. 温度传感器校准值重要参数

这个表格有一个非常重要的参数,就是 ADC1 的参考电压,它是 3.0V,而 NUCLEOU575ZI-Q 板子的 ADC 参考电压为 3.3V。所以,这两个 TS_CAL1 和 TS_CAL2 对于NUCLEO-U575ZI-Q 中的 STM32U575ZIT6Q 的内部温度传感器肯定是不能直接用的,需要先换算为 3.3V 参考电压的值才行。 

所以,新的值计算如下: 

TS_CAL2 = 5469 × 3 / 3.3 = 4972 

TS_CAL1 = 4143 × 3 / 3.3 = 3766 

再回到刚才的实验中,计算的公式如下:

7.jpg

这次算出来的结果为 29℃就对了。

2.3.2. 使用 ADC4 测量内部温度传感器的温度值 

那对于 ADC4 是否也是一样的呢? 

首先,要知道在 STM32U5 中,ADC1 为 14-bit SAR ADC,而 ADC4 为 12-bit SARADC。同样的这块板子,同样的室温下,由 ADC4 对内部温度传感器进行采样转换得到的值是 0x3AA,也就是 0d938。 

要使用 0d938 计算温度值,TS_CAL1 和 TS_CAL2 也要相应转为 12 位的数据才行。将它们由 14 位数据转为 12 位的数据,相当于就是右移 2 位,也相当于除以 4。 

由于参考电压仍然是 3.3V,所以针对 ADC4 的 TS_CAL2 和 TS_CAL1 应该计算如下: 

TS_CAL2 :由读取到的 0x155D 右移 2 位,得到 0x557,也就是 0d1367,再换算成3.3V 的 。 

TS_CAL2 = 1367 × 3 / 3.3 = 1243也可以直接使用上面 ADC1 例子的值来计算。 

TS_CAL2 = 4972 / 4 = 1243 

TS_CAL1 :由读取到的 0x102F 右移 2 位,得到 0x40B,也就是 0d1035,再换算成3.3V 的 。 

TS_CAL2 = 1035 × 3 / 3.3 = 941 

也可以直接使用上面 ADC1 例子的值来计算。 

TS_CAL2 = 3766 / 4 = 941 

计算的公式如下:

8.jpg

算出来的结果也是 29℃。

03、小结

当我们使用芯片的内部温度传感器计算内部温度时,需注意校准值是使用哪个 ADC、在什么参考电压下得到的。当实际应用与内部温度传感器校准时所使用 ADC 及条件不一样时,应该对存储单元里的校准值先做计算转化,然后才可以使用参考手册所提供的公式进行计算,否则将会得到错误值。

来源:STM32单片机

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

围观 20
凝聚ST超低功耗微控制器技术精华的STM32U5于2021年问世,是一款堪称可改变游戏规则的低功耗MCU。

作为STM32高性能低功耗系列旗舰产品,STM32U5延续STM32F2/F4/F7的应用范围,同时又有更低的能耗,具有更高的性价比。在工业控制系统中,U5可以承担主控器、系统监控以及图形显示等核心职能。

1.png

高性能,低功耗,丰富的数字外设和更高性能的模拟接口,强大的安全特性,以及支持图形加速,让STM32U5在工业控制、工业表计和医疗健康,个人穿戴设备等应用领域取得良好的表现,为泛工业系统创新赋能。

在这个视觉统治一切的时代,人们对图形效果的追求永远没有止境,同时也希望实现起来更简单快速,性价比更高。“如果只需一个简单的解决方案就能设计出高端、动态的显示屏就好了。”

这就是STM32U5最新系列产品的使命所在。

意法半导体最近推出新款STM32U5微控制器(MCU) —— STM32U5F9/G9STM32U5F7/G7,集成了新的专用图形加速器,为成本敏感的小型便携产品赋予更出色的图形效果。超低功耗的STM32U5F9/G9STM32U5F7/G7集成3MB片上静态存储器(SRAM),可以为图形显示屏提供多个帧缓存区,节省了外部存储芯片。新产品还集成了ST的NeoChromVG图形处理器(GPU),能够实现的图形效果可与更昂贵的高端微处理器相媲美。

2.png

单芯片解决方案实现高级图形效果

新系列U5产品是STM32首批支持硬件加速矢量运算的MCU,能够渲染 SVG图像和矢量字体。内嵌的NeoChrom GPU帮助CPU承载了图形计算任务,释放内存并提高性能,可实现更流畅、更丰富的图形效果,比如图像旋转、Alpha透明度混合和精确视角的纹理映射等高端图效。

此外,新款MCU 还有处理 MJPEG 视频的 JPEG 编解码器。这些功能让产品开发人员可以在智能家电、智能家居控制器、电动自行车和工业终端设备中使用动态图标、支持多种不同尺寸的字体、可缩放地图、视频播放等技术,自此消费者可以期待在市场上看到更炫酷、更有趣、更直观好用的新一代便携式产品。

3.png

在片上集成先进的图形处理功能和大容量 RAM 存储器后,设计人员无需外部存储器就可以开发高性能的图形子系统,从而节省了 PCB 空间,无需片外高速信号传输。除了 3MB SRAM存储器外,片上还集成了 4MB 闪存,为代码和数据提供了充足的非易失性存储空间。

4.png

新款MCU以低成本100引脚LQFP封装,可以实现简单的4层PCB设计,避免信号布线和电磁兼容性 (EMC)引起的常见问题。

ST 授权合作伙伴 Riverdi 已经使用 STM32U5F9/G9 MCU 开发出了具有高级图形功能的新产品。Riverdi 的联席首席执行官 Kamil Kozłowski 表示:“最新的 STM32 MCU是个兼具优异的图显功能与成本灵活性的单芯片解决方案,让我们能够以更具吸引力的价格推出 5 英寸显示模块,为终端产品厂商提供专业的整体显示方案,帮助他们为自己的产品设计定制化的用户界面。我们的新型嵌入式显示器解决方案完全集成在 ST 的 TouchGFX GUI 设计框架内,客户打开显示器包装后,就可以立即着手开发自己的 UI 。”

STM32U5F9/G9STM32U5F7/G7采用先进高能效的 Arm® Cortex®-M33处理器内核,在 160MHz 频率运行时处理速度达到 240 DMIPS,ULPMark-CoreProfile (CP)测试成绩为464分。该系列MCU具有200nA 待机模式、支持部分RAM内容保留和快速唤醒功能的多种低功耗模式,运行模式下功耗仅为 16μA/MHz ,提高了优化功耗和性能的灵活性。

STM32U5产品线根据GPU功能、封装形式、存储器容量和接口配置不同提供了丰富的产品型号,以满足开发者对于实现高级图形效果的不同需求。

5.png

全面的生态系统支持

和所有其他的STM32MCU一样,ST为新款STM32U5提供全面的生态系统支持,提供成熟的STM32 外设和 IoT 硬件安全功能,以及包括软件工具、中间件、库和代码示例在内的 STM23Cube 生态系统。

ST还为支持STM32U5图形特性提供了丰富的评估和开发工具,包括探索套件STM32U5A9J-DK/STM32U5A9J-DK1,工业级探索套件STM32U5A9J-DK2,STM32 Nucleo开发板,以及由合作伙伴提供的参考设计,如Riverdi 50 STM2U599。

6.png

此外,ST经典的免费图形软件工具TouchGFX也全面支持所有ST STM32U5显示套件。

来源:STM32

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

围观 17

01、引言

很多 STM32 系列中的 ADC 都带有自校准的功能。它提供了一个自动校准的过程,用于驱动包括 ADC 上电/掉电序列在内的所有校准动作。在这个过程中,ADC 计算出一个校准因子,并在内部应用到此 ADC 模块,直到下一次 ADC 掉电。在执行任何 ADC 操作之前必须校准,以消除芯片之间 ADC 结果的偏差。

02、问题

2.1. 问题详情

客户使用 STM32U575ZIT6Q 验证 ADC4 时,使用 STM32CubeMX 配置后生成工程项目。因为使用 ADC 进行采样转换前,必须要做 ADC 的自校准。于是在 main 函数中加入自校准代码,如图 1 所示。

1.png

图1.代码:ADC 自校准

然而,在运行代码的情况下,发现 PC 指针最后跑到这个 Calibration Error 的Error_Handler()里。也就是说,执行自校准失败了! 

再检查进入 Error_Handler()发生的问题,发现在执行HAL_ADCEx_Calibration_Start()时陷在了下面这个 Loop 当中,如图 2 所示。

2.png

图2.代码:等待 ADC 自校准完成

也就是说,ADCAL 位被置 1 后,始终没有被硬件清 0,代表自校准始终不成功。

2.2. 问题分析

查看 STM32U5 的参考手册 RM0456 中关于自校准的描述。考虑到校准没有成功,那么应该看看是不是自校准需要哪些条件,而这些条件并没有成立。 

于是,在 ADC 章节中的 Calibration 小节找到了这么一段话,如图 3 所示。

3.png

图3.ADC 自校准要求条件

也就是说,在初始化自校准之前,需要保证 3 个条件: 

1) ADC 的电压调整器已经使能并正常工作(ADVREGEN = 1 且 LDORDY =1) 

2) ADC 没有打开(ADEN=0) 

3) 自动掉电模式没有使能(AUTOFF = 0) 

回到刚才等待 ADC 自校准完成的代码,当指针停留到这边时,在线调试检查各个标志位情况,发现 ADVREGEN=1,ADEN=0,AUTOFF=0,LDORDY=0。所以,可以肯定的是就是 LDORDY 不为 1,也就是说 ADC 的电压调整器还没有准备好,导致了自校准无法成功并退出。 

在 STM32U5 中,引入了一个新的 ADC 特性,叫 ADC 电压调整器(ADC voltageregulator)。在使用 ADC 之前,这个电压调整器必须被使能并且能够稳定工作。可以通过将 ADC_CR 寄存器中的 ADVREGEN 位置 1 来使能它,然后必须要等这个电压调整器的启动时间之后,才可以正常启动自校准或者使用 ADC。这个 LDO 有没有准备好,可以通过 ADC_ISR 寄存器中的 LDORDY 这个位来判断。LDORDY=1 才代表了 LDO 已经准备好了。 

回到客户的问题,可以知道即使 ADVREGEN 置 1 了,LDORDY 始终没有置起来,电压调整器没有启动工作,难道是 ADC 的这个电压调整器坏掉了? 

别急,想到电源的问题,还不能忘了参考手册的另一个章节 :电源控制 PWR。翻到PWR 这一章,先要考虑到,与 ADC 相关的电源为 VDDA,所以要重点查看 VDDA 的内容。找到 Independent analog peripherals supply 这一小节,可以看以下关键的句子,如图 4。

4.png

图4.独立的模拟外设供电

从图中黄色高亮的文字,我们可以了解到,STM32U5 的 VDDA 在控制上还跟其他系列不一样,它有一个开关来选择是否隔离。芯片复位后,VDDA 提供的 ADC 和模拟开关控制在逻辑和电气上是隔离的,因此不可用。一旦 VDDA 电源存在,就必须在使用模拟外设之前,通过在 PWR_SVMCR 寄存器中将 ASV 置位来消除隔离。也就是说,要想使用ADC,必须先将 ASV 置位来消除隔离。 

在 PWR_SVMCR 寄存器的解释中,也可以看到 ASV 位的描述中要求将此位强制置 1才可以使用模拟外设,如图 5。

5.png

图5.ASV 位描述

ASV 的配置是没有在 STM32CubeMX 中进行配置的,所以需要在后期添加。所以,很可能就是因为没有将 ASV 置位以使能 VDDA,导致 ADC 外设被隔离,并没有得到供电,所以 ADC 的电压调整器不可能正常工作,LDORDY 也不可能为 1。

03、问题解决

在工程项目中搜索 ASV,可以找到两个 API,如图 6。

6.png

图6.VDDA 使能或禁用 API

也就是说,我们需要先将 HAL_PWREx_EnableVddA()添加到代码中。因为其属于MSP 硬件配置,所以将其加到 HAL_MspInit()函数,如图 7 所示。

7.png

图7.修改过的 HAL_MspInit()函数

再重新编译,然后执行指令代码,就可以看到 ADC 的自校准可以正常完成,PC 指针已经可以正常跑到自校准后面的代码了。

04、小结

在 STM32U5 中,为了更好地控制功耗,ADC 中加入电压调整器和 VDDA 隔离功能。这与以往的 STM32 有所不同,需要注意一下。使用 ADC 等模拟外设前,需要注意将PWR_SVMCR 寄存器中将 ASV 置位来消除隔离。 

其实不仅仅是 VDDA 可以隔离,VDDIO2 也是可以的,通过 PWR_SVMCR 寄存器的IO2SV 位进行控制。

如果仔细看过 STM32U5 的 ADC 例程,可以看到 HAL_MspInit()的内容是这么写的,如图 8 所示。

8.png

图8.例程的 HAL_MspInit()函数

可以看到,在 MSP 初始化里,不仅使能了 VDDA,还使能了 VDDIO2。所以要使用VDDIO2 相关 I/O 的,也需要注意一下。

来源:STM32单片机

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

围观 47

01、简介

客户使用 STM32U5 进行开发,并使能了 TrustZone 架构,程序需要从 bootloader 跳转到app。在之前版本都是正常跳转的,某一天 IAR 从 9.20 升级到 9.30 后,程序跳转失败,并且会导致 hardfault,想知道为什么会失败。

1.png

图1.IAR9.20 和 IAR9.30 生成的汇编代码对比

02、问题分析

通过断点和单步调试,我们发现出现问题的指令如下所示:

2.png

图2.程序下一步将 Hardfault

而没有发生 hardfault 的版本汇编代码,如下图:

3.png

图3.程序不会发生 Hardfault

通过单步调试,我们知道了 VLSTM SP 这条指令导致了 hardfault。接着我们再确认下 SP 指针,错误版本的 SP 的内容为:0x300020b4,正确版本的 SP 内容为:0x30000258。首先,我们对比了生成的 map 文件中 stack 的地址信息,发现其中 Stack 的地址和这里 SP 指令是相符的。

然后继续查找了 VLSTM 这条指令相关的描述,关于 VLSTM 在 PM0264 中有以下描述:

4.png

图4.关于 VLSTM 指令

从上图可以看到,VLSTM SP 这条指令会把安全的浮点运算寄存器的值保存到 SP 地址中,并清除安全浮点寄存器的内容,如果 CPU 的状态是非安全的,那么这条指令相当于空指令,也不会导致 hard fault,所有从这里也还是分析不出为什么会导致 hard fault。

重新回到这条指令,现在问题可能比较大的就是 SP 的地址了。有问题的版本的 SP 内容为:0x300020b4,会不会是对齐导致的呢? 

基于这个猜测,我们直接在 IAR 界面强制修改了 SP 的地址为 0x300020b8,并继续单步执行,然后程序可以正常执行了。所以目前所知的结论就是 VLSTM SP 这条指令,要求 SP 必须 8 字节对齐,可能 IAR 在编译的时候并没有注意到这一点。

然后,把这些信息反馈到 IAR 以后,IAR 的工程师回复如下: 

根据目前的信息,问题应该是在 VLSTM 要求 8 字节对齐上。在 9.30.1 中,由于 PUSH.W {R4, R5, R7-R11}指令执行后,相当于占用了 28 个字节的栈空间,导致了 SP 和 9.20.1 相比,不是 8 字节对齐。

03、总结

在调试 TrustZone 工程的时候,由于使用了新的架构及新的汇编指令,需要对这些指令有一定基本的了解。在调查问题的时候,可以进行单步调试来定位发生问题的指令,然后再继续深入了解下为什么会导致 hardfault。

来源:STM32单片机

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

围观 15

✦ Ajax Systems已使用 新STM32U5 MCU开发下一代无线安保和智能家居解决方案

✦ 新STM32U5系列MCU是首款获得NIST嵌入式随机数熵源认证的通用MCU

意法半导体市场前沿的STM32 微控制器(MCU)产品家族再扩阵容,推出新款STM32U5芯片,在降低功耗的同时提高了性能,并延长了续航时间,提升了能效。STM32U5产品已获得NIST嵌入式随机数熵源认证,是业界首款获此认证的通用MCU。

1.png

这款STM32U5 MCU将代码和数据存储容量扩展到128Kbyte闪存,适合成本敏感型应用,同时还针对复杂应用和类似智能手机的复杂用户界面增加了高容量版。集成4Mbyte闪存和2.5Mbyte SRAM的 STM32U59x/5Ax是迄今为止STM32 MCU全系产品中片上存储器容量最大的产品。

凭借增强的功能,新STM32U5 MCU能够有效为深度嵌入式应用赋能,如环境传感器、工业执行器、楼宇自动化、智能家电、可穿戴设备、电动汽车控制等,尤其是安装在远端、难于检修位置的设备。随着智能工作和智能生活方式在全世界的不断发展,深度嵌入式设备在这些领域的部署量已达数十亿。新STM32U5 MCU通过提升这些应用的性能、能效和网络安全性,加快推进深度嵌入式设备的部署。

全系STM32 MCU都基于行业标准的Arm® Cortex®-M 嵌入式处理器内核,并配备功能强大易用的STM32CubeSTM32Cube.AI开发生态系统。该生态系统整合软硬件开发工具,从项目开始到结束全程支持客户开发工作,包括将提前训练好的神经网络转换为优化的代码,以创建前沿的 AI/ML 解决方案。

2.png

STM32U5系列采用Arm最新一代嵌入式处理器内核Cortex-M33,该内核采用了可提升性能、能效、网络和硬件攻击防御能力的先进技术。意法半导体围绕这个处理器核将ST的超低功耗 MCU 专业技术整合进来,并利用Arm现有方法实现了一个网络安全性极高的架构。该系列中的部分产品还提供 2.5D 图形加速器。因此,这一新系列产品极具开创性,全系产品都引脚对引脚兼容,软件兼容,可以直接用于设计下一代应用。

意法半导体通用微控制器子产品部执行副总裁 Ricardo De Sa Earp表示:“许多应用都需要更多的功能、更丰富的图显和更快的性能,同时要求续航时间更长、电池更小,有能量收集功能,这就是我们今天扩展STM32U5系列的原因。这款 MCU将Arm最新的处理器内核与我们独有的超低功耗技术、大容量的片上存储器,以及NeoChrom 图形引擎(选配)整合在一起,以提升用户的视觉体验。”

在意法半导体STM32U5 系列的众多客户中,Ajax Systems已经在使用这款新的MCU 设计下一代高级无线安全和智能家居解决方案。Ajax设备部门研发总监 Max Melnyk表示:“与全球半导体市场巨头ST合作可以帮助Ajax的产品升级迭代。STM32U5 系列显著降低了功耗,同时保持了原有的处理性能,可媲美其他内置DSP和浮点协处理器MCU。我们现有代码的90%都可以二次使用。片上集成大容量SRAM对于我们是第二大优势,足以处理双帧缓冲需求,实现快速流畅的图显性能。新系列产品还有一个大容量闪存,可以用于保存资源。我相信新系列产品将加速推进下一代 Ajax 产品的开发。”

详细技术信息

STM32U5系列的专有节能特性包括自主外设和意法半导体的低功耗后台自主模式(LPBAM)。LPBAM模式可以让应用程序的关键功能保持正常运行的同时,关闭处理器内核和其他未用模块,进入 MCU中的任何一个灵活省电的低功耗模式。MCU可以把内核从低功耗状态快速唤醒,高效处理批量数据,然后再切回到低功耗模式。

另一方面,STM32U5 MCU 提供高达 4MB 的代码闪存和数据闪存,以及高达 2.5MB 的 SRAM,用于处理复杂的应用需求。大容量片上存储器可以在应用设计中省去额外的外部存储器,降低功耗、物料成本 (BOM) 成本和 PCB 尺寸。

STM32U5系列还打破了超低功耗 MCU图形处理性能的常规限制。意法半导体的先进微控制器集成NeoChrom图形处理单元(GPU),可以运行以前只有昂贵的基于微处理器的系统才能实现的复杂的图形用户界面(GUI)。现在,即使微型嵌入式处理器也能实现媲美智能手机的图显体验,开发者可以利用ST的TouchGFX框架开发GUI,该框架现在支持 SVG并具有丰富的图形资产。

此外,STM32U5 MCU采用经济的LQFP100封装,可以安装在层数不多的结构简单的PCB上,而支持这些复杂功能的处理器通常都需要更昂贵的封装。STM32丰富的资源可以帮助开发人员加快项目开发,包括STM32CubeU5软件包、新的开发板 NUCLEO-U545RE和 NUCLEO-U5A5ZJ,以及于图形界面的STM32U5A9J-DK 探索套件。

STM32U5 系列还增强了网络安全性,采用带有内存保护单元的 Cortex-M33 和具有硬件隔离功能的 Arm TrustZone® 架构。该系列微控制器还集成了运行高级 AES 算法的加密加速器、公钥架构 (PKA) 支持,以及物理攻击防御功能。此外,闪存和 SRAM 支持纠错码 (ECC),可防止数据损坏,增强网络保护和数据安全性。

除此之外,STM32U5还是第一批获得NIST(美国国家标准与技术研究院)嵌入式随机数熵源认证的通用MCU。客户可以重复使用该证书,因此可简化并加速终端应用的SP800-90B认证过程。新STM32U5系列计划于 2023 年第二季度开始量产,客户可从意法半导体的eStore和代理商处购买。询价请联系当地ST销售办事处。

▼▼▼

点击这里,查看详情


来源:意法半导体中国

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

围观 25

工业控制、健身装备、计量仪表、便携医疗、移动支付……随着5G、物联网、AI的全面落地,新的应用不断破圈,对MCU产品的要求也越来越高:更高性能、更高集成度,更高安全性,以及更低功耗。

在工业控制应用中,一个控制器所支持的功能正在逐渐增强,处理器的性能需求在同比提升的同时,也要求处理器具有更高的集成度,而随着联网需求的增多,对安全性能的要求也在进一步增加。STM32U5系列在满足这些需求的同时,也给了工程师实现更多创新的空间。

1.png

STM32U5的高性能不但体现在高主频、新内核,还体现在cache的增强和硬件数学运算加速器等的集成。这样的性能能够很好支持控制算法的实施,还能满足一些AI算法的本地实施,例如电机震动故障监测、物品形状颜色识别等。

STM32U5具有很好的外设集成度。14位、12位的ADC配置,DAC,运放,比较器等丰富的模拟外设,配合2个高级电机控制定时器和多个通用定时器很好的满足工业控制中对电机控制部分的需求。在工业总线接口方面,内置了FD-CAN外设,也可以很方便进行外扩,例如通过FSMC外扩FPGA而实现更复杂的总线等。丰富的串行通信外设接口也方便进行传感器采集、工业组态显示屏等的扩展。内置2MB 双Bank Flash,768KB RAM这样丰富的资源,对应用开发非常友善,也方便了升级功能的考量。100K次可擦写的512KB Data Flash及方便外扩存储的O-SPI接口等也为现场数据的实时存储记录提供了实现方案。

STM32U5的强安全性基因则为工业控制产品联网提供了更好的保障。Cortex-M33内核的TrustZone机制及丰富的AES、PKA、OTFDEC等加密算法硬件加速器为工业控制器产品固件烧录、安全升级、联网通信等提供全方位安全方案支持。

STM32丰富的生态系统也为工业应用提供更便利的支持,例如STM32 MC SDKSTM32 Cube.AI等。针对工业应用,STM32U5生态也提供了针对IEC60730的ClassB及IE61508的SIL认证功能安全设计包。

在医疗健康应用中,对MCU的要求与工业控制系统也有相似之处,同样需求MCU高性能,高集成度,具有更好的安全性,而对MCU的低功耗特性也提出了更高的要求。

2.png

得益于STM32U5对模拟外设的高度集成,医疗健康设备设计中能方便的采集各类传感器数据,本地存储或联网上传这些数据。低功耗后台自主模式LPBAM更是能在不唤醒MCU内核的情况下对传感器数据进行采集和搬运,与传统模式相比能使MCU内核的唤醒次数减少数倍,而很大程度节省功耗。

3.png

得益于STM32U5的高性能,医疗健康设备设计中可以处理大量的传感器数据而将病理诊断算法本地化实现,也可融入AI的一些算法处理。STM32U5也内置有图像显示硬件加速器,结合图形化生态TouchGFX则可以得到流畅绚丽的显示效果。

工业计量仪表应用中对MCU的需求与健康医疗设备类似,STM32U5也极为合适。

4.png

STM32U5 让工业应用破圈

STM32U5是STM32高性能低功耗系列的旗舰产品,它可以延续STM32F2/F4/F7的应用范围,同时又有更低的能耗,而且具有更高的性价比。在工业控制系统中,U5可以承担主控器、系统监控以及图形显示等核心职能。

STM32U5是基于40nm低功耗工艺的STM32产品系列,采用高效的Arm Cortex-M33内核和配套更先进的数字外设以及丰富的模拟外设,同时在提升性能时保持低功耗。STM32U5还增加了适合新应用的前沿技术,例如基于硬件防护的高级安全特性,能满足PSA和SESIP(物联网平台安全评估标准)3级等级要求,助力进一步提升设备安全性;同时还搭载了硬件图形加速器,可以实现丰富美观流畅的图形界面,更好的提升用户体验。

高性能,低功耗,丰富的数字外设和更高性能模拟接口,强大的安全特性,以及支持GUI 加速,让STM32U5在工业控制、工业表计和医疗健康,个人穿戴设备等应用领域取得良好的表现,为泛工业系统创新赋能。

  • 更高的能效比

高性能是U5的第一个关键词。STM32U5内搭Cortex-M33 内核,相对Cortex-M4性能提高20%以上;主频160MHz,使STM32U5系列能达到240DMIPS和651Coremark的性能评分,而同样采用Cortex-M33内核的上一代产品STM32L5主频为110MHz。

为了进一步增强性能,STM32U5还集成了数学运算加速器(三角函数以及数字滤波加速器CORDIC和FMAC),实现数字信号处理功能加速同时减轻CPU负载,在电机驱动应用实例中,可以将控制环路速度提高12%。

5.png

U5还集成了用于优化内、外部存储上指令与数据吞吐速度的Cache(8 kB指令Cache,4kB数据Cache)和Art加速器以及用于图形处理加速的Chrom-Art,以实现更流畅更高颜值的图形显示界面。

作为MCU来讲,内部存储是另外一个重要性能指标。STM32U5在存储空间也得到了进一步扩大。STM32U5的Flash目前支持1MB至2MB。同时,Flash中包含512KB具有100K次擦写保证,为用户数据反复保存提高可靠性。而SRAM配备768KB,并且支持ECC,从而满足关键安全应用。同时,STM32U5还配备了存储控制器接口FSMC,以及OctoSPI,从而支持更灵活的外部存储扩充。

6.png
  • 多方位技术创新实现超低功耗

超低功耗是STM32U5的第二个关键词。U5通过多方位技术创新实现出色的低功耗特性:
  • 引入LPBAM低功耗自主工作模式,可以让直接存储访问(DMA)控制器和外围设备在大多数设备休眠时保持正常工作,极大降低系统功耗
  • 采用40nm制造技术,可节省动态工作模式和节能模式的功耗
  • 传承了上一代MCU STM32L系列的超低功耗成功产品特性
  • 创新LPBAM低功耗自主工作模式,极大降低系统平均功耗
  • 更灵活的功耗模式,延长电池使用时间,增强用户体验
  • 提供多种低功耗模式选择,并支持快速唤醒,其低功耗性能在第三方平台EEMBC获得多项优秀跑分

  • 丰富的接口和外设

丰富的接口和外设是STM32U5的第三个关键词。U5具有更高的集成度,集成各类数字模拟外设、先进的硬件加速器、更大的存储单元。STM32U5还提供了先进的高速14位模数转换器(ADC)。

多功能数字滤波器(MDF)和音频数字滤波器(ADF)取代了ST的Sigma-Delta调制数字滤波器(DFSDM)。现在,通过提高声音活动检测性能,这些功能让用户能够将AI集成到基于低成本、低功耗微控制器的应用场景。此外,通过在产品SRAM存储器内嵌入纠错码(ECC)存储器,STM32U5 MCU还可以满足功能安全关键应用的要求

7.png
  • 强大的信息安全特性

无论工业控制、个人医疗健康设备,还是工业表计应用,都会有各种类型的数据交换,因此对安全性要求更高。STM32U5系列引入了创新安全技术,以实现强大的信息安全特性:

  • 加密引擎(AES)和公钥算法加速器(PKA)硬件单元具有抵御差分功率分析(DPA)和测信道攻击的能力
  • 使用硬件唯一密钥(HUK)保护数据存储安全
  • 主动防篡改检测
  • 内部监控技术可以在发生干扰攻击时删除机密数据,有助于满足PCI安全标准委员会(PCI SSC)对销售终端设备(POS)的安全要求
8.png

此外,U5还集成了更多安全功能以保护客户的设计,数据支持硬件隔离,加解密,安全认证,保证产品长生命周期,存储保护,主动防攻击系统,信任根等,全方位守护用户的系统以及数据安全。

STM32U5的高能效比已经被用户和市场充分验证,目前已经在各类泛工业应用获得用户的肯定,被应用到工业智能流量计、健康及健身类穿戴产品、医疗监护设备、POS支付终端等对于高性能、低功耗和安全性有高要求的场景中。

来源:STM32

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

围观 40

STM32CubeU5 MCU 包带一组丰富的运行于意法半导体板件之上的示例。示例按板件进行管理,提供预先配置的项目给主要支持的工具链(请参考)。

“图
图 1. STM32CubeU5 固件组件

参考文档

以下各项构成了本应用笔记中出现的示例的参考集合:

详阅请点击下载《STM32U5 系列的 STM32Cube MCU 包示例》

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

围观 60

页面

订阅 RSS - STM32U5