- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 48

Thema: RP6 Kompass

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.04.2008
    Beiträge
    384
    Der I2C Bus signalen sind auf verschiedene Pos. auf die Base platine forhanden : XBUS1, pin 10=SCL, pin 12=SDA, XBUS2,pin 10=SCL, pin 12=SDA,und auch an 2 Stellen (Lotpunkten) mit die name YSCL1, YSDA1 und YSCL2, YSDA2. Die pull-up Wierderstande sind schon forgesehen auf die Base (4.7 k). M32 und andere I2C Sensoren konnen gleichzeitig auf die Bus angeschlosschen werden. Al das konnen sie auch finden auf die Schaltplane von Base und M32.
    M32 soll dan master sein. I2C Beispielen sind schon in die "Examples" anzusehen.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.09.2010
    Alter
    30
    Beiträge
    129
    Also muss ich:

    Kompass XBUS2
    VIN | YVDD1
    GND | YGND1
    SCL | SCL
    SDA | SDA
    INT1 | INT1
    INT2 | INT2


    anschließen? Die pull-up Wierderstande bruach ich ja wiegesagt nicht da sie schon vorhanden sind.

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.04.2008
    Beiträge
    384
    INT1 und INT2 muss du nur verdrahten wen sie die auch benutzen wollen : das Kompass hat die moglichkeit um ein INT zu generieren bei programmierte Bedingungen. Es kann auch sein das diese INT1 schon verwendet ist für die Schnittstelle M32 - Base. Schau mal nach in die Schaltplane.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.09.2010
    Alter
    30
    Beiträge
    129
    Der XBUS2 sollte doch eigentlich unverwendet sein, da der XBUS1 für M32 - Base verwendet wird und ich noch keine weiter Platine an der M32 Platine angeschlossen hab.

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.04.2008
    Beiträge
    384
    XBUS1 und XBUS2 sind parallel geschaltet : alle pinnen sind durchgeschaltet (siehe Schaltplan). INT1 ist verbunden met Base (pin PA4 auf Mega32) und auf M32 (pin PD2). Sie soll ich nicht verwenden, da die eigenlich forgesehen ist für die Schnittstelle M32-Base. INT2 und INT3 (PB2, PD3) sind nur verbunden mit den M32, die kannst du nach Bedarf verwenden.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.09.2010
    Alter
    30
    Beiträge
    129
    Achso okay,
    Dann werd ich mein glück in den nächsten Tagen mal versuchen und evtl auch Bilder posten ^^
    danke schonmal für eure Hilfe

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.09.2010
    Alter
    30
    Beiträge
    129

    Beitrag

    So,
    Ich habe den Kompass mal angeschlossen und zwar an den XBUS2.
    Habe ganz normal SDA an SDA, SCL an SCL und GND bzw. VDD an GND bzw. VDD angeschlossen.
    Nun klappt das bis jetzt nur mit der Programmierung nicht so wie es soll.

    Diesen Code:

    Code:
    void i2c_start(void) {  
            TWCR = (1 << TWINT) | (1 << TWSTA) | (1 << TWEN); // send start condition  
        
            while (!(TWCR & (1 << TWINT)));  
             
        }  
          
        void i2c_write_byte(char byte) {  
            TWDR = byte;              
            TWCR = (1 << TWINT) | (1 << TWEN); // start address transmission  
            while (!(TWCR & (1 << TWINT)));  
        }  
          
        char i2c_read_byte(void) {  
            TWCR = (1 << TWINT) | (1 << TWEA) | (1 << TWEN); // start data reception, transmit ACK  
            while (!(TWCR & (1 << TWINT)));  
            return TWDR;  
        }  
    
        char i2c_read_last_byte(void) {  
            TWCR = (1 << TWINT) | (1 << TWEN); // start data reception
            while (!(TWCR & (1 << TWINT)));  
            return TWDR;  
        }  
          
        void i2c_stop(void) {  
              TWCR = (1 << TWINT) | (1 << TWSTO) | (1 << TWEN); // send stop condition  
        }
    habe ich ganz einfach aus der compass.c (dem Beispiel) entnommen.
    Nun hängt sich der RP6 bei:
    Code:
        DDRC = 0;
        PORTC = (1 << PC1) | (1 << PC0); // SDA | SCL
        TWSR = 0; 
        TWBR = 17;
    
        i2c_start(); 
        i2c_write_byte(0x3C); 
        i2c_write_byte(0x02); 
        i2c_write_byte(0x00); // hier.....
        i2c_stop();
    einfach auf.
    Als ich diese Zeile einfach einmal auskommentiert hab, hat er sich eine Zeile davor aufgehängt.
    Bei der aktivierung des Beschleunigungssensors bleibt er übrigens auch hängen.

    Weiß jemand wieso? Bzw. was daran falsch ist? Habe ich evtl etwas falsch angeschlossen?
    Geändert von Berghuhn (16.12.2011 um 11:56 Uhr)

Ähnliche Themen

  1. Kompass für RP6
    Von axel88 im Forum Robby RP6
    Antworten: 40
    Letzter Beitrag: 04.08.2008, 18:01
  2. Kompass für nur 5€?
    Von Rohbotiker im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 03.07.2007, 21:11
  3. Kompass
    Von sulu im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 14
    Letzter Beitrag: 15.08.2005, 10:06
  4. Kompass???
    Von Static im Forum Sensoren / Sensorik
    Antworten: 30
    Letzter Beitrag: 18.01.2005, 23:58
  5. [ERLEDIGT] !!!KOMPASS!!!
    Von phönix im Forum Sensoren / Sensorik
    Antworten: 12
    Letzter Beitrag: 17.05.2004, 17:14

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests