2016-11-24 1 views
0

Spi 통신을 사용하여 마스터를 슬레이브와 어떻게 동기화합니까? 마스터에서 10ms의 실시간 클럭 (miso, mosi, cs, sck 제외)을 생성했으며 이제 클럭의 각 상승 에지에 대해 슬레이브를 동기화해야합니다. 노예는 데이터의 읽기를 시작해야합니다 슬레이브가 보낼 데이터가있는 경우, 데이터에 대한 마스터 요청 (ADC에서 제공)을 사용하고 (2.5ms마다) 시간 조각을 사용합니다. 이제 내 문제가 메인()에 내가 while(1) 사용해야합니까? (또는해야합니까?) 데이터를 읽을 때 얼마나 많은 시간을 할애하지 못했습니다. sychronization을위한 다른 솔루션이 있습니까? (LPC1343을 사용 중입니다.)ARM에서 마스터 및 슬레이브의 Spi 통신 동기화

+0

마스터 또는 슬레이브를 코딩 중인지 확실하지 않습니다. 슬레이브가 인텔리전스 형태를 가지면 마스터가 데이터를 필요로 할 때 이미 사용할 수 있고 MISO가 사용하는 데이터 버퍼에 배치 할 수 있도록 데이터를 지속적으로 읽는 습관이 있습니다. – Lundin

답변

0

일반적으로 SPI ADC는 자발적으로 데이터를 샘플링하고 IO 인터럽트에 의해 캡처 된 데이터를 사용할 수 있음을 나타 내기 위해 IO를 뒤집기 위해 구성됩니다.

SPI 슬레이브를 동 기적으로 작동 시키려면 10ms마다 "지금 샘플"이라고 말해야합니다. 폴링이라고합니다.

타이머 인터럽트는 폴링 메커니즘을 트리거하는 루틴을 호출해야합니다.

관련 문제