查看: 4989|回复: 4

[求助] IMX6ULL ECSPI 如何改成9bit通信

[复制链接]

该用户从未签到

4

主题

8

帖子

0

新手上路

Rank: 1

积分
49
最后登录
2021-12-8
发表于 2021-7-21 14:48:09 | 显示全部楼层 |阅读模式
我有一个屏幕跟IMX6ULL是SPI通信的,但通信是9bit的,需要通过D/C位区分数据/命令
Capture.JPG

那么问题就是怎么将IMX6ULL的ECSPI 配成9bit通信。


裸机程序:     我手上有一个功能正常的电路板,ECSPI和加速度传感器通信,读取加速度传感器的数据,传输数据是8bit的
     根据芯片手册,我将BURST_LENGTH 改成8,经测试能正常发送9bit数据,
     我这样改的方法有什么问题吗?

Linux系统上:
    环境:
          Kernel: Linux version 4.1.15
          IMX6ULL
   问题:
        1. 该怎么修改能实现SPI 9bit通信?
        2. Linux 是在什么时候初始化SPI的?
        3. 这个问题跟Linux无关,甚至是很弱鸡的问题,SPI burst里的burst该怎么理解?翻译成“突发”感觉好奇怪啊

我知道答案 目前已有4人回答
回复

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24901
最后登录
2025-7-21
发表于 2021-7-27 12:15:58 | 显示全部楼层
1.正常改法就是在spi-imx.c驱动中修改ECSPIx_CONREG寄存器的值
2.你想看过程的话就在驱动里加入打印信息
3.这个模式的功能就是高速预取数据,和功能爆发有点类似。可以这么理解。
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

8

帖子

0

新手上路

Rank: 1

积分
49
最后登录
2021-12-8
 楼主| 发表于 2021-7-27 22:03:41 | 显示全部楼层
小恩GG 发表于 2021-7-27 12:15
1.正常改法就是在spi-imx.c驱动中修改ECSPIx_CONREG寄存器的值
2.你想看过程的话就在驱动里加入打印信息
3. ...

如果是修改spi-imx.c驱动的话,那如果SPI总线上有2个器件,一个是8bits通信,一个是9bits通信,怎么办?
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24901
最后登录
2025-7-21
发表于 2021-7-28 09:43:51 | 显示全部楼层
你可以在dts里每个spidev规定一个参数,指定length长度,然后在驱动里解析这个参数,然后不同的dev设置不同的length
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

72

帖子

0

注册会员

Rank: 2

积分
78
最后登录
2023-1-28
发表于 2022-11-6 21:00:00 | 显示全部楼层
本帖最后由 kwcha333 于 2022-12-31 20:21 编辑

感谢分享
























破產紀錄和法律訴訟生效時的破產 人士 申請 信用卡逾期還款紀錄等負面信息,在環聯的信用數據庫中僅保留8年和5








回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-22 13:27 , Processed in 0.097337 second(s), 25 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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