ICM20789 jiroskop ivme ölçer ve manyemetre sensörüne genel bakış
ICM20789 sensörü
ICM20789, 4 mm x 4 mm x 1,365 mm (24-pin LGA) paketinde 6 eksenli atalet sensörü, 3 eksenli jiroskop ve 3 eksenli ivmeölçer, ultra düşük noise MEMS kapasitif barometrik basınç sensörüdür. Seri veri yolu arayüzündeki trafiği azaltabilen 4 KB FIFO özelliğine sahiptir.
Dijital çıkışlı barometrik basınç sensörü, ±1 Pa doğrulukla basınç farklarını ölçebilen ultra düşük noiselu yenilikçi MEMS kapasitif teknolojisine dayanmaktadır; bu doğruluk, artan güç tüketimi veya azaltılmış sensör verimi olmaksızın 8,5 cm kadar küçük yükseklik ölçüm farklarına olanak tanır.
Jiroskopun ±250 dps, ±500 dps, ±1000 dps ve ±2000 dps’lik programlanabilir tam ölçekli aralığı vardır. İvmeölçer ±2 g , ±4 g , ±8 g ve ±16 g’lik kullanıcı tarafından programlanabilir tam ölçekli aralığı vardır .
Diğer özellikler arasında çip üzerinde 16 bitlik ADC’ler, programlanabilir dijital filtreler, başka bir gömülü sıcaklık sensörü ve programlanabilir interruptlar bulunur. Cihaz, 400 kHz’de ve 8 MHz SPI’da kayıtlarına erişmek için I2C seri arayüzüne sahiptir.
Özellikler
- Eksen Sayısı: 7-Eksen
- Çıkış türü: Dijital-I2C veya SPI
- İvmeölçer FSR: ±2, ±4, ±8, ±16(g)
- İvmeölçer Hassasiyeti SF: 16384, 2048 (LSB/g), 4096, 8192
- Jiroskop FSR: ±250, ±500, ±1000, ±2000(dps)
- Jiroskop Hassasiyeti SF: 131, 16.4 (LSB/dps), 32.8, 65.5
- Acc. & Gyro ADC: 16 Bit
- Basınç aralığı: 25 ila 115 kpa
- Basınç Çözünürlüğü: 0,01 pa
Uygulamalar
- İHA’lar ve Uçan Oyuncaklar
- Hareket tabanlı oyun kumandaları
- Sanal Gerçeklik başlıkları ve kumandaları
- İç/Dış Mekan Navigasyonu (tahmini konum, kat/asansör/basamak algılama)
Gebra ICM20789 Modülü
- Sensör pinlerine ulaşmanın zor olduğu göz önüne alındığında, sensörünün donanım ve yazılım geliştirmesi için kullanıcının bir starter devresine ve sürücüsüne ihtiyacı vardır. GebraMS kullanıcıların rahatlığı için Gebra ICM20789 devresini hazırladı. Kullanıcılar bu sensörün en önemli pinlerine bu devre aracılığıyla kolaylıkla erişebilirler
- Gebra ICM20789 BreadBoard’a yerleştirmeniz, ardından Arduino, Raspberry Pi, Discovery board’lardan herhangi biriyle uygun voltaj kurulumu uygulayarak kurmanız yeterlidir
- biz özelllikle Gebra STM32F303 kullanmanızı öneriyoruz, Gebra STM32F303 üzerinde dahili 3V3 regülatörünün bulunması ve tüm Gebra modüllerinin pin sırasının birbirine uyumlu olması (GEBRABUS standardı) Gebra ICM20789 ilgili sokete takıp kablolama yapmadan kodlamaya başlayabilirsiniz
Gebra ICM20789 Modülünün Temel Özellikleri
- Kullanıcı tarafından seçilebilen arayüz protokolü (I2C veya SPI)
- Kullanıcı tarafından seçilebilen I2C adresi (AD0)
- Sensörün tüm veri pinlerine erişim
- 1V8 Voltaj Regülatörü
- 1V8 Çıkış Voltajı
- Bord üstünde, AÇIK/KAPALI LED göstergesi
- GEBRABUS ile Uyumlu Pin
- Gebra MCU Modüllerinin bir yardımcı kartı olarak kullanılabilir
- Castellated pad (SMD Parçası olarak monte edilmiştir)
- Kartın boyutunu küçültmek için ayrılabilir vida parçaları
- Paket: Gebra küçük (36,29 mm x 32,72 mm)
Modül bölümlerinin tanıtımı
ICM20789 sensörü
yukarıdaki modülün merkezine yerleştirilen ve devresi tasarlanan ana IC’dir.
İletişim Protokolü jumperi
Tüm Jumper’ların 0R dirençleri sol tarafta ise I2C protokolü seçilmiştir.
Tüm Jumper’ların 0R dirençleri sağ tarafta ise SPI protokolü seçilidir.
varsayılan olarak I2C protokolü seçilidir.
AD0 SEL jumperi
I2C protokolü seçildiğinde, AD0 SEL jumper’ının durumu, sensörün I2C adresini belirler (0 => 0x68 veya 1 => 0x69).
0R direnci 0 olarak ayarlanmıştır ve 0x68 adresi seçilidir (varsayılan olarak).
1V8 XC6206P182MR-G regülatörü
Bu modülde kullanılan regülatör 5V voltajını 1.8V’a çevirir. Bu regülatörün çıkışına “1V8” pininden ulaşılabilir.
güç LED’i
Modüle ilgili pin üzerinden voltaj uygulandığında modülün LED’i yanacaktır.
Gebra ICM20789 Modül pinleri
Besleme pinleri
- 5V: Bu pin, modülün ana güç kaynağı pinidir ve kart üzerindeki regülatör giriş voltajını sağlar.
- 1V8: Regülatör modüle monte edilmişse, regülatörün “1.8V” çıkış voltajı bu pin üzerinden kullanılabilir, aksi takdirde bu pin, “1.8V” harici voltaj uygulayarak modülü başlatmak için ana güç kaynağını sağlayabilir. Ayrıca, sensörün dijital iletişiminin (I2C veya SPI) logic seviyesini de sağlayabilir.
- GND: Sensörün güç ve logic seviyesi için ortak topraklama pinidir.
I2C pinleri
Bord üstündeki Jumper’ları kullanarak, modül iletişim türünü seçebilirsiniz. Tüm Jumper’ların 0R dirençleri sol taraftaysa, “I2C” protokolü seçilir. “AD0 SEL” jumper durumu, sensörün I2C adresidir (0x68 veya 0x69).
- SDA: Bu pin, mikrodenetleyicideki (işlemcideki) ilgili veri pinine bağlanan I2C iletişim veri pinidir. “VDIO SEL” jumper’ının durumuna göre, “1V8” veya “3V3” voltajlı logic seviyesini kullanabilirsiniz. Bu pin 10K dirençle pul up durumundadır.
- SCL: Bu pin, mikrodenetleyicideki (işlemcideki) karşılık gelen saat pinine bağlanan I2C iletişim saat pinidir. “VDIO SEL” jumper’ının durumuna bağlı olarak, “1V8” veya “3V3” voltajlı logic seviyesini kullanabilirsiniz. Bu pin 10K’lık bir dirençle pul up durumundadır.
- PR SDA : Bu pin, Basınç Sensörü erişimi için I2C arayüz veri pinidir ve mikrodenetleyicideki (işlemcideki) ilgili veri pinine bağlanır ve 10K dirençle pul up durumundadır.
- PR SCL : Bu pin, Basınç Sensörü erişimi için I2C arayüz saat pinidir ve mikrodenetleyicideki (işlemcideki) ilgili veri pinine bağlanır ve 10K dirençle pul up durumundadır.
NOT : Gebra ICM20789 modülünün logic seviyesi 1.8V, geliştirme modüllerinin logic seviyesi ise 5V olduğundan, Logic Seviyesi Dönüştürücü modülü ile iki logic seviyesinin birbirine dönüştürülmesi gerekmektedir.
SPI pinleri
Modülle iletişim türünü bord üstündeki jumperlar kullanılarak seçilebilir. Tüm jumperların 0R dirençleri sağ taraftaysa, SPI protokolü seçilmiştir. Bu durumda “AD0 SEL” jumperinin durumu hiçbir etkiye sahip değildir.
- SDI (MOSI): Bu pin, mikrodenetleyiciden (işlemci) modüle (sensör) veri göndermek için kullanılır. Bu pinin kısaltması Latince Serial Data In / Microcontroller Out Sensor In ifadesinden türetilmiştir.
- SDO (MISO): Bu pin, modülden (sensör) mikrodenetleyiciye (işlemci) veri göndermek için kullanılır. Bu pinin kısaltması Latince Serial Data Out / Microcontroller In Sensor Out ifadesinden türetilmiştir.
- SCK: Bu pin, SPI haberleşmesi için saat pinidir, sensörün girişi olarak kabul edilir ve mikrodenetleyicideki (işlemcideki) ilgili saat pinine bağlanır.
- CS: Bu pin, SPI haberleşmesi için modül (sensör) ile Chip Select pinidir, LOW voltaj (0V) uygulanarak seçilir, modül (sensör) SPI haberleşmesi için. Bu pin, sensör için giriş tipidir.
Aynı anda birden fazla Gebra ICM20789 modülünü kullanmak istiyorsanız, tüm modüllerin “SDO”, “SDI”, “SCK” pinlerini ve mikrodenetleyiciyi (işlemciyi) birbirine bağlayıp her bir “CS”ye ayrı bir pin atamanız yeterlidir.
NOT : Gebra ICM20789 modülünün logic seviyesi “1.8V”, geliştirme modüllerinin logic seviyesi ise “5V” olduğundan, Logic Seviyesi Dönüştürücü modülü ile iki logic seviyesinin birbirine dönüştürülmesi gerekmektedir.
Diğer pinler
- INT: ICM20789 sensörü için interrupt pini, veri sayfasına göre, kullanıcı interrupt koşullarını, interrupt modlarını ve yöntemlerini vb. ayarlayabilir.
- FSY(FSYNC): Bu pin, sensörü harici bir kaynakla senkronize etmek için kullanılır. Daha fazla bilgi için sensörün veri sayfasını okuyun. Varsayılan olarak, bu pin R3 direnciyle toprağa bağlanır. Pin’i kullanmak için, R3 direncinin modülden çıkarılması (sökülmesi) gerekir.
İşlemciye bağlanmak
Gebra STM32F303 ile I2C bağlantısı
Öncelikle kart üzerindeki jumper’lar kullanılarak I2C protokolünün seçildiğinden emin olunduktan sonra Gebra ICM20789 ve Gebra STM32F303 mikrodenetleyici modülünün I2C bağlantısı için PB9 ve PB8 pinlerine “SDA” ve “SCL” tanımları yapıldıktan sonra (STMCUBEMX’te kolaylık olması açısından) aşağıdaki adımları takip edin:
Gebra ICM20789 modülünün logic seviyesi “1.8V” ve Gebra STM32F303 mikrodenetleyici modülünün logic seviyesi “3V3” olduğundan, Logic Seviyesi Dönüştürücü modülü aracılığıyla iki logic seviyesinin birbirine dönüştürülmesi gerekmektedir.
- Yukarıdaki açıklamaya göre, ICM20789 modülünün “1V8” pinini, Logic Seviyesi Dönüştürücüsü (sarı ve yeşil kablolar) aracılığıyla mikrodenetleyici modülünün “3V3” çıkış pinine bağlayın.
- Aşağıdaki resimde gösterildiği gibi ICM20789 modülünün “GND” pinlerini mikrodenetleyici modülünün “GND” pinlerine bağlayın. (siyah kablolar)
- ICM20789 modülünün “SCL” ve “SDA” pinlerini Logic Seviyesi Dönüştürücü modülü (mavi kablolar) aracılığıyla mikrodenetleyici modülünün PB8(SCL) ve PB9(SDA) pinlerine bağlayın.
Yukarıda belirtilen adımların nasıl bağlanacağını bu resimde görebilirsiniz:
Gebra STM32F303 ile SPI bağlantısı
Öncelikle kart üzerindeki jumper’ları kullanarak SPI protokolünün seçildiğinden emin olun, ardından Gebra ICM20789 modülünü SPI protokolü ile Gebra STM32F303 mikrodenetleyici modülüne bağlamak için PB5, PB4, PB3 ve PC13 pinlerine “SDI”, “SDO”, “SCK” ve “CS” tanımladıktan sonra (STMCUBEMX’te çalışma kolaylığı için) aşağıdaki bağlantıları yapın:
Gebra ICM20789 modülünün logic seviyesi “1.8V” ve Gebra STM32F303 mikrodenetleyici modülünün logic seviyesi “3V3” olduğundan, Logic Seviyesi Dönüştürücü modülü aracılığıyla iki logic seviyesini birbirine dönüştürmek gerekmektedir.
Gebra ATMEGA32A ile I2C bağlantısı
Öncelikle, kart üzerindeki jumper’ları kullanarak I2C protokolünün seçildiğinden emin olun, ardından Gebra ICM20789 ve Gebra ATMEGA32A mikrodenetleyici modülünün I2C bağlantısı için, SDA ve SCL’yi PC1 ve PC0 pinlerine tanımladıktan sonra (STMCUBEMX’te kolaylık olması açısından) aşağıdaki resimde gösterildiği gibi takip edin:
Gebra ICM20789 modülünün logic seviyesi “1.8V” ve Gebra ATMEGA32A mikrodenetleyici modülünün logic seviyesi “3V3” olduğundan, Logic Seviyesi Dönüştürücü modülü aracılığıyla iki logic seviyesinin birbirine dönüştürülmesi gerekmektedir.
Gebra ATMEGA32A ile SPI bağlantısı
Öncelikle kart üzerindeki jumper’ları kullanarak SPI protokolünün seçildiğinden emin olun, ardından Gebra ICM20789 modülünü Gebra ATMEGA32A mikrodenetleyici modülüne SPI protokolü ile bağlamak için PB5, PB4, PB3 ve PC13 pinlerine “SDI”, “SDO”, “SCK” ve “CS” tanımladıktan sonra aşağıdaki gibi bağlantıları yapın:
Gebra ICM20789 modülünün logic seviyesi “1.8V” ve Gebra ATMEGA32A mikrodenetleyici modülünün logic seviyesi “3V3” olduğundan, Logic Seviyesi Dönüştürücü modülü aracılığıyla iki logic seviyesinin birbirine dönüştürülmesi gerekmektedir.
ARDUINO UNO ile I2C Bağlantısı
Öncelikle kart üzerindeki jumperlar kullanılarak I2C protokolünün seçildiğinden emin olun, ardından aşağıdaki adımları izleyerek Gebra ICM20789 modülünü I2C aracılığıyla ARDUINO UNO’ya bağlayın:
Gebra ICM20789 modülünün logic seviyesi 1.8V, ARDUINO UNO kartının logic seviyesi ise 5V olduğundan, Logic Seviyesi Dönüştürücü modülü aracılığıyla iki logic seviyesini birbirine dönüştürmek gerekmektedir.
- Aşağıdaki resimde gösterildiği gibi ICM20789 modülünün “1V8” pinini ARDUINO UNO kartının “5V” çıkış pinine bağlayın. (kırmızı kablo)
- ICM20789 modülünün “GND” pinini ARDUINO UNO kartının “GND” pinine (siyah kablo) bağlayın.
- ICM20789 modülünün “SCL” pinini ARDUINO UNO kartının A5 pinine bağlayın (SCL). (mavi kablo)
- ICM20789 modülünün “SDA” pinini ARDUINO UNO kartının (SDA) A4 pinine bağlayın. (turuncu kablo)
Yukarıda belirtilen adımların nasıl bağlanacağını bu resimde görebilirsiniz:
ARDUINO UNO ile SPI Bağlantısı
Öncelikle kart üzerindeki jumper’ları kullanarak SPI protokolünün seçildiğinden emin olun, ardından aşağıdaki adımları izleyerek Gebra ICM20789 modülünü SPI aracılığıyla ARDUINO UNO’ya bağlayın:
Gebra ICM20789 modülünün logic seviyesi “1.8V” ve ARDUINO UNO kartının logic seviyesi “5V” olduğundan, Logic Seviyesi Dönüştürücü modülü aracılığıyla iki logic seviyesini birbirine dönüştürmek gerekmektedir.
- Aşağıdaki resimde gösterildiği gibi ICM20789 modülünün “1V8” pinini ARDUINO UNO kartının “5V” çıkış pinine bağlayın. (kırmızı kablo)
- ICM20789 modülünün “GND” pinini ARDUINO UNO kartının “GND” pinine (siyah kablo) bağlayın.
- ICM20789 modülünün “SDI” pinini ARDUINO UNO kartının (SDI) D11 pinine bağlayın. (mavi kablo)
- ICM20789 modülünün “SDO” pinini ARDUINO UNO kartının (SDO) D12 pinine bağlayın. (mavi kablo)
Harika