RS485 CAN for Jetson Nano

来自Waveshare Wiki
Zsmin讨论 | 贡献2022年12月24日 (六) 17:00的版本 →‎资源下载
跳转至: 导航搜索
RS485-CAN-for-Jetson-Nano
{{{name2}}}
{{{name3}}}
功能简介
特性 环境传感器
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 I2C

说明

产品概述

这是一款Jetson Nano 专用 RS485 CAN 扩展板

特点

  • 基于 GPIO 40PIN 接口设计,方便直接插到 Jetson Nano 上
  • 具备 CAN 功能,使用 SPI 接口的 CAN 控制器 MCP2515,搭配 SIT65HVD230DR 收发器
  • 具备 RS485 功能,UART 控制,半双工通讯,搭配 SP3485 收发器支持自动切换收发状态,无需程序控制
  • 板载 TVS (瞬态电压抑制管),RS485 通讯可有效抑制电路中的浪涌电压和瞬态尖峰电压,防雷防静电
  • 板载数字隔离芯片,信号隔离通信更安全、稳定性更好、抗干扰性更强
  • 预留控制接口,方便其他控制器控制
  • 提供完善的配套资料手册(提供 python 例程)

产品参数

RS485-CAN-for-JetsonNano wiki7.png

产品连接方式

直接插在jetson nano 的GPIO上,如下图:
RS485-CAN-for-JetsonNano wiki8.png

资源介绍

RS485-CAN-for-JetsonNano wiki9.png

管脚占用

RS485-CAN-for-JetsonNano wiki10.png

产品尺寸

RS485-CAN-for-JetsonNano wiki11.png

使用方式

安装必要的函数库

sudo apt-get install minicom 
sudo apt-get install python-pip nano
sudo pip install pyserial
sudo pip install spidev==3.1

打开SPI

官方B01套件请直接参考官方B01套件打开SPI.
Jetson Nano B01 带emmc模组版本,也就是国产套件,无法通过jetson-io.py来直接配置40PIN引脚。这里提供直接修改设备树文件的方式来开启SPI1. 笔者目前只验证了JetPack4.6.2, 本次操作需要重装系统,请用户谨慎操作。

硬件准备

1. Ubuntu电脑主机或者虚拟机
2. Jetson Nano 主板
3. Micro USB数据线

软件设置 (Host PC)

需要在系统资源上修改设备树文件,如果你之前用SDK Manager安装过系统镜像,可以直接在上面修改。 如果没有的话,请参考以下资源下载部分先进行操作,以下资源包是Jetpack4.6.2版本的,如果你需要别的版本资源包下载,请参考资源包下载方法

资源下载

  1. 在ubuntu电脑新建一个文件夹:
    sudo mkdir sources_nano
    cd  sources_nano
  2. 下载以下两个资源包:
    https://developer.nvidia.com/embedded/l4t/r32_release_v7.2/t210/jetson-210_linux_r32.7.2_aarch64.tbz2
    https://developer.nvidia.com/embedded/l4t/r32_release_v7.2/t210/tegra_linux_sample-root-filesystem_r32.7.2_aarch64.tbz2
  3. 将资源包移到文件夹,并解压(实际操作的时候,请尽量用tab按键自动补齐指令)
    sudo mv ~/Downloads/Jetson-210_Linux_R32.7.2_aarch64.tbz2 ~/sources_nano/
    sudo mv ~/Downloads/Tegra_Linux_Sample-Root-Filesystem_R32.7.2_aarch64.tbz2 ~/sources_nano/
  4. 解压资源
    sudo tar -xjf Jetson-210_Linux_R32.7.2_aarch64.tbz2
    cd Linux_for_Tegra/rootfs/
    sudo tar -xjf ../../Tegra_Linux_Sample-Root-Filesystem-R32.7.2_aarch64.tbz2 
    cd ../
    sudo ./apply_binaries.sh  (若出现报错按照系统提示操作,然后再次输入该行命令)

