基于A20 Android使用SPI通讯接口8*8LED阵列的驱动开发

硬件平台:A20 android系统开发板

LED阵列:控制芯片MAX7219

第一步:配置开发环境,加载spi节点

1.配置内核

# cd /usr/MarsBoard-A20-android-4.2.2-SDK-V2.0/lichee/linux-3.3       //进入源码下的linux内核路径

#make ARCH=arm menuconfig

2016-06-03 12:48:23的屏幕截图.png

2016-06-03 12:49:55的屏幕截图.png

2016-06-03 12:51:21的屏幕截图.png

2.修改spi配置文件

开发上只接出spi0的接口,因此只能配置spi0的接口

;-------------------------------------------------------------------------------
;spi configuration
;-------------------------------------------------------------------------------
[spi0_para]
spi_used            = 1           //选中spi0,开发板只给出了spi0硬件接口
spi_cs_bitmap       = 1
spi_cs0             = port:PI10<2><default><default><default>
spi_cs1             = port:PI14<2><default><default><default>
spi_sclk            = port:PI11<2><default><default><default>
spi_mosi            = port:PI12<2><default><default><default>
spi_miso            = port:PI13<2><default><default><default>

[spi1_para]
spi_used            = 0
spi_cs_bitmap       = 1
spi_cs0             = port:PA00<3><default><default><default>
spi_cs1             = port:PA04<3><default><default><default>
spi_sclk            = port:PA01<3><default><default><default>
spi_mosi            = port:PA02<3><default><default><default>
spi_miso            = port:PA03<3><default><default><default>

[spi2_para]
spi_used            = 0
spi_cs_bitmap       = 1
spi_cs0             = port:PB14<2><default><default><default>
;spi_cs1             = port:PB13<2><default><default><default>
spi_sclk            = port:PB15<2><default><default><default>
spi_mosi            = port:PB16<2><default><default><default>
spi_miso            = port:PB17<2><default><default><default>

[spi3_para]
spi_used            = 0
spi_cs_bitmap       = 1
spi_cs0             = port:PA05<3><default><default><default>
spi_cs1             = port:PA09<3><default><default><default>
spi_sclk            = port:PA06<3><default><default><default>
spi_mosi            = port:PA07<3><default><default><default>
spi_miso            = port:PA08<3><default><default><default>

[spi_devices]
spi_dev_num         = 1

[spi_board0]
modalias         = "spidev"
max_speed_hz     = 4000000
bus_num          = 0                    //bus_num要对应spi
chip_select      = 0
mode             = 0                    //

3.编译打包固件,并烧写固件

在lichee目录下:#./build.sh  -p sun7i_android

进入lichee/out 可以看到 zImage

进入android根目录:

#source build/envsetup.sh

#lunch

#16

#extract_bsp

#make -j4

#pack

最后就会在 lichee/tools/pack 中生成我们最终的固件

将最终固件sun7i_android_wing-marsboard.img 使用phoenixsuit 工具对开发板刷机

4.上电启动

系统启动后通过 adb shell 连接系统终端,可看到在/dev 看到 spidev0.0的设备节点,0.0 就是

spi_board_info 中设置的.bus_num 和.chip_select 的值的组合。在 spidev 中,spidev 驱动注册会和相应的 spi

从设备绑定,也就是说 spidev 对应的是一个实际的从设备。spidev 注册成字符设备,可以方便的使用其提

供的标准 read/write/ioctl 等功能函数对 spi 从设备进行读写和设置等操作,设备的全双工半双工都得以实

现。

第二步:IO控制驱动模块编译、加载

1.编写代码

# cd /usr/MarsBoard-A20-android-4.2.2-SDK-V2.0/lichee/linux-3.3/drivers/

#sudo mkdir ctl_io

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值