色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

GPIO 四種編碼模式的對應腳位如何查找

NVIDIA英偉達企業解決方案 ? 來源:NVIDIA英偉達企業解決方案 ? 作者:NVIDIA英偉達企業解 ? 2021-12-28 09:12 ? 次閱讀

嵌入式設備有個被天生賦予的重點任務,就是要成為自動控制整體方案中的一員。早期市場對自動控制的需求主要集中在單純的“機電控制”上,而具備智能計算的 Jetson 系列產品相對與幾十元的這類控制板來說,成本高出了一個階位。

但是隨著“智能+控制”的結合功能成為新工業主流需求之后,成本已經不是最首要的關鍵因素,因為智能設備所帶來的價值已經遠遠超過先前的成本差異。NVIDIA Jetson 設備就是在這樣的風潮下逐漸嶄露頭角,為智能工業帶來新的生命力。

透過“擴充引腳”的方式與機電控制設備進行對接,是絕大部分嵌入式設備所采用的方法。NVIDIA 在 2015 年的 Jetson TK1 產品就已經配置了這方面的引腳,經歷了 TX1/TX2 到 AGX Xavier 的階段,依舊保有這方面的接口(如下圖),一直到 2019 年 Jetson Nano 推出之后,采用與樹莓派兼容的 40 針引腳的設計,在戰略上是個非常高明的設計。

過去 10 年是創客(maker)興盛的年代,而樹莓派憑借“硬件開源”的風潮吸引龐大的民間實力,開發了相當齊全的周邊產品,下表是比較常用的一部分設備清單,全部都是基于樹莓派 40 針引腳定義所設計。

如今 Jetson Nano(含2GB)、Xavier NX 等開發套件的引腳也兼容于樹莓派的定義時,就表示上面列表中的周邊設備,都能直接適用于現在主流的 Jetson 開發套件,不僅無需依賴中間的轉換器,包括代碼也可以不需要修改,就能將原本不具備深度學習能力的樹莓派方案,立即移植到 NVIDIA 的智能 Jetson 設備上,馬上變成“智能控制”的應用設備,實用價值瞬間就提高一個檔次。

本文屬于 Jetbot 系列中的一環,不過在進入與周邊設備(PiOLED、PCA9685 等)對接之前,有必要讓初學者對 Jetson 的 40 針引腳的細節與使用有進一步的了解,因為 Jetbot 是一個經典的項目,但更重要是要讓初學者可以自行搭建更多的應用。

過去缺乏智能識別能力的創客項目,多屬于較為單調的固定執行流程的應用,但是有了 NVIDIA Jetson 的智能識別能力之后,就能讓這類項目變得非常多彩多姿,并且更加貼近生活或工作上的實用場景,例如根據垃圾分類識別后進行處理的機械手臂、根據貓臉識別后對特定貓開啟喂食器、根據水果成熟度進行采摘等應用,都是實用價值非常高的,這才是真正智能設備的創造動力。

網上有不少探索 Jetson 這 40 根引腳的文章,但內容相對籠統并且有些部分的混淆,對初學者來說會產生障礙。本文的重點就是將以下三個部分講解清楚:

40 根引腳的 SPIO 與 GPIO

Jetson-IO 工具與 Jetson.GPIO 開發庫

四種 GPIO 引腳調用模式:BOARD、BCM、CVM、TEGRA_SOC

只要將這三個關系捋清楚后,整個 40 針引腳的使用就會瞬間變得非常簡單。假如上述三個關系您都很熟悉了,就可以跳過本文的內容;如果還沒搞清楚的,請仔細閱讀本文,能讓您很有條理地掌握這些引腳的使用要領。

40針引腳的SPIO與GPIO

下圖是 Jetson 的 40 幀引腳圖的說明,適用于 Nano(含2GB)、Xavier NX 與 AGX Xavier 等開發套件。雖然上面滿滿的內容,乍看之下的確令人眼花繚亂,只要看完我們所作的分解之后,就會讓這部分的內容變得非常簡單。

首先,雖然大家平常時候習慣將這些引腳統稱為 GPIO,但事實上這 40 根引腳主要分成 GPIO(General Purpose I/O)通用功能與 SFIO(Special Function I/O)特定功能兩大類,后者總共有 18 根與開發套件底板電子電力直連的腳位,這是不能重新定義的固定功能,主要分為以下三種:

1. 供電相關:這個部分需要非常細心處理,如果錯用可能會造成 Jetson 設備損壞。這里也進一步分成三種功能:

(1) 5V 直流電輸入/輸出:腳位[2, 4],在標識上唯一使用“紅色”的地方,可以對 Jetson 開發套件作為“供電”用途,有些 Jetbot 第三方套件就是用這種方式對 Nano(含2GB)進行供電,不過這些都是專業廠商自行設計的電路,如果不太熟悉供電原理的讀者,請勿隨意嘗試以避免對設備造成破壞。

這兩個接腳也能對 5.0V 規格的周邊設備進行供電,但是非常不推薦這樣使用,因為 Jetson 本身的電力已經處于吃緊狀態,如果再對其他設備提供 5V 輸出,很可能影響整體穩定性。

(2) 3.3V 直流電輸出:腳位[1, 17],可以為一些低電設備進行供電。例如在 Jetbot 項目中使用的 PiOLED 與 PCA9685,就是由 Nano(含2GB)的 3.3V 供電口對這兩個元件進行供電。

(3) GND 接地點:腳位[6, 9, 14, 20, 25, 30, 34, 39]共 8 個。

2. 二組 I2C:I2C1_SDA/SCL=》腳位[27, 28];I2C2_SDA/SCL =》 腳位[3, 5]

3. 一組 UART:UART2_TX/RX=》腳位[8, 10]

這樣一整理之后,是不是就變得很簡單了?撇開電源相關的 12 根腳位之外,真正需要了解的,就是兩組 I2C 與一組 UART 共 6 個腳位,這 18 根腳位的定義與樹莓派是完全一致的。在 Jetbot 項目中也就使用 1 組 3.3V/GND 電源與 1 組 I2C 的 SDA/SCL 而已,總共 4 根引腳就能完成智能車的任務。

如果原本樹莓派創客項目中只使用這類的 I2C 或 UART 引腳的話,幾乎不需修改代碼就能將原本的應用移植到 Jetson Nano(含2GB)設備上,立刻升級為智能識別的應用,所展現的價值就馬上提高一個臺階。

至于另外 22 根“可重新定義”腳位,才是很多網上所探索的“GPIO” 內容,其實正確的說法應該是“Jetson 的 22 根 GPIO 引腳使用”才對,不過這里就不去糾正這些小問題,重點在于讓大家更清楚剩下這 22 根引腳的用法。

事實上這些引腳也有兩種處理方式:

1.透過 Jetson-IO 工具將特定引腳設置成為 SFIO 用途,然后配合特定的開發庫;2.作為 GPIO 用途,透過 Jetson.GPIO 或其他開發庫直接調用

網上大部分的混淆就在這個 Jetson-IO 工具與 Jetson.GPIO 庫,前者是 Jetpack 自帶的底層系統引腳配置工具,后者是針對 GPIO 引腳的應用層開發庫,二者之間是不僅完全獨立的,甚至某種角度上還有些許“互斥”的關系。

接下去帶著大家將這兩個工具認識清楚,這樣日后的開發就會非常簡單。

Jetson-IO引腳配置工具

前面已經清楚在 40 根引腳中有 18 根是固定好的不能重新定義,剩下的問題就是如何處理這 22 根“可重新定義”的引腳,是否有什么工具可以協助我們確認目前所有腳位的狀態呢?這就是 Jetson-IO 的主要工作了,請執行以下指令,看看顯示怎樣的結果?

sudo /opt/nvidia/jetson-io/config-by-pin.py

是否看到顯示從 1 到 40 的狀態?核對一下,是不是除了前面所說 18 個 SFIO 位置之外的 22 個引腳,都顯示“unused” 狀態?這些呈現“unused”的腳位就是 GPIO 的狀態,能用 Jetson.GPIO 庫直接指派與調用。

如果要對這 22 個腳位進行重新定義,該使用什么方法來操作?Jetson-IO 工具就是扮演“配置腳位功能”的角色,這是 NVIDIA 從 L4T 32.3 版本開始,提供可以修改引腳定義的工具,在 Jetpack 燒錄過程就編譯到開發套件的 /opt/nvidia/jetsion-io 目錄下,這是屬于系統底層的配置工具。

因為設備所有 I/O 的默認配置是靜態定義的,早期要更改 40 針擴展引腳定義時置,必須使用相應平臺的 pinmux 電子表格去更新管腳配置,然后將新配置燒回開發套件中,雖然這是更新系統的一種適當方法,但在開發的階段,需要一種更方便的方法,來測試不同的管腳配置。

Jetson-IO 工具就是要簡化 40 針引腳 I/O 配置的修改任務,提供一套基于 Python 的簡單代碼,最終會將修改的內容寫入設備樹(DTB, Device Tree, Blob)固件,重啟設備就能讓新的設置生效,非常方便。