修改设备树

  1. 安装dtc工具
    sudo apt-get install -y device-tree-compiler
  2. 反编译出dts文件
    cd kernel/dtb
    sudo dtc -I dtb -O dts -o tegra210-p3448-0002-p3449-0000-b00.dts tegra210-p3448-0002-p3449-0000-b00.dtb
  3. 修改dts文件
    sudo cp tegra210-p3448-0002-p3449-0000-b00.dts tegra210-p3448-0002-p3449-0000-b00-bak.dts
    sudo gedit tegra210-p3448-0002-p3449-0000-b00.dts

    找到spi@7000d400{}部分
    Config1-1.jpg
    在其中的spi@0结构和spi@1结构分别添加语句 status = "okay" ;
    Config1-2.jpg
    找到spi1的引脚设置,将其中的nvidia, function 改为spi1, nvidia,tristate改为0x0, nvidia,enable-input改为0x1. 如图, 五个引脚都要操作。
    Config1-3.jpg

  4. Ctrl+S保存文件,并重新编译为dtb. 注意,如果你还需要修改SD卡等操作,请一起操作。主要不要修改错位置,否则容易导致系统无法正常启动。
    sudo dtc -I dts -O dtb -o tegra210-p3448-0002-p3449-0000-b00.dtb tegra210-p3448-0002-p3449-0000-b00.dts

重新烧录系统

    将nano设置为recovery烧录模式,接入ubuntu电脑。注意,这里不支持只更新dtb分区,因此需要重新烧录整个系统,烧录系统后需要重新做开机配置,因此,请提前将HDMI屏幕和键盘连接到nano上。
    cd ../../
    sudo ./flash.sh jetson-nano-emmc mmcblk0p1

测试SPI

  1. 系统烧录成功后,完成开机配置,nano自动重启
    加载spidev:
    sudo modprobe spidev
    git clone https://github.com/rm-hull/spidev-test
    cd spidev-test/
    gcc spidev_test.c -o spidev_test
  2. 用一根排线将nano 40PIN的19和21号引脚短接,运行程序测试:
    ./spidev_test -v -D /dev/spidev0.0 -p "Test"

    如果中断打印信息RX和TX可以正常的发送和接受信息即可。
    Config1-4.jpg

官方B01套件打开SPI

    在如下文件中添加:
    sudo nano /etc/modules-load.d/modules.conf
    

    添加一行

    spidev
    

    按ctrl+x 然后按Y,回车保存退出,然后打开硬件SPI:

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

    如下图所示所示
    选择配置40PIN管脚
    RS485-CAN-for-JetsonNano wiki1.png
    键盘下选,配置管脚
    RS485-CAN-for-JetsonNano wiki2.png
    键盘下选,移动到SPI1,并回车确定,有*号出现
    RS485-CAN-for-JetsonNano wiki3.png
    键盘下选,保存并选择重启(一直回车即重启)。
    RS485-CAN-for-JetsonNano wiki4.png
    重启后,ls /dev/spidev*即可看到设备号
    Pin.png
    测试SPI

下载示例程序

在用户主目录下,执行如下命令:

wget https://www.waveshare.net/w/upload/7/78/RS485_CAN_for_JetsonNano_Code.zip
sudo unzip ./RS485_CAN_for_JetsonNano_Code.zip -d ./RS485_CAN_for_JetsonNano_Code/

CAN

请先连接好硬件连线,然后再运行程序,由于是SPI转CAN,且默认晶振为8M。所以暂时的波特率为500Kbps.
本产品提供的为PYhton驱动程序,目前支持最高波特率为500Kbps,默认为125Kbps,注意选择通信另外一端的波特率:

cd RS485_CAN_for_JetsonNano_Code
sudo python cantest.py

测试例程将会在接收到信息时发送1-8;

485

请先连接好硬件连线,然后再运行程序,RS485是由UART转出来的,请不要占用UART.

sudo python rs485test.py


资料

文档

程序

相关资料


FAQ


技术支持


联系人:林工
EMAIL:3005425717@qq.com
电话:0755-83043099
QQ:3005425717
微信:扫下方二维码添加
Lzr.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证