2016-11-17 5 views
-2

임베디드 암 (Embedded Arm)의 7200 보드를 사용하고 있습니다. 이 보드는 리눅스 커널 2.6을 호스트하고 EP9302 arm9를 마운트한다. 우리는 가속도계 (LIS3DSH) 및 일부 PT100 (MAX31865)과 통신하기 위해 SPI 인터페이스를 사용해야합니다.SPI EP93xx (Linux가 설치된 TS7200 보드)

이 문제에 대한 우리의 접근 방식은 Embedded Arm (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

_our 시도가 실패했다는 것은 무엇을 의미 하는가? spi 결과를 테스트하고 있습니까? 데이터가 올바르게 전송되었지만 응답이없는 슬레이브 디바이스가 있습니까? 데이터가 출력되지 않습니까? 노력을 게시해야합니다. 완벽한 솔루션을 찾는 것은 OT입니다. – LPs

답변

0

여러분, 제안과 팁에 모두 감사드립니다. 문제가 해결되었습니다. 사실 나는 운전자를 사용하지 않았기 때문에 비트를 직접 마이크로 레지스터에 조금씩 묻었습니다. 부수적 인 영향을 받았습니다. - SPI 쓰기 레지스터에 무언가를 쓸 때마다 데이터가 MOSI와 데이터에 기록됩니다. MISO는 FIFO 버퍼로 전송된다. 슬레이브 장치가 응답하는지 여부는 중요하지 않습니다! 그것이 문제였습니다

해결책 : SPI "output"레지스터에 무언가를 쓸 때마다. 항상 FIFO "입력"레지스터를 읽으십시오. 항상!

슬레이브 레지스터를 구성 할 때 입력 FIFO를 읽지 못했습니다. (디바이스는 응답하지 않았지만 항상 FIFO를 읽어야합니다!).

오실로스코프를 사용하여 문제가 발생했습니다. 도와 주셔서 감사합니다. "쓰기"후에 항상 "읽기"가 있기 때문에 질문에 제공된 예제가 작동합니다!