Jetson Nano 配置40引腳擴(kuò)展接頭

配置40引腳擴(kuò)展接頭

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fhw_setup_jetson_io.html%23

每個(gè)Jetson開(kāi)發(fā)套件均包含40針擴(kuò)展插頭烦粒。許多引腳可以用作GPIO或“特殊功能IO口(SFIO)”休溶,例如I2C,I2S等扰她。40引腳接頭連接器使您可以將Jetson開(kāi)發(fā)人員工具包連接到現(xiàn)成的Raspberry Pi HAT(Hardware Attached on Top)兽掰,例如Seeed Grove模塊,SparkFun Qwiic產(chǎn)品等徒役。

燒錄系統(tǒng)時(shí)孽尽,Jetson開(kāi)發(fā)套件上所有I / O的默認(rèn)配置寫(xiě)入設(shè)備中。要更改L4T 32.3之前的40引腳擴(kuò)展插頭的引腳配置忧勿,您必須使用Pinmux電子表格為相應(yīng)的平臺(tái)更新引腳配置杉女,然后將新配置燒錄到開(kāi)發(fā)者套件中。盡管這可能是更新生產(chǎn)系統(tǒng)的適當(dāng)方法鸳吸,但開(kāi)發(fā)時(shí)仍需要一種更方便的方法來(lái)測(cè)試不同的引腳配置熏挎。

從L4T 32.3版開(kāi)始,NVIDIA提供了Jetson-IO工具來(lái)簡(jiǎn)化40針擴(kuò)展插頭的I / O配置晌砾。Jetson?IO是基于Python的工具坎拐,可在開(kāi)發(fā)人員工具包上運(yùn)行并修改Device Tree Blob(DTB)固件,以便開(kāi)發(fā)套件重新啟動(dòng)后使40針插頭新配置生效贡羔。

啟動(dòng)Jetson?IO

要啟動(dòng)Jetson-IO廉白,請(qǐng)?jiān)陂_(kāi)發(fā)人員工具包上輸入以下命令:

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

注意
L4T版本32.3.1中的一個(gè)已知問(wèn)題導(dǎo)致啟動(dòng)Jetson-IO時(shí)發(fā)生以下錯(cuò)誤:
$ sudo /opt/nvidia/jetson-io/jetson-io.py
Traceback (most recent call last):
File "/opt/nvidia/jetson-io/jetson-io.py", line 25, in <module>
from Jetson import board
ImportError: cannot import name 'board'
To resolve this issue, enter the following command:
$ sudo find /opt/nvidia/jetson-io/ -mindepth 1 -maxdepth 1 -type d -exec touch {}/__init__.py \;
# 需要注意最后的'\;'和'__init__.py'之間有一個(gè)空格个初,此命令實(shí)際上是在當(dāng)前每個(gè)文件夾下創(chuàng)建__init__.py文件乖寒,以使對(duì)應(yīng)的pythen文件成為一個(gè)包
# 當(dāng)前版本Jetson nano運(yùn)行時(shí)會(huì)閃退,實(shí)際錯(cuò)誤為:RuntimeError: No DTB found for NVIDIA Jetson Nano Developer Kit! 
修復(fù)方法如下:
$ sudo mkdir /boot/dtb
$ sudo cp -v /boot/tegra210-p3448-0000-p3449-0000-[ab]0[012].dtb /boot/dtb/

主屏幕

啟動(dòng)Jetson?IO時(shí)院溺,將顯示以下屏幕楣嘁。此時(shí)主屏幕顯示40針接頭當(dāng)前的配置,并為您提供兩個(gè)用于配置I / O的選項(xiàng):

  • 為Jetson配置兼容硬件(Configure Jetson for compatible hardware):使您可以從可附加到40針擴(kuò)展接頭連接器的硬件模塊的配置列表中進(jìn)行選擇。

  • 配置40針擴(kuò)展頭(Configure 40?pin expansion header):顯示一個(gè)屏幕(在下方)逐虚,您可以在其中指定要在40針擴(kuò)展頭上啟用的功能聋溜。

兼容硬件屏幕

當(dāng)您選擇“配置兼容硬件(configure for compatible hardware)”選項(xiàng)時(shí),Jetson?IO將顯示一些硬件模塊的配置列表叭爱。

當(dāng)前有兩個(gè)硬件模塊可供配置:

  • Adafruit SPH0645LM4H(I2S MEMS麥克風(fēng))
  • FE-PI Audio Z V2(SGTL5000 I2S音頻編解碼器)

選擇配置后撮躁,Jetson-IO返回主屏幕,主屏幕顯示為針對(duì)該配置更新后的40針擴(kuò)展接頭的圖买雾。

