Jetson Nano扩展阅读1:使能硬件SPI

摘要: 摘要: Jetson Nano的40Pin接口SPI功能默认并未启用,本文小编将步步为迎,教你如何启动并使用硬件SPI。
一、前言
PC环境:Ubuntu18.04.2 LTS
JetsonNano环境:Ubuntu 18.04 LTS
Jetson Nano的40Pin接口SPI功能默认并未启用,需手动修改设备树文件后写入根文件系统。因使用虚拟机刷写Nano易变砖,不建议用虚拟机。
二、重写设备树
使用非官方脚本文件来刷设备树,在PC端中点击图中Download ZIP下载脚本文件,github地址为https://github.com/rt-net/JetsonNano_DT_SPI,或点击右边附件下载JetsonNano_DT_SPI-master.zip


下载后双击JetsonNano_DT_SPI-master.zip,解压到用户目录下

按下Ctrl+Alt+T打开终端,进入JetsonNano_DT_SPI_master目录,复制下面命令:
1cd JetsonNano_DT_SPI_master/
2./run.sh
输入用户密码,脚本开始自动下载根文件系统包和R32包。

若出现解压文件包错误,则先安装bzip2的1.0.6-8.1版本和支持库,复制下面指令进行安装,否则忽略下面一条命令:

1sudo apt install bzip2=1.0.6-8.1 libbz2-1.0=1.0.6-8.1
下载根文件系统和R32包后,脚本自动替换设备树文件并写入根文件系统,接着界面提示Nano是否进入Recovery模式

此时应将跳帽置Recovery引脚,J48引脚,MicroUSB接入PC,使用DC头供电

在终端输入y确认


刷写成功后如下图所示

此时可拔掉Recovery跳帽,MicroUSB,将跳帽置于40Pin的19和21引脚准备做Loopback测试。


三、SPI测试

Ubuntu下使用Termius等软件连接JetsonNano终端,使用wget命令下载spi_dev_test.c文件,复制下面指令:
1wget https://raw.githubusercontent.com/raspberrypi/linux/rpi-3.10.y/Documentation/spi/spidev_test.c



使用vim打开并修改spidev_test.c文件,将32行的"spidev1.1"修改成"spidev0.0",不熟悉vim操作的用

编译执行刚才修改好的spidev_test.c文件,复制下面命令:
1gcc -o spidev_test spidev_test.c
2sudo ./spidev_test
至此Jetson Nano的spi0可以使用了,下面测试Pioneer600的OLED功能,复制下面命令下载Pioneer例程

1wget https://www.waveshare.net/w/upload/a/ad/Pioneer600_code.7z

安装解压工具并解压刚才下载的Pioneer600_code.7z文件,复制下面命令
1sudo apt-get install p7zip
2p7zip --uncompress Pioneer600_code.7z

解压后进入JetsonNano/OLED/python文件夹,复制下面命令令执行OLED显示:
1cd JetsonNano/OLED/python/
2sudo python3 waveshare.py



其中Pioneer600的OLED与JetsonNano硬件连接如下图所示
OLED引脚
JetsonNano Board引脚
+3.3V
1
GND
6
CS
24
RES
35
DC
36
SCK
23
MOSI
19

若未安装PIL库,OLED显示会失败,失败则先安装下面支持包,复制下面指令:
1sudo apt-get install python3-dev python3-setuptools libtiff5-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev  tcl8.6-dev tk8.6-dev python3-tk
2sudo apt-get install python3-pip
3sudo pip3 install pillow
TAG: 全方位激光雷达 ESP32 2寸LCD电容触摸显示屏ST7789适用于Arduino/树莓派/Pico 树莓派5寸DSI MIPI显示屏LCD 720x1280 ESP32-P4 Luckfox Lyra RK3506/Omni3576 USB转UART 4.26寸e-Paper电子墨水屏 裸屏 800×480适用于Arduino/Jetson Nano/树莓派/STM32 全志H618 Arduino MX25R6435扩展RAM 树莓派CM5计算模块IO底板NANO A扩展底板Compute Module 5 树莓派Pico 2 RP2350B 2.8寸LCD开发板RGB显示触摸圆形屏 QMI8658 6轴/蜂鸣器 /SD /RTC ESP32谷歌恐龙小游戏代码 RV1106摄像头 树莓派4 PiKVM-A3 V3 HAT远程控制kvm运维overip服务器HDMI CSI 树莓派Pico 2 RP2350工业级6路继电器RS485隔离保护 树莓派RP2040显示屏 工业级隔离型转换器 Sipeed FPGA Tang Primer 20K Dock/Lite FPGA开发板GW2A-LV1 资料 树莓派5 JETSON NANO底板 RDK X3 MD Carrier Board 地平线官方原版RDK X3 Module专用核心板底板 扩展板 适用于RDK X3 MD所有版本