国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

PS端RTC中斷實驗

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2022-02-09 11:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者:ALINX

* 本原創教程由芯驛電子科技(上海)有限公司(ALINX)創作,版權歸本公司所有,如需轉載,需授權并注明出處。

適用于板卡型號:

AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG

vivado工程目錄為“ps_hello/vivado”

vitis工程目錄為“ps_rtc/vitis”

1.RTC介紹

實時時鐘(rtc)單元為系統和應用軟件提供精確的時間基準。為了滿足高精度的需要,實時時鐘還包括校準電路,以補償溫度和電壓波動。RTC 由 VCC-PSAUX 或 VCC-PSBATT 電源供電。當輔助電源可用時,RTC 使用它保持計數器活動。當輔助電源不可用時,RTC 自動切換到 VCC PSBATT 電源。RTC 功能如下:

1)系統掉電時,該單元自動切換至電池供電,實現時鐘的不間斷運行

2)支持報警設置和周期中斷設置

3)校準電路以確保時間精準

4)三個計數器

時間秒計數器,32 位,可以計數約 136 年

32 KHz 參考時鐘計數器,表示 1 秒的計數

用于校準的 4 位分數計數器

pIYBAGAJQaeAOxmbAACKkKzN9_o872.jpg

RTC控制器結構圖

o4YBAGAJQeeAbAiNAACAZwA3DPk952.jpg

RTC功能圖

2. 中斷介紹

1)ARM cortex-A系列處理器,提供了4個管腳給soc,實現外界中斷的傳遞。分別是:nIRQ、nFIQ、nVIRQ、nVFIQ。arm系統中,會有多個外設,均有可能產生中斷發送給core,因此就需要有一個中斷控制器來作為中間的橋接,收集soc的所有中斷信號,然后仲裁選擇合適(高優先級)的中斷,再發送給CPU,等待CPU處理。

2)這里中間的橋接,就是arm公司推出的大名鼎鼎的gic(general interrupt controller)。gic其實是一個架構,版本歷經了gicv1,gicv2,gicv3,gicv4。

3)Ultrascale+中斷框圖如下

o4YBAGAJQiWAFBOFAACq7bsFgBo393.jpg

圖中包含兩個GIC:

RPU GIC:PL390(arm公司設計的對應GICv1 IP)

APU GIC:GIC-400(arm公司設計的對應GICv2 IP)

4)RPU GIC,其系統功能框圖如下:

pIYBAGAJQmSANoa2AACoe6w1F_w243.jpg

從圖中可以看到,中斷源主要有三種:

PPI:private peripheral interrupt,私有外設中斷,該中斷來源于外設,只對固定的core有效。

SPI:shared peripheral interrupt,共享外設中斷,該中斷來源于外設,可以對所有的core有效。

SGI:software-generated interrupt,軟中斷,軟件產生的中斷,用于給指定的core發送中斷信號

控制器功能框圖如下:

o4YBAGAJQrqAa4l_AACF_o5Pqfs423.png

上圖中, ICD的控制寄存器主要如下:

pIYBAGAJQvmAdIznAAFAupdwVn4683.jpg

1)APU GIC,功能框圖如下

pIYBAGAJQzeAdvV9AABYKsw1fDk775.png

GICv2,將中斷分成了group0和group1。使用寄存器GICD_IGROUPRn來對每個中斷,設置組。其中group0:安全中斷,由nFIQ驅動,group1:非安全中斷,由nIRQ驅動。支持最大1020個中斷。其中斷號分配如下:

o4YBAGAJQ3WAP7ZPAAAq21bxCLs671.jpg

GICv2,主要由兩部分組成:distributor及cpu interface。

distributor,用來收集所有的中斷來源,并且為每個中斷源設置中斷優先級,中斷分組,中斷目的core。當有中斷產生時,將當前最高優先級中斷,發送給對應的cpu interface。其功能有:全局中斷使能、每個中斷的使能、中斷的優先級、中斷的分組、中斷的目的core、中斷觸發方式、對于SGI中斷,傳輸中斷到指定的core、每個中斷的狀態管理、提供軟件,可以修改中斷的pending狀態

cpu interface,將GICD發送的中斷信息,通過IRQ,FIQ管腳,發送給連接到該cpu接口的core。其功能有:將中斷請求發送給cpu、對中斷進行認可(acknowledging an interrupt)、中斷完成識別(indicating completion of an interrupt)、設置中斷優先級屏蔽、定義中斷搶占策略、決定當前處于pending狀態最高優先級中斷

gicv2,定義了自己的一些寄存器,這些寄存器,都是使用memory-mapped的方式去訪問的,也就是在soc中,會留有一片空間,給gic。cpu通過訪問這部分空間,來對gic進行操作。主要寄存器如下:

o4YBAGAJQ7SAOYBPAAAxtCmvcRA372.png

