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
Kleiner Tip noch: A und B dürfen nirgends vertauscht sein, trotz differtial. Sonst ist die Signalpolarität vertauscht und nix geht. gruß 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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.