- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 20 von 64

Thema: Raspi C/C++, Raspi als I2C-Master: byte arrays zu Arduino slave hin + her schicken?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.726
    Hi!
    Zitat Zitat von peterfido Beitrag anzeigen
    .. so wie es aussieht, liegt es am MEGA, wenn die Kommunikation zusammenbricht. Mal hält dieser dann SCL auf Low und mal reagiert er einfach nicht mehr ..
    Ich musste mal hier reinschaun. Über 30 Postings zu I²C - erinnerte mich an ein paar Probleme die ich vor Monaten mit diesem Bus/Protokoll hatte. Bei MIR war der Beginn der Lösung ein Oskarbildchen. Als ich die Flanken sah, überhaupt die Peaks . . . au weia. Busterminierung geändert - Bildchen - Taktrate geändert - Bildchen - aaahhhhh. Seit der Zeit habe ich soweit ich es in der aktuellen Testphase (Thema ist NICHT mehr I²C) sehe, bei Laufzeiten teils über eine Stunde (ok, das klingt nicht nach Wochen) keine Probleme. Übrigens hatte ich mal vor vielen Monaten in einem anderen Projekt erfolgreiche Versuche damit gemacht, dass ich das Clockstreching dynamisch begrenzt hatte.
    Ciao sagt der JoeamBerg

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    54
    Beiträge
    765
    Hallo,

    nein, ich habe nur den einen Arduino. Ein Oszi habe ich nicht. 'Nur' ein LA. Die Beispielcodes der Arduino IDE 'bleiben am Leben.' So dass ich darauf aufbauen nochmal was Neues erstelle. Allerdings nicht mehr heute.

    Folgendes läuft schon einige Zeit durch:

    MEGA:
    Code:
    // Wire Slave Receiver
    // by Nicholas Zambetti <http://www.zambetti.com>
    
    // Demonstrates use of the Wire library
    // Receives data as an I2C/TWI slave device
    // Refer to the "Wire Master Writer" example for use with this
    
    // Created 29 March 2006
    
    // This example code is in the public domain.
    
    
    #include <Wire.h>
    
    void setup() {
      Wire.begin(4);                // join I2C bus with address #8
      Wire.onReceive(receiveEvent); // register event
      Serial.begin(57600);           // start serial for output
    }
    
    void loop() {
      delay(100);
    }
    
    // function that executes whenever data is received from master
    // this function is registered as an event, see setup()
    void receiveEvent(int howMany) {
      while (1 < Wire.available()) { // loop through all but the last
        char c = Wire.read(); // receive byte as a character
        Serial.print(c);         // print the character
      }
      int x = Wire.read();    // receive byte as an integer
      Serial.println(x);         // print the integer
    }
    Raspi: (Bash-Script)
    Code:
    #!/bin/bash
    #
    #
    
    d=0;
    while [ true ];do
     i2cset -y 1 0x04 3 $d
     d=$(($d+1))
    if [ $d -gt 255 ]; then
       d=0
    fi
    sleep 0.005
    done
    Wobei gelegentlich 'write Failed' ausgegeben wird. Bei 10 ms Pausen war das nicht so.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  3. #3
    HaWe
    Gast
    @oberallgeier:
    dann probier es doch mal bitte aus: Raspi plus AVR-Arduino!
    Du hast das Problem mit dem Clockstretching, das der Raspi nicht verträgt, doch verstanden, oder?
    Verbinde beide Boards (3 Kabel), lade die Sourcecodes, guck was dein Vorschlag bringt!

    Wie schon so oft gesagt:
    Für alle Tipps bin ich natürlich offen, aber der, der sie vorschlägt, müsste schon in der Lage sein, die Verbindung ebenfalls herzustellen und bei sich selber vor Ort zu testen (d.h. er müsste auch einen Raspi und einen Arduino besitzen und sie entsprechend verbinden und seinen eigenen - bzw. unseren gemeinsamen, auf einander abgestimmten - Code testen können).
    @peterfido:
    bin sehr gespannt!

    angeblich soll ja pigpio Clock-Stretching unterstützen, im Gegensatz zu wiringPi.... :-/

    ... nur wie und was muss man da machen?



    ps,
    Zambetti's i2c-Code war auch die Grundlage für meinen Arduino-Slave-Teil.
    Grundfunktionen sind i.P. 100% identisch!
    (Nur mein Code stellt sicher, dass keine inkompletten Arrays gesendet, empfangen oder verarbeitet werden, sondern erst, wenn alle Bytes komplett im i2c-Buffer drin sind ...und dann getestet sind auf Transmission Errors !)

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. Raspi mit Arduino per USB verbinden
    Von HaWe im Forum Raspberry Pi
    Antworten: 4
    Letzter Beitrag: 11.11.2015, 17:26
  2. [ERLEDIGT] Raspi Club?
    Von pofoklempner im Forum Raspberry Pi
    Antworten: 16
    Letzter Beitrag: 09.07.2015, 07:20
  3. Antworten: 1
    Letzter Beitrag: 12.06.2015, 15:50
  4. Antworten: 5
    Letzter Beitrag: 24.08.2014, 17:36
  5. Schnelle(!) Objekterkennung mit Raspi+USB-Cam
    Von phantom111 im Forum Sensoren / Sensorik
    Antworten: 19
    Letzter Beitrag: 20.02.2014, 13:18

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress