基于STM32H750的RTC自動(dòng)喚醒設(shè)計(jì)方案


STM32H750介紹
STM32H750超值系列微控制器包含Arm? Cortex?-M7內(nèi)核(具有雙精度浮點(diǎn)單元),工作頻率高達(dá)480 MHz。內(nèi)嵌的128 KB閃存使意法半導(dǎo)體能夠?yàn)殚_(kāi)發(fā)人員提供一種經(jīng)濟(jì)劃算的解決方案。
性能
在480 MHz的CPU頻率下,從Flash執(zhí)行程序時(shí),STM32H742系列能夠提供2424 CoreMark /1027 DMIPS的性能,利用其L1緩存并實(shí)現(xiàn)了零等待執(zhí)行。
內(nèi)嵌的128 KB閃存,面向用戶(hù)可信根服務(wù)、關(guān)鍵實(shí)時(shí)程序執(zhí)行和外部存儲(chǔ)器的簡(jiǎn)單配置
L1緩存(16 KB的I-緩存 +16 KB的D-緩存)提高外部存儲(chǔ)器的執(zhí)行性能。
安全性
STM32H750集成了:
加密/哈希硬件加速
STM32H757還支持安全固件安裝(SFI)嵌入式安全服務(wù),可在執(zhí)行初始程序時(shí)執(zhí)行安全驗(yàn)證并保護(hù)軟件IP。
安全啟動(dòng)和安全固件升級(jí)(SBSFU)
高能效
多電源域架構(gòu)可實(shí)現(xiàn)將不同的電源域配置為低功耗模式,進(jìn)而優(yōu)化功耗效率。
USB調(diào)節(jié)器提供嵌入式物理接口層(PHY)。
在內(nèi)核運(yùn)行模式(關(guān)閉外設(shè))下,功耗典型值為275 μA/MHz @VDD = 3.3 V和25 °C
圖形
LCD-TFT控制器接口支持雙層圖形
Chrom-ART Accelerator?提高了圖形內(nèi)容創(chuàng)建速度,并為其他應(yīng)用節(jié)省了MCU內(nèi)核處理帶寬
JPEG硬件加速器,可進(jìn)行快速JPEG編碼和解碼,從而減輕CPU編解碼負(fù)荷。
片內(nèi)外設(shè)
多達(dá)35個(gè)通信接口包括FD-CAN、USB 2.0高速/全速、以太網(wǎng)MAC、攝像頭接口。
可利用帶有32位并行接口(支持SRAM、PSRAM、NOR、NAND和SDRAM存儲(chǔ)器)或雙模Quad-SPI串行閃存接口的靈活存儲(chǔ)控制器輕松擴(kuò)展外部存儲(chǔ)器。
模擬外設(shè):12位DAC,快速16位ADC
16位高精度定時(shí)器上的多個(gè)16位和32位定時(shí)器運(yùn)行頻率高達(dá)480 MHz。
STM32H750超值系列提供128 KB的Flash存儲(chǔ)器,具有以下結(jié)構(gòu)的1 MB SRAM:192 KB的TCM RAM(包括64 KB的ITCM RAM和128 KB的DTCM RAM,用于時(shí)間關(guān)鍵型程序和數(shù)據(jù)),高達(dá)512 KB的用戶(hù)SRAM,以及備份域中4 KB的SRAM,可將數(shù)據(jù)保持在最低功耗模式,提供LQFP100、LQFP144、LQFP176、UFBGA176和TFBGA240封裝。
STM32H750 的實(shí)時(shí)時(shí)鐘是一個(gè)獨(dú)立的 BCD 定時(shí)器/計(jì)數(shù)器,且?guī)Я巳諝v功能,它提供一個(gè)日歷時(shí)鐘、兩個(gè)可編程鬧鐘中斷,以及一個(gè)具有中斷功能的周期性可編程喚醒標(biāo)志。
此外RTC 還有自動(dòng)喚醒單元,RTC還可以補(bǔ)償閏年閏月等等,還有備份區(qū)域(BKP)寫(xiě)保護(hù),這些這里不細(xì)說(shuō)了。
RTC 的簡(jiǎn)化框圖

