0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 基于STM32H750的RTC自动唤醒设计方案

基于STM32H750的RTC自动唤醒设计方案

来源: elecfans
2023-12-22
类别:工业控制
eye 71
文章创建人 拍明芯城

STM32H750介绍

STM32H750超值系列微控制器包含Arm® Cortex®-M7内核(具有双精度浮点单元),工作频率高达480 MHz。内嵌的128 KB闪存使意法半导体能够为开发人员提供一种经济划算的解决方案。

1.png

性能

在480 MHz的CPU频率下,从Flash执行程序时,STM32H742系列能够提供2424 CoreMark /1027 DMIPS的性能,利用其L1缓存并实现了零等待执行。

内嵌的128 KB闪存,面向用户可信根服务、关键实时程序执行和外部存储器的简单配置

L1缓存(16 KB的I-缓存 +16 KB的D-缓存)提高外部存储器的执行性能。

安全性

STM32H750集成了:

加密/哈希硬件加速

STM32H757还支持安全固件安装(SFI)嵌入式安全服务,可在执行初始程序时执行安全验证并保护软件IP。

安全启动和安全固件升级(SBSFU)

高能效

多电源域架构可实现将不同的电源域配置为低功耗模式,进而优化功耗效率。

USB调节器提供嵌入式物理接口层(PHY)。

在内核运行模式(关闭外设)下,功耗典型值为275 µA/MHz @VDD = 3.3 V和25 °C

图形

LCD-TFT控制器接口支持双层图形

Chrom-ART Accelerator™提高了图形内容创建速度,并为其他应用节省了MCU内核处理带宽

JPEG硬件加速器,可进行快速JPEG编码和解码,从而减轻CPU编解码负荷。

片内外设

多达35个通信接口包括FD-CAN、USB 2.0高速/全速、以太网MAC、摄像头接口。

可利用带有32位并行接口(支持SRAM、PSRAM、NOR、NAND和SDRAM存储器)或双模Quad-SPI串行闪存接口的灵活存储控制器轻松扩展外部存储器。

模拟外设:12位DAC,快速16位ADC

16位高精度定时器上的多个16位和32位定时器运行频率高达480 MHz。

STM32H750超值系列提供128 KB的Flash存储器,具有以下结构的1 MB SRAM:192 KB的TCM RAM(包括64 KB的ITCM RAM和128 KB的DTCM RAM,用于时间关键型程序和数据),高达512 KB的用户SRAM,以及备份域中4 KB的SRAM,可将数据保持在最低功耗模式,提供LQFP100、LQFP144、LQFP176、UFBGA176和TFBGA240封装。

STM32H750 的实时时钟是一个独立的 BCD 定时器/计数器,且带了日历功能,它提供一个日历时钟、两个可编程闹钟中断,以及一个具有中断功能的周期性可编程唤醒标志。

此外RTC 还有自动唤醒单元,RTC还可以补偿闰年闰月等等,还有备份区域(BKP)写保护,这些这里不细说了。

RTC 的简化框图


f24f5146-47ae-11ed-a3b6-dac502259ad0.png


时钟和分频

STM32H750 的 RTC 时钟源(RTCCLK)通过时钟控制器,可以从 LSE、LSI、HSE 时钟三选一,如图所示,有两个预分频器RTC_PRER

ck_spre 的时钟可由如下计算公式计算:

Fck_spre = Frtcclk/[(PREDIV_S+1)*( PREDIV_A+1)]

图中,ck_apre 也可作为 RTC 亚秒递减计数器(RTC_SSR)的时钟。

Fck_apre的计算公式如下:

Fck_apre=Frtcclk/( PREDIV_A+1)

当 RTC_SSR 寄存器递减到 0 的时候,会使用 PREDIV_S 的值重新装载 PREDIV_S,得到亚秒时间的精度是:1/256 秒,可以得到更加精确的时间数据。

STM32CubeIDE 配置

默认情况下是如图


image.png


一般情况下使用LSE,这里我们需要在RCC使能


image.png


然后在RTC中使能时钟源,如果需要日历闹钟功能的可以在这里也使能上。


image.png


公式如下:

RTC时钟频率 = RTC时钟源 / ((Asynchronous Predivider value + 1) * (Synchronous Predivider value + 1))= 1Hz,也就是1秒

