2016-11-17 61 views
-2

我正在使用Embedded Arm的7200主板。該主板託管Linux內核2.6並安裝EP9302 arm9。 我們需要使用SPI接口來與加速度計(LIS3DSH)和一些PT100(MAX31865)進行通信。SPI EP93xx(帶Linux的TS7200主板)

我們對這個問題的解決方案實際上是基於對嵌入式手臂(文件tempSensor.C ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7200-linux/samples/)提供的EP9302寄存器進行位移。請注意,這種情況下的傳感器「嵌入」在電路板本身中。最後我們用C程序。

不幸的是我們所有的嘗試都失敗了。 所以問題:你知道如何在EP93xx上使用SPI嗎?任何代碼或例子?

+0

如果我沒有記錯的話,LIS加速度計不能很好地遵循SPI事實標準,但有各種模糊的時序規格。所以如果你有一些通用的標準SPI驅動程序,它可能無法工作。 – Lundin

+0

首先感謝您的回覆。我不使用SPI驅動程序,我直接在微控制器寄存器中寫入 – Andak

+1

您的意思是說我的嘗試失敗了。你在測試spi輸出嗎?數據發送正確,但沒有答案形式的從屬設備?沒有數據輸出?你也應該發佈你的努力。在SO上尋找完整的解決方案是OT。 – LPs

回答

0

好的傢伙感謝所有的建議和提示。 我解決了我的問題。由於事實上我沒有使用驅動程序,但我直接在微寄存器中bitbanging bits我有一個副作用: - 每次我在SPI寫寄存器寫入的東西,數據寫入MOSI和數據MISO在FIFO緩衝區中傳輸。無論從設備是否回覆,都無關緊要!這是問題

解決方法:每次在SPI「輸出」寄存器中寫入內容時。始終讀取FIFO「輸入」寄存器。總是!

對於遺傳,當我配置從屬寄存器時,我沒有讀取輸入FIFO(設備沒有回覆,但是您應該始終讀取(清除)FIFO!)。

我注意到了使用示波器的問題。感謝幫助。 我在問題中提供的示例正在工作,因爲在「寫入」後總會有「讀取」!