天天看點

痞子衡嵌入式:i.MXRT1010, 1170型号上不一樣的SNVS GPR寄存器讀寫控制設計

  大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是i.MXRT1010, 1170型号上不一樣的SNVS GPR寄存器讀寫控制設計。

  痞子衡之前兩篇文章 《在SBL項目實戰中妙用i.MXRT1xxx裡SystemReset不複位的GPR寄存器》、《對比i.MXRT與LPC在RTC外設GPREG寄存器使用上的異同》 介紹了 i.MXRT/LPC 上 System Reset 後不複位的 GPR 寄存器用法,但是有客戶(嗯,是野火電子,火哥希望我實名)發現在 i.MXRT1010 和 i.MXRT1170 上沒法直接使用文中示例讀寫代碼,後來痞子衡檢查了一番,發現 SNVS GPR 寄存器在這兩款型号上确實不太一樣,今天痞子衡就來講講它們到底有啥不一樣:

  先來回顧一下 i.MXRT1015/1020/1024/1050/1060/1064 型号上的 SNVS GPR 設計,從參考手冊裡來看,SNVS GPR 一共有四個,其中 GPR2 - GPR0 是開放給使用者自由使用的,GPR3 裡面有一些系統控制功能,不建議使用。

痞子衡嵌入式:i.MXRT1010, 1170型号上不一樣的SNVS GPR寄存器讀寫控制設計

  因為 CCM 子產品裡預設打開了 iomuxc_snvs_gpr 子產品的時鐘,是以在使用者代碼裡可以直接讀寫 GPR2 - GPR0:

  我們知道 i.MXRT1010 是目前最入門級的 i.MXRT 型号,整個晶片設計相比主流型 i.MXRT1050 做了不少精簡,在 SNVS GPR 上也是,GPR2 - GPR0 直接被拿掉了(讀取永遠是0,不可寫入),僅剩 GPR3,好在這個 GPR3 上沒有系統控制功能,可供使用者自由讀寫,但也僅低 16bit 有效,高 16bit 是隻讀的。

痞子衡嵌入式:i.MXRT1010, 1170型号上不一樣的SNVS GPR寄存器讀寫控制設計

  CCM 子產品裡預設也打開了 iomuxc_snvs_gpr 子產品時鐘,可在使用者代碼裡可以直接讀寫 GPR3[15:0]:

  i.MXRT1170 是目前最高端的 i.MXRT 型号,整個晶片設計相比主流型 i.MXRT1050 做了很大改動,在架構上有增強。具體到 SNVS GPR 上,我們可以看到增加了很多 GPR,其中 GPR31 - GPR0 是完全可供使用者使用的(但需要在 Secure 狀态下才能被寫入,預設無法寫入)。GPR32 預設可以直接寫入,但僅 bit15 - 1 可供使用者自由使用,高 16bit 做了低 16bit 的 lock 控制。而 GPR33 裡面則是一些系統控制功能,不建議使用。

Note: 在 i.MXRT1170 頭檔案裡,你可能還會發現有 GPR37 - 34,由于參考手冊裡并未開放,這裡不讨論。
痞子衡嵌入式:i.MXRT1010, 1170型号上不一樣的SNVS GPR寄存器讀寫控制設計

  CCM 子產品裡預設也打開了 iomuxc_snvs_gpr 子產品時鐘,可在使用者代碼裡可以直接讀寫 GPR32[15:1],但要想寫入 GPR31 - 0,則需要先配置下 SNVS 子產品:

  最後再補充兩點:

Note 1: i.MXRT1160 和 i.MXRT1170 關于 SNVS GPR 設計是一樣的。 Note 2: i.MXRT1170 上執行了 enable_snvs_gpr() 後,SNVS_LPGPR[3] - SNVS_LPGPR[0] 才能被寫入。

  至此,i.MXRT1010, 1170型号上不一樣的SNVS GPR寄存器讀寫控制設計痞子衡便介紹完畢了,掌聲在哪裡~~~

文章會同時釋出到我的 部落格園首頁、CSDN首頁、知乎首頁、微信公衆号 平台上。

微信搜尋"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦。

痞子衡嵌入式:i.MXRT1010, 1170型号上不一樣的SNVS GPR寄存器讀寫控制設計

  最後歡迎關注痞子衡個人微信公衆号【痞子衡嵌入式】,一個專注嵌入式技術的公衆号,跟着痞子衡一起玩轉嵌入式。

痞子衡嵌入式:i.MXRT1010, 1170型号上不一樣的SNVS GPR寄存器讀寫控制設計
痞子衡嵌入式:i.MXRT1010, 1170型号上不一樣的SNVS GPR寄存器讀寫控制設計
痞子衡嵌入式:i.MXRT1010, 1170型号上不一樣的SNVS GPR寄存器讀寫控制設計

  衡傑(痞子衡),目前就職于恩智浦MCU系統部門,擔任嵌入式系統應用工程師。

  專欄内所有文章的轉載請注明出處:http://www.cnblogs.com/henjay724/

  與痞子衡進一步交流或咨詢業務合作請發郵件至 [email protected]

  可以關注痞子衡的Github首頁 https://github.com/JayHeng,有很多好玩的嵌入式項目。

  關于專欄文章有任何疑問請直接在部落格下面留言,痞子衡會及時回複免費(劃重點)答疑。

  痞子衡郵箱已被私信擠爆,技術問題不推薦私信,堅持私信請先掃碼付款(5元起步)再發。