Jetson Nano 配置40引脚扩展接头

配置40引脚扩展接头

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

每个Jetson开发套件均包含40针扩展插头。许多引脚可以用作GPIO或“特殊功能IO口(SFIO)”,例如I2C,I2S等。40引脚接头连接器使您可以将Jetson开发人员工具包连接到现成的Raspberry Pi HAT(Hardware Attached on Top),例如Seeed Grove模块,SparkFun Qwiic产品等。

烧录系统时,Jetson开发套件上所有I / O的默认配置写入设备中。要更改L4T 32.3之前的40引脚扩展插头的引脚配置,您必须使用Pinmux电子表格为相应的平台更新引脚配置,然后将新配置烧录到开发者套件中。尽管这可能是更新生产系统的适当方法,但开发时仍需要一种更方便的方法来测试不同的引脚配置。

从L4T 32.3版开始,NVIDIA提供了Jetson-IO工具来简化40针扩展插头的I / O配置。Jetson‑IO是基于Python的工具,可在开发人员工具包上运行并修改Device Tree Blob(DTB)固件,以便开发套件重新启动后使40针插头新配置生效。

启动Jetson‑IO

要启动Jetson-IO,请在开发人员工具包上输入以下命令:

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

注意
L4T版本32.3.1中的一个已知问题导致启动Jetson-IO时发生以下错误:
$ 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'之间有一个空格,此命令实际上是在当前每个文件夹下创建__init__.py文件,以使对应的pythen文件成为一个包
# 当前版本Jetson nano运行时会闪退,实际错误为:RuntimeError: No DTB found for NVIDIA Jetson Nano Developer Kit! 
修复方法如下:
$ sudo mkdir /boot/dtb
$ sudo cp -v /boot/tegra210-p3448-0000-p3449-0000-[ab]0[012].dtb /boot/dtb/

主屏幕

启动Jetson‑IO时,将显示以下屏幕。此时主屏幕显示40针接头当前的配置,并为您提供两个用于配置I / O的选项:

  • 为Jetson配置兼容硬件(Configure Jetson for compatible hardware):使您可以从可附加到40针扩展接头连接器的硬件模块的配置列表中进行选择。

  • 配置40针扩展头(Configure 40‑pin expansion header):显示一个屏幕(在下方),您可以在其中指定要在40针扩展头上启用的功能。

兼容硬件屏幕

当您选择“配置兼容硬件(configure for compatible hardware)”选项时,Jetson‑IO将显示一些硬件模块的配置列表。

当前有两个硬件模块可供配置:

  • Adafruit SPH0645LM4H(I2S MEMS麦克风)
  • FE-PI Audio Z V2(SGTL5000 I2S音频编解码器)

选择配置后,Jetson-IO返回主屏幕,主屏幕显示为针对该配置更新后的40针扩展接头的图。

您可以选择以下操作:

  • 保存并重新启动以重新配置引脚(Save and reboot to reconfigure pins):通过为配置应用设备树覆盖来创建新的DTB。然后,它将更新用于引导Linux的配置文件( /boot/extlinux/extlinux.conf)并重新引导开发人员工具包。

请注意,在更新配置文件之后,您仍然可以将开发人员工具包引导至先前的配置,因为Jetson ‑IO 通过为新配置添加新条目来更新extlinux.conf。先前的配置仍在文件中。引导目标时,引导加载程序使您可以选择配置(或文件中定义的任何其他配置)。

  • 保存并退出而不重新引导(Save and exit without rebooting):创建一个新的DTB并更新 extlinux.conf,其方式与“保存并重新引导”相同,但不重新引导开发人员工具包。您可以通过选择一次重新启动来应用新配置。

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

  • 退出(Exit):终止Jetson‑IO,而不进行任何更改。

40引脚扩展标题屏幕

当您在主屏幕上选择“配置40针扩展头”选项时,Jetson-IO将显示40针头I / O支持的特殊功能列表。它在括号中显示了与功能相关的引脚。

例如,在NVIDIA ®杰特森™纳米开发工具包,杰特森-IO显示的功能列表如下。

image

有关支持的功能的更多详细信息,请参阅开发人员套件中的Jetson SoC 技术参考手册。

您可以根据需要选择或取消选择功能。

要接受所选的功能集,请选择“返回”选项。Jetson‑IO返回主屏幕。它会重新显示在“ 兼容硬件屏幕 ”之后显示的主屏幕,并附加一个条目:

  • 导出为设备树覆盖图:将40针扩展头的配置导出为新的设备树覆盖图。

命令行界面

如果您希望从命令行而不是从菜单配置40针扩展头,NVIDIA提供了一组命令行工具,它们提供相同的功能。以下各节介绍了这些实用程序。

