Slip Treiber Frage

  • 1
  • 2
  • Seite 1 von 2
TheBeginner
Schreiberling
Avatar
Geschlecht: keine Angabe
Herkunft: Wunsiedel Bayern
Alter: 68
Beiträge: 776
Dabei seit: 06 / 2013
Betreff:

Slip Treiber Frage

 · 
Gepostet: 13.05.2016 - 06:04 Uhr  ·  #1
Guten morgen,
zu dem SLIP Treiber muss ich jetzt doch was schreiben, weil ich einen Problem habe.

Ich habe 1 Master Platine mit einem AtXmega256 und 3 Slave Platinen mit AtMega 328p
Das Senden an die Slave geht 100 % das haut Super hin, aber wenn ich einen Slave zb. Platine1
auffordere ein wert zu Senden bekomme ich einen Crash ?! ich muss alle anderen Slave Platinen
abziehen und dann gehts.

Ich verstehe es nicht, hier mal meine einträge..
Vllt hat jmd von euch eine Idee?


Master Platine AtXmega256
Code

Import SysTick, SerPortE1;
Define
  SLIPportE1       = 100000; Master;

....
// Addr2=Platine1 Addr3=Platine2 Addr4=Platine3 
  SLIPsetTxAddrE1(2);                             // Slave Platinen 1 eingestellt mit Addr 2
  SLIPsetRxAddrE1(1);                             // Ich bin Master 1
  SLIPsetModeE1([slpAddr]);                       // slpHsk, slpChkS]);   
  SLIPsetTimeOutE1(10);                           // timeout used for handshake
  SLIPsetRxBufferE1(@RxBuffE1, sizeOf(RxBuffE1));
  SLIPsetTxBufferE1(@TxBuffE1, 32);
  SLIPresumeRxE1;                                 // enable receive on portE1





Slave Platine1 AtMega328p
Code

Import SysTick,  SLIPport1;
Define
 SLIPport1      = 100000;

....
  SLIPsetTxAddr1(1); //1                         // Master Adresse 1
  SLIPsetRxAddr1(2);                             // Slave  Adresse 2 Platine 1
  SLIPsetMode1([slpAddr]);                       // slpHsk, slpChkS]);    
  SLIPsetTimeOut1(10);                         
  SLIPsetRxBuffer1(@RxBuff, sizeOf(RxBuff));
  SLIPsetTxBuffer1(@TxBuff, 32);
  SLIPresumeRx1;                               




Slave Platine2 AtMega328p
Code

Import SysTick,  SLIPport1;
Define
 SLIPport1      = 100000;

....
  SLIPsetTxAddr1(1); //1                         // Master Adresse 1
  SLIPsetRxAddr1(3);                             // Slave  Adresse 3 Platine 2
  SLIPsetMode1([slpAddr]);                       // slpHsk, slpChkS]);    
  SLIPsetTimeOut1(10);                         
  SLIPsetRxBuffer1(@RxBuff, sizeOf(RxBuff));
  SLIPsetTxBuffer1(@TxBuff, 32);
  SLIPresumeRx1;                               



Slave Platine3 AtMega328p
Code

Import SysTick,  SLIPport1;
Define
 SLIPport1      = 100000;

....
  SLIPsetTxAddr1(1); //1                         // Master Adresse 1
  SLIPsetRxAddr1(4);                             // Slave  Adresse 4 Platine 3
  SLIPsetMode1([slpAddr]);                       // slpHsk, slpChkS]);    
  SLIPsetTimeOut1(10);                         
  SLIPsetRxBuffer1(@RxBuff, sizeOf(RxBuff));
  SLIPsetTxBuffer1(@TxBuff, 32);
  SLIPresumeRx1;                               



Gruß Frank
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: Slip Treiber Frage

 · 
Gepostet: 13.05.2016 - 14:23 Uhr  ·  #2
Hallo Frank,

und welche Leitungstreiber? RS232, RS485 oder was?
Ein multipler Slave Bus geht nur mit abschaltbaren Treibern !!

rolf
TheBeginner
Schreiberling
Avatar
Geschlecht: keine Angabe
Herkunft: Wunsiedel Bayern
Alter: 68
Beiträge: 776
Dabei seit: 06 / 2013
Betreff:

Re: Slip Treiber Frage

 · 
Gepostet: 13.05.2016 - 15:04 Uhr  ·  #3
Hallo Rolf, ich habe es genau so aufgebaut wie in der pdf beschrieben.
Master TXD geht nach -> allen Slave RXD
Master RXD geht nach -> allen Slave TXD

Ich hätte aber noch leitungen von der Master Platine zu den Slave Platinen frei.


Gruß Frank
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: Slip Treiber Frage

 · 
Gepostet: 13.05.2016 - 17:03 Uhr  ·  #4
Hallo Frank,

das war nicht die Frage, sondern welche Leitungstreiber...
RS232 oder RS485
RS232 Treiber treiben immer die TxD Leitungen, und wenn alle treiben
dann gibt es nur noch Kollisionen! Tödlich...
Es gibt RS232 Treiber wo sich der TxD abschalten lässt wenn nichts
gesendet wird. Bei RS485 ist das immer möglich.
Eine Abschaltung (tri-state) des TxD ist bei solchen Bus Systemen immer
zwingend.

rolf
TheBeginner
Schreiberling
Avatar
Geschlecht: keine Angabe
Herkunft: Wunsiedel Bayern
Alter: 68
Beiträge: 776
Dabei seit: 06 / 2013
Betreff:

Re: Slip Treiber Frage

 · 
Gepostet: 13.05.2016 - 17:12 Uhr  ·  #5
Sorry Rolf ich verstehe dich nicht.
ich benutze doch deine Treiber

//3 mal Platinen mit einem mega328p
//Import SysTick, SLIPport1;
Define
SLIPport1 = 100000;


//1 Haupt Platine mit einem Xmega256
//Import SysTick, SLIPportE1
Define
SLIPportE1 = 100000, Master;



Gruß Frank
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: Slip Treiber Frage

 · 
Gepostet: 13.05.2016 - 19:06 Uhr  ·  #6
Hallo Frank,

mit Treibern meine ich die physischen Leitungstreiber (Hardware).

rolf
TheBeginner
Schreiberling
Avatar
Geschlecht: keine Angabe
Herkunft: Wunsiedel Bayern
Alter: 68
Beiträge: 776
Dabei seit: 06 / 2013
Betreff:

Re: Slip Treiber Frage

 · 
Gepostet: 13.05.2016 - 19:24 Uhr  ·  #7
Hallo Rolf,
ich habe es genauso angeschlossen wie in deiner pdf Datei beschrieben

Gruß Frank
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
Harald_K
 
Avatar
 
Betreff:

Re: Slip Treiber Frage

 · 
Gepostet: 14.05.2016 - 12:49 Uhr  ·  #8
geh doch mal mitm Oszi an die verbundenen TxD-Leitungen der Slaves und guck, ob da irgendwer zwei Ausgänge aufeinanderschaltet ...

sieht man ggf. besser wenn man in jeden TxD der einzelnen Slaves noch nen 1k einbaut.

oder du nimmst in jede TxD-Leitung der Slaves ne Diode mit rein, was mit niedriger Durchlaßspannung .. dann ist das fast wie OpenCollector ...
  • 1
  • 2
  • Seite 1 von 2
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 14 · Cache Hits: 14   140   154 · Page-Gen-Time: 0.027756s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI