지금 현재 S3C2443과 S3C6410두개의 코어를 동시에 사용하는 단말기를 제작중입니다.
여기서 두 코어 간의 SPI통신으로 연결을 하려고 합니다.
S3C2443의 HS_SPI와 S3C6410 의 SPI를 연결하여서
둘사이에 데이터를 주고 받을 생각인데,
데이터 횟수와 량의로 본다면 S3C2443에서 S3C6410으로 가는 데이터가 많기 때문에
S3C2443을 마스터로, S3C6410을 슬레이브로 선택하여 만들어갈 생각입니다.
여기서 SPI의 기본적인 개념 중에서 각각의 코어의 SPI부분이 통신을 할 때,
데이터 시트 상의 송/수신이 동시에 이루어 진다고 하는데,
1. 마스터에서 데이터를 보내면 슬레이브는 보냄에 따라서 밀리는 형식으로 슬레이브에서 마스터로 데이터가 흘러가는 지...
_____________________________
| |
마스터 -------------------------------------- 슬레이브
(솔찍히 그림 허접하네요 ㅠ.ㅠ)
2. 서로 각각 다른 라인으로 입력과 출력을 받는 형식인지 궁금합니다.
마스터 입력 -------------------------------- 슬레이브 출력
마스터 출력 -------------------------------- 슬레이브 입력
다들 이해 하셨나요? ㅠ.ㅠ
그리고 지금 현재 하려는 시스템에 대해서 많은 조언 부탁 드립니다. ㅠ/.ㅠ
하지만 SPI로 M-S 통신 시스템을 구성하면 마스터가 통신 시점을 결정하기 때문에...
(/SS 혹은 /CS 신호가 Low로 떨어지는 동안 슬레이브가 Active가 됩니다..)
그렇기 때문에 슬레이브 측에서 마스터로 데이터를 보내려고 할때는 문제가 발생합니다..
우선 슬레이브에서 SPI와 별개의 IO 신호를 마스터측과 연결합니다..
그리고 슬레이브에서 마스터로 데이터를 보내기 위해서는..
슬레이브의 SPI 버퍼에 데이터를 넣어놓은 다음 IO를 통해서 마스터로 신호를 줍니다..
마스터는 인터럽트를 통해서 신호를 보내려고 한다는 것을 인식하고 SPI로 데이터를 보냅니다..
센서나 통신 IC등을 보면 이런 식으로 구성이 되어있습니다.. ^^;