時(shí)鐘和分頻
STM32H750 的 RTC 時(shí)鐘源(RTCCLK)通過(guò)時(shí)鐘控制器,可以從 LSE、LSI、HSE 時(shí)鐘三選一,如圖所示,有兩個(gè)預(yù)分頻器RTC_PRER
ck_spre 的時(shí)鐘可由如下計(jì)算公式計(jì)算:
Fck_spre = Frtcclk/[(PREDIV_S+1)*( PREDIV_A+1)]
圖中,ck_apre 也可作為 RTC 亞秒遞減計(jì)數(shù)器(RTC_SSR)的時(shí)鐘。
Fck_apre的計(jì)算公式如下:
Fck_apre=Frtcclk/( PREDIV_A+1)
當(dāng) RTC_SSR 寄存器遞減到 0 的時(shí)候,會(huì)使用 PREDIV_S 的值重新裝載 PREDIV_S,得到亞秒時(shí)間的精度是:1/256 秒,可以得到更加精確的時(shí)間數(shù)據(jù)。
STM32CubeIDE 配置
默認(rèn)情況下是如圖

一般情況下使用LSE,這里我們需要在RCC使能

然后在RTC中使能時(shí)鐘源,如果需要日歷鬧鐘功能的可以在這里也使能上。

公式如下:
RTC時(shí)鐘頻率 = RTC時(shí)鐘源 / ((Asynchronous Predivider value + 1) * (Synchronous Predivider value + 1))= 1Hz,也就是1秒
之后到時(shí)鐘配置里面可以看到已經(jīng)使能了

