Sorun: STM32F4 + MPU6050 ( Farklı kodlar aynı satırda takılıyor)

Başlatan Mtekin5, 06 Temmuz 2014, 13:14:22

Mtekin5

Arkadaşlar Merhaba,

Stm32f3 ve f4 leri tanımaya ve ögrenmeye çalışıyorum. Bu sebeple STM32F4 discv. kit ve MPU6050 aldım.

Bu ikiliyi 1 aydır farklı kod ve konfigurasyonlar ile ayaga kaldırmak istememe rağmen başarılı olamadım.

http://muhittinkaplan.com/2013/07/stm32f4discovery-ile-mpu-6050-3-eksen-gyro-ve-3-eksen-ivmeolcer/

Mesela yukarıda muhittin bey in ornegıni de kullandım; ama aynı sonuc.

Her seferinde aynı satırda takılı kaldım:

  /* Test on EV6 and clear it */
  while(!I2C_CheckEvent(MPU6050_I2C, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));   



4 kablo ile baglantım su sekılde:

MPU6050-(GY521) ---- STM32F4

VCC --5V
GND --GND
SCL --PB6
SDA --PB7

Yardımcı olacak arkadaşlara şimdiden teşekkür ederim.

İyi çalışmalar.

muhittin_kaplan

Hatirlamiyorum epey oldu, bakma firsatimda yok. İ2c ye pullup ekleyip denermisiniz

pea

MPU6050'de doğru adres kullanmak(0x68 genelde) ve entegreyi uykudan çıkarmak önemli.
STM32 ile alakam yok şimdilik.

muhittin_kaplan

Benim ornekte adres dogruydu. 68 ve 69 sanirim ikisinide deneyini

Mtekin5

Muhittin Bey Merhabalar,

"Benim ornekte adres dogruydu. 68 ve 69 sanirim ikisinide deneyini"

İkisinide denedim ama çözüm olmadı aynı yerde takılıyorum. Nette benzer kodlar gördüm bu entegre ile ilgili onlarda da aynı.

"İ2c ye pullup ekleyip denermisiniz" 

Bunu nasıl yapabilirim elimde suanda baska komponent yok. 4 kablo ile baglantım dogrumudur hocam ?


Mtekin5

Alıntı yapılan: pea - 06 Temmuz 2014, 21:57:34
MPU6050'de doğru adres kullanmak(0x68 genelde) ve entegreyi uykudan çıkarmak önemli.
STM32 ile alakam yok şimdilik.

Entegreyi uykudan cıkarmak ıcın ne yapmayalım hocam, baglantıyı yukarda bahsettiğim 4 hat ile saglayıp kodu calıstırıyorum.
Ornek calısan bır uygulama paylaşabilir misiniz, stm32f3 veya f4 ıkı 2 kıt de var elimde.
Tesekkurler.

Mtekin5

Alıntı yapılan: muhittin_kaplan - 06 Temmuz 2014, 23:11:04
Benim ornekte adres dogruydu. 68 ve 69 sanirim ikisinide deneyini

Muhittin Bey Merhabalar,

"Benim ornekte adres dogruydu. 68 ve 69 sanirim ikisinide deneyini"

İkisinide denedim ama çözüm olmadı aynı yerde takılıyorum. Nette benzer kodlar gördüm bu entegre ile ilgili onlarda da aynı.

"İ2c ye pullup ekleyip denermisiniz" 

Bunu nasıl yapabilirim elimde suanda baska komponent yok. 4 kablo ile baglantım dogrumudur hocam ?

muhittin_kaplan

örneğimi indirdim baktım, ben CoOS ile yapmışım. donanımı test etmek için CoIDE yi kurup test ediniz.

Mtekin5

Alıntı yapılan: muhittin_kaplan - 07 Temmuz 2014, 09:29:53
örneğimi indirdim baktım, ben CoOS ile yapmışım. donanımı test etmek için CoIDE yi kurup test ediniz.
Muhittin Hocam cevap teşekkürler size zahmet olmaz ıse sızde çalışan projeyı burada paylaşma ımkanınız var mıdır, çünkü ben maın dosyasını alıp bahsettıgınız lıbraryler ıle calısınca farklı ı2c konfıgurasyonları ıle karşılaştım cogu zaman. Sızın konfıgurasyonunuzu test edebılırsem çok sağlıklı olur benım ıcınde.
Iyı günler.


Mtekin5

Alıntı yapılan: muhittin_kaplan - 07 Temmuz 2014, 11:53:35
http://muhittinkaplan.com/2013/07/stm32f4discovery-ile-mpu-6050-3-eksen-gyro-ve-3-eksen-ivmeolcer/#more-197

Hocam Merhabalar Tekrar,

Uygulamanızın linkindeki "CooCox_I2C_F4" projesini zaten daha önceden çalıştıramadıgımdan ve bazı ayarların yanlış olabılecegını dusundugumden bironcekı mesajımda sizde çalışan projeyı burada rica etmıstım.

Anlamadıgım nokta:

#define MPU6050_I2C_SCL_Pin          GPIO_Pin_7
#define MPU6050_I2C_SDA_Pin          GPIO_Pin_8

GPIO_InitStructure.GPIO_Pin =  MPU6050_I2C_SCL_Pin | MPU6050_I2C_SDA_Pin;

GPIO_PinAFConfig(GPIOB, GPIO_PinSource8, GPIO_AF_I2C1);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource7, GPIO_AF_I2C1);


bu ayarlar proje dosyalarında var ancak stm32f4 disc de pin diagramına baktıgımızda: SCL  pb6 yada pb8  ;  SDA pb7 yada pb9
sizin paylaştıgınız projede ise pin ayarları farklı. Bu nedenle asıl konfıgurasyonu istemıstım hocam.

Coocox da tekrar yarın bir deneme yapacagım sizde elinizde nihai kaynak varsa linkinizde veya burada paylasırsanız cok verımlı olur.

Tekrar tesekkur ederım.

İyi günler.   

minicihazlar

Discovery üzerindeki STM32F407VGT6'nin datasheetine göre I2C1 her ikisinde de AF4 (alternate function 4)'e atanmış olanarak PB6(SCL) ve PB7(SDA)  ile PB8(SCL) ve PB9(SDA)'dan ulaşabilirsin, ama bunları kendi aralarında yer değiştiremezsin. Yani birini PB6 diğerini PB9 alamazsın. Birde I2C birimi clock'unu aktif hale getirmişmiydin?

muhittin_kaplan


Mtekin5

Alıntı yapılan: minicihazlar - 08 Temmuz 2014, 12:14:57
Discovery üzerindeki STM32F407VGT6'nin datasheetine göre I2C1 her ikisinde de AF4 (alternate function 4)'e atanmış olanarak PB6(SCL) ve PB7(SDA)  ile PB8(SCL) ve PB9(SDA)'dan ulaşabilirsin, ama bunları kendi aralarında yer değiştiremezsin. Yani birini PB6 diğerini PB9 alamazsın. Birde I2C birimi clock'unu aktif hale getirmişmiydin?

Minicihazlar Hocam,

Ben zaten PB6(SCL) ve PB7(SDA) kullanıyorak denedim. Yukarıdaki konfıgurasyon benım değil Muhıttın Hocam ın; onda çalışmış ama.

"Birde I2C birimi clock'unu aktif hale getirmişmiydin?"
Evet.

STm32f4 ile mpu6050 beraber çalıştırmaya basarabılen başka arkadaşlarda girdi yapsa çok verimli olur.

Tesekkurler.

Mtekin5

MPU6050 ile sorunum hala çözülmedi yokmu kullanan bir arkadaş.
İyı gunler.