S32K328上芯片內部RTC的使用和喚醒配置

1:RTC介紹

1.1 RTC基礎功能介紹

參考《S32K3xx Reference Manual》,S32K328芯片內部自帶RTC功能,并且支持從低功耗狀態下喚醒設備;
在這里插入圖片描述

1.2 RTC電源介紹

由以下三張圖可知

1:RTC由V11供電,V11依賴外部V15供電;
2:MCU外部只需要輸入3.3V或5V + 1.5V;
3:待機模式下,RTC任然保持供電在;

電源轉換框圖
在這里插入圖片描述
外部電源輸入圖,也就是說 外部電源只需要輸入3.3V和1.5V即可
在這里插入圖片描述
詳細電源介紹
在這里插入圖片描述

2:RTC的mex配置

2.1 RTC模塊配置

基礎通道配置
在這里插入圖片描述
硬件中斷配置
在這里插入圖片描述
喚醒配置
在這里插入圖片描述

2.2 WKPU 模塊配置

參考文檔可知,RTC喚醒源,默認為bit0或bit1
在這里插入圖片描述

添加以下中斷配置表
在這里插入圖片描述
配置以下喚醒通道
在這里插入圖片描述
喚醒通道基礎配置
在這里插入圖片描述

2.3 clock配置

兩個模式狀態均需要使能;不然可能在待機模式下,RTC不會繼續計數
在這里插入圖片描述

3:軟件代碼

3.1 RTC時間設置和讀取

RTC時間設置和獲取就比較簡單了,只要初始化正確就行;

int main (void)
{static Rtc_Ip_TimedateType lasttime;Rtc_Ip_TimedateType nowtime;/* 時鐘初始化 */Clock_Ip_Init(&Clock_Ip_aClockConfig[0]);/* 失能和清除API中斷,否則上電啟動進入中斷 */Rtc_Ip_DisableInterrupt(RTC_INST, RTC_IP_API_INTERRUPT);/* 初始化中斷控制器 */IntCtrl_Ip_InstallHandler(RTC_IRQn, RTC_0_Ch_0_ISR, NULL_PTR);IntCtrl_Ip_EnableIrq(RTC_IRQn);/* 初始化RTC */Rtc_Ip_Init(RTC_INST, &RTC_0_InitConfig_PB);/* 配置中斷,API匹配中斷 */ // 注意這里要設置不同的參數Rtc_Ip_EnableInterrupt(RTC_INST, RTC_IP_API_INTERRUPT);/* 定時器啟動,并配置API比較值 */Rtc_Ip_StartTimer(RTC_INST,RTC_PERIOD);/* 設置當前時間 ,實則配置rtc比較值 */Rtc_Ip_SetTimeDate(RTC_INST, &Rtc_DateTimeCfg_0);while(1){/* RTC獲取當前時間 */Rtc_Ip_GetTimeDate(RTC_INST, &nowtime);/* 對比時間,判斷時間是否更新 */
//    	if(false == DataTimeCompare(&lasttime, &nowtime))if(memcmp(&lasttime, &nowtime, sizeof(Rtc_Ip_TimedateType))){printf("%d-%d-%d %d:%d:%d\r\n",nowtime.year, nowtime.month, nowtime.day,\nowtime.hour, nowtime.minutes, nowtime.seconds);}/* 記錄值用于比較 */lasttime = nowtime;}return 0;
}

這里存在兩個問題
1:如果發現 Rtc_Ip_GetTimeDate 的時間數據不更新,那么參考以下初始化RTC的三個函數,缺一不可;
2:RTC記錄的時間,MCU重啟就會丟失,通過示波器測量V11電源穩定無變化;實測不能實現掉主電(MCU_3V3)持續更新時間功能

跟蹤了一下RTD生成的源代碼,發現 “Rtc_Ip_GetTimeDate” 獲取的參數,初始化會設置為0;
在這里插入圖片描述

3.2 RTC喚醒

通過 "figure 189"可知,RTC可以配置兩個喚醒源;

初始化都設置好了之后,在休眠前執行如下喚醒函數;配置 wakeup source bit[0];
參考 Rtc_Ip.h 定義–“Rtc_Ip_StartTimer”, reads the RTC counter register,這里是tick計數,需要自己進行單位轉**

// Rtc_Ip.h 定義
/**
* @brief         Function for starting the Rtc timer channel.
* @details       This function:
*                       - disables the API functionality
*                       - sets the timeout value (in RTCC - APIVAL)
*                       - enables API functionality (RTCC - APIEN).
*                       - reads the RTC counter register and stores the value of the channel start time
*
* @param[in]     value            channel timeout value
* @return        void
* @pre           The data structure including the configuration set required for initializing the GPT driver
*
*/
void Rtc_Ip_StartTimer(uint8 instance, uint32 value);
/*************************************/// 應用實現,配置一下定時時間和喚醒中斷0
void wkup_config(void)
{/* RTC configuration */Rtc_Ip_StopTimer(RTC_INST);Rtc_Ip_StartTimer(RTC_INST, 30*32768);/* WKPU configuration */Wkpu_Ip_Init(WKPU_INST, &Wkpu_Ip_Config_PB);Wkpu_Ip_EnableInterrupt(WKPU_INST, 0);/*enter sleep*/Power_Ip_SetMode(Power_Ip_aModeConfigPB);
}

