PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : differentielles TWI (achtung ET-tiefflieger braucht hilfe)



Ceos
18.05.2008, 13:33
http://img297.imageshack.us/img297/6534/twidiffedcb1.jpg

ich wollte mal eure meinung/verbesserungsvorschläge ... ich wollte den CAN controller + tranceiver sparen und TWI einfach differentiell übertragen um mehr reichweite zu bekommen ... bei der dimensionierung der widerstande könnte ich vll. noch hilfe brauchen oder jemand hat ne handlichere lösung für mich ?! es soll so billig wie nur irgendmöglich werden! deshalb wollt ich das TWI "optimieren" .... schaltlogik kann cih zwar aber was ET angeht .. naja S.O.S

1-wire wäre auch noch ne variante, aber geht das denn wenn ich NUR avr-controllern benutze???

R5 ist nur aus rationalisierung so gewählt, alternativ könnte ich auch für t2 udn t3 sepparate widerstände wählen

shaun
18.05.2008, 13:51
1-Wire definiert ja nun auch ein nicht ganz triviales Protokoll. Was hält Dich davon ab, selbst eins zu schreiben, wenn Du damit nur zwischen selbst programmierten Controllern kommunizieren willst? Bei Deinem "TWI" vermisse ich irgendwie die Taktleitung, kann das sein?
Ich würde einfach je einen Portpin pro Controller benutzen und diese über Widerstände (gegen Kurzschluss bei Softwarefehlern) auf die Busleitung legen. Den Rest besorgt die Software...
Wenn es differenziell sein muss, nimmst Du halt zwei Portleitungen und entsprechende Transceiver, bis Du mit einer diskreten Lösung die Vorteile der differnziellen Übertragung 'rausgebastelt hast, haben sich die Treiber zehnmal rentiert. Und wenn man schon soweit ist, kann man auch gleich den UART nehmen...

Ceos
18.05.2008, 14:00
die beschaltung stellt ja auch nur 1 leitung dar, also das ganze noch mal 2 rechnen

wie meinst du das mit "zwei Portleitungen und entsprechende Transceiver" ?

und "gleich den UART nehmen" ... ich brauche eine möglichst stabile kommunikation über ungefähr 25-50m zu rund 15-30 controllern (anzahl steigt mit ausbaustufe)

kann sein das cih grad aufm schlauch stehe, aber hast du eventuell ne konkrete idee was ich dafür benutzen kann ? es soll wirklich kostengünstig sein! ich weis ja nicht was genau der CAN tranceiver macht, aber der hat nen TX und n RX port, kann cih da auch UART anschliessen ??? das protokoll kann cih mir ja austüfteln

uwegw
18.05.2008, 14:15
Was brauchst du denn wirklich?
-Datenrate
-Reichweite
-Topologie (Stern, Bus, etc)
-uni/bidirektional
-single Master/Multi master
-...

shaun
18.05.2008, 14:55
Und wenn das beantwortet wäre, könnte man mal nachdenken, ob RS485 mal wieder das Mittel der Wahl wäre. Eine Kommunikation wird ja nicht durch bestimmte Bauteile oder Schaltungen sicher, sondern durch die Software, die sie abwickelt und unvermeidbare Störungen erkennt.

Ceos
18.05.2008, 15:28
langgezogener bus (cat5 kabel, für jeden abgriff unterbrochen), datenrate eigentlich egal, aber ansprechzeiten möglicht kurz .... multimaster wäre ideal eben wegen ansprechzeit aber 30 master .... hui dir arbitration wird lustig ... bidirektional ....

ich möchte die zustände von einigen controller gezielt abfragen können, aber die controller müssen auch bei eintretenden "events" direkt was senden können, also polling aller slaves im single master möchte ich vermeiden

als ich das letze mal rs485 gesehen habe so vom schaltplan her war mir das zu kompliziert/aufwendig ums 30 mal zu löten oder hab ich jetzt iwie was verwechselt ?

shaun
18.05.2008, 15:56
Du hast RS485 gesehen? Wenn ein 8-beiniges IC Dir zu aufwändig ist, wird es wohl wirklich schwer, Dir zu helfen. Nagut: ans Ende gehört wie bei jedem längeren Bus noch je ein Abschlusswiderstand, und ein Kondensator schadet dem IC sicher auch nicht. So oder so, Du musst was anderes gesehen haben :)

Ceos
18.05.2008, 16:01
hm recht haste ... also hab den
ST75C176CN
grad mal angeschaut ... das datenblatt sieht toll aus sagt viel ... aber nicht so recht wie ich ihn anschliessen muss ... ich bemüh grad die forumssuche aber die schläft ständig ein ...

EDIT: ok hab jetzt zwar einige erklärungen gefunden, aber noch net so recht verstanden was es mit dem dinversen /RE DE zu tun hat, und ob cih die verbleibenden 6 adernpaare nicht für eine art busyschaltung gebrauchen kann?

shaun
18.05.2008, 16:36
/RE und DE knotest Du zusammen und verbindest sie mit einem Controllerausgang. Dieser geht auf 1 zum Senden (Driver Enable) oder auf 0 zum "lauschen", Receiver Enable low-aktiv. Alles weitere ist Software.
Insbesondere die Kollisionen erkennen, wenn zwei Master meinen, überlappend ein Event mitteilen zu müssen.

Ceos
18.05.2008, 16:52
naja hatte gedacht 2 leitungen zu nehmen, die ich dann auch differentiell verschalte, wenn einer senden will, wechselt er die polarität, alle anderen schweigen, dann gibt erdie leitung wieder frei ... blöde situation wenn 2 einheiten absolut gleichzeitig den pegel wechseln, das könnte problematisch werden ...

Ceos
18.05.2008, 17:38
EDIT: gelöscht, doppelpost, ausserdem sinnbefreit :p