這里中斷只是作簡單介紹,需要詳細了解的,請參照xilinx提供的文檔:ug1085-zynq-ultrascale-trm.pdf。

軟件工程師工作內容

以下為軟件工程師負責內容。

3. Vitis程序編寫

3.1 創建Platform工程

1)點擊Tools-》Launch Vitis

pIYBAGAJQ_KABZ_LAABrenT6bXk766.png

2) 與前面的Hello World實驗不同,我們只建立Platform工程

3) 填入工程名字,要與XSA文件的名字一樣,點擊Next

4) 點擊Next

5) 選擇XSA文件

保持默認,點擊Finish

6) 點開platform.spr,并點開BSP

o4YBAGAJRWaAToxaAABpLaD4qPk590.png

7) 找到RTC驅動,并點擊Import Examples

o4YBAGAJRauARgFrAABazE1UX-w236.jpg

8) 非常幸運,有中斷的例子,怎么就知道這個例子就是中斷的例子呢?是通過“intr”猜測的,所以,基本功很重要,不然你連找例程都不會。

o4YBAGAJRemAEC3lAABNRlqRG5A334.png

9) 在這里就導入了example工程

pIYBAGAJRiaACTgSAABtZ55sZcI160.jpg

下面就是閱讀代碼,然后修改代碼了,當然,可能一下不能完全理解這些代碼,只能在以后的應用中去反復練習

10)通過函數XRtcPsu_GetCurrentTime來獲取系統秒計數器值,用函數XRtcPsu_SecToDateTime將計數值轉換為我們能看明白的年月日時分秒。

o4YBAGAJRmSABD9jAAAsBFbwEpo516.jpg

11)設置中斷時間,中斷時間PERIODIC_ALARM_PERIOD宏定義為2,也就是2秒中斷一次

o4YBAGAJRqOAba1pAAB36mqaTqs808.png

12)Build Project編譯

o4YBAGAJRuKAGT8yAAB1o-L6ydE215.png

13)了解一下中斷控制器的使用,主要分為幾個步驟,初始化中斷控制器GIC初始化中斷異常中斷服務函數注冊在中斷控制器中使能中斷使能中斷異常。有兩步需要注意,在中斷控制器中使能中斷是要根據中斷號使能相應的中斷,比如本章介紹的RTC,是在中斷控制器GIC中的使能中斷,而后面的使能外設中斷是指在外設中打開它的中斷,正常情況下是不打開的,打開之后就可以產生中斷傳遞到中斷控制器GIC。在以后的實驗中可以借鑒這種寫法。

pIYBAGAJRzWAUIkQAAHXImWaNfg272.jpg

4. 下載調試

1)打開串口終端;

2)下載調試程序的方法前面教程已經講解,不再復述;

3)和我們預期一樣,串口每兩秒會看斷一次;

pIYBAGAJR6-AEExkAAAa9YCaCts641.png

5. 實驗總結

實驗中通過簡單的修改Vitis的例程,就完成了RTC,中斷的應用,看似簡單的操作,但蘊含了豐富的知識,我們需要非常了解RTC的原理、中斷的原理,這些基本知識是學習好ZYNQ的必要條件。