休眠之后實現喚醒
在這里插入圖片描述

喚醒中斷1的配置如下, 未實測過

void Wkup_Config(void)
{/* WKPU configuration */Wkpu_Ip_Init(WKPU_INST, &Wkpu_Ip_Config_PB_BOARD_InitPeripherals);Wkpu_Ip_EnableInterrupt(WKPU_INST, 1);/* Init Rtc and RTC_0_InitConfig_PB is config tool generated */Rtc_Ip_Init(RTC_INST, &RTC_0_InitConfig_PB);/* Stop the Rtc counter */Rtc_Ip_StopCounter(RTC_INST);/* Sets the timeout value (in RTCC - RTCVAL)Start the Rtc counter. */Wkup_SetRtcCompareValue(RTC_TIME);Rtc_Ip_StartCounter(RTC_INST);
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/95586.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/95586.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/95586.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Python】數據可視化之分類圖

目錄 條形圖 箱形圖 散點圖 分簇散點圖 小提琴 分簇小提琴 條形圖 條形圖是一種直觀的圖表形式,它通過不同長度的矩形條(即“條形”)來展示數值變量的中心趨勢估計值,其中每個矩形的高度直接對應于該組數據的某個中心量度&…

RabbitMQ模型詳解與常見問題

項目demo地址:https://github.com/tian-qingzhao/rabbitmq-demo 一、RabbitMQ組件概念 1.1 Server:接收客戶端的連接,實現AMQP實體服務。 1.2 Connection:連接 應用程序與Server的網絡連接,TCP連接。 1.3 Channel&…

網絡:相比于HTTP,HTTPS協議到底安全在哪?

網絡:相比于HTTP,HTTPS協議到底安全在哪? 我們知道HTTPS也是一種應用層協議,它在HTTP的基礎上有一層加密,因為HTTP的數據傳輸都是以明文方式傳輸的,所以加密主要是為了防止數據在傳輸的時候被篡改 今天我…

AI 基礎設施新范式,百度百舸 5.0 技術深度解析

本文整理自 2025 年 8 月 29 日百度云智大會 —— AI 算力平臺專題論壇,百度智能云 AI 計算首席科學家王雁鵬的同名主題演講。大家下午好!昨天在主論壇,我們正式發布了百度百舸 AI 計算平臺 5.0,并展示了多項亮眼的性能數據。今天…

IO進程線程;多線程;線程互斥同步;互斥鎖;無名信號量;條件變量;0905

思維導圖多線程打印ABC運用無名面量 實現進程同步#include<myhead.h> //定義 無名信號量 sem_t sem1; sem_t sem2; sem_t sem3; //線程1 void* task1(void *arg) {while(1){sem_wait(&sem1);printf("A");fflush(stdout);sleep(1);sem_post(&sem2);} } …

固高 GTS-800 運動控制卡完全使用指南:從硬件部署到高階應用

固高 GTS-800 系列運動控制卡作為中端工業控制領域的標桿產品,以其 8-16 軸同步控制能力、豐富的插補功能和穩定的性能,廣泛應用于激光加工、PCB 制造、精密裝配等自動化設備中。本文將系統講解 GTS-800 的硬件架構、開發環境搭建、核心功能實現及工程實踐技巧,幫助工程師快…

STM32F103_Bootloader程序開發15 - 從Keil到vscode + EIDE + GCC的遷移實踐

導言 STM32 - Embedded IDE - GCC - 如何在工程中生成.bin格式固件 STM32 - Embedded IDE - GCC - 使用 GCC 鏈接腳本限制 Flash 區域 STM32 - Embedded IDE - GCC - 如何在工程中定義一段 NoInit RAM 內存 STM32 - Embedded IDE - GCC - 如何將編譯得到的.bin固件添加CRC32校驗…

HTTP協議——理解相關概念、模擬實現瀏覽器訪問自定義服務器

文章目錄HTTP協議理解相關概念HTTP相關背景知識認識URLHTTP協議在網絡通信的宏觀認識urlencode & urldecodeHTTP請求和應答的格式模擬實現瀏覽器訪問自定義服務器關于http requesthttp request的請求行——URI使用瀏覽器完成靜態資源的訪問常用的報頭屬性http response狀態…

【服務器】英偉達M40顯卡風冷方案心得

在之前的博文中&#xff0c;博主說到最近準備自己組裝一臺服務器&#xff0c;主要用于有限元仿真&#xff0c;其次兼顧一部分AI機器學習的工作&#xff0c;于是博主就入手了一張英偉達Tesla M40的12G顯卡GPU。本來博主也糾結過是買M40還是M60&#xff0c;后來在網上看到說M60看…

Java中的鎖升級機制

目錄 核心思想 Java對象頭&#xff08;Object Header&#xff09;與Mark Word 鎖升級的詳細步驟 1. 無鎖&#xff08;No Lock&#xff09; 2. 偏向鎖&#xff08;Biased Locking&#xff09; 3. 輕量級鎖&#xff08;Lightweight Lock&#xff09; 4. 重量級鎖&#xff…

Scikit-learn Python機器學習 - 特征預處理 - 標準化 (Standardization):StandardScaler

鋒哥原創的Scikit-learn Python機器學習視頻教程&#xff1a; 2026版 Scikit-learn Python機器學習 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili 課程介紹 本課程主要講解基于Scikit-learn的Python機器學習知識&#xff0c;包括機器學習概述&#xff0c;特征工程(數據…

windows下wsl2 ubuntu開發配置

配置環境變量# 設置方式 命令/文件 生效范圍 適用場景 # 臨時 export FORCE_UNSAFE_CONFIGURE1 當前終端 臨時編譯軟件 # 用戶級永久 ~/.bashrc或~/.profile 當前用戶 長期使用&#xff08;單用戶&#xff09; # 系統級永久 /etc/environment或/…

網絡編程 05:UDP 連接,UDP 與 TCP 的區別,實現 UDP 消息發送和接收,通過 URL 下載資源

一、概述 記錄時間 [2025-09-02] 前置文章&#xff1a; 網絡編程 01&#xff1a;計算機網絡概述&#xff0c;網絡的作用&#xff0c;網絡通信的要素&#xff0c;以及網絡通信協議與分層模型 網絡編程 02&#xff1a;IP 地址&#xff0c;IP 地址的作用、分類&#xff0c;通過 …

告別線纜束縛!AirDroid Cast 多端投屏,讓分享更自由

AirDroid Cast 是一款功能強大的跨平臺投屏應用&#xff0c;能夠輕松實現手機、電腦之間以及手機之間的屏幕共享與控制。無論是工作演示、在線教學還是游戲直播&#xff0c;AirDroid Cast 都能提供流暢穩定的投屏體驗。 1. 下載與安裝 您可以通過以下鏈接下載 AirDroid Cast&…

從零開始學大模型之大模型訓練流程實踐

大模型訓練流程實踐 本文較長&#xff0c;建議點贊收藏&#xff0c;以免遺失。更多AI大模型開發 學習視頻/籽料/面試題 都在這>>Github<< >>Gitee<< 6.1 模型預訓練 在上一章&#xff0c;我們逐步拆解了 LLM 的模型結構及訓練過程&#xff0c;從零手…

一文從零部署vLLM+qwen0.5b(mac本地版,不可以實操GPU單元)

第一步&#xff1a;下載anaconda for mac https://zhuanlan.zhihu.com/p/350828057 知乎保姆級教程 https://www.anaconda.com/docs/getting-started/anaconda/install#macos-linux-installation 下載地址 第二步&#xff1a;部署vllm的虛擬環境 https://www.53ai.com/news/Op…

Go語言Range用法全解析

引言Go 語言中的 range 關鍵字是集合遍歷的核心語法結構&#xff0c;它提供了一種高效且類型安全的方式來迭代各種數據結構。range 的設計完美體現了 Go 語言的工程哲學 - 通過最小化的語法提供最大化的功能。標準庫中的許多關鍵組件&#xff08;如 sync.Map、bufio.Scanner 等…

mysql進階語法(視圖)

1、視圖概念 是從一個或多個表中導出來的表&#xff0c;它是一種虛擬存在的表&#xff0c;表的結構和數據都依賴于基本表 應用場景&#xff1a; 多個地方用到同樣的查詢結果該查詢結果用到復雜的select語句 視圖優點&#xff1a; 簡化查詢語句&#xff1a;簡化用戶的查詢操作&a…

編程范式:提升抽象能力的思維工具

這是一個編程中的核心概念&#xff0c;它代表了編寫程序的一套基本風格、方法論和哲學。學習不同的編程范式&#xff0c;就像學習用不同的工具和思維方式來解決問題&#xff0c;能極大地提升你作為程序員的抽象能力和解決問題的能力。一、什么是編程范式&#xff1f;編程范式 是…

阿里云-基于通義靈碼實現高效 AI 編碼 | 1 | 在 Visual Studio Code 中安裝和使用靈碼

文章目錄一、在 Visual Studio Code 中安裝和使用靈碼1.1 準備工作1.2 在 Visual Studio Code 安裝通義靈碼1.3 登錄阿里云賬號免費個人運維知識庫&#xff0c;歡迎您的訂閱&#xff1a;literator_ray.flowus.cn 一、在 Visual Studio Code 中安裝和使用靈碼 本安裝步驟適用于…