如果想要修改前面所提到的 22 根腳位定義,最輕松的方法就是執行以下步驟:

sudo /opt/nvidia/jetson-io/jetson-io.py

進入主菜單后,選擇下面的“Configure 40-pin expansion header”,就會出現以下選擇菜單視窗,透過“上下鍵”與“空鍵”選擇要設定的組:

這里是根據“功能”的提供腳位組合,所定義的腳位與前面 40 針引腳定義圖是完全對應的,也就是說在 18 根 SFIO 以外的腳位,必須經過 Jetson-IO 的配置之后,才會具備引腳圖中的功能,但這個步驟并未出現在任何說明文件或網上教程之中,導致很多初學者完全無法理會其中的奧秘,我們在這里為大家打開這個黑箱子。

現在試著啟動 spi1 組設置,Jetson-IO 工具會同時配置后面的 5 個腳位。設置完畢后選擇“Save and reboot to reconfigure pins”,重啟系統之后再執行:

sudo /opt/nvidia/jetson-io/config-by-pin.py

是否看到腳位[19, 21, 23, 24, 26]的狀態,現在都出現“spi1”的標識了?

在 /opt/nvidia/jetson-io/ 目錄下還有 config-by-function.py、config-by-pin.py 與 config-by-hardware.py 三個工具,根據不同目的查詢與設置 GPIO 接腳屬性。詳細的內容請至https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-325/index.html里“Hardware Setup”的“Configuring the 40-Pin Expansion Header”,有完整的使用說明。

Jetson.GPIO應用開發庫

這是屬于應用級的開發庫,是針對“未被 Jetson-IO 設置為 SPIO”的 GPIO 引腳進行配置與運作的應用庫。

例如引腳 19 在前面 Jetson-IO 配置為 spi1 功能之前,就是作為 GPIO 功能,可以用 Jetson.GPIO 庫去指派與調用;但是經過 spi1 配置并重啟之后,引腳 19 已經屬于 SFIO 而非 GPIO,這時候如果用 Jetson.GPIO 庫去指定這個引腳,就不會產生作用。

前面提過“從某種角度來說 Jetson.GPIO 與 Jetson-IO 是互斥的”,道理就在這個地方,一旦被 Jetson-IO 配置并啟動的腳位,就不再屬于 GPIO 的功能了。

這個 Jetson.GPIO 開發庫并不在 Jetpack 安裝包里,因此需要手動安裝與從 github 上下載范例代碼。下面指令可以簡單安裝這個庫:

sudo pip3 install Jetson.GPIO

如果想要獲得這個開發庫的范例,就執行以下指令:

cd ~ && git clone https://github.com/NVIDIA/jetson-gpiocd jetson-gpio/samples

這里的范例都需要結合一些很基本的電子實驗設備,例如面包板、LED 燈、杜邦線、小電阻、小電容之類的設備,實驗內容非常簡單,請自行采購相關元件并跟著說明執行就可以,這里不做這些范例的講解。

至于還有些環境變量配置問題,也請參考開源項目內的說明,不過在 Jetbot 項目中都已經調試好了。

四種GPIO引腳調用模式

這是最后一個容易造成混淆的部分,因為作為 GPIO 用途的腳位有四種調用的模式,這也是因為過去長年積累的兼容性問題所導致的,不過只要搞清楚之后也都不是大問題。

在代碼一開始的時候,需要使用“GPIO.setmode(GPIO_MODE)”指令進行模式的指定,其中“GPIO_MODE”可以是以下四種:

1. GPIO.BOARD:這種模式的引腳是根據“1~40”的物理編號進行指定,是最簡單易懂的方式,不過必須注意得避開已經設置為 SFIO 的引腳。例如:

GPIO.setmode(GPIO.BOARD)GPIO.setup(12, GPIO.IN) # 設置12號引腳為輸入GPIO.setup(13, GPIO.OUT, initial=GPIO.HIGH) # 設置13號引腳為輸出

這是最直觀而且簡單的模式,推薦初學者使用!

2. GPIO.BCM:這種編號是因為控制芯片主要來自于博通(Broadcom)公司,而他們自定義了一組 BCM 編碼方式,在 Jetson Nano(含2GB)開發套件的針腳位背面所印刷的“Dxx”編號(如下圖),就是 BCM 的編碼。

下面是簡單的調用方法,不過指定的腳位是根據 BCM 編碼原則:

GPIO.setmode(GPIO.BCM)GPIO.setup(12, GPIO.IN) # 設置D12(BOARD的32)腳位為輸入GPIO.setup(13, GPIO.OUT) # 設置D13(BOARD的33)腳位為輸出

