C SPI EP93xx(带Linux的TS7200板)
我使用的是嵌入式Arm的7200板。该板承载linux内核2.6并安装EP9302 arm9。 我们需要使用SPI接口,以便与加速计(LIS3DSH)和一些PT100(MAX31865)通信 我们解决这个问题的方法实际上是基于对EP9302寄存器进行位扫描,就像嵌入式Arm提供的这个示例(文件tempSensor.C at)一样。请注意,在这种情况下,传感器“嵌入”在电路板中。最后我们用C语言编程 不幸的是,我们所有的尝试都失败了。C SPI EP93xx(带Linux的TS7200板),c,linux,arm,embedded,spi,C,Linux,Arm,Embedded,Spi,我使用的是嵌入式Arm的7200板。该板承载linux内核2.6并安装EP9302 arm9。 我们需要使用SPI接口,以便与加速计(LIS3DSH)和一些PT100(MAX31865)通信 我们解决这个问题的方法实际上是基于对EP9302寄存器进行位扫描,就像嵌入式Arm提供的这个示例(文件tempSensor.C at)一样。请注意,在这种情况下,传感器“嵌入”在电路板中。最后我们用C语言编程 不幸的是,我们所有的尝试都失败了。 问题:你知道如何在EP93xx上使用SPI吗?有代码或示例吗
问题:你知道如何在EP93xx上使用SPI吗?有代码或示例吗 好的,谢谢大家的建议和提示。 我解决了我的问题。由于我没有使用驱动程序,但我直接在微寄存器中输入位,因此产生了附带影响: -每次我在SPI写入寄存器中写入内容时,数据都会写入MOSI,MISO上的数据会在FIFO缓冲区中传输。从属设备是否应答并不重要!这就是问题所在 解决方案:每次在SPI“输出”寄存器中写入内容时。始终读取FIFO“输入”寄存器。永远 例如,在配置从寄存器时,我没有读取输入FIFO(设备没有响应,但您应该始终读取(清除)FIFO!) 我用示波器注意到了这个问题。谢谢你的帮助。
我在问题中提供的例子是有效的,因为在“写”之后总是有一个“读” 如果我没记错的话,LIS加速计并没有很好地遵循SPI事实标准,但是有各种模糊的计时规格。因此,如果您有一些通用标准SPI驱动程序,它可能不会工作。首先感谢您的回复。我不使用SPI驱动程序,我直接在微控制器寄存器中写入。我们的尝试失败是什么意思。您正在测试spi输出吗?数据正确发送,但从设备没有应答?没有数据输出?你也应该发布你的努力。寻找完整的解决方案正在进行中。我们可以更详细地了解您的尝试吗?另外,您是否尝试过直接联系技术系统?他们的支持似乎适合这个问题: