Nvidia Jetson Xavier CAN总线配置避坑指南:从GPIO设置到开机自启脚本

Nvidia Jetson Xavier 上使用CAN 为了利于回忆,将自己查询到的资料在这里记录一下 资料一:(20条消息) NVIDIA Xavier CAN_weifengdq的专栏-优快云博客 资料二:(19条消息) ROS中启用CAN_YiYeZhiNian的博客-优快云博客 阅读详情

Nvidia Jetson Xavier CAN总线配置避坑指南:从GPIO设置到开机自启脚本

在工业自动化、智能驾驶或者机器人控制这些领域里,稳定可靠的通信是项目的生命线。CAN总线,这个诞生于汽车工业的通信协议,以其高可靠性和实时性,早已成为这些苛刻环境下的首选。Nvidia Jetson Xavier,作为边缘计算领域的明星平台,其强大的AI算力与内置的CAN控制器结合,为开发者构建智能边缘节点提供了绝佳的基础。然而,从硬件引脚到软件驱动的完整配置链路,并非一路坦途。许多开发者,包括我自己,都曾在这条路上踩过不少坑——寄存器配置的晦涩、驱动加载的时序、自启动脚本的稳定性,每一个环节都可能让CAN接口“沉默不语”。

这篇文章,正是为了让你绕开这些陷阱而写。我不会仅仅重复官方文档的步骤,而是聚焦于那些文档里没有写明、论坛里需要翻找很久的“实战细节”。我们将从最底层的GPIO引脚功能复用开始,一步步打通到系统启动后CAN接口自动就绪的完整流程。无论你是正在为自动驾驶小车搭建通信模块,还是在为工业质检设备集成控制网络,这篇指南都将帮助你高效、稳定地在Jetson Xavier上激活CAN总线,把时间花在更有价值的应用开发上。

1. 理解Jetson Xavier的CAN硬件基础与配置逻辑

在动手敲命令之前,花几分钟理解Jetson Xavier上CAN控制器的硬件布局和软件配置的底层逻辑,能让你在遇到问题时更快地定位根源。Jetson Xavier AGX开发者套件提供了两路独立的CAN控制器,对应can0和can1。但一个关键点是:这些控制器的信号引脚并没有直接连接到外部接口,而是与40针扩展接头上的GPIO引脚复用。

这意味着,默认情况下,这些引脚被配置为普通的GPIO功能。你的第一个任务,就是通过修改SoC内部的引脚复用控制器(Pinmux)的寄存器,将这些引脚的功能从“通用输入输出”切换为“CAN收发”。这里就引出了第一个常见的困惑点:修改Pinmux的两种途径及其取舍。

  • 方法A:通过设备树(Device Tree)或Pinmux配置表刷机。这是最“干净”、最持久的方法,需要修改BSP(板级支持包)的配置文件,然后重新用JetPack刷写系统。对于产品化部署,这是推荐的方式。
  • 方法B:在系统运行时直接读写内存映射的寄存器。这种方法无需重刷系统,通过devmem这样的工具直接修改寄存器值即可生效,但修改会在重启后丢失。

对于大多数正在原型开发或快速验证的开发者,方法B的灵活性和便捷性更具吸引力。本指南也将重点围绕方法B展开,并最终通过系统服务将其“固化”。你需要操作的四个关键寄存器地址和值如下表所示,它们分别对应CAN0和CAN1的收发引脚:

寄存器地址引脚功能写入值对应物理引脚 (40针接头)
0x0c303000CAN0_DIN (接收)0x0000C400Pin 29
0x0c303008CAN0_DOUT (发送)0x0000C458Pin 31
0x0c303010CAN1_DIN (接收)0x0000C400Pin 37
0x0c303018CAN1_DOUT (发送)0x0000C458Pin 33

注意:寄存器地址和值是针对特定JetPack版本和Xavier模块的。虽然目前主流版本通用,但如果未来Nvidia更新了BSP,建议核对最新的技术文档。直接操作寄存器存在风险,务必确保地址和值准确。

理解了“为什么”要写这些寄存器之后,操作本身很简单。首先确保安装了寄存器读写工具(如busybox中的devmem):

sudo apt update
sudo apt install busybox

然后依次执行四条命令完成引脚功能切换:

sudo busybox devmem 0x0c303000 32 0x0000C400
sudo busybox devmem 0x0c303008 32 0x0000C458
sudo busybox devmem 0x0c303010 32 0x0000C400
sudo busybox devmem 0x0c303018 32 0x0000C458

执行后不会有成功提示,但只要没报错,引脚复用配置就已经生效了。这是通往稳定CAN通信的第一步,也是最容易因疏忽而出错的一步。

2. 驱动加载与网络接口配置的实战细节

引脚配置好后,接下来就是让系统内核识别并驱动CAN控制器。Jetson Xavier使用的CAN驱动是mttcan(Multi-Time Triggered CAN),它是Linux内核CAN子系统的一部分。加载驱动听起来就是几条modprobe命令,但这里有几个坑点需要特别注意。

驱动加载的顺序与依赖关系。CAN子系统是模块化设计的,你需要按顺序加载核心模块和具体控制器驱动:

sudo modprobe can      # 加载CAN协议核心模块
sudo modprobe can_raw  # 加载RAW CAN协议模块,用于原始套接字通信
sudo modprobe mttcan   # 加载Jetson Xavier的CAN控制器硬件驱动

如果直接加载mttcan而忽略了前两个,驱动可能会加载失败或出现意想不到的行为。你可以使用lsmod | grep can命令来验证这三个模块是否都已成功加载。

驱动加载成功后,系统会创建出can0和can1两个网络接口,但此时它们还处于“未配置”状态。你需要使用ip link命令来设置CAN总线的参数并启动它。这里就是第二个容易踩坑的地方:参数配置的完整性与兼容性。

很多教程只设置基本的比特率(bitrate),但在实际工业或车载网络中,你可能需要用到CAN FD(灵活数据速率)或者开启错误报告。下面是一个兼顾了经典CAN和CAN FD的配置示例:

# 配置can0,经典CAN模式500Kbps,开启错误报告
sudo ip link set can0 type can bitrate 500000 berr-reporting on

# 配置can0,启用CAN FD,数据段速率2Mbps
sudo ip link set can0 type can bitrate 500000 dbitrate 2000000 berr-reporting on fd on

# 启动can0接口
sudo ip link set up can0

# 对can1进行相同配置
sudo ip link set can1 type can bitrate 500000 dbitrate 2000000 berr-reporting on fd on
sudo ip link set up can1
  • bitrate: 仲裁阶段的波特率,必须与总线上的其他节点一致。
  • dbitrate: CAN FD数据阶段的波特率,仅当fd on时有效。
  • berr-reporting on: 强烈建议开启,它能让接口在总线上出现错误时生成相应的错误帧,对于调试网络问题至关重要。
  • fd on: 启用CAN FD模式。请注意:只有当总线上的所有节点都支持FD时才能开启,否则会导致通信失败。

配置完成后,使用ifconfig can0或ip -details link show can0命令检查接口状态。如果看到UP,RUNNING的标志,并且有RX packets和TX packets的计数器(可能都是0),说明接口已经成功启动。此时,你已经可以在本机使用candump、cansend等工具(来自can-utils包)进行基本的收发测试了。

3. 构建可靠的开机自启动方案

手动测试成功只是第一步,对于任何嵌入式产品或工业设备,上电后自动完成配置是基本要求。由于我们采用了运行时修改寄存器的方法,所以必须创建一个开机自启动脚本,在每次启动时自动执行前述的所有配置步骤。这里的选择很多,但稳定性和鲁棒性是首要考量。

方案一:使用/etc/rc.local(简单但已过时) 这是最直接的方法。创建一个配置脚本,例如/home/nvidia/enable_can.sh,并确保它有执行权限:

