Hi,
ich versuche mit dem o.g. Baustein
http://www.linear.com/product/LTC1485
eine Zusammenschaltung mehrer uc zu realisieren.
Ich möchte den UART des Atmels (Atmega168) nutzen.
Nun habe ich RX mit RO des LTC1485 und TX mit DI des LTC verbunden.
Entsprechend des Datenblattes RE auf Low zum aktivieren des Empfangs und
DE auf High zum aktivieren des Senders.
Meine "Teststrecke" sieht so aus:
PC/Rs232 - Konverter 232/485 - Kabel - LTC1485 - RX/TX Atmega168
Konverter ist dieser:
http://www.reichelt.de/Kamerazubehoer/TV-8469/3/index.html?;ACTION=3;LA=446;ARTICLE=67317;GROUPID=4019;artnr=TV+8469;SID=13UGLsSX8AAAIAAGOYGQo43f15ae64dc97dd209ccde15d33083e0
Das funktioniert auch soweit. Nur immer wenn ich einen weiteren Atmega
mit LCT1485 mit hinzu nehme, dann geht nichts mehr.
Ich denke es liegt daran das ich die Sendestufe ja durchgehend aktiviert
habe, und nun gegeneinander gearbeitet wird. Ich möchte aber den Enable
Pin nicht auch noch vom uc aus Schalten. Gibts einen anderen Chip, oder
eine andere Möglichkeit?
Danke
JJ
Hei,
man kann gemeinsam singen, aber sprechen kann immer nur einer.
Genau so ist es auch bei den mC.
Vielleicht wäre fullduplex eine einfache Lösung für Dich?
Grüße,
Tom
Hi
>Ich denke es liegt daran das ich die Sendestufe ja durchgehend aktiviert>habe, und nun gegeneinander gearbeitet wird. Ich möchte aber den Enable>Pin nicht auch noch vom uc aus Schalten.
Also willst du nicht, das es funktioniert:
>Gibts einen anderen Chip,
Nimm CAN-TReiber (MCP2551, PCA82C250, PCA82C251, ...). Die haben eine
automatische Umschaltung drin.
>oder eine andere Möglichkeit?
Mit dem TX-Signal ein Monoflop triggern, das die Umschaltung übernimmt.
MfG Spess
>>PCA82C250
Yes, dann passt das zu meinem Vorhaben. PCA82C250 habe ich liegen, und
auch schon Vernetzung mit gemacht. Ich dachte nur bis jetzt das CAN an
der Stelle ggf. nicht zu 485 kompatibel sein könnte....also wenn ich das
mische (CAN Bausteine und 485 kompatibles Zeugs).
Ich hatte auch schon überlegt TX des uc auch an DE des LTC
anzuschließen, aber dann wird nur High getrieben, oder?
Danke für den Tip, werde ich gleich mal umsetzen...
JJ
Ähm, also CAN und RS485 würde ich nur sehr vorsichtig mischen ... Ich
glaube, spess meinte, du solltest dann komplett auf CAN umsteigen.
Ich bin mir grad nicht sicher, ob es gut geht ...
>Ich hatte auch schon überlegt TX des uc auch an DE des LTC>anzuschließen, aber dann wird nur High getrieben, oder?
Das ist doch Unsinn. Wenn Du RS485 richtig machen willst, dann darf nur
ein Sender freigeschaltet sein, aber das solange die ganze Message
gesendet wird.
Wer die Umschaltung macht ist recht egal. Kann der µC sein, keine eine
Hardware mit Monofop sein, kann ein anderes externes Signal sein.
>>keine eine Hardware mit Monofop sein
sollte sicher heißen "kann..."
Woher weiß das Monoflop denn wie lange es DE halten soll? Das muss dann
doch mindestens auf die Ü-Rate angepasst sein...oder? Mir wäre wie
gesagt ein Baustein der kompatibel ist und das selber macht lieber...
JJ
Klar erkannt solte kann "heißen".
Klar muß das Monoflop an die Aufgabe angepaßt sein.
Wenn Du aber DE nicht treiben willst, auch nicht extern, so ist eine
RS485 das falsche für Dich.
Dann brauchst Du eine fertige Lösung, siehe oben.
AUßerdem gilt CAN ist nicht gleich RS485. RS485 ist ja nur die reine
Hardware-Ebene. CAN ist mehr. Drum wird auch Dein überlegter
Mischbetrieb nicht funktionieren.
Hi,
also man kann den 9-Bit Modus einer UART für die Adressierung des
Busteilnehmers nutzen. Dann "spricht" nur einer und alle anderen hören
zu.
Dann sendet der adressierte Empfänger an den Absender eine Quittung und
der Sender weiß dann, das alles okay ist (handshake). Am LTC1485 wird
die Richtung mittels /RE gesteuert. Das ergibt Halbduplex mit
wechselndem Master oder Slave. Wenn man dann noch ne Prüfsumme mit
überträgt ist es schon schön sicher.
Grüße
Nullchecker
Hi,
ich habe gerade mal folgendes Versucht:
PC/Rs232 - Konverter 232/485 - Kabel - RS485 Node (Energiezähler)
mit o.g. Konverter - klappt super.
Dann habe ich es mit folgendem Aufbau versucht:
PC/Rs232 - RX/TX/GND über max232 (5v ext) an RX/TX pca82c250 (an 5V
ext.) - Kabel - RS485 Node (Energiezähler).
Die Übertragung klappt nicht. Die Übertragung wird eingeleitet aber mit
einem CRC false abgeschlossen, das ist der selbe Fehler wie mit dem
LTC1485 wenn ich den Treiber nicht deaktiviere, wie oben beschrieben.
Die Frage ist, wie bekomme ich einen 485 Konverter nur mit RS232 RX/TX
hin, ohne eine Treibersteuerung. Vielleicht bin ich ja auch auf dem
Holzweg und der o.g. Konverter nutzt auch noch einen weiteren Pin der
RS232 Schnittstelle am Rechner um den Treiber zu schalten...
JJ
Hallo!
Ich hatte mal mit RS485-Pegeln einen Bus aufgebaut, der war L-dominant
und H-rezessiv. Das war noch zu einer Zeit, wo CAN exotisch und teuer
war. Der Treiber (damals SN75176) bekam an seinem D-Eingang (Pin 4) fest
Low verpasst. Der TX-Ausgang vom µC ging über einen Inverter an DE (Pin
3). Damit wackelte der Bus an A-B zwischen dominant L und hochohmig. Die
Terminierung zog ihn bei hochohmig auf High. Das Zugriffshandshake mit
Kollisionserkennung und Prioritätenvergabe funktionierte wie beim
"µ-Net" von der Firma "Phytec". Dessen Verfahren war Anfang der 90er in
der Zeitschrift (schlagmichtot) MC ? veröffentlicht. Hab ich sicher noch
alles irgendwo archiviert - muss ich suchen. Die Baudrate war etwas
begrenzt, weil der hochohmige Zustand bei langem Bus die
Leitungskapazitäten nicht schnell genug umlädt.
Meine Lösung basierte auf Assembler und 8051er. AVRs lagen damals noch
als Sand in der Wüste...
Eine aktuelle, ähnliche Lösung gibts hier
http://www.mrbus.org
Dort wird zur Erhöhung der Baudrate nach der Arbitrierung von der
hochohmigen Geschichte in echten RS485-Betrieb mit höherer Baudrate
umgeschaltet. Das braucht dann wieder einen zusätzlichen Ausgang am µC.
Hi,
ich habe es jetzt am laufen:
Beitrag "RS232 auf RS485 mit (LTC1485) aber lieber mit CAN Treiber (PCA82C250) o.ä."
Jedoch finde ich die Lösung den Treiber über das TX Signal zu aktivieren
(wie auch Route66 schreibt) nicht ganz glücklich. Ich habe festgestellt
das es in dem o.g. Adapter von Reichelt genauso gemacht wird...und das
funktioniert tadellos...
Vielleicht gibt es aber noch eine bessere Lösung...
Vielen Dank bis hierher.
JJ