SPI 통신 개념 연결 방법 SPI 1:1 통신 선 연결 SCLK - 클럭 전송 라인 MOSI - Master Out Slave In MISO - Master In Slave Out /CS - Chip Select (Active Low:Low 상태에 동작하는 것을 의미) ※ 슬레이브의 경우 - MOSI 핀은 SDI 또는 DI - MISO 핀은 SDO 또는 DO 로 표기되는 경우도 있음. SPI 1:N 통신 선 연결 3 + N개(/CS)의 핀 필요 SCLK을 통해 동기식 통신을 하며 SCLK는 Master 장치만 발생시킬 수 있다. SPI는 동시에 1개의 장치와 통신할 수 있으며 다수의 장치와 통신할 경우 CS핀을 통신할 대상 장치만 Low로 신호를 보내고 통신하지 않는 장치들은 High로 신호를 출력해야..
SPI 통신 흐름 Mpu9250과 STM32F101 의 SPI 통신을 예로 들면 원하는 레지스터 값을 보낸 후, 더미데이터를 전송 받은 후 더미데이터를 다시 전송하고 원하는 값을 획득할 수 있다. 통신의 시작과 종료 SPI 통신 같은 경우는 1대 1뿐만 아니라 1대 n통신이 가능하기 때문에 어떤 Device 와 통신을 시작할지 알려주고 신호를 줘야한다. 그것이 바로 cs핀을 이용하는 건데 cs핀이 연결된 Device에 핀에 High (3.3V) 상태를 대기 상태로 만들어 놓고 이핀을 Low (0V) 상태로 만들어 주는 것으로 통신을 시작한다. 반대로 통신의 종료는 Low 상태의 핀을 High 상태로 만들어 주는 것으로 통신을 종료한다. 레지스터 주소 값 전달 우리가 원하는 데이터를 얻기 위해서는 우리가 ..
I2C Start/Stop I2C는 SCL, SDA 두 라인으로만 구성된 간단한 버스이고, 여러개의 디바이스가 동시에 연결될 수 있다. 연결된 디바이스 중에 전송을 주관하는 것은 마스터(master), 마스터의 요청에 따라 데이터를 주고 받는 것을 슬레이브(slave)라고 한다. I2C에는 마스터가 여러개 연결(multi-master)될 수 도 있는데, 이런 상황에서는 마스터간에 서로 버스를 차지하기 위한 일종의 경쟁 상황이 발생 할 수 있다. 이런 상황을 적절히 중재하는 방법을 아비트레이션(arbitration)이라고 하며, 이 때문에 마스터가, 여럿인 상황에서도 안전하게 전송이 이루어질 수 있다. 일단 마스터가 하나이고 슬레이브가 여럿인 시스템이 있다면 버스상에 아무런 데이터 전송이 업는 상태에서는 ..
I2C 오픈 콜렉터 (Open Collector) 오픈 드레인 (Open Drain) I2C 버스는 두 라인에 여러 개의 디바이스를 달 수 있다. 로직 디바이스의 출력단에는 내부의 트랜지스터가 출력 전류의 소스(source) 또는 싱크(sink)로 동작하도록 되어있다. 내부 회로를 보면 보통 트랜지스터 하나가 다른 트랜지스터를 머리에 이고 있는 모습을 하고 있어서, 이를 보통 토템폴(totem pole)구조라 한다. 이런 구조 외에 또 하나 자주 쓰이는 것이 오픈 콜렉터, 오픈 드레인 출력단이다. 오픈 콜렉터나 오픈 드레인이나 모두 같은 개념이며, 단지 로직회로가 TTL(트렌지스터를 사용)이냐 CMOS(CMOS FET 트렌지스터를 사용)이냐에 따라 구분된다. 오픈 콜렉터 구조는 위의 그림에 나타난대로 로..
[I2C 개념 정리] I2C(Inter-Integrated Cicuit)는 1980년대 필립스사가 개발한 디바이스 간의 저속 데이터 전송을 위한 버스 표준이다. AVR에서는 Tow wire라는 이름을 사용하고 있는데, 내용상 I2C와 동일하다.I2C라고 표기를 했는데, 실제로 2는 윗첨자를 올려써야하며, 자승(square)를 의미한다. 즉 읽을때 '아이 스쿼어 씨'라고 읽는다. I2C는 전형적인 버스구조로 multi-master, multi-slave를 지원하고, 하나의 버스에 최대 128개의 디바이스가 연결될 수 있다.버스는 매우 느린 편으로, 현재 5MHz 정도까지 표준이 나와있다고 하는데, 보통 100k를 저속, 400k를 고속이라고 하며,대부분 이 정도의 속도만 지원한다. AVR도 최고 속도는 4..