之后到时钟配置里面可以看到已经使能了


image.png


初始化

static void MX_RTC_Init(void)

{

/* USER CODE BEGIN RTC_Init 0 */

/* USER CODE END RTC_Init 0 */

/* USER CODE BEGIN RTC_Init 1 */

/* USER CODE END RTC_Init 1 */

/** Initialize RTC Only

*/

hrtc.Instance = RTC;

hrtc.Init.HourFormat = RTC_HOURFORMAT_24;

hrtc.Init.AsynchPrediv = 127;

hrtc.Init.SynchPrediv = 255;

hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;

hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;

hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;

hrtc.Init.OutPutRemap = RTC_OUTPUT_REMAP_NONE;

if (HAL_RTC_Init(&hrtc) != HAL_OK)

{

Error_Handler();

}

/* USER CODE BEGIN RTC_Init 2 */

/* USER CODE END RTC_Init 2 */

}

可以看到outline里面有很多我们需要的函数,那么自己扩展就可以使用了


image.png


This function configures the hardware resources used in this example

void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)

{

RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};

if(hrtc->Instance==RTC)

{

/* USER CODE BEGIN RTC_MspInit 0 */

/* USER CODE END RTC_MspInit 0 */

/** Initializes the peripherals clock

*/

PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;

PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;

if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)

{

Error_Handler();

}

/* Peripheral clock enable */

__HAL_RCC_RTC_ENABLE();

/* USER CODE BEGIN RTC_MspInit 1 */

/* USER CODE END RTC_MspInit 1 */

}

}

可以按需定制自己的实现方式,RTC是特别实用的一个模块了。

Sigmastar SSD201芯片可替代STM32H750

先给大家介绍一下SigmaStar SSD201芯片。它是基于ARM Cortex-A7双核1.2GHz,集成了硬件H.264/H.265视频解码器、内置了DDR,内置2D图形引擎、支持TTL/mipi屏显示驱动接口内置了以太网mac和PHY等,主要应用于:智能楼宇室内对讲机,智能家居中控,86盒家庭中控,电梯楼层显示器,IP网络广播设备,语音识别设备,指纹机,工业控制器等。

启明云端提供的Sigmastar SSD201芯片可以替代STM32H750点320*240的16位并口屏,用于指纹机。

用户可以在8ms嵌入式开发工具平台上进行UI界面开发,屏幕适配这块如果你有linux开发的经验可以在启明云端提供的的github地址上下载sigmastar的openwrt工程,然后把所用到的屏幕驱动集成进去即可,8ms(直接搜索8ms.xyz)平台应用层可以直接对接的linux的fb。这样可以进一步提升您的产品开发周期。

当然,8ms平台并不是唯一的编译途径,还可以下载下来在本地编译。(通过我们提供的编译链,openwrt相当于操作系统,你把系统和你的板子适配好后就能运行应用层的应用);平台还提供了不少DEMO,你可以一键克隆平台上已经提供的UI素材,再自己编译,也可以自己重头开始。

STM32H750驱动ADC的一些知识与经验

1、ClockPrescaler:

*ADC 预分频系数选择。

*可选的分频系数为 1、2、4、6、8、10、12、16、32、64、128、256。

*但是请记住,ADC的最大时钟为 36MHZ不管是定时器触发还是软件触发!!

2、Resolution:

*ADC 的分辨率。

*可选的分辨率有 16 位、12 位、10 位和 8 位文章来源地址:https://www.yii666.com/blog/598323.html

*16位时需要消耗8.5个ADC时钟周期

*14位时需要消耗7.5个ADC时钟周期

*12位时需要消耗6.5个ADC时钟周期

*10位时需要消耗5.5个ADC时钟周期

* 8位时需要消耗4.5个ADC时钟周期

3、ScanConvMode:

*配置是否使用扫描。

*如果是单通道转换使用 ADC_SCAN_DISABLE,如果是多通道转换使用 ADC_SCAN_ENABLE。

4、EOCSelection:

*可选参数为 ADC_EOC_SINGLE_CONV 和 ADC_EOC_SEQ_CONV,指定转换结束时是否产生 EOS 中断或事件标志

5、LowPowerAutoWait:配置是否使用低功耗自动延迟等待模式,

