【问题标题】:SPI EP93xx (TS7200 board with Linux)SPI EP93xx(带有 Linux 的 TS7200 板)
【发布时间】:2016-11-17 09:30:22
【问题描述】:

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

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

很遗憾,我们所有的尝试都失败了。 所以问题:你知道如何在 EP93xx 上使用 SPI 吗?任何代码或示例?

【问题讨论】:

  • 如果我没记错的话,LIS 加速度计并没有很好地遵循 SPI 事实标准,但有各种模糊的时序规格。因此,如果您有一些通用的标准 SPI 驱动程序,它可能无法正常工作。
  • 首先感谢您的回复。我不使用SPI驱动,我直接写在微控制器寄存器中
  • 我们的尝试失败是什么意思。你在测试 spi 输出吗?数据发送正确,但从设备无应答?没有数据输出?您还应该发布您的努力。寻找完整的解决方案是 OT on SO。
  • 我们能否提供更多关于您所尝试的详细信息?另外,您是否尝试过直接联系 Technologic Systems?他们的支持似乎适合这个问题:embeddedarm.com/support/contact-us.php

标签: c linux arm embedded spi


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 2015-03-15
    • 2021-09-22
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多