初始化
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里面有很多我們需要的函數(shù),那么自己擴(kuò)展就可以使用了

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 */
}
}
可以按需定制自己的實(shí)現(xiàn)方式,RTC是特別實(shí)用的一個(gè)模塊了。
Sigmastar SSD201芯片可替代STM32H750
先給大家介紹一下SigmaStar SSD201芯片。它是基于ARM Cortex-A7雙核1.2GHz,集成了硬件H.264/H.265視頻解碼器、內(nèi)置了DDR,內(nèi)置2D圖形引擎、支持TTL/mipi屏顯示驅(qū)動(dòng)接口內(nèi)置了以太網(wǎng)mac和PHY等,主要應(yīng)用于:智能樓宇室內(nèi)對(duì)講機(jī),智能家居中控,86盒家庭中控,電梯樓層顯示器,IP網(wǎng)絡(luò)廣播設(shè)備,語(yǔ)音識(shí)別設(shè)備,指紋機(jī),工業(yè)控制器等。
啟明云端提供的Sigmastar SSD201芯片可以替代STM32H750點(diǎn)320*240的16位并口屏,用于指紋機(jī)。
用戶(hù)可以在8ms嵌入式開(kāi)發(fā)工具平臺(tái)上進(jìn)行UI界面開(kāi)發(fā),屏幕適配這塊如果你有l(wèi)inux開(kāi)發(fā)的經(jīng)驗(yàn)可以在啟明云端提供的的github地址上下載sigmastar的openwrt工程,然后把所用到的屏幕驅(qū)動(dòng)集成進(jìn)去即可,8ms(直接搜索8ms.xyz)平臺(tái)應(yīng)用層可以直接對(duì)接的linux的fb。這樣可以進(jìn)一步提升您的產(chǎn)品開(kāi)發(fā)周期。
當(dāng)然,8ms平臺(tái)并不是唯一的編譯途徑,還可以下載下來(lái)在本地編譯。(通過(guò)我們提供的編譯鏈,openwrt相當(dāng)于操作系統(tǒng),你把系統(tǒng)和你的板子適配好后就能運(yùn)行應(yīng)用層的應(yīng)用);平臺(tái)還提供了不少DEMO,你可以一鍵克隆平臺(tái)上已經(jīng)提供的UI素材,再自己編譯,也可以自己重頭開(kāi)始。
STM32H750驅(qū)動(dòng)ADC的一些知識(shí)與經(jīng)驗(yàn)
1、ClockPrescaler:
*ADC 預(yù)分頻系數(shù)選擇。
*可選的分頻系數(shù)為 1、2、4、6、8、10、12、16、32、64、128、256。
*但是請(qǐng)記住,ADC的最大時(shí)鐘為 36MHZ不管是定時(shí)器觸發(fā)還是軟件觸發(fā)!!
2、Resolution:
*ADC 的分辨率。
*可選的分辨率有 16 位、12 位、10 位和 8 位文章來(lái)源地址:https://www.yii666.com/blog/598323.html
*16位時(shí)需要消耗8.5個(gè)ADC時(shí)鐘周期
*14位時(shí)需要消耗7.5個(gè)ADC時(shí)鐘周期
*12位時(shí)需要消耗6.5個(gè)ADC時(shí)鐘周期
*10位時(shí)需要消耗5.5個(gè)ADC時(shí)鐘周期
* 8位時(shí)需要消耗4.5個(gè)ADC時(shí)鐘周期
3、ScanConvMode:
*配置是否使用掃描。
*如果是單通道轉(zhuǎn)換使用 ADC_SCAN_DISABLE,如果是多通道轉(zhuǎn)換使用 ADC_SCAN_ENABLE。
4、EOCSelection:
*可選參數(shù)為 ADC_EOC_SINGLE_CONV 和 ADC_EOC_SEQ_CONV,指定轉(zhuǎn)換結(jié)束時(shí)是否產(chǎn)生 EOS 中斷或事件標(biāo)志
5、LowPowerAutoWait:配置是否使用低功耗自動(dòng)延遲等待模式,
*可選參數(shù)為 ENABLE 和DISABLE,當(dāng)使能時(shí),僅當(dāng)一組內(nèi)所有之前的數(shù)據(jù)已處理完畢時(shí),才開(kāi)始新的轉(zhuǎn)換,適用于
低頻應(yīng)用。該模式僅用于 ADC 的輪詢(xún)模式,不可用于 DMA 以及中斷
6、ContinuousConvMode:
*可選參數(shù)為 ENABLE 和 DISABLE,配置自動(dòng)連續(xù)轉(zhuǎn)換還是單次轉(zhuǎn)換。
使用 ENABLE 配置為使能自動(dòng)連續(xù)轉(zhuǎn)換;使用 DISABLE 配置為單次轉(zhuǎn)換,轉(zhuǎn)換一次后停止需要手動(dòng)控制才重新啟動(dòng)轉(zhuǎn)換
7、NbrOfConversion:設(shè)置常規(guī)轉(zhuǎn)換通道數(shù)目。
*范圍是:1~16
8、DiscontinuousConvMode:配置是否使用不連續(xù)的采樣模式,文章地址https://www.yii666.com/blog/598323.html
*比如要轉(zhuǎn)換的通道有 1、2、5、7、8、9,那么第一次觸發(fā)會(huì)進(jìn)行通道 1 與通道 2,下次觸發(fā)就是轉(zhuǎn)換通道 5 與通道7,這樣不連續(xù)的轉(zhuǎn)換,依次類(lèi)推。此參數(shù)只有將 ScanConvMode 使能,還有ContinuousConvMode 失能的情況下才有效,不可同時(shí)使能
9、NbrOfDiscConversion:不連續(xù)采樣通道數(shù)。文章來(lái)源地址https://www.yii666.com/blog/598323.html
10、ExternalTrigConv:外部觸發(fā)方式的選擇,如果使用軟件觸發(fā),那么外部觸發(fā)會(huì)關(guān)閉。
11、ExternalTrigConvEdge:外部觸發(fā)極性選擇。
*如果使用外部觸發(fā),可以選擇觸發(fā)的極性,可選有禁止觸發(fā)檢測(cè)、上升沿觸發(fā)檢測(cè)、下降沿觸發(fā)檢測(cè)以及上升沿和下降沿均可觸發(fā)檢測(cè)。
12、ConversionDataManagement: 指定 ADC 轉(zhuǎn)換后的數(shù)據(jù)處理方式。
*可以選擇 DMA 管理傳輸數(shù)據(jù)、數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)寄存器中或者是傳輸?shù)?DFSDM 寄存器中
13、Overrun:當(dāng)有新的數(shù)據(jù)溢出時(shí),可以選擇覆蓋寫(xiě)入或者是丟棄新的數(shù)據(jù)
14、LeftBitShift:數(shù)據(jù)左移位數(shù),最多可支持左移 15 位
15、OversamplingMode:是否使用過(guò)采樣模式。網(wǎng)址:yii666.com
16、ADC時(shí)鐘頻率最大不超過(guò)36M
17、ADC采樣率= ADC時(shí)鐘頻率/(采樣周期+轉(zhuǎn)換周期) 其中ADC時(shí)鐘頻率來(lái)自系統(tǒng)主頻( PLL2、 PLL3) 以及Per_ck(Per_ck時(shí)鐘源就是來(lái)自頻率為 64MHz 的高速內(nèi)部 RC 振蕩器(HSI))的分頻 得到!!
關(guān)于定時(shí)器觸發(fā),定時(shí)器的頻率要小于或等于ADC的采樣率,換句話(huà)說(shuō)就是定時(shí)器的溢出時(shí)間要大 于或等于ADC完成一轉(zhuǎn)換所需的時(shí)間!!!
STM32H750驅(qū)動(dòng)ADC的一些知識(shí)與經(jīng)驗(yàn)
19、Channel:ADC 轉(zhuǎn)換通道,范圍:0~19。
20、Rank:在常規(guī)轉(zhuǎn)換中的常規(guī)組的轉(zhuǎn)換順序,可以選擇 1~16。
21、SamplingTime:ADC 的采樣周期,最大 810.5 個(gè) ADC 時(shí)鐘周期,要求盡量大以減少誤差。
22、 SingleDiff:選擇通道單端輸入還是差分輸入。
23、 OffsetNumber:選擇使用偏移量的通道。
24、 Offset:定義要從原始數(shù)據(jù)減去的偏移量。根據(jù) ADC 的分辨率不同,支持的最大偏移量也不同,例如分辨率是 16bit,,最大的偏移量為 0xFFFF。
25、OffsetRightShift:采樣值進(jìn)行右移的位數(shù)。
26、OffsetSignedSaturation:是否使能 ADC 采樣值的最高位為符號(hào)位。
*赫茲轉(zhuǎn)換:1MHZ=1000KHZ=1000000HZ
*時(shí)間換算:1s(秒)=1000ms(毫秒),1s=10^3ms(毫秒)=10^6us(微秒)=10^9ns(納秒)=10^12ps(皮秒)
*周期與頻率的關(guān)系:T=1/f,f=1/T(其中f為頻率,T為周期)
*TCONV(轉(zhuǎn)換時(shí)間) = 采樣周期 + 轉(zhuǎn)換周期
*采樣周期越大,采樣越精確
*轉(zhuǎn)換周期受分辨率影響,精度越高,轉(zhuǎn)換周期越大,花費(fèi)時(shí)間越長(zhǎng)!!!
責(zé)任編輯:David
【免責(zé)聲明】
1、本文內(nèi)容、數(shù)據(jù)、圖表等來(lái)源于網(wǎng)絡(luò)引用或其他公開(kāi)資料,版權(quán)歸屬原作者、原發(fā)表出處。若版權(quán)所有方對(duì)本文的引用持有異議,請(qǐng)聯(lián)系拍明芯城(marketing@iczoom.com),本方將及時(shí)處理。
2、本文的引用僅供讀者交流學(xué)習(xí)使用,不涉及商業(yè)目的。
3、本文內(nèi)容僅代表作者觀點(diǎn),拍明芯城不對(duì)內(nèi)容的準(zhǔn)確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨(dú)立判斷做出的,請(qǐng)讀者明確相關(guān)結(jié)果。
4、如需轉(zhuǎn)載本方擁有版權(quán)的文章,請(qǐng)聯(lián)系拍明芯城(marketing@iczoom.com)注明“轉(zhuǎn)載原因”。未經(jīng)允許私自轉(zhuǎn)載拍明芯城將保留追究其法律責(zé)任的權(quán)利。
拍明芯城擁有對(duì)此聲明的最終解釋權(quán)。