안녕하세요
atmega128 데이타 시트를 보고 공부중인 학생입니다.
제가 SPI 쪽을 공부하고 있는데
Master-Slave Interconnection 쪽이 이해가 잘 안됩니다.
8bit shift register가 왜 2개이고(m 하나 s하나) 그 레지스터의 miso / mosi 관계 와 sck/ ~ss pin 등...
그리고 spi 클락은 master에서 관리를 한다는데 데이타 시트에 있는 그림으로는 명확히 이해가 안됩니다..
SPI 의 Master-Slave 의 관계에 대해 자세한 설명 부탁드리겠습니다...
atmega128 데이타 시트를 보고 공부중인 학생입니다.
제가 SPI 쪽을 공부하고 있는데
Master-Slave Interconnection 쪽이 이해가 잘 안됩니다.
8bit shift register가 왜 2개이고(m 하나 s하나) 그 레지스터의 miso / mosi 관계 와 sck/ ~ss pin 등...
그리고 spi 클락은 master에서 관리를 한다는데 데이타 시트에 있는 그림으로는 명확히 이해가 안됩니다..
SPI 의 Master-Slave 의 관계에 대해 자세한 설명 부탁드리겠습니다...
시프트레지스터는 당연 두개여야죠.
보내는쪽이, 데이터를 순차적으로 보낸다면, 받는쪽도 순차적으로 받아야 할 것 아닙니까...
miso는 master in slave out, mosi는 master out slave in입니다.
즉 서로 데이터를 보낼때 마스터측이 보낼때와 슬레이브가 보낼때 이 데이터 선에 결정되는거구요.
/ss단자는 슬레이브만 해당합니다.
low신호 인가시 데이터가 수신되구요, high일 경우 무시됩니다.
시리얼플래쉬의 DeviceID를 읽겠죠. 이렇게 되면 누가 컨트롤의 주체일까요? MCU가 해줘야 겠죠...
Flash는 CS(칩Select)핀이 Enable되어야만 ,"아..지금 나를 컨트롤 할려고 하는구나" 하고...SPI Clock에 실려오는 데이타를
분석하고 그에 맞는 응답을 해주겠죠...
통신을 하기위해서는 누군가에게 정보를 받는 것입니다. 그렇기때문에 주인과 노예가 있는 것지요
m은 그런 의미에서 master 이고 s는 slave입니다. 즉 주인과 노예가 되는 거지요. 노예는 주인의 말에 복종합니다. 그 말이 되는 것이 바로 명령어가 되는 것이구요 그거는 MOSI(master out slave in)을 통해서 노예로 보내지는 거지요 노예는 주인의 말소리에 의해서 주인의 명령을 받아 들입니다. MISO(master in slave out)주인의 명령에 의해 움직인 노예의 정보 입니다. 그 소리의 역할을 하는 것이 바로 sck 클럭입니다. 클럭을 통해서 당시의 상황이 high인지 low인지에 대해서 인식을 해 정보를 아는 것이지요 마지막으로 ss라는 것은 1번 노예부터 10본 노예중에 어떤 노예에게 일을 시킬지를 결정을 하는 것입니다.