香橙派4是一款开源的单板电脑,使用Rockchip RK3399主控芯片,拥有双通道4GB LPDDR4内存 ,板载16GB EMMC flash存储,支持运行Android 8.1、Ubuntu 16.04、Debian 9等操作系统,具备MIPI-CSI双摄像头接口,HDMI2.0视频输出接口,麦克风端口,3.5mm和HDMI2.0音频输出口,千兆以太网口,USB3.0,USB2.0,Type-C等常规标准接口,还有调试串口,40pin树莓派兼容扩展口。
本篇将介绍下香橙派4在Linux系统下如何使用40pin功能扩展口中的SPI接口:
1.首先安装下wiringOP,以下操作可能会用到:
2.修改dts以启用SPI
SPI和UART4共享相同的引脚。官网镜像不支持SPI,需要修改内核的DTS文件以启用SPI。
首先按照用户手册方法下载Linux源代码。
修改dts以启用SPI
cd OrangePiRK3399_Pi4/
vi kernel/arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts
找到spi的定义
&spi1 {
status = "disable"; //将disable改为okay
找到uart4的定义
&uart4 {
status = "okay"; //将okay改为disable
3.编译内核
./build.sh
4.内核替换
编译完成后,需要将内核更新到SD卡中。准备一张烧录有OrangePi 4 Linux镜像的SD卡。通过读卡器插到PC的usb接口。
首先确定SD卡的设备节点。
拔出SD卡,执行ls /dev/sd*
csy@ubuntu:~$ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda5
插上SD卡,执行ls /dev/sd*
csy@ubuntu:~$ ls /dev/sd*
/dev/sda /dev/sda2 /dev/sdb /dev/sdb2 /dev/sdb4
/dev/sda1 /dev/sda5 /dev/sdb1 /dev/sdb3
可知SD卡对应的设备节点是/dev/sdb
执行build.sh
./build.sh
选择5 Update Kernel Image
输入/dev/sdb
更新完成。
内核模块最好也更新下。选择6 Update Module
SD卡的rootfs分区挂载点是/media/csy/rootfs,每个人的环境会有所不同
回车。
SD卡插入OrangePi 4,启动系统。Spi已经启用
5.wiringOP提供了一个w25q64_test.c用于测试SPI。
需要用到W25QXX 模块。
硬件接线如下,具体引脚定义可查看OrangePi 4的原理图
VCC - 1
CS - 24
DO - 21
GND - 6
CLK - 23
DI - 19
注:左边为W25QXX 模块的引脚,右边为40pin的物理编号。
编译测试程序
cd wiringOP/examples/
make w25q64_test
运行测试程序。
出现以上报错的原因是wiringOP对于spi通道0访问的设备节点是
/dev/spidev0.0。
而RK3399平台名称是/dev/spidev1.0.
所以创建一个软链接即可。
ln -s /dev/spidev1.0 /dev/spidev0.0
运行测试程序。
能读取ef 40 17 说明SPI通信正常。
|