AM57x SPI驱动开发 - AM57x - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5853|回复: 7

[已解决] AM57x SPI驱动开发

[复制链接]

44

主题

368

帖子

2894

积分

创龙

Rank: 8Rank: 8

积分
2894
发表于 2019-11-22 12:02:11 | 显示全部楼层 |阅读模式
客户问题 ①
你好,我们购买的是TL5728-EasyEVM板卡。
我们想调试验证TL5728-EasyEVM的QSPI外接口是否正常,以便给我们项目对外接口提供选择的可能。具体步骤如下:

1.    参照你们的配置方法增加了QSPI1配置,配置管脚和dts及其步骤在下面有具体描述,但是还是有问题,帮忙看看到底哪里没设好。缺省下貌似QSPI1被flash使用,不能外接使用?请指导一下设置一个能外接设备用的qspi或spi口。谢谢!



2.    查得这几个管脚地址如下:
qspi1_rtclk:0x1474
qspi1_d0:0x1480
qspi1_d1:0x1484
qspi1_d2:0x147C
qspi1_d3:0x1478
qspi1_sclk:0x1488

3.    配置的dts,tl5728-easy-evm.dts包含了am57xx-evm-common.dtsi,下面是在am57xx-evm-common.dtsi里面写的配置:



4.  编译设备树
Make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- tl5728-easy-evm.dtb

5.  拷贝tl5728-easy-evm.dtb到sd卡,后来重新制作sd卡,结果有问题,/dev/目录还是没有spidev设备文件。
查看dmesg有提示“[    2.983477] pinctrl-single 4a003400.pinmux: could not add functions for qspi1_pins_default 4294959240x”。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

44

主题

368

帖子

2894

积分

创龙

Rank: 8Rank: 8

积分
2894
 楼主| 发表于 2019-11-22 12:08:15 | 显示全部楼层
1.     根据核心板引脚定义说明,底板拓展口引出的SPI1总线CS0引脚在核心板内部已被使用;





2.    我司设备树文件中默认情况已将QSPI初始化,并在设备树文件中配置好了QSPI FLASH设备节点;



3.    因此,您需要使用开发板底板的QSPI,只需参照我司设备树文件,添加一个CS1的设备节点,并在CS1节点中配置好SPI设备驱动即可:





4.    可以命令行执行如下指令查看SPI设备节点:
Target#     modprobe spidev
Target#     ls /dev/spi*

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

36

主题

526

帖子

7568

积分

创龙

Rank: 8Rank: 8

积分
7568
发表于 2019-11-28 16:39:29 | 显示全部楼层
客户问题 ②
    我们按照创龙官方视频网站的教学教程,配置SPI2设备树,操作步骤和图示如下,编译的时候出错,帮忙看看是什么问题。

步骤如下:
1.spi2管脚


2.管脚数据
3.dts文档编写
4.编译dts





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

44

主题

368

帖子

2894

积分

创龙

Rank: 8Rank: 8

积分
2894
 楼主| 发表于 2019-11-28 16:52:31 | 显示全部楼层
Dear 您好,

        您的错误是由SPI设备树节点造成的,对于AM5728的SPI设备节点应该为”mcspi“,可以参考我司设备树文件的写法:





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

36

主题

526

帖子

7568

积分

创龙

Rank: 8Rank: 8

积分
7568
发表于 2019-12-6 14:39:49 | 显示全部楼层
已按照上文指引,QSPI设备节点名已修改成“mcspi2“”,编译dts通过,拷贝到sd卡rootfs分区的boot目录,用sd启动linux;
查看dmesg信息,具体信息在附件spi2.docx;
然后短接spi2_d0和spi2_d1。
运行spidev_test测试工具,打印的RX全是0,没接受到数据?spidev_test工具的代码文件是原文件,没改过。

具体操作步骤和截图在附件spi2.docx,帮忙分析一下哪里不对,谢谢。
另附件两个dts文件是正在使用的dts,帮忙确认一下正确性。SPI测试:
步骤1.  重新修改QSPI设备节点名

步骤2.      可以正常编译生成dtb文件


步骤3.      执行"dmesg | grep"指令查看log信息


步骤4.    使用杜邦线短接SPI2_D0SPI2_D1


步骤5.      运行测试工具,QSPI接收到的数据有误:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

44

主题

368

帖子

2894

积分

创龙

Rank: 8Rank: 8

积分
2894
 楼主| 发表于 2019-12-6 14:55:58 | 显示全部楼层
您好,从log打印信息来看,QSPI驱动没有正常加载:

1.  QSPI的pinmux偏移地址配置有误,设备树中的“偏移地址”并非是datasheet中的“Address Offset ”,而是由“Physical Address ”算出;



2.  可以在文件系统中,使用 devmem2 命令查看对应寄存
器,看是否成功配置引脚为对应功能

3.  具体可以参考附件文档。
4.  SPI应用层开发可以参考内核源码linux-rt-4.9.65-gcaf89f0-v1.2.tar.gz\tools\sp 目录下的spidev_test.c 文件



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

44

主题

368

帖子

2894

积分

创龙

Rank: 8Rank: 8

积分
2894
 楼主| 发表于 2019-12-18 15:35:33 | 显示全部楼层
客户问题 ③

您好,我在进行AM5708 SPI测试的时候遇到了一些问题,写入数据的时候用示波器观察没有数据。经过排查,发现原理图上引脚的数据方向与5708默认的数据方向接反了。原理图与5708引脚默认的数据方向见下图。





参考数据手册中数据方向可以配置为输入和输出。请问如何在设备树中进行配置?

解决方案:
可以参考“Documentation/devicetree/bindings/spi/omap-spi.txt”文档,在设备树文件中对SPI数据引脚进行配置:







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

44

主题

368

帖子

2894

积分

创龙

Rank: 8Rank: 8

积分
2894
 楼主| 发表于 2020-2-28 15:46:35 | 显示全部楼层
客户问题 ④


由于AM5728只有两路CAN接口,但系统现在需要第三路CAN,现在打算基于AM5728的SPI总线,外接MCP2515芯片转成CAN使用



现在使用创龙AM5728开发板SPI3连接MCP2515,除去一个完整的SPI所需要的CS,CLK, MISO, MOSI信号外,还需要一个IO作为中断
请问是否有驱动相关配置方法?
另:尝试在&dra7_pmx_core中配置相关IO,不能生效



参考建议:

1.    Linux内核对MCP2515芯片芯片配置参考文档如下:
                Documentation/devicetree/bindings/net/can/microchip,mcp251x.txt
                drivers/net/can/spi/mcp251x.c








2.  由于您是使用AM5728连接MCP2515芯片的SPI总线,同时SPI协议本身不支持中断,所以没有默认的配置方法。
    建议您可以参考我司设别树文件中ads7846触摸屏芯片,里面的pendown-gpio就是中断输入引脚,要在ads7846驱动里面做初始化





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-3-28 20:57 , Processed in 0.041481 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表