您可以選擇以下操作:

  • 保存并重新啟動(dòng)以重新配置引腳(Save and reboot to reconfigure pins):通過(guò)為配置應(yīng)用設(shè)備樹(shù)覆蓋來(lái)創(chuàng)建新的DTB衔沼。然后苔埋,它將更新用于引導(dǎo)Linux的配置文件( /boot/extlinux/extlinux.conf)并重新引導(dǎo)開(kāi)發(fā)人員工具包。

請(qǐng)注意,在更新配置文件之后瞧哟,您仍然可以將開(kāi)發(fā)人員工具包引導(dǎo)至先前的配置,因?yàn)镴etson ?IO 通過(guò)為新配置添加新條目來(lái)更新extlinux.conf毛肋。先前的配置仍在文件中梨水。引導(dǎo)目標(biāo)時(shí),引導(dǎo)加載程序使您可以選擇配置(或文件中定義的任何其他配置)僚饭。

  • 保存并退出而不重新引導(dǎo)(Save and exit without rebooting):創(chuàng)建一個(gè)新的DTB并更新 extlinux.conf震叮,其方式與“保存并重新引導(dǎo)”相同,但不重新引導(dǎo)開(kāi)發(fā)人員工具包浪慌。您可以通過(guò)選擇一次重新啟動(dòng)來(lái)應(yīng)用新配置冤荆。

  • 放棄引腳更改(Discard pin changes):放棄更改并返回主屏幕。

  • 退出(Exit):終止Jetson?IO权纤,而不進(jìn)行任何更改钓简。

40引腳擴(kuò)展標(biāo)題屏幕

當(dāng)您在主屏幕上選擇“配置40針擴(kuò)展頭”選項(xiàng)時(shí),Jetson-IO將顯示40針頭I / O支持的特殊功能列表汹想。它在括號(hào)中顯示了與功能相關(guān)的引腳外邓。

例如,在NVIDIA ?杰特森?納米開(kāi)發(fā)工具包古掏,杰特森-IO顯示的功能列表如下损话。

image

有關(guān)支持的功能的更多詳細(xì)信息,請(qǐng)參閱開(kāi)發(fā)人員套件中的Jetson SoC 技術(shù)參考手冊(cè)槽唾。

您可以根據(jù)需要選擇或取消選擇功能丧枪。

要接受所選的功能集,請(qǐng)選擇“返回”選項(xiàng)庞萍。Jetson?IO返回主屏幕拧烦。它會(huì)重新顯示在“ 兼容硬件屏幕 ”之后顯示的主屏幕,并附加一個(gè)條目:

  • 導(dǎo)出為設(shè)備樹(shù)覆蓋圖:將40針擴(kuò)展頭的配置導(dǎo)出為新的設(shè)備樹(shù)覆蓋圖钝计。

命令行界面

如果您希望從命令行而不是從菜單配置40針擴(kuò)展頭恋博,NVIDIA提供了一組命令行工具齐佳,它們提供相同的功能。以下各節(jié)介紹了這些實(shí)用程序债沮。

按引腳名稱(chēng)查看40引腳接頭連接器配置

  • 名稱(chēng)
    config-by-pin.py-顯示40針擴(kuò)展頭的配置

  • 概要

config-by-pin.py [選項(xiàng)]

  • 描述
    顯示40針擴(kuò)展接頭連接器的當(dāng)前配置炼吴。以下選項(xiàng)指定要顯示的配置。如果未使用任何選項(xiàng)疫衩,則顯示整個(gè)配置硅蹦。

  • -h,--help
    顯示幫助信息并退出闷煤。

  • -p提针,--pin = NUM??BER
    顯示由NUMBER指定的引腳的當(dāng)前配置,該配置必須在1到40之間曹傀。

  • 例子

# 顯示全部引腳的功能
sudo /opt/nvidia/jetson-io/config-by-pin.py
# 顯示指定引腳的功能
sudo /opt/nvidia/jetson-io/config-by-pin.py -p 5

通過(guò)特殊功能配置40針接頭連接器

  • 名稱(chēng)
    config-by-function.py-為40針擴(kuò)展頭配置I / O功能

  • 概要

config-by-function.py [-l {all辐脖,enabled}]
config-by-function.py [-o {dtb,dtbo} function1 function2 ...]

  • 描述
    顯示和配置40針擴(kuò)展頭上可用的I / O功能皆愉。

  • -h嗜价,--help
    顯示幫助信息并退出。

  • -l, --list={all,enabled}
    all:全部列出了40針擴(kuò)展接頭連接器支持的所有功能幕庐。enabled: 僅列出當(dāng)前已啟用的功能久锥。

  • -o, --out={dtb,dtbo}
    為提供的功能列表創(chuàng)建一個(gè)新的DTB或設(shè)備樹(shù)覆蓋(DTBO)。如果該命令創(chuàng)建了一個(gè)新的DTB文件异剥,則將使用新選項(xiàng)更新Linux引導(dǎo)配置文件(/boot/extlinux/extlinux.conf)以使用該DTB進(jìn)行引導(dǎo)瑟由。

