小七

小七

1个粉丝

10

问答

0

专栏

0

资料

小七  发布于  2024-11-11 10:48:30
采纳率 0%
10个问答
83

海思标准SPI读取异常

各位大佬好,下面是我在使用海思芯片的SPI通信时候出现的问题,希望有知道怎么解决的大佬指点一下,非常感谢。

我是接了一个snesor到海思芯片上,使用的是海思标准的SPI接口。
默认的SDK编译,不进行任何改动。默认上电会有/dev/spidev0.0的设备节点,以及其他的几个spi的设备节点
我使用的是SPI0
不加载SDK编译出来的mpp/out/ko下的驱动
直接手动执行bspmm,进行SPI0的四个管脚复用
使用ssp_read读取寄存器,得到的值都是0xff
使用ssp_read 0 0 0x41 0x00 0x0f,读取SPI0.0的dev_addr是0x41的寄存器,从0x00开始读,读0xf个寄存器
我不太理解这个dev_addr是多少,按理说SPI设备是没有从机设备地址的,但是海思的外围驱动指南里面是这样说的
我这里写的是i2c的从机地址,不知道是不是这个原因导致的。

然后我尝试修改spidev.c的源码(这个就是内核默认加载生成spi设备节点的驱动)
修改SPI的几种模式,四种模式都进行了尝试,也都是一样的效果(我的sensor读取时序要求是0模式)

并且我也尝试了加载mpp/out/ko里面的otspi.ko和ot_sensor_spi.ko两个驱动
sys_cfg.ko驱动源码里面,默认使用的i2c_3,这个与spi0共用管脚,我修改了这一部分,注释掉了i2c_3,打开了SPI0的配置

sensor有配置片选信号线高有效和低有效的管脚,我也进行了控制,并且sensor的复位脚等都进行了配置。

但是依旧使用ssp_read读取数据是0xff(如果片选和高有效或者低有效以及复位没有控制,读取到的都是0x00)

请问有知道是什么原因导致的大佬吗?
这是标准SPI的接口,我不知道还有哪些是没有配置的了。

我来回答
回答5个
时间排序
认可量排序

小七

1个粉丝

10

问答

0

专栏

0

资料

小七 2024-11-11 13:12:00
认可0

请问有遇到过这种海思标准SPI异常的吗?

UncleRoderick

32个粉丝

14

问答

1

专栏

14

资料

UncleRoderick 2024-11-11 13:40:43
认可0

SS928V100R001C02SPC022\ReleaseDoc\zh\01.software\board\OSDRV\外围设备驱动 操作指南.pdf
根据这个文档的来写试试,ssp_read这个东西不太会用,试过根据文档手搓spi驱动是没问题的

小七
小七   回复   UncleRoderick  2024-11-11 14:43:22
0

好的哥,我找到这个文档里面的spi读写相关的部分了,我尝试模仿写一个试试

小七
小七   回复   UncleRoderick  2024-11-11 16:40:38
0

谢谢哥,虽然我模仿的代码编译会有各种的头文件或者定义变量出错,导致无法使用,
但是我找到了内核目录下的spidev_fdx和spidev_test两个可编译的文件,生成了spi的测试代码
然后我将spi的sdi和sdo短接,进行测试,输入和输出内容是一致的,证明了spi功能正常
我读取sensor的寄存器不正确,应该是我的sensor的配置有问题,谢谢哥提供思路

小七

1个粉丝

10

问答

0

专栏

0

资料

小七 2024-11-11 16:45:03
认可0

接上述内容:
当前spi证明已经正常,但是读取snesor的寄存器都是0xff,说明我的sensor的配置有问题
按照手册中说明,上电时序在仅仅测试功能和读取寄存器测试的时候,可以不按照严格的时序来,只要几个控电管脚都有电即可
但是唯一比较奇怪的是,读取的要求较为奇怪,具体的要求如下图

其他只有一个控制脚,拉高拉低用来决定片选脚的高有效或者低有效
请问有了解过这种读时序该怎么做呢?
是否可以通过修改spidev_fdx和spidev_test的源码来修改读的时序呢?

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区