完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
【NanopiM2试用】之配置驱动实现SPI2接口采集K型热电偶温度 上一篇使用报告中,详细介绍了利用Nanopi M2的SPI0接口通过MAX31855采集热电偶的温度。而对于我当前的项目,需要同时采集两个通道的K型热电偶,可以共用SPI0的MISO、CLK,然后CS0,外扩一个CS1,然后分时复用SPI的MISO和CLK,达到交错采集两路热电偶温度值。 另外一种方法是采用Nanopi M2另外一路SPI接口,即SPI2,友善之臂的设计人员将SPI2也引到了40针的扩展接口中,这样我们就可以第一路的热电偶接SPI0,第二路热电偶接SPI2,用于多线程技术,实现两路热电偶同时并行采集温度值。 上述两种方法中,不管是哪一种方法,都需要我们自己根据SPI的驱动编写规范(总线、设备、驱动模型),对Linux内核源中SPI驱动部分的架构级和板级驱动配置做相应的修改。 这篇试用介绍一下如何修改驱动配置,使Nanopi M2的debian系统能够支持spidev2.0的驱动。 1. 修改板级配置 1)配置GPIO引脚功能 SPI2的引脚布置如图所示: 这4个引脚对应着GPIOC9 GPIOC10 GPIOC11 GPIOC12,我们根据S5P4418数据手册,看看SPI2的各个引脚对应的功能号,如图所示: 从图中可以看出,要想使用SPI2接口,首先必须设置SPI2所对应的引脚功能为Function2.通过一层一层的查看源码,发现在系统启动,初始化的时候,默认把SPI2引脚功能设置为了Function1,即设置了GPIO功能。 在源码目录下,进入如下目录:./arch/ARM/plat-s5p4418/nanopi2/include/,打开文件cfg_gpio.h文件, gedit cfg_gpio.h,如图所示: 修改如上图所示的红色矩形框标识的部分。 2)配置片选信号SPI2_CS 在源码目录下./arch/arm/plat-s5p4418/nanopi2/include/,打开文件cfg_main.h文件,geditcfg_main.h,做如下修改: 3)添加SPI2的芯片配置信息 在源码目录下./arch/arm/plat-s5p4418/nanopi2/,打开文件device.c文件,geditcfg_device.c,添加如下内容: 2. 修改S5P4418芯片级配置 这一部分主要修改SPI驱动所对应的spi_device结构定义,在系统启动时,芯片初始化函数会将定义的spi_device添加SPI总线。 在系统源码下,进入目录:./arch/arm/mach-s5p4418/,打开文件devices.c,geditdevices.c,修改如下图所示: 3. 配置、编译内核 3.1 配置SPI2 在内核源码目录下,输入命令: make menuconfig,进入内核配置界面 进入Device Driver--->,定位到SPI Support--->项 进入SPI suport--->项,选中如下选项: 3.2 配置LCD选项 由于本测试用的X710 LCD触摸屏,我们在编译内核时须选中LCD选项,而不是系统默认的HDMI选项,具体操作如下: 3.3 编译内核 通过以上两个步骤,配置内核,保存配置,退出配置界面,输入命令: make uIamge 编译结果如图所示: 3.4 更新TF卡中的内核 本试用报告具有实验性质,在替换原有内核之前,请先备份TF卡boot分区中的uImage. 将TF插入读卡器,将读卡器插入PC主机的USB接口,输入命令: ls /dev/sdb* 出现/dev/sdb1 /dev/sdb2 执行命令:sudo mount /dev/sdb1 /mnt cd /mnt sudo mv uImage / sudo cp .../linux-3.4.y/arch/arm/boot/uImage /mnt sudo sync sudo umount /mnt 完成以上步骤,就将支持LCD的内核镜像文件拷贝到TF卡了。 4. 测试spidev2.0驱动程序 4.1 搭建硬件环境 依照上一篇使用报告,搭建硬件连接电路如图所示: 4.2开发基于QT的MAX31855软件 搭建好硬件环境,给Nanopi M2上电启动,然后输入如下命令: ls /dev/spi* 输出如下图所示: 发现在命令行下已经显示了:/dev/spidev2.0文件,说明我们配置的SPI2驱动程序已经成功运行。 QT的工程文件可以直接把上一篇使用报告的工程文件拷贝过来,只需修改一下驱动文件名称,如下图所示: 将#define SPI0_PATH "/dev/spidev0.0"修改为#defineSPI0_PATH "/dev/spidev2.0" 编译运行QT工程,出现如下界面,说明我们配置的SPI2驱动程序能够成功与底层SPI设备交互数据。 评分
|
||
相关推荐
6 个讨论
|
||
只有小组成员才能发言,加入小组>>
371个成员聚集在这个小组
加入小组NanoPi m3适合刷什么系统,刚接触玩,我刷了一个比较卡
5498 浏览 1 评论
7210 浏览 1 评论
4801 浏览 1 评论
【NanoPC-T4试用体验】4、手把手教你从单片机移植驱动到ARM Linux上
7789 浏览 1 评论
【NanoPC-T4试用体验】NanoPC-T4控制步进电机
24624 浏览 1 评论
NanoPi m3适合刷什么系统,刚接触玩,我刷了一个比较卡
5498浏览 1评论
457浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 15:55 , Processed in 0.666264 second(s), Total 55, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号