很多傳統樹莓派的項目里習慣使用 BCM 編碼,仔細對照就能輕易理解。

3. GPIO.CVM與GPIO.TEGRA_SOC:這兩種模式使用各 GPIO 管腳命名的字符串,作為設置引腳的參數,其中 CVM 是根據 CVM/CVB 連接器信號名稱命名,TEGRA_SOC 是根據 Tegra SoC 中信號名稱來命名的。例如:

GPIO.setmode(GPIO.TEGRA_SOC)GPIO.setup(‘SPI1_SCK’, GPIO.IN) # 設置BOARD的23腳位為輸出GPIO.setup(‘SPI1_MISO’, GPIO.OUT) # 設置BOARD的21腳位為輸出

結語

過去大家對于 NVIDIA Jetson 系列產品的深度學習能力是比較熟悉的,但是要將使用價值再擴展到工業場景的時候,也必須對這個 40 針引腳的用法有足夠的掌握。

本文將大部分困擾初學者的問題進行較更有邏輯的梳理,日后只要大家能弄清楚 SFIO 與 GPIO 之間的差異、Jetson-IO 與 Jetson.GPIO 的不同,以及 GPIO 四種編碼模式的對應腳位如何查找,其他的問題就是透過代碼去熟練這些調用,也不必在乎是用 Python 庫還是 C 語言庫了。

原文標題:NVIDIA Jetson Nano 2GB 系列文章(43):Jetson的40針引腳

文章出處:【微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。

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

    關注

    14

    文章

    4999

    瀏覽量

    103224
  • 代碼
    +關注

    關注

    30

    文章

    4798

    瀏覽量

    68714
  • GPIO
    +關注

    關注

    16

    文章

    1205

    瀏覽量

    52164

原文標題:NVIDIA Jetson Nano 2GB 系列文章(43):Jetson的40針引腳