*可选参数为 ENABLE 和DISABLE,当使能时,仅当一组内所有之前的数据已处理完毕时,才开始新的转换,适用于

低频应用。该模式仅用于 ADC 的轮询模式,不可用于 DMA 以及中断

6、ContinuousConvMode:

*可选参数为 ENABLE 和 DISABLE,配置自动连续转换还是单次转换。

使用 ENABLE 配置为使能自动连续转换;使用 DISABLE 配置为单次转换,转换一次后停止需要手动控制才重新启动转换

7、NbrOfConversion:设置常规转换通道数目。

*范围是:1~16

8、DiscontinuousConvMode:配置是否使用不连续的采样模式,文章地址https://www.yii666.com/blog/598323.html

*比如要转换的通道有 1、2、5、7、8、9,那么第一次触发会进行通道 1 与通道 2,下次触发就是转换通道 5 与通道7,这样不连续的转换,依次类推。此参数只有将 ScanConvMode 使能,还有ContinuousConvMode 失能的情况下才有效,不可同时使能

9、NbrOfDiscConversion:不连续采样通道数。文章来源地址https://www.yii666.com/blog/598323.html

10、ExternalTrigConv:外部触发方式的选择,如果使用软件触发,那么外部触发会关闭。

11、ExternalTrigConvEdge:外部触发极性选择。

*如果使用外部触发,可以选择触发的极性,可选有禁止触发检测、上升沿触发检测、下降沿触发检测以及上升沿和下降沿均可触发检测。

12、ConversionDataManagement: 指定 ADC 转换后的数据处理方式。

*可以选择 DMA 管理传输数据、数据存储在数据寄存器中或者是传输到 DFSDM 寄存器中

13、Overrun:当有新的数据溢出时,可以选择覆盖写入或者是丢弃新的数据

14、LeftBitShift:数据左移位数,最多可支持左移 15 位

15、OversamplingMode:是否使用过采样模式。网址:yii666.com

16、ADC时钟频率最大不超过36M

17、ADC采样率= ADC时钟频率/(采样周期+转换周期) 其中ADC时钟频率来自系统主频( PLL2、 PLL3) 以及Per_ck(Per_ck时钟源就是来自频率为 64MHz 的高速内部 RC 振荡器(HSI))的分频 得到!!

关于定时器触发,定时器的频率要小于或等于ADC的采样率,换句话说就是定时器的溢出时间要大 于或等于ADC完成一转换所需的时间!!!

STM32H750驱动ADC的一些知识与经验

19、Channel:ADC 转换通道,范围:0~19。

20、Rank:在常规转换中的常规组的转换顺序,可以选择 1~16。

21、SamplingTime:ADC 的采样周期,最大 810.5 个 ADC 时钟周期,要求尽量大以减少误差。

22、 SingleDiff:选择通道单端输入还是差分输入。

23、 OffsetNumber:选择使用偏移量的通道。

24、 Offset:定义要从原始数据减去的偏移量。根据 ADC 的分辨率不同,支持的最大偏移量也不同,例如分辨率是 16bit,,最大的偏移量为 0xFFFF。

25、OffsetRightShift:采样值进行右移的位数。

26、OffsetSignedSaturation:是否使能 ADC 采样值的最高位为符号位。

*赫兹转换:1MHZ=1000KHZ=1000000HZ

*时间换算:1s(秒)=1000ms(毫秒),1s=10^3ms(毫秒)=10^6us(微秒)=10^9ns(纳秒)=10^12ps(皮秒)

*周期与频率的关系:T=1/f,f=1/T(其中f为频率,T为周期)

*TCONV(转换时间) = 采样周期 + 转换周期

*采样周期越大,采样越精确

*转换周期受分辨率影响,精度越高,转换周期越大,花费时间越长!!!


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

方案推荐
基于MC33771主控芯片的新能源锂电池管理系统解决方案

基于MC33771主控芯片的新能源锂电池管理系统解决方案

AMIC110 32位Sitara ARM MCU开发方案

AMIC110 32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于TI公司的AM437x双照相机参考设计

基于TI公司的AM437x双照相机参考设计

基于MTK6580芯片的W2智能手表解决方案

基于MTK6580芯片的W2智能手表解决方案