INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
TWI Kommunikation überprüfen
26.11.2015, 10:57
Beitrag #1
TWI Kommunikation überprüfen
Hallo,
ich habe an meinem Arduino (Master) mehrere Slaves, die per I²C kommunizieren.
Sobald ich jetzt eine Datenleitung im laufenden Betrieb abziehe bricht die Gesamte Kommunikation zusammen.
Wie kann man dies vermeiden. ist eine kontinuierliche Überprüfung möglich, die mir regelmäßis eine Staus Meldung sendet das alle Slaves weiterhin verfügbar sind?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2015, 11:05
Beitrag #2
RE: TWI Kommunikation überprüfen
Das ist leider I2C-typisch, die Verbindung bricht zusammen, wenn ein Slave entfernt wird.
Um das zu vermeiden, müsstest du die Lib umschreiben.

Die Überprüfung kannst du machen indem du die einzelnen Clients abfragst und auswertest.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2015, 11:21
Beitrag #3
RE: TWI Kommunikation überprüfen
(26.11.2015 11:05)hotsystems schrieb:  Das ist leider I2C-typisch, die Verbindung bricht zusammen, wenn ein Slave entfernt wird.
Um das zu vermeiden, müsstest du die Lib umschreiben.

Die Überprüfung kannst du machen indem du die einzelnen Clients abfragst und auswertest.

Hi,
ist denn auch bekannt warum die Kommunikation abbricht ?
Liegt es vielleicht daran das der entfernte Client was antworten soll aber da eben nichts mehr kommt das dann der Master ewig...also ohne Timeout auf Eingabe wartet ?
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2015, 11:34
Beitrag #4
RE: TWI Kommunikation überprüfen
Zitat:ist denn auch bekannt warum die Kommunikation abbricht ?
Liegt es vielleicht daran das der entfernte Client was antworten soll aber da eben nichts mehr kommt das dann der Master ewig...also ohne Timeout auf Eingabe wartet ?

Die KOmmunikation bricht nur in dem Fall ab, das der Anwender einen Slave im laufenden Betrieb entfernt oder ein defekt vorliegt.
Das er auf eine Antwort wartet könnte ein Problem sein. Da muss ich nochmal den Quellcode nachbesern.

Ein weiteren Problem was auftritt, wenn ich den Master vom PC entferne (COM PORT) dann erkennt er danach keinen Slaves mehr, erst wenn ich alle Slaves zurück setzte und anschließend den Master erkennt er sie wieder.
Die Slave Erkennung habe ich in der void Setup durchgeführt: Von daher sollte ja zumindest ein Master reset ausreuchen oder irre ich da?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2015, 12:02 (Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2015 12:05 von Scherheinz.)
Beitrag #5
RE: TWI Kommunikation überprüfen
Kannst doch zwischendrin ab und zu den I²C Scanner laufen lassen. Es würde ja reichen die Teilnehmer einfach durch zu zählen.


(26.11.2015 11:34)chhec schrieb:  Ein weiteren Problem was auftritt, wenn ich den Master vom PC entferne (COM PORT) dann erkennt er danach keinen Slaves mehr, erst wenn ich alle Slaves zurück setzte und anschließend den Master erkennt er sie wieder.
Die Slave Erkennung habe ich in der void Setup durchgeführt: Von daher sollte ja zumindest ein Master reset ausreuchen oder irre ich da?

Dein Programm bleibt bestimmt irgendwo hängen, zeig mal deinen Sketch.

Hier könnte ihre Werbung stehen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2015, 12:41 (Dieser Beitrag wurde zuletzt bearbeitet: 26.11.2015 13:14 von chhec.)
Beitrag #6
RE: TWI Kommunikation überprüfen
Also diese Funktion wird im void setup() aufgerufen.

Code:
void TWI_Setup()
{  
byte address;  

Wire.begin();

  nDevices = 0;

  delay(1000);
  for(address = 1; address <= 10; address++ )
  {
    Wire.beginTransmission(address);
    
    if (Wire.endTransmission() == 0)
    {      
     nDevices++;
    }
  }

/* Initialisiert alle Slave channels mit 0 */
  sendConfig();

}

Er läuft auf jedenfall bis zur Zeile:
nDevices = 0;

da mir dieser wert auf dem seriellen Mointo angezeigt wird. Zu begin wird dieser mit 10 initialisiert, also kann man darauf schließen das das Porgramm bis dahin schonmal läuft

Code:
if (Wire.endTransmission() == 0)
An dieser stelle scheint es zu haken. Das Programm wird vor und nach der if abgfrage ausgeführt ,aber diese anweisung ist nie TRUE auch nicht wenn ich den vergleichswert auf 1 änder

Der Wert schein immer größer 1 zu sein

Es handelt sich um diesen Fehler:
2:received NACK on transmit of address

Aber ich finde keine Lösung woran es liegt
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.11.2015, 17:43
Beitrag #7
RE: TWI Kommunikation überprüfen
verstehe deine Programmierung nicht richtig. Kannst du mal den ganzen Sketch zeigen?

Hier könnte ihre Werbung stehen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.11.2015, 08:29
Beitrag #8
RE: TWI Kommunikation überprüfen
Der Sketch umfasst sehr viel Parsing und andere dinge die nicht so relevant für das Problem ist.
Der Fehler tritt an dieser Stelle auf:

Code:
if (Wire.endTransmission() == 0)
Hier müsste der Wert 0 zurück geliefert werden wenn alles ok ist. Aber es tritt der Fehler:
2:received NACK on transmit of address

auf.

Ich verstehe nicht warum die Slaves da nicht drauf antworten, obwohl sie mit Spannung versorgt sind
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Kommunikation über das WiFi-Shield Flap 3 233 07.11.2016 20:20
Letzter Beitrag: hotsystems
  Kommunikation Serial Monitor --> Arduino BennIY 7 354 24.05.2016 07:48
Letzter Beitrag: hotsystems
  USB-Kommunikation ADK hr3 0 279 12.04.2016 16:43
Letzter Beitrag: hr3
  I²C Kommunikation bricht ab chhec 1 344 19.01.2016 11:10
Letzter Beitrag: ardu_arne
  Zahlenformat bei Kommunikation mit zwei Arduinos Matthias_Arduino 5 632 07.01.2016 22:40
Letzter Beitrag: Bitklopfer
  Grundlagen zur UART Kommunikation gesucht... torsten_156 10 884 16.12.2015 22:26
Letzter Beitrag: Bitklopfer
  Serielle Kommunikation arduino147147 1 666 15.10.2015 08:22
Letzter Beitrag: Binatone
  Serielle Kommunikation zw. zwei Arduino UNOs Marduino_UNO 2 1.109 20.08.2015 07:13
Letzter Beitrag: Marduino_UNO
  Serielle Kommunikation neben Programmablauf "parallel" ausführen bits10 1 801 16.03.2015 22:32
Letzter Beitrag: Bitklopfer
  Serielle Kommunikation verschluckt Buchstaben bushi 0 514 17.02.2015 14:36
Letzter Beitrag: bushi

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste