- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 15

Thema: Ansteuerung eines SparkFun AS7265x Triad Sensors

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #6
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214
    Ich denke Ich hab jetzt die Routinen soweit im Griff, das alles funktionieren sollte, allerdings reagiert der Sensor nicht wie erwartet.
    Klicke auf die Grafik für eine größere Ansicht

Name:	TWI1.jpg
Hits:	5
Größe:	124,1 KB
ID:	36015
    Im ersten Step wurde Adresse 0x92 ( Schreiben ) ausgewählt und die Adresse des Hardware Status Registers 0x00 angesprochen.
    Beides wurde vom AS7265 mit ACK quittiert.
    Der Master sendete dann Stop mit anschließenden Start.
    Nun wurde die Adresse 0x93 ( Lesen ) ausgewählt der Slave quittiert und das Byte wurde ausgelesen.
    Dieses enthielt aber leider den Wert 0x80, der aber nirgends dokumentiert ist.
    Der Wert 0x01, 0x02 oder 0x03 wurde erwartet.
    Der Master sendete NACK weil ja kein weiteres Byte mehr erwartet wurde.

    Das Ganze hab Ich mit dem Debugger gemacht.
    Lässt man den Controller frei Laufen hängt sich irgendwann die Bus Arbritation auf.
    Manchmal vom Master Manchmal vom Slave und eine der Leitungen wird nach GND gezogen.
    Code:
    //Write to virtual Register
    void i2m_AS72xx_topwrite(uint8_t virtualReg, uint8_t d)
    {
        uint8_t status;
        TWI_timeout=TWI_timeout_time;
        while (1)
        {
            //Read slave I²C status to see if the write buffer is ready.
            TWI_Buffer[0]=I2C_AS72XX_SLAVE_STATUS_REG;
            FEHLER = twi0_send(AS7265_adr,TWI_Buffer,0x01);
            FEHLER = twi0_receive(AS7265_adr,TWI_Buffer,0x01);
            status = TWI_Buffer[0];
            if ((status & I2C_AS72XX_SLAVE_TX_VALID) == 0)
            // No inbound TX pending at slave.  Okay to write now.
            break ;
            if(TWI_timeout==0)
            {
                break;
                FEHLER=20;
            }
            _delay_ms(AS7265X_POLLING_DELAY);
        }
        //Send Data to virtual Register
        TWI_Buffer[0]=(virtualReg | 0x80);
        //Send 1 Bytes
        FEHLER = twi0_send(AS7265_adr,TWI_Buffer,0x01);
        TWI_timeout=TWI_timeout_time;
        while (1)
        {
            //Read slave I²C status to see if the write buffer is ready.
            TWI_Buffer[0]=I2C_AS72XX_SLAVE_STATUS_REG;//****** Die Sequenz wurde hier gestoppt ******
            FEHLER = twi0_send(AS7265_adr,TWI_Buffer,0x01);
            FEHLER = twi0_receive(AS7265_adr,TWI_Buffer,0x01);
            status = TWI_Buffer[0];
            if ((status & I2C_AS72XX_SLAVE_TX_VALID) == 0)
            // No inbound TX pending at slave.  Okay to write now.
            break ;
            if(TWI_timeout==0)
            {
                break;
                FEHLER=21;
            }
            _delay_ms(AS7265X_POLLING_DELAY);
        }
        //Send data
        TWI_Buffer[0]=I2C_AS72XX_SLAVE_WRITE_REG;
        TWI_Buffer[1]=d;
        FEHLER=twi0_send(AS7265_adr,TWI_Buffer,0x2);
    }

    Hat da von Euch jemand eine Idee was da falsch läuft?
    Geändert von wkrug (18.09.2024 um 12:18 Uhr)

Ähnliche Themen

  1. Normalisierung von Daten eines Beschl.sensors
    Von Snaper im Forum Sensoren / Sensorik
    Antworten: 8
    Letzter Beitrag: 05.08.2011, 18:22
  2. Genauigkeit eines Sensors
    Von Student123 im Forum Sensoren / Sensorik
    Antworten: 8
    Letzter Beitrag: 04.08.2011, 14:03
  3. Wie berechne ich die Temperatur eines NTC Sensors ?
    Von Shadow992 im Forum Sensoren / Sensorik
    Antworten: 7
    Letzter Beitrag: 27.05.2010, 14:41
  4. Antworten: 13
    Letzter Beitrag: 18.02.2006, 16:19
  5. Anschluss eines Sensors an einen PCF8574
    Von batti112 im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 16.03.2005, 01:01

Berechtigungen

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

Labornetzteil AliExpress