본문 바로가기
Wiznet/Hardware

자이로센서[각속도센서]에 대해 알아보자 (ICM-40609-D)

by Alan_S 2024. 10. 4.

가속도계, 자이로스코프 / 흔히 자이로센서라고 불리는 것들에 대해 알아보도록 하겠다. 

검색하다보니 MEMS 라고 불리는 것들이 많이 보인다. 

 MEMS 센서(Micro-Electro-Mechanical Systems Sensor)는 미세전자기계시스템 기술을 활용하여 제작된 센서를 의미한다. 이 기술은 매우 작은 기계 부품과 전자 회로를 결합하여 다양한 물리적 변화를 감지한다. MEMS 센서는 가속도, 압력, 자이로스코프, 자기장, 소리 등 여러 물리량을 측정하는 데 사용된다.
 주요 특징은 소형화, 저전력 소모, 고정밀도이며, 스마트폰, 자동차, 의료기기, 산업 장비 등 다양한 분야에서 사용된다. 

 

 많이 보이는 센서가 MPU-6050과 MPU-9050인데, 모듈 형태로는 많이 보이지만 Chip으로는 단종된 것 같다.

또한, MPU series는 Invensense라는 회사에서 개발한 센서인데, 현재는 TDK에 인수되면서 TDK 브랜드로 판매가 되고있다. 

 아무튼 TDK에서 MPU-6050/9050은 단종을 했으니, 신제품에 대해 공부하고 테스트해보고 싶다. 그래도 호환해서 사용할 수 있는 제품이면 좋겠으니 먼저 MPU-6050대해 알아보기로 한다. 

 

MPU-6050은 I2C로 3축 가속도계와 3축 자이로스코프의 데이터를 읽어올 수 있다. 

방법은 위와 같은데, 빠르게 주루룩 읽어서 응용하려면 FIFO로 사용하면 되겠다. 

 

Sampling 속도

 

 우선 MPU-6050 I2C 는 최대 400kHz 까지 사용가능하다. 
MPU-6050은 16bit ADC 스케일을 갖는다. 각 축당 16bit이기 때문에 총 16x6 = 96bit가 된다. 그렇다면 Address 7bit와 R/W 1bit를 합쳐 총 104bit가 된다. 400k/104 = 3,846 의 속도로 데이터를 보낼 수 있다. 약 3.8k 속도로 샘플링 데이터를 보낼 수 있다는 것인데, 이건 I2C의 한계이다. 

 

큰 문제가 있는데, Accelerometer, 가속도 샘플링이 1kHz 밖에 안된다는 것이다. 즉, 1ms sampling이 한계이다. 

더 빠른 속도로 레지스터를 읽는다면, 같은 데이터가 들어올 것이라 생각된다. MPU-6050은 FIFO 버퍼에 1ms주기로 데이터를 업데이트하고, MCU가 요청하면 데이터를 주기 때문이다. 

 

다른 제품을 알아보기로 하자.

ICM-40609-D

TDK의 제품리스트 중에 MPU-6050/9050을 비롯한 MPU-6500과 ICM-20602도 단종이라고 한다.
드론에서 많이 사용된다는 ICM-40609-D를 보도록 하자. 32KHz, 16-bit. 현재 업계에선 탑스펙에 속한다. 

 

MPU-6050과 동일하게 16-bit로 샘플링을 한다. 다만 속도는 32kHz. MPU-6050이 1kHz인 것에비해 굉장히 빠르다. 

간략히 보니 자이로 3축 48bit, 가속도 3축 48bit 외에도 Temperature bit와 time stamp bit도 사용할 수 있는 것 같다. Addr 까지 합치면 120bit인데, 32kHz마다 120bit 샘플링이 가능하다는 것 같다. 

 

그렇다면 I2C의 속도는 어떨까. 

 

1MHz이다. 1M/120 = 8,333 이다. 즉, I2C로 데이터를 받을 때, 최대 8.3k 의 속도로 샘플링된 데이터를 받을 수 있다. (온도, 타임스탬프 포함)

 

 

하지만 해당 칩은 SPI를 사용할 수 있다. 최대 24MHz의 속도로 데이터를 전송 할 수 있다. 

I2C와 다르게 ADDR이 필요하지 않으니, 8bit정도를 뺀 112bit로 대략 계산을 해봐도 200k로 샘플링된 데이터를 받을 수 있다.