審核編輯:何安

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1660

    文章

    22412

    瀏覽量

    636335
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    DR1 系列評估板 PS 裸機與 FreeRTOS 開發案例手冊

    本文為創龍科技DR1 系列評估板 PS 裸機與 FreeRTOS 開發指南,涵蓋三大核心案例與雙開發模式實現。核心內容包括 LED 定時閃爍、按鍵控制 LED 亮滅、串口數據回顯功能,詳細說明工程
    的頭像 發表于 01-19 17:12 ?151次閱讀
    DR1 系列評估板 <b class='flag-5'>PS</b> <b class='flag-5'>端</b>裸機與 FreeRTOS 開發案例手冊

    淺談愛普生RTC模塊的特點與用途

    實時時鐘(RTC)在眾多需要精確計時的應用中起著不可或缺的作用,而RTC又不僅僅只是一個用來計時的電子元器件。在以下文章中,將介紹實時時鐘(RTC)與RTC模塊,同時了解愛普生的
    的頭像 發表于 01-04 09:16 ?646次閱讀
    淺談愛普生<b class='flag-5'>RTC</b>模塊的特點與用途

    瑞薩RA系列FSP庫開發實戰指南之DTC外部中斷觸發傳輸實驗

    實驗的目標是使用外部中斷來觸發DTC傳輸,因此需要用到一個按鍵。
    的頭像 發表于 12-26 09:32 ?3979次閱讀
    瑞薩RA系列FSP庫開發實戰指南之DTC外部<b class='flag-5'>中斷</b>觸發傳輸<b class='flag-5'>實驗</b>

    RTC工作原理

    到這些影子寄存器中? ?4、周期性自動喚醒?:RTC有一個16位的自動重載遞減計數器,可以產生周期性的喚醒中斷,通常定時一秒? ?5、可編程鬧鐘?:RTC有兩個可編程鬧鐘,當鬧鐘觸發時會產生事件信號? ?6、時間戳和入侵檢測?:
    發表于 11-28 07:14

    在CW32F030 MCU上設置外部中斷RTC喚醒條件的示例

    ) { Enter_Sleep_Mode();// 進入Sleep模式,等待外部中斷喚醒 // 喚醒后的處理代碼(實際上,這部分代碼將在中斷處理函數中執行) } } 示例2:RTC喚醒 假設我們希望在特定
    發表于 11-25 08:00

    RVMCU課堂「20」: 手把手教你玩轉RVSTAR—實時時鐘RTC

    PCLK1時鐘至少慢4倍) RTC時鐘源: HXTAL時鐘除以128 LXTAL振蕩電路時鐘 IRC40K振蕩電路時鐘 可屏蔽的中斷源: 鬧鐘中斷中斷 溢出
    發表于 10-29 08:10

    【EK-RA6E2開發指南】RTC實踐

    RA6E2的RTC(Real Time Clock)外設,實質是一個掉電后還繼續運行的定時器。從定時器的角度來說,相對于GPT外設,要簡單很多 ,只有計時和觸發中斷以及輸入捕獲的功能。RTC外設的特別之處并不在于它的定時功能,而
    的頭像 發表于 09-23 18:18 ?2236次閱讀
    【EK-RA6E2開發指南】<b class='flag-5'>RTC</b>實踐

    淘汰紐扣電池:永銘SDV超級電容引領RTC備用電源新趨勢

    RTC被稱為“時鐘芯片”,用于記錄和跟蹤時間。它的中斷功能能夠定時喚醒網絡中的設備,使設備的其他模塊在大部分時間可以休眠,從而大大降低設備的整體功耗。由于設備時間不能有任何的偏差,因此RTC時鐘供電
    的頭像 發表于 09-01 09:58 ?708次閱讀
    淘汰紐扣電池:永銘SDV超級電容引領<b class='flag-5'>RTC</b>備用電源新趨勢

    AT32的ERTC與RTC的區別

    的日歷邏輯,直接給出年、月、日、時、分、秒,大大簡化了軟件操作和降低了出錯概率 。 中斷與鬧鐘功能 RTC :較為基礎,通常只提供一個中斷請求,用于鬧鐘功能 。 ERTC :提供多個中斷
    發表于 07-11 10:48

    第二十八章 RTC——實時時鐘

    本文介紹了W55MH32的RTC外設,其為掉電可運行的32位計數器,常用LSE 32.768KHz時鐘源,引入UNIX時間戳概念。還介紹相關庫函數,及配置RTC、處理中斷、顯示時間和校準LSI頻率的
    的頭像 發表于 06-20 14:08 ?1359次閱讀
    第二十八章 <b class='flag-5'>RTC</b>——實時時鐘

    WLE5CBU6在STOP2模式下,概率性不能通過RTC鬧鐘中斷喚醒,為什么?

    已知鬧鐘中斷優先級最高,跑RTC測試時,掛測會出現概率性的無法喚醒MCU
    發表于 06-16 06:34

    【RA4L1-SENSOR】RTC實時時鐘

    和周期型中斷優先級 RTC時間結構體,用于配置時間或者讀取時間 實驗代碼,使用串口發送時間,并在段碼LCD屏上顯示 rtc_time_t time_set = { .tm_year =
    發表于 06-13 12:10

    “耐高溫!”RTC時鐘芯片+電池的應用案例(二)

    實時時鐘,簡稱RTC,是廣泛應用于電子產品的重要元器件。愛普生RTC實時時鐘具有高精度、高穩定性和多功能等特點,廣泛應用于多個行業。RTC時鐘芯片主要功能是保持設備時間的準確運行,即使在主電源斷電
    的頭像 發表于 06-04 17:35 ?1750次閱讀
    “耐高溫!”<b class='flag-5'>RTC</b>時鐘芯片+電池的應用案例(二)

    小安派BW21-CBV-Kit教程——基礎RTC例程與簡易RTC鬧鐘

    本例演示如何使用 RTC 庫方法。本函數介紹如何使用 RTC API。RTC 功能由一個獨立的 BCD 定時器/計數器實現。
    發表于 04-13 17:46 ?725次閱讀
    小安派BW21-CBV-Kit教程——基礎<b class='flag-5'>RTC</b>例程與簡易<b class='flag-5'>RTC</b>鬧鐘

    【瑞薩RA2L1入門學習】03. RTC 時鐘日歷&amp;鬧鐘&amp;周期性中斷

    、月、日、時、分、秒等時間信息;在計時模式下,RTC則用于產生固定周期的中斷,如每秒一次的中斷RTC 常見的操作包括設置時間、設置定時鬧鈴、配置周期性
    發表于 03-07 16:45