在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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
    +關注

    關注

    1630

    文章

    21759

    瀏覽量

    604301
收藏 人收藏

    評論

    相關推薦

    【CH32V208】1、體驗RTC

    Java version: 1.8.0_221 【實驗程序】 1、RTC實始化,函數如下: u8 RTC_Init(void) { u8 temp = 0
    發表于 07-30 09:34

    什么是RTC模塊?

    什么是“RTC”?“RTC”是實時時鐘的縮寫,它是一種測量時間的電子設備。什么是“RTC模塊”?“RTC模塊”是一個集成了RTCIC、振蕩器電路和主時鐘的單封裝模塊。無需自行設計振蕩器
    的頭像 發表于 07-24 14:14 ?438次閱讀
    什么是<b class='flag-5'>RTC</b>模塊?

    【GD32F303紅楓派開發板使用手冊】第十七講 USART-中斷串口收發實驗

    前面章節中我們已經學習了串口的狀態標志位,本實驗就是使用TBE中斷和RBNE中斷來實現中斷收發數據,實驗原理是RBNE
    的頭像 發表于 06-17 09:53 ?1076次閱讀
    【GD32F303紅楓派開發板使用手冊】第十七講 USART-<b class='flag-5'>中斷</b>串口收發<b class='flag-5'>實驗</b>

    stm8l151 rtc時間更新中斷怎么用庫函數配置?

    哪位大俠知道rtc時間更新中斷怎么用庫函數配置??
    發表于 05-08 06:13

    【GD32F470紫藤派開發板使用手冊】第三講 EXTI-按鍵中斷檢測實驗

    通過本實驗主要學習以下內容: EXTI中斷原理; 按鍵中斷檢測原理;
    的頭像 發表于 05-05 09:22 ?558次閱讀
    【GD32F470紫藤派開發板使用手冊】第三講 EXTI-按鍵<b class='flag-5'>中斷</b>檢測<b class='flag-5'>實驗</b>

    stm32l151c8t6 rtc的鬧鐘中斷進不了是怎么回事?

    不知道是不是配置不對 請大神幫忙看看用的是stm32l151c8t6就是進不去中斷到了制定的鬧鐘時間 沒有進中斷 求幫忙瞄一瞄是什么地方沒配置好 void RTC_conig(void
    發表于 04-29 08:05

    如何使用Vitis自帶的LWIP模板進行PS千兆以太網TCP通信?

    開發板有兩路千兆以太網,通過RGMII接口連接,本實驗演示如何使用Vitis自帶的LWIP模板進行PS千兆以太網TCP通信。
    的頭像 發表于 04-28 10:44 ?3552次閱讀
    如何使用Vitis自帶的LWIP模板進行<b class='flag-5'>PS</b><b class='flag-5'>端</b>千兆以太網TCP通信?

    stm32L476RG RTC的秒中斷如何使用?

    stm32L476RG RTC的秒中斷如何使用
    發表于 04-26 08:24

    用到STM32L471的低功耗,用RTC的鬧鈴中斷喚醒遇到的疑問求解

    最近用到STM32L471的低功耗,根據綜合考慮選用STOP2模式(任意中斷喚醒),用RTC的鬧鈴中斷喚醒,由于喚醒周期比較長,采用的方式為:一小時喚醒一次,喚醒后判斷是否到達設定的時間,如到達設定
    發表于 04-23 06:25

    STM8L151K4讀RTC計數器,時間總是不對怎么解決?

    各位大神好,在調試STM8L時發現u16 RTC_GetWakeUpCounter(void)得到的值不對,實驗如下: 我設置RTC每10S喚醒一次,每10S可以喚醒,當外部中斷發生時
    發表于 04-15 06:46

    STM32L431出現LSE CSS后RTC的ALARM無法進入中斷是怎么回事啊?

    STM32L431的RTC配置使用LSE時鐘,配置ALARMA中斷,可以正常進入中斷,但是出現LSE CSS后重新配置RTC使用LSI做為系統時鐘,但配置后
    發表于 04-08 06:58

    STM32L051同時開啟RTC時間戳和秒喚醒后,使用GPIO引腳無法觸發時間戳中斷如何解決?

    STM32L051同時開啟RTC時間戳和秒喚醒后,使用GPIO引腳無法觸發時間戳中斷。但使用一個3.3V的電源接到PC13能夠觸發RTC時間戳。 我將PB8和PC13相連,PB8特定情況下會輸出脈沖
    發表于 04-01 06:37

    使用RTC喚醒中斷喚醒休眠狀態的MCU出現故障怎么解決?

    因在做項目為了節省功耗需求,使設備不運行時MCU休眠,然后用內部RTC喚醒中斷重啟MCU;在批量電路板中發現有極個別MCU無法喚醒,其他設備運行正常,有大佬碰到過類似情況沒有?謝謝!
    發表于 04-01 06:23

    RX4901CE (RTC模塊)

    基本的RTC功能,如時間和日歷,時間警報,喚醒計時器和時間更新中斷。RX4901CE結合了自動電源開關功能,包括防止主電源反向電流的控制電路,連續溫度校正32.768 k
    發表于 01-25 10:28 ?0次下載

    求助,請教一個關于RTC中斷的問題

    是這樣的,我的硬件是外部接了12M晶振,以及RTC時鐘的兩個引腳接了32.768K的晶振,用官網的RTC例程測試,時鐘和中斷都可以。我用了我們之前新唐供應商給的庫程序,時鐘顯示跟實際時間比較,顯示
    發表于 01-16 07:37
    主站蜘蛛池模板: 狠狠干夜夜草| 黄篇网站在线观看| 天天色播| 在线看片你懂得| 久久久国产精品免费看| 男人扒开美女尿口无遮挡图片 | 人成网站在线观看| 免费在线观看一级毛片| 久久国产三级| 91高清在线成人免费观看| 午夜毛片不卡高清免费| 欧美女同在线| 黄网站播放| 高h细节肉爽文bl文| 亚洲色图 在线视频| 三级网在线| 国外精品视频在线观看免费| www.av在线免费观看| 天天干天天爽天天操| 狠狠五月天| 性满足久久久久久久久| 亚洲欧美日本综合| 全黄毛片| 丁香九月婷婷| 日本综合视频| 欧美黄免在线播放| 二区三区| 日本理论片www视频| 国产精品嫩草影院一二三区入口| 夜夜春夜夜夜夜猛噜噜噜噜噜| 国内自拍 亚洲系列 欧美系列| www.四虎影院在线观看| 欧美aaaaa性bbbbb小妇| 69日本xxxxxxxxx56| 亚洲合集综合久久性色| 免费黄色在线观看| 午夜国产视频| 国产h视频在线观看网站免费| 一本到卡二卡三卡视频| 明星三级国产免费播放| 亚洲第一久久|