#!/bin/bash
# enable_can.sh - 配置Jetson Xavier CAN总线

# 1. 配置GPIO引脚复用为CAN功能
sudo busybox devmem 0x0c303000 32 0x0000C400
sudo busybox devmem 0x0c303008 32 0x0000C458
sudo busybox devmem 0x0c303010 32 0x0000C400
sudo busybox devmem 0x0c303018 32 0x0000C458

# 2. 加载CAN驱动模块
sudo modprobe can
sudo modprobe can_raw
sudo modprobe mttcan

# 等待驱动完全初始化,避免竞态条件
sleep 1

# 3. 配置并启动CAN接口
sudo ip link set can0 type can bitrate 500000 dbitrate 2000000 berr-reporting on fd on
sudo ip link set can1 type can bitrate 500000 dbitrate 2000000 berr-reporting on fd on
sudo ip link set up can0
sudo ip link set up can1

exit 0

然后,在/etc/rc.local文件的exit 0之前加入调用该脚本的命令:

/bin/bash /home/nvidia/enable_can.sh &

提示:&符号让脚本在后台执行,避免阻塞系统启动流程。rc.local本身在大多数现代Linux发行版中已被systemd取代,但在Jetson的L4T系统中通常仍可用。不过,它的执行时机可能偏晚,且对脚本错误的容忍度较低。

方案二:创建systemd服务(推荐的生产环境方案) systemd提供了更强大、更可控的服务管理能力。我们可以创建一个专用的服务单元文件。

  1. 创建服务文件/etc/systemd/system/can-bus.service:
    [Unit]
    Description=Configure CAN Bus on Jetson Xavier
    After=network.target local-fs.target
    Before=network-online.target
    Wants=network-online.target
    
    [Service]
    Type=oneshot
    RemainAfterExit=yes
    ExecStart=/usr/local/bin/enable_can.sh
    StandardOutput=journal
    
    [Install]
    WantedBy=multi-user.target
    
  2. 将之前的脚本内容放到/usr/local/bin/enable_can.sh,并赋予执行权限(sudo chmod +x /usr/local/bin/enable_can.sh)。
  3. 启用并启动服务:
    sudo systemctl daemon-reload
    sudo systemctl enable can-bus.service
    sudo systemctl start can-bus.service
    sudo systemctl status can-bus.service # 检查状态
    

方案三:利用@reboot的cron任务(灵活的用户级方案) 如果你希望以非root用户(如nvidia)的身份来管理这个脚本,或者想更灵活地控制,可以使用cron的@reboot功能。

  1. 编辑当前用户的cron表:crontab -e
  2. 在文件末尾添加一行:
    @reboot /bin/bash /home/nvidia/enable_can.sh > /home/nvidia/can_startup.log 2>&1
    
    这会在每次系统启动时以该用户身份执行脚本,并将输出重定向到日志文件便于排查问题。

无论选择哪种方案,关键是要增加错误处理和状态检查。例如,在脚本中可以先检查/dev/can0设备节点是否存在,或者用ip link show can0检查接口状态,再决定是否执行配置命令,避免重复配置或命令失败导致脚本中止。我自己在项目中更倾向于使用systemd服务,因为它提供了完善的日志(通过journalctl -u can-bus.service查看)和依赖关系管理,更符合工业应用的可靠性要求。

4. 硬件连接、测试与故障排查清单

软件配置妥当后,最后一步是连接物理的CAN收发器模块,并进行端到端的测试。Jetson Xavier的GPIO扩展口引脚排列需要仔细核对,接错线是导致“通信静默”的最常见硬件原因。

硬件连接指南: 你需要一个3.3V供电的CAN收发器模块(如TJA1050、SN65HVD230等)。连接时请参考下表:

Jetson Xavier 40针引脚引脚编号信号名称连接至收发器
Pin 2929CAN0_DIN (RX)收发器的TXD (或CTX) 注意:方向是Xavier收,对应收发器发
Pin 3131CAN0_DOUT (TX)收发器的RXD (或CRX)
Pin 3333CAN1_DOUT (TX)第二个收发器的RXD (或CRX)
Pin 3737CAN1_DIN (RX)第二个收发器的TXD (或CTX)
Pin 1 或 Pin 171/173.3V PWR收发器的VCC
Pin 9 或 Pin 259/25GND收发器的GND

重要提醒:务必确认收发器模块的电压是3.3V,与Jetson GPIO电平匹配。部分模块自带120欧姆终端电阻,如果总线两端已有终端电阻,则需要断开模块上的电阻,避免总线上出现两个并联的终端电阻。

连接好硬件后,可以开始测试。首先安装测试工具:

sudo apt install can-utils

基础回环测试:在单节点上,可以先将can0的TX和RX在收发器端短接(或者使用Linux的虚拟回环模式),进行自发自收测试。

# 设置回环模式并启动(需先down掉接口)
sudo ip link set can0 down
sudo ip link set can0 type can bitrate 500000 loopback on
sudo ip link set up can0

# 在一个终端监听
candump can0

# 在另一个终端发送
cansend can0 123#1122334455667788

如果能在candump终端看到发送的帧,说明软硬件链路基本通畅。

双节点通信测试:将两个Jetson Xavier(或一个Xavier和一个其他CAN设备)通过CAN_H和CAN_L线连接,并确保总线两端各有一个120欧姆终端电阻。在两个设备上分别配置相同的波特率,然后互发数据。

当通信不成功时,可以按照以下清单进行排查:

  1. 引脚复用确认:devmem命令是否执行成功且无报错?重启后是否忘了加入自启动?
  2. 驱动加载确认:lsmod | grep can是否显示了can、can_raw、mttcan?
  3. 接口状态确认:ip -details link show can0显示的状态是UP吗?state是ERROR-ACTIVE吗?
  4. 硬件连接确认:
    • 电源(3.3V和GND)是否接通?用万用表测量。
    • TX/RX线是否接反?(最常见硬件错误)
    • CAN_H和CAN_L是否接对?是否与总线其他节点连接?
    • 终端电阻是否正确?用万用表测量CAN_H与CAN_L之间的电阻,在总线两端各有一个120欧姆电阻时,并联阻值应约为60欧姆。
  5. 总线错误检查:开启berr-reporting后,使用candump时可能会看到错误帧。错误帧是定位物理层问题(如短路、开路、干扰)的宝贵线索。
  6. 系统日志检查:使用dmesg | grep can或journalctl -f查看内核和系统服务日志,寻找驱动加载错误或配置失败的信息。

配置CAN总线的过程就像解一道多层谜题,软件、硬件、配置、时序环环相扣。遵循上述步骤,并仔细核对每一个环节,你就能在Jetson Xavier上建立起稳定、可靠的CAN通信通道,为你的边缘AI应用铺平道路。

在 JETSON 上配置 CAN 总线收发并基于Node.js编写应用DEMO 概述 CAN 总线 是汽车电子行业常用的通信协议. Nvidia 推出的边缘 AI 推理设备 JETSON TX2 / AGX Xavier 两款开发板支持 CAN 总线通信. 这里以 AGX Xavier 开发者套件 为例, 介绍如何配置实现基本的 CAN 总线数据收发, 并使用 Node.js 编写了基本的 CAN 通信应用 示例. 在 JETSON 上实现 CAN 通信应用的步骤大致是: 安装依赖项 配置寄存器 设置 CAN 总线参数 打开 CAN 总线端口 建立 Socket 连接 收发数据 其 阅读详情

相关推荐

在 Nvidia Jetson Xavier 开发者套件上启用 CAN 总线

本文为本人调试 Xavier 时遇到的,演示了如何开启 Nvidia Jetson Xavier 开发者套件的 CAN 总线,是一篇非常优秀的指导文章。本文原作者为,由获取其授权并翻译。在 Nvidia Jetson Xavier 开发者套件上,共有 2 路,但是板上。而收发器可以很轻松地连接上 Jetson Xavier 套件。在这个教程中,我将介绍并示范在 Jetson Xavier 启用 CAN 控制器的所有步骤。步骤为,首先配置 GPIO 引脚并启用 CAN 控制器,最后连接 CAN 收发器。

weixin_62589845的博客 1278

Nvidia Jetson Xavier 开发者套件 CAN 总线配置与 GPIO 引脚复用实战

本文详细介绍了在Nvidia Jetson Xavier开发者套件上配置CAN总线的完整实战流程。通过修改GPIO引脚复用寄存器、加载内核模块、配置网络参数及创建自启动脚本,将默认的GPIO功能切换为CAN通信功能,并提供了硬件连接指南与Python/C++应用示例,帮助开发者快速实现边缘AI设备与工业控制网络的稳定连接。

weixin_29168675的博客 411

用3.3V收发器玩转Jetson Xavier双CAN总线:硬件接线图+FD速率调优实战

本文详细介绍了如何在Nvidia Jetson Xavier开发者套件上,通过3.3V CAN收发器硬件连接与软件配置,激活并优化其双路CAN总线功能。内容涵盖硬件选型、防干扰接线图、引脚复用配置、CAN FD高速率调优以及开机自启动脚本编写,为物联网和汽车电子开发者提供了一套完整的实战解决方案。

tequila的博客 986

Nvidia Jetson Xavier CAN总线配置避坑指南:从GPIO引脚到收发器连接全流程

本文详细解析了在Nvidia Jetson Xavier开发者套件上配置CAN总线的完整流程与常见陷阱。重点涵盖GPIO引脚复用配置、使用modprobe加载驱动、设置持久化启动脚本,以及外部CAN收发器的选型与连接等关键步骤,旨在帮助开发者高效完成工业控制与机器人项目的通信接口搭建。

t8u9v0的博客 465

Jetson Xavier 多总线通信实战:从引脚配置到CAN FD的完整驱动指南

本文详细介绍了Jetson Xavier开发板的多总线通信系统配置,包括引脚复用、CAN FD驱动加载及多总线协同工作。通过实战示例,帮助开发者快速掌握从基础配置到高级功能(如CAN FD)的实现,提升在机器人控制和工业应用中的通信效率。

weixin_42713608的博客 314

不止UART:一文汇总Jetson Orin/NX/Xavier的i2c, spi, gpio, can代码实战资源

本文全面解析Jetson Orin/NX/Xavier的i2c、spi、gpio和can接口开发实战,提供经过验证的代码资源和配置要点。涵盖GPIO控制、I2C/SPI通信、CAN总线配置及多接口协同开发策略,帮助开发者高效利用Jetson平台的丰富外设接口。

weixin_29194255的博客 579

NVIDIA Jetson Xavier CAN 开机启动及应用编程

NVIDIA Jetson Xavier CAN 开机启动及应用编程

kevin的博客 1530

保姆级教程:在Ubuntu 22.04上用Conda搞定nuPlan数据集环境(Python 3.9 + PyTorch)

本文提供了一份详细的Ubuntu 22.04环境下使用Conda配置nuPlan自动驾驶数据集的保姆级教程,涵盖Python 3.9安装、Conda环境管理、PyTorch配置及数据集可视化验证等关键步骤,帮助开发者高效搭建开发环境。

weixin_29061997的博客 254

Jetson Xavier/XavierNX/TX2 CANFD 配置使用

目录TX2, Xavier NX, Xavier CAN特性TX2, Xavier NX, Xavier 载板引出位置CAN收发器Xavier CAN 引脚配置Jetson CAN 设置设置开机运行查看连接查看接收发送微信公众号 TX2, Xavier NX, Xavier CAN特性 参考 Jetson_TX2_Series_Module_DataSheet_v1.6.pdf, TX2 CAN特性: 参考 JetsonXavierNXDatasheet_v1.6.pdf, Xavier NX CAN特

weifengdq的专栏 8350

Intouch间接变量(扩展)

