imx6q-------SPI调试记录

2024-01-09 21:30
文章标签 调试 记录 spi imx6q

本文主要是介绍imx6q-------SPI调试记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

采用飞凌imx6q的核心板,默认配置了espi2,由于项目中使用了espi1,因此需要配置espi1,对调试过程进行记录。

1、参考espi2的设备树文件,增加了espi1的配置,如下:

上面第一个是默认的,第二个是我新增的,对这个不是很熟,初步按照这个方式配置。

2、配置espi1的gpio管脚,默认和uart4复用,注释掉uart4的引脚配置:

然后重新编译设备树,完了用新的设备树启动,启动完了,可以看到已经加载了两个设备spi0和spi1:

/dev目录下由两个spi节点

然后根据默认的测试程序测试了下spidev0.0发现时钟和数据都出来了,表明espi1已经可以使用,但是此时使用spidev1.0的时候发现并无任何时钟和数据输出,感觉是配置espi1的时候影响了espi2,尝试修改设备树的fsl,spi-num-chipselects = <1>;字段,但并不起作用。单独配置espi2是没问题的,spidev1.0可以使用,但同时配置espi1和espi2就会出现espi2不能使用,暂时不知道怎么回事。

3、测试

3.1 接线

与spi通信的设备是三线的一个DAC的spi芯片,且只支持写,接线方式需要注意,除了片选和时钟对接,从设备的数据线接到imx6q的MOSI管脚即可。

3.2 软件测试

a. 基本上是采用了linux提供了spi_test.c进行测试,修改了部分参数,第一次测试发现芯片没有任何输出,但是量了下数据线、时钟线和片选都有信号;

b. 后来又查看这个DAC的芯片手册,查到说需要配置spi主设备为下降沿发送数据(POL=0,PHA=1),因此重新配置后进行第二次测试发现仍然没有输出;

c.又把spi代码的配置参数详细看了下,有个一次发送的数据位数,默认是8位的,由于我需要写一个16位的数据,因此就尝试改为了16位数据的模式,发现这次有效了,芯片有输出信号;

d.为什么8位数据和16位数据会产生不同的影响呢,于是又用示波器分别抓取了一下8位模式和16位模式下的区别,发现16位模式是连续发送的16bit数据,而8位数据模式每次发送8位,分了两次发送,默认是先发送低字节数据。比如我需要发送0x04e0,采用16位数据模式就直接一次性发送完毕,而采用8位数据模式就先发送的0xe0,然后发送了0x04,导致芯片接收的数据为0xe004,这个数据会造成芯片休眠模式,因此没有输出,于是把数据字节调换后发送发现8位数据即可生效。

但是现在就一个问题,espi1不能使用,对设备树的配置还不熟,改起来费劲。

这篇关于imx6q-------SPI调试记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/588491

相关文章

51单片机学习记录———定时器

文章目录 前言一、定时器介绍二、STC89C52定时器资源三、定时器框图四、定时器模式五、定时器相关寄存器六、定时器练习 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示:以下是本篇文章正文内容,下面案例可供参考 一、定时器介绍 定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。 定时器作用: 1.用于计数系统,可

Javascript高级程序设计(第四版)--学习记录之变量、内存

原始值与引用值 原始值:简单的数据即基础数据类型,按值访问。 引用值:由多个值构成的对象即复杂数据类型,按引用访问。 动态属性 对于引用值而言,可以随时添加、修改和删除其属性和方法。 let person = new Object();person.name = 'Jason';person.age = 42;console.log(person.name,person.age);//'J

UnrealScriptIDE调试环境部署

先安装vs2010   再安装VSIsoShell.exe, 下载地址 https://pan.baidu.com/s/10kPNUuDGTbWXbz7Nos-1WA       fd3t   最后安装unside,下载地址 https://archive.codeplex.com/?p=uside  安装中间有一步选择Binary文件夹要选对路径。   安装好以后,启动 UDKDe

vcpkg安装opencv中的特殊问题记录(无法找到opencv_corexd.dll)

我是按照网上的vcpkg安装opencv方法进行的(比如这篇:从0开始在visual studio上安装opencv(超详细,针对小白)),但是中间出现了一些别人没有遇到的问题,虽然原因没有找到,但是本人给出一些暂时的解决办法: 问题1: 我在安装库命令行使用的是 .\vcpkg.exe install opencv 我的电脑是x64,vcpkg在这条命令后默认下载的也是opencv2:x6

IDEA配置Tomcat远程调试

因为不想把本地的Tomcat配置改乱或者多人开发项目想测试,本文主要是记录一下,IDEA使用Tomcat远程调试的配置过程,免得一段时间不去配置到时候忘记(毕竟这次是因为忘了,所以才打算记录的…) 首先在catalina.sh添加以下内容 JAVA_OPTS="-Dcom.sun.management.jmxremote=-Dcom.sun.management.jmxremote.port

记录AS混淆代码模板

开启混淆得先在build.gradle文件中把 minifyEnabled false改成true,以及shrinkResources true//去除无用的resource文件 这些是写在proguard-rules.pro文件内的 指定代码的压缩级别 -optimizationpasses 5 包明不混合大小写 -dontusemixedcaseclassnames 不去忽略非公共

数控系统资料记录

数控技术:数控系统刀补功能的软件实现及其仿真--数控仿真程序开发实战 https://github.com/mai4567/CNC 下载编译报错:error: src/dxflib.a: 没有那个文件或目录: 解决:下载dxflibhttps://www.ribbonsoft.com/en/dxflib-downloads,下载完后编译,编译后得到libdxflib.a,替换掉项目makefi

pixel_link记录

export PYTHONPATH=/path2to/pixel_link/pylib/src:$PYTHONPATH   https://blog.csdn.net/northeastsqure/article/details/83655200   https://blog.csdn.net/u011440558/article/details/78606662   报错: All

基于Java医院药品交易系统详细设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W+,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码+数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人  Java精品实战案例《600套》 2023-2025年最值得选择的Java毕业设计选题大全:1000个热

Chromium 调试指南2024 - 远程开发(下)

1. 引言 在《Chromium 调试指南2024 - 远程开发(上)》中,我们探讨了远程开发的基本概念、优势以及如何选择合适的远程开发模式。掌握了这些基础知识后,接下来我们将深入了解如何在远程环境中高效地进行Chromium项目的调试工作。 调试是开发过程中至关重要的一环,特别是对于像Chromium这样复杂的大型项目。远程调试不仅可以充分利用远程服务器的强大计算资源,还能确保开发环境的一致