打印
[嵌入式linux]

香橙派4开发板在Linux系统下SPI接口的使用说明

[复制链接]
430|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
香橙派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通信正常。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

70

帖子

0

粉丝