按引脚名称查看40引脚接头连接器配置

  • 名称
    config-by-pin.py-显示40针扩展头的配置

  • 概要

config-by-pin.py [选项]

  • 描述
    显示40针扩展接头连接器的当前配置。以下选项指定要显示的配置。如果未使用任何选项,则显示整个配置。

  • -h,--help
    显示帮助信息并退出。

  • -p,--pin = NUM​​BER
    显示由NUMBER指定的引脚的当前配置,该配置必须在1到40之间。

  • 例子

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

通过特殊功能配置40针接头连接器

  • 名称
    config-by-function.py-为40针扩展头配置I / O功能

  • 概要

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

  • 描述
    显示和配置40针扩展头上可用的I / O功能。

  • -h,--help
    显示帮助信息并退出。

  • -l, --list={all,enabled}
    all:全部列出了40针扩展接头连接器支持的所有功能。enabled: 仅列出当前已启用的功能。

  • -o, --out={dtb,dtbo}
    为提供的功能列表创建一个新的DTB或设备树覆盖(DTBO)。如果该命令创建了一个新的DTB文件,则将使用新选项更新Linux引导配置文件(/boot/extlinux/extlinux.conf)以使用该DTB进行引导。

例子

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

通过硬件模块配置40针接头连接器

  • 名称
    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。请注意,这将为硬件模块生成一个新的DTB文件,并使用新选项更新Linux引导配置文件/boot/extlinux/extlinux.conf以使用该DTB进行引导。

-l,--list

显示可用硬件模块配置的列表。

例子

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

添加对自定义硬件的支持

您可以通过为硬件模块创建设备树覆盖(Device Tree overlay)来使用Jetson‑IO支持自定义硬件模块。以下各节描述了此过程。

设备树覆盖(Device Tree Overlays)

要添加对自定义硬件的支持到Jetson‑IO,您必须了解Jetson‑IO如何管理附加硬件。对硬件模块的支持由设备树覆盖文件(.dtbo文件)处理。

硬件模块的设备树覆盖必须定义:

  • 一个覆盖名称属性overlay-name,用于指定硬件模块的名称

  • 兼容属性compatible,指示Jetson模块和覆盖支撑件,其组合

  • 40针扩展接头上需要的特殊功能IO(如果有)

  • 模块上任何设备的节点和/或属性,例如,外部集成电路,例如音频编解码器

该叠加名称属性必须是唯一的名称,从别人的覆盖区别。该兼容属性必须有一个或多个以下的,这取决于Jetson平台的支持。

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

用户可以通过输入以下命令来获取适用于其Jetson平台的正确兼容字符串。如果您有Jetson Nano开发人员工具包,此命令还将标识PCB版本。

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

例如,请考虑FE-PI Audio Z V2模块。目标的/ boot目录中是名称与模式匹配的覆盖文件:

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

您可以使用fdtdump实用工具检查覆盖文件的内容,并查看覆盖名称(overlay-name)和兼容属性(compatible)。例如,在Jetson Nano开发人员工具包上,您可以通过输入以下命令来显示这些属性:

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

创建一个简单的设备树覆盖层

要创建简单的设备树覆盖图以为Jetson Nano(带有A02载板和A02模块)开发人员工具包添加新的自定义属性,请在目标平台上创建一个名为my-overlay.dts的文件,内容如下:

/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

将新的覆盖文件复制到/ boot目录之后,Jetson‑IO会找到该覆盖文件并允许您应用它:

$ 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针接头连接器创建自定义设备覆盖层

如果要为连接到40针扩展接头连接器的自定义硬件模块创建覆盖文件,则最简单的方法是使用Jetson-IO根据需要配置40针接头连接器并将配置导出为覆盖。您可以使用面向菜单的Jetson-IO脚本或关联的·config-by -...·命令行工具来执行此操作。

例如,要为启用I2S接口的Jetson Nano(A02)创建覆盖,请输入以下命令:

$ 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.

然后,您可以通过输入此命令将覆盖图转换为设备树源文件。

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

您可以根据需要为定制硬件修改生成的设备树源,并添加硬件模块所需的任何其他节点和/或属性。然后,您可以重新编译设备树源并将其放置在/ boot /目录中,以供Jetson‑IO使用:

$ dtc -O dtb -o my-overlay.dtbo -@ my-overlay.dts
$ sudo cp my-overlay.dtbo /boot
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,951评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,606评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,601评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,478评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,565评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,587评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,590评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,337评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,785评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,096评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,273评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,935评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,578评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,199评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,440评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,163评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,133评论 2 352

推荐阅读更多精彩内容