forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
Komunikace kompas hmc5883l

 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Microchip
 
Alojs82
Profesionál
Profesionál


Založen: 12.4.2010
Příspěvky: 76

PříspěvekZaslal: 02 červen 2016, 13:06    Předmět: Komunikace kompas hmc5883l Citovat

Ahoj,
pracoval někdo s tímto kompasem? Zkouším komunikaci a pořád vyčítám XH = 0XFF.
přitom zapisuju při inicializaci 0x70.



Inicializace:
kód:
void iniKOMPAS() {
  I2c2_start;
  I2C2_write(0x3c); // write mode
  I2C2_write(0x00); // set pointer to CRA
  I2C2_write(0x70); // write 0x70 to CRA
  I2c2_stop();
  delay_ms(100);
  I2c2_start();
  I2C2_write(0x3c); // write mode
  I2C2_write(0x01); //set pointer to CRB
  I2C2_write(0xA0); //set gain=5
  I2c2_stop();
  delay_ms(100);
  I2c2_start();
  I2C2_write(0x3c);  // write mode
  I2C2_write(0x02); //set pointer to measurement mode
  I2C2_write(0x00); //
  I2c2_stop();
  delay_ms(100);
  }


přečtení registru 0x00
kód:
I2c2_start();
     I2C2_Write(0x3d);
     I2C2_Write(0x00);  // listed in example, but causes hanging
    //I2C2_Restart();
     XH = I2C2_Read(1);
     I2c2_stop();
      delay_ms(100);
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Radius
Profesionál
Profesionál


Založen: 22.2.2013
Příspěvky: 450

PříspěvekZaslal: 03 červen 2016, 0:40    Předmět: Citovat

Pracoval. Ověřil sis, že Ti HW a I2C chodí tím, že by sis přečetl ID_REG A-C ? Jestli Ti to chodí, pak bys měl číst taky STATUS registr který říká kdy jsou platná data. A pak XH je na adrese 0x03 a mě se zdá, že to čteš z adresy 0x00.
_________________
x51 , ARM , XILINX
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
 

 
Alojs82
Profesionál
Profesionál


Založen: 12.4.2010
Příspěvky: 76

PříspěvekZaslal: 03 červen 2016, 6:03    Předmět: Citovat

Ověřoval jsem si že mi komunikace chodí právě tím že jsem vyčítal právě reg. A který je na adrese 0x00.

Ale už jsem to vyřešil.
Špatně jsem zadával instrukci při vyčítání.

správně to je tedy takto s časovým zpožděním:

kód:
[size=20]I2C2_Start();       //Start komunikace
    I2C2_Write(0x3C);   // zápis
    I2C2_Write(0x03);   // adresa
    delay_ms(20);       // zpoždění na převod na výstupu
    I2C2_Restart();     // restart I2C
    I2C2_Write(0x03D);  // čtení
    XH=I2C2_Read(0);    // vyčítání registrů
    XL=I2C2_Read(0);
    ZH=I2C2_Read(0);
    ZL=I2C2_Read(0);
    YH=I2C2_Read(0);
    YL=I2C2_Read(1);
    i2c2_stop();        // stop  komunikace[/size]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Radius
Profesionál
Profesionál


Založen: 22.2.2013
Příspěvky: 450

PříspěvekZaslal: 03 červen 2016, 17:10    Předmět: Citovat

ID_REG_A je na jiné adrese, ale pokud Ti to chodí, není co řešit...
_________________
x51 , ARM , XILINX
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
 

 
Alojs82
Profesionál
Profesionál


Založen: 12.4.2010
Příspěvky: 76

PříspěvekZaslal: 05 červen 2016, 19:48    Předmět: Citovat

JJ já vím že adresa je jinde. Ale mě jde o vyčítání hodnot velikosti mag. pole. Jen ještě mi připadá že když vazmeme například osu X
tak na adrese 0x03 je byte nemšího významu a na adrese 0x04 je byte většího významu. Dle manuálu by to ale mělo být naopak. Tak nevím?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Microchip Časy uváděny v GMT + 2 hodiny
 
Strana 1 z 1
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2017 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)