例子

sudo /opt/nvidia/jetson-io/config-by-function.py -l all
sudo /opt/nvidia/jetson-io/config-by-function.py -l enabled
sudo /opt/nvidia/jetson-io/config-by-function.py -o dtb spi1
sudo /opt/nvidia/jetson-io/config-by-function.py -o dtbo spi1

通過(guò)硬件模塊配置40針接頭連接器

  • 名稱(chēng)
    config-by-hardware.py-為硬件模塊配置Jetson

  • 概要

config-by-hardware.py [-l]
config-by-hardware.py [-n NAME]

  • 描述
    顯示Jetson支持的硬件模塊配置列表,并為給定的硬件模塊配置Jetson冤寿。

-h歹苦,--help
顯示用法消息并退出。

-n督怜,--name = NAME
為NAME指定的硬件模塊配置Jetson殴瘦。請(qǐng)注意,這將為硬件模塊生成一個(gè)新的DTB文件号杠,并使用新選項(xiàng)更新Linux引導(dǎo)配置文件/boot/extlinux/extlinux.conf以使用該DTB進(jìn)行引導(dǎo)蚪腋。

-l,--list

顯示可用硬件模塊配置的列表姨蟋。

例子

sudo /opt/nvidia/jetson-io/config-by-hardware.py -l
sudo /opt/nvidia/jetson-io/config-by-hardware.py -n "Adafruit SPH0645LM4H"

添加對(duì)自定義硬件的支持

您可以通過(guò)為硬件模塊創(chuàng)建設(shè)備樹(shù)覆蓋(Device Tree overlay)來(lái)使用Jetson?IO支持自定義硬件模塊屉凯。以下各節(jié)描述了此過(guò)程。

設(shè)備樹(shù)覆蓋(Device Tree Overlays)

要添加對(duì)自定義硬件的支持到Jetson?IO眼溶,您必須了解Jetson?IO如何管理附加硬件悠砚。對(duì)硬件模塊的支持由設(shè)備樹(shù)覆蓋文件(.dtbo文件)處理。

硬件模塊的設(shè)備樹(shù)覆蓋必須定義:

  • 一個(gè)覆蓋名稱(chēng)屬性overlay-name偷仿,用于指定硬件模塊的名稱(chēng)

  • 兼容屬性compatible哩簿,指示Jetson模塊和覆蓋支撐件,其組合

  • 40針擴(kuò)展接頭上需要的特殊功能IO(如果有)

  • 模塊上任何設(shè)備的節(jié)點(diǎn)和/或?qū)傩栽途玻缃诎瘢獠考呻娐罚缫纛l編解碼器

該疊加名稱(chēng)屬性必須是唯一的名稱(chēng)别智,從別人的覆蓋區(qū)別宗苍。該兼容屬性必須有一個(gè)或多個(gè)以下的,這取決于Jetson平臺(tái)的支持薄榛。

Jetson Platform Compatible String
Jetson Nano (A02) nvidia,p3449-0000-a02+p3448-0000-a02
Jetson Nano (B0x) nvidia,p3449-0000-b00+p3448-0000-b00
Jetson TX2 nvidia,p2597-0000+p3310-1000
Jetson AGX Xavier nvidia,p2822-0000+p2888-0001
Jetson TX1 nvidia,p2597-0000+p2180-1000

用戶(hù)可以通過(guò)輸入以下命令來(lái)獲取適用于其Jetson平臺(tái)的正確兼容字符串讳窟。如果您有Jetson Nano開(kāi)發(fā)人員工具包,此命令還將標(biāo)識(shí)PCB版本敞恋。

$ cat /sys/firmware/devicetree/base/compatible

例如丽啡,請(qǐng)考慮FE-PI Audio Z V2模塊。目標(biāo)的/ boot目錄中是名稱(chēng)與模式匹配的覆蓋文件:

  • -fe-pi-audio-z-v2.dtbo

您可以使用fdtdump實(shí)用工具檢查覆蓋文件的內(nèi)容硬猫,并查看覆蓋名稱(chēng)(overlay-name)和兼容屬性(compatible)补箍。例如,在Jetson Nano開(kāi)發(fā)人員工具包上啸蜜,您可以通過(guò)輸入以下命令來(lái)顯示這些屬性:

$ fdtdump /boot/tegra210-p3448-0000-p3449-0000-a02-fe-pi-audio-z-v2.dtbo

創(chuàng)建一個(gè)簡(jiǎn)單的設(shè)備樹(shù)覆蓋層

要?jiǎng)?chuàng)建簡(jiǎn)單的設(shè)備樹(shù)覆蓋圖以為Jetson Nano(帶有A02載板和A02模塊)開(kāi)發(fā)人員工具包添加新的自定義屬性坑雅,請(qǐng)?jiān)谀繕?biāo)平臺(tái)上創(chuàng)建一個(gè)名為my-overlay.dts的文件,內(nèi)容如下:

/dts-v1/;
/plugin/;
 
/ {
    overlay-name = "My Jetson Overlay";
    compatible = "nvidia,p3449-0000-a02+p3448-0000-a02";
 
    fragment@0 {
        target-path = "/";
        __overlay__ {
            my-custom-property = "This Is My Overlay";
        };
    };
};

輸入以下命令以將DTS源文件編譯為覆蓋文件:

$ dtc -O dtb -o my-overlay.dtbo -@ my-overlay.dts

將新的覆蓋文件復(fù)制到/ boot目錄之后衬横,Jetson?IO會(huì)找到該覆蓋文件并允許您應(yīng)用它:

$ sudo cp my-overlay.dtbo /boot
$ sudo /opt/nvidia/jetson-io/config-by-hardware.py -l
The following hardware configurations are available:
1. Adafruit SPH0645LM4H
2. FE-PI Audio Z V2
3. My Jetson Overlay
$ sudo /opt/nvidia/jetson-io/config-by-hardware.py -n "My Jetson Overlay"

為40針接頭連接器創(chuàng)建自定義設(shè)備覆蓋層

如果要為連接到40針擴(kuò)展接頭連接器的自定義硬件模塊創(chuàng)建覆蓋文件裹粤,則最簡(jiǎn)單的方法是使用Jetson-IO根據(jù)需要配置40針接頭連接器并將配置導(dǎo)出為覆蓋。您可以使用面向菜單的Jetson-IO腳本或關(guān)聯(lián)的·config-by -...·命令行工具來(lái)執(zhí)行此操作蜂林。

例如遥诉,要為啟用I2S接口的Jetson Nano(A02)創(chuàng)建覆蓋,請(qǐng)輸入以下命令:

$ sudo /opt/nvidia/jetson-io/config-by-function.py -o dtbo i2s4
# Configuration saved to /boot/tegra210-p3448-0000-p3449-0000-a02-user-custom.dtbo.

然后噪叙,您可以通過(guò)輸入此命令將覆蓋圖轉(zhuǎn)換為設(shè)備樹(shù)源文件突那。

$ dtc -I dtb -O dts -o my-overlay.dts /boot/tegra210-p3448-0000-p3449-0000-a02-user-custom.dtbo

您可以根據(jù)需要為定制硬件修改生成的設(shè)備樹(shù)源,并添加硬件模塊所需的任何其他節(jié)點(diǎn)和/或?qū)傩怨姑小H缓筱的眩梢灾匦戮幾g設(shè)備樹(shù)源并將其放置在/ boot /目錄中,以供Jetson?IO使用:

$ dtc -O dtb -o my-overlay.dtbo -@ my-overlay.dts
$ sudo cp my-overlay.dtbo /boot
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末惫霸,一起剝皮案震驚了整個(gè)濱河市猫缭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌壹店,老刑警劉巖猜丹,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異硅卢,居然都是意外死亡射窒,警方通過(guò)查閱死者的電腦和手機(jī)藏杖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)脉顿,“玉大人蝌麸,你說(shuō)我怎么就攤上這事“保” “怎么了来吩?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蔽莱。 經(jīng)常有香客問(wèn)我弟疆,道長(zhǎng),這世上最難降的妖魔是什么盗冷? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任怠苔,我火速辦了婚禮,結(jié)果婚禮上仪糖,老公的妹妹穿的比我還像新娘嘀略。我一直安慰自己,他們只是感情好乓诽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開(kāi)白布帜羊。 她就那樣靜靜地躺著,像睡著了一般鸠天。 火紅的嫁衣襯著肌膚如雪讼育。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,287評(píng)論 1 301
  • 那天稠集,我揣著相機(jī)與錄音奶段,去河邊找鬼。 笑死剥纷,一個(gè)胖子當(dāng)著我的面吹牛痹籍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播晦鞋,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蹲缠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了悠垛?” 一聲冷哼從身側(cè)響起线定,我...
    開(kāi)封第一講書(shū)人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎确买,沒(méi)想到半個(gè)月后斤讥,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡湾趾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年芭商,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了派草。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡铛楣,死狀恐怖近迁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蛉艾,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布衷敌,位于F島的核電站勿侯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏缴罗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一面氓、第九天 我趴在偏房一處隱蔽的房頂上張望兵钮。 院中可真熱鬧,春花似錦舌界、人聲如沸掘譬。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)葱轩。三九已至,卻和暖如春藐握,著一層夾襖步出監(jiān)牢的瞬間靴拱,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工猾普, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留袜炕,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓初家,卻偏偏與公主長(zhǎng)得像偎窘,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子溜在,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容