Slip Treiber Frage

  • 1
  • 2
  • Page 1 of 2
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 770
Registered: 06 / 2013
Subject:

Slip Treiber Frage

 · 
Posted: 13.05.2016 - 06:04  ·  #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
Gender:
Location: Germany
Age: 25
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Slip Treiber Frage

 · 
Posted: 13.05.2016 - 14:23  ·  #2
Hallo Frank,

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

rolf
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 770
Registered: 06 / 2013
Subject:

Re: Slip Treiber Frage

 · 
Posted: 13.05.2016 - 15:04  ·  #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
Gender:
Location: Germany
Age: 25
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Slip Treiber Frage

 · 
Posted: 13.05.2016 - 17:03  ·  #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
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 770
Registered: 06 / 2013
Subject:

Re: Slip Treiber Frage

 · 
Posted: 13.05.2016 - 17:12  ·  #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
Gender:
Location: Germany
Age: 25
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Slip Treiber Frage

 · 
Posted: 13.05.2016 - 19:06  ·  #6
Hallo Frank,

mit Treibern meine ich die physischen Leitungstreiber (Hardware).

rolf
TheBeginner
Schreiberling
Avatar
Gender: n/a
Location: Wunsiedel Bayern
Age: 67
Posts: 770
Registered: 06 / 2013
Subject:

Re: Slip Treiber Frage

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

Gruß Frank
Attachments
Slip Treiber Frage
Filename: SLIP.jpg
Filesize: 176.88 KB
Title:
Download counter: 157
Harald_K
 
Avatar
 
Subject:

Re: Slip Treiber Frage

 · 
Posted: 14.05.2016 - 12:49  ·  #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
  • Page 1 of 2
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 15   141   156 · Page-Gen-Time: 0.025834s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI