c - SPI EP93xx(带 Linux 的 TS7200 板)

标签 c linux arm embedded spi

我使用的是 Embedded Arm 的 7200 板。该板搭载 Linux 内核 2.6 并安装 EP9302 arm9。 我们需要使用 SPI 接口(interface)来与加速度计 (LIS3DSH) 和一些 PT100 (MAX31865) 进行通信。

我们解决这个问题的方法实际上是基于对 EP9302 寄存器进行位操作,就像嵌入式 Arm 提供的示例(文件 tempSensor.C,位于 ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7200-linux/samples/ )。请注意,这种情况下的传感器“嵌入”在板本身中。最后我们用 C 语言编程。

不幸的是,我们所有的尝试都失败了。 那么问题来了:你知道如何在EP93xx上使用SPI吗?有代码或例子吗?

最佳答案

好的,谢谢大家的建议和提示。 我解决了我的问题。由于我没有使用驱动程序,但我直接在微寄存器中对位进行位敲击,所以产生了附带影响: -每次我在 SPI 写入寄存器中写入内容时,数据都会写入 MOSI 中,并且 MISO 上的数据会传输到 FIFO 缓冲区中。从设备是否回复并不重要!这就是问题所在

解决方案:每次在 SPI“输出”寄存器中写入内容时。始终读取 FIFO“输入”寄存器。总是!

例如,当我配置从寄存器时,我没有读取输入 FIFO(设备没有回复,但您应该始终读取(清理)FIFO!)。

我使用示波器注意到了这个问题。感谢帮助。 我在问题中提供的示例是有效的,因为在“写入”之后总是有“读取”!

关于c - SPI EP93xx(带 Linux 的 TS7200 板),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40651146/

相关文章:

c - C 中的 IEEE-754 浮点异常

linux - 我如何配置 fluentd 代理来安装插件?

arm - STM32H7xx 尽可能快地切换 IO

gcc 可以对未知的迭代次数进行循环优化( strip 挖掘/阻塞)吗?

c - 自动点唱机代码中的错误(首先是C)

c - 为 poll 函数创建描述符

node.js - 无服务器更新检查失败错误

regex - 文件重命名正则表达式添加不需要的后缀

linux - 在 Linux 上映射 ARM 全局定时器

c++ - beagle bone black 的 undefined reference 链接器错误静态库交叉编译