间接变量只是Intouch提供给开发者的便捷方式之一,并不是所有情况都一定要使用间接变量,有时候用条件语句或者内存变量的方式也能起到类似的作用。

weixin_41571357的博客 2168

告别Qweb!用ReportBro在Odoo 13-19版本中5步搞定动态报表

本文介绍了如何在Odoo 13-19版本中使用ReportBro替代Qweb快速实现动态报表设计。通过5步集成指南,包括环境准备、前端集成、后端服务搭建等,展示了ReportBro在可视化设计、即时预览和多格式输出(PDF/XLSX)方面的优势,显著提升开发效率和报表灵活性。

mac99的博客 799

Nvidia Jetson AGX Xavier 硬件相关

文章目录前言载板PCB层叠与阻抗699-Pin连接器以太网M.2PCIE40-Pin扩展口风扇接口自动控制接口电源域按键和指示灯音频接口eSATA / USB 3.1 Type A连接器UFS / Micro SD插槽HDMIUSB Type-C 和 Micro-USBI2CSPIUARTCAN官方验证过的电源/扩展卡总结 / 参考微信公众号 前言 几种Jetson的对比: Xavier的接口有...

weifengdq的专栏 2万+

Allegro 给元器件PCB封装库添加3D模型详细步骤

从上面视图可以看到模型跟PCB 库的方向是对了,但是位置偏下,且在PCB封装库后面,我们下面需要做的就是把模型往上移、往前移。首先将元器件3D模型文件放在封装库的目录下(也可以单独新建一个模型库文件夹),注意3D文件必须是Step格式。Transparent: 选择透视的对象,可以是模型、也可以是PCB封装,或者两种都透视。在左边搜索要添加的3D模型的文件(注意是在* 星号前面输入文件名),按回车即可找到。同样的,接下来需要往Y 负方向移,即左移,一边调整一边观察视图。

sinat_15677011的博客 3680

Nvidia Jetson Xavier CAN总线配置避坑指南:从GPIO到modprobe全流程解析

本文详细解析了在Nvidia Jetson Xavier开发者套件上配置CAN总线的完整流程与常见陷阱。内容涵盖从GPIO引脚复用、使用modprobe加载驱动,到构建持久化启动方案的全过程,旨在帮助开发者快速实现稳定可靠的CAN通信,适用于工业控制、机器人及车载网络开发。

weixin_29188997的博客 506

Labview界面多按钮控件的一种处理方法

当界面中存在多个按钮控件时候,此时如果逐个为每个控件添加事件条件则会显得较为麻烦,此处提供了一种对多控件进行批量处理的方法

miracleis的博客 2702

14、深入解析Sigma - Delta调制算法:从原理到应用

本博客深入解析了Sigma-Delta调制(SDM)算法的原理与应用,特别是在Super Audio CD(SA-CD)音频编码中的作用。文章探讨了传统SDM的局限性,并介绍了一系列改进型前瞻式SDM技术,如Trellis Sigma-Delta调制、高效网格Sigma-Delta调制和修剪树Sigma-Delta调制。这些技术通过降低计算复杂度和提升信号转换质量,在音频处理和无损数据压缩领域展现出巨大潜力。此外,博客还对不同SDM技术进行了性能比较,并分析了如何实现最大信噪比(SNR),为未来音频技术和数

tgb34567890的博客 421

基于NVIDIA Jetson AGX Xavier的移动机器人开发(3)——Xavier CAN简介、Socket简介、Socket CAN简介

socket就是套接字的意思,用于描述地址和端口。主机通过IP地址确定通信的网络设备,而端口号用于指定具体的进程TCP(传输控制协议)和UDP(用户数据报协议)是两种常用的网络传输协议,而socket是用于进行网络通信的编程接口TCP是一种面向连接的协议,它提供可靠的数据传输、流式传输和错误检测机制。TCP在通信之前需要建立一个连接,并确保数据的可靠传输,保证数据的顺序和完整性,同时,收发顺序相同,因此基于数据流(流式套接字)。UDP是一种无连接的协议,它提供了一种简单的、不可靠的数据传输机制。

Vehicle_jyw的博客 2571

作物生长模型Oryza V3实战9:控制文件参数详解

control.dat是ORYZA水稻模型的核心配置文件,主要包含三部分:1)基础参数设置与模拟时间定义;2)关键文件路径配置,包括土壤参数文件(soil.sol)、作物参数文件(cultivar.crp)、田间管理文件(manage.exp)及气象数据目录,同时指定输出结果文件(res.dat)和运行日志(model.log);3)可选参数和输出控制选项。该文件通过关联各类输入数据(气象、土壤、品种特性等)和输出结果,实现模型运行的全流程控制,支持参数调整后继续模拟和中断恢复功能。

219

can使能上拉 gpio_在Nvidia Jetson Xavier开发套件上启用CAN

本文来自:转载自https://medium.com/@ramin.nabati/enabling-can-on-nvidia-jetson-xavier-developer-kit-aaaa3c4d99c9注意本文的日期是2018年11月,仅供参考在Nvidia Jetson AGX Xavier配有两个控制器局域网(CAN)控制器,但它不具有任何CAN收发器。这些收发器可以轻松添加到...

weixin_39529128的博客 871

基于唤醒音频的目标说话人语音识别系统设计报告

摘要 本报告设计了一套基于唤醒音频的目标说话人语音识别系统,通过五级流水线架构(唤醒检测→声纹注册→语音分离→目标ASR→拒识决策)解决复杂声学场景下的目标说话人识别问题。系统整合ECAPA-TDNN声纹模型、Conv-TasNet语音分离网络和Whisper ASR引擎,在L20 GPU上实现高效端到端推理,支持-5dB~5dB SNR范围和0~100%重叠率的双人语音场景处理。系统在目标说话人CER、拒识率和推理效率等关键指标上均达到设计目标,为智能语音交互提供了有效的身份感知解决方案。

huanghm88的专栏 73

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

手把手教你用KNACRO收发器搭建Nvidia Jetson Xavier双CAN网络

本文详细介绍了如何使用KNACRO CAN总线收发器在Nvidia Jetson Xavier开发者套件上搭建双CAN网络。从硬件选型、GPIO引脚连接到系统配置与固件设置,手把手指导开发者完成整个搭建过程,并提供了开机自启动配置和网络测试方案,确保稳定可靠的通信性能。

Apple的专栏 1065

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Jetson Xavier 设置 CANFD (Jetpack 4.6, 开启pllaon)

文章目录改动说明bpmp里面给can附加pllaon时钟源pinmux修改方法一方法二方法三结果检验设备树节点 clocks-init 去掉CAN的低功耗设置设备树节点 mttcan@c310000, mttcan@c320000 里附上 pllaon 时钟配置寄存器 TDCR设置脚本检验 与 CANFD 收发测试 改动说明 之前手中的Xavier一直用老版本的Jetpack, 最近换上较新的 Jetpack 4.6 以后, MTTCAN 配置发生了变化, CAN时钟默认为低功耗设置(没使能PLLAON),

weifengdq的专栏 4702

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Jetson Xavier CAN(11)

本文章转自https://blog.youkuaiyun.com/weifengdq/article/details/103093111,作者写的非常详细,所以can这部分内容就转载他的文章了。 前言 Nvidia Xavier GPIO 输入输出 中断 PWM NVIDIA Xavier UART 前面几节总结了GPIO, UART相关的操作, 本节总结一下NVIDIA Xavier的CAN, 作为本周的小结. Xavier的40-Pin扩展口引出了两路CAN, 具体引脚为: 如果接上CAN收发器(别忘了120

乐于分享 1451
上一篇: WPF项目中OpenCvSharp初始化异常?试试这个隐藏的构造函数调用技巧
下一篇: RoboCup 2D实战:50个代码片段教你打造智能足球机器人(附避坑指南)
sql99
博客等级 码龄19年 168粉丝 1905原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值