文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MSP430F4250的四種模式分別是在什么情況下使用呢?

    我是一名初學者,看了書知道MSP430F4250的AD轉換模式四種,我想知道這四種轉化模式有什么區別,分別應該在什么情況下使用。各位高手能否為我解答哈,在下不勝感激。因為是初學者,
    發表于 01-06 06:16

    DAC61404 SPI應該是四種模式中的哪種?

    DAC61404 SPI應該是四種模式中的哪種?
    發表于 11-27 06:18

    gpio接口是干什么的 gpio四種輸入輸出模式怎么選擇

    GPIO接口的作用 GPIO(General Purpose Input/Output)接口,即通用輸入輸出接口,是一用于連接和控制各種外部設備的數字接口。它由一組引腳組成,可以通過編程的方式控制
    的頭像 發表于 10-06 16:07 ?3242次閱讀

    雙軸測徑儀的四種樣式!

    儀設計了四種外觀樣式。 45°角布置的開口測徑儀 這個樣式的雙軸測徑儀是目前大部分產線所使用的,樣式簡單大氣。用于外徑及橢圓度尺寸的檢測。 45°角布置的閉口測徑儀 該樣式的雙軸測徑儀將上面的開口閉合
    發表于 08-27 17:42

    濾波電路的四種類型是什么

    濾波電路是電子電路中非常重要的一部分,它主要用于對信號進行頻率選擇,即允許特定頻率范圍內的信號通過,而阻止其他頻率的信號。濾波電路根據其特性可以分為四種基本類型:低通濾波器(Low-Pass
    的頭像 發表于 08-08 16:25 ?3021次閱讀

    簡述四種基本觸發器及其功能

    在數字電路設計中,觸發器是一基本且重要的存儲元件,用于存儲二進制信息(即0和1)。根據功能和應用場景的不同,觸發器可以分為多種類型,其中四種基本觸發器包括RS觸發器、JK觸發器、D觸發器和T觸發器。以下是對這四種基本觸發器及其
    的頭像 發表于 07-27 14:59 ?1.1w次閱讀

    關于溫補晶振的四種輸出模式詳解

    TCXO(溫度補償晶振)作為一高精度時鐘源,其獨特的溫度補償技術使其在各種環境條件下都能保持穩定的頻率輸出。華昕晶振將詳細介紹TCXO的四種主要輸出模式:ClippedSineWave輸出
    的頭像 發表于 07-27 08:34 ?547次閱讀
    關于溫補晶振的<b class='flag-5'>四種</b>輸出<b class='flag-5'>模式</b>詳解

    STM32 GPIO模式及工作原理詳解

    圍設備(像控制led亮滅,按鍵控制,軟件模擬IIC等)直觀又簡單的控制。 GPIO的8模式 ?1. 輸入模式: ??(1)上拉輸入模式
    的頭像 發表于 07-22 09:32 ?6550次閱讀
    STM32 <b class='flag-5'>GPIO</b>八<b class='flag-5'>種</b><b class='flag-5'>模式</b>及工作原理詳解

    介紹MCUboot支持的四種升級模式(2)

    介紹MCUboot支持的四種升級模式,分別是Overwrite、Swap、Direct XIP和加載到RAM中執行。由于FSP不支持第四種——加載到RAM中執行,因為我們重點介紹前三
    的頭像 發表于 06-13 10:56 ?963次閱讀
    介紹MCUboot支持的<b class='flag-5'>四種</b>升級<b class='flag-5'>模式</b>(2)

    電氣設備的狀態有哪四種

    電氣設備的狀態可以分為四種:正常狀態、異常狀態、故障狀態和緊急狀態。這四種狀態涵蓋了電氣設備在運行過程中可能遇到的各種情況。本文將詳細分析這四種狀態的特點、原因、影響以及相應的處理措施。 一、正常
    的頭像 發表于 06-05 16:47 ?4631次閱讀

    快速搞懂GPIO控制器的六模式

    的六常見模式,我們特地整理了這篇文章。。快速搞懂GPIO控制器的六模式我們拿STM32芯片舉例,下圖是
    的頭像 發表于 05-18 08:04 ?1542次閱讀
    快速搞懂<b class='flag-5'>GPIO</b>控制器的六<b class='flag-5'>種</b><b class='flag-5'>模式</b>

    如何理解IGBT的四種SOA?

    如何理解IGBT的四種SOA? IGBT的四種SOA表示了IGBT器件在不同工作狀態下的安全操作區域。這四種SOA是:Continuous SOA、Limited SOA、Pulse SOA
    的頭像 發表于 02-18 11:04 ?1129次閱讀

    A/D轉換的四種誤差

    針對A/D轉換中可能出現的誤差,主要分為以下四種情況,漂移誤差、線型比例誤差、非線性誤差、非單調性誤差。還有那些能夠引起AD轉換出現比較大的誤差類別? 先說AD轉換是怎么取值的,假設輸入信號0-3V
    發表于 01-30 14:19

    淺析電子負載常見的的四種工作模式

    淺析電子負載常見的的四種工作模式 電子負載是電子設備的一,用于模擬負載并測試電源的性能。它在電子行業和電力領域有廣泛的應用。電子負載常見的四種工作
    的頭像 發表于 01-22 13:43 ?2912次閱讀

    電子負載的四種功能實現原理

    電子負載的四種功能實現原理? 電子負載是一用于模擬負載、測試和評估電源、電池和其他電子設備的工具。它可以模擬電子負載的特性,并能夠提供不同的負載條件。電子負載主要通過四種功能來實現:恒流負載、恒阻
    的頭像 發表于 01-18 14:13 ?2813次閱讀
    主站蜘蛛池模板: 被同桌摸出水来了好爽的视频| 一本久道久久综合狠狠躁AV| 亚洲 欧美 制服 校园 动漫| RUNAWAY韩国动漫免费网| 久久这里只精品热在线99| 亚洲一卡二卡三卡四卡无卡麻豆| 国产女合集第六部| 婷婷久久无码欧美人妻| 国产ZZJJZZJJ视频全免费| 肉动漫3D卡通无修在线播放| yellow日本高清在线| 亚洲一日韩欧美中文字幕在线| 高H高肉强J短篇校园| 肉小说高h| 国产成人精品精品欧美| 挺进绝色老师的紧窄小肉六| 国产精选视频在线观看| 亚洲高清免费在线观看| 九九精品视频一区二区三区| 伊人久久大香线蕉综合高清| 捆绑白丝粉色JK震动捧喷白浆 | 99久久久久精品国产免费麻豆| 国产AV精品一区二区三区漫画| 搡女人免费免费视频观看| 国产99r视频精品免费观看| 偷窥wc美女毛茸茸视频| 国产亚洲免费观看| 中国农村妇女真实BBWBBWBBW| 免费看黄色一级| 纯肉小黄文高H| 亚洲精品不卡在线| 两个人的视频免费| 成人亚洲视频在线观看| 亚洲黄色在线观看| 猫咪www958ii| 国产成人在线视频| 在线观看国产小视频| 秋霞在线看片无码免费| 国产无线乱码一区二三区| 最好看中文字幕国语| 视频成人永久免费下载|