Hallo, ich wollte fragen, ob es möglich ist, das zwei Mikrocontroller sich einen CAN-Transceiver teilen. Eigentlich müßte es doch möglich sein, da immer nur einer sendet, oder? Im Anhang befindet sich das Schaltbild zur Erklährung. Vielen Dank
Benjamin schrieb: > Eigentlich müßte es doch möglich sein, da immer nur einer sendet, oder? Und wie stellst du dir die Sache mit dem Acknowledge und der Arbitrierung vor?
letztendlich kann man den Transceiver doch als reinen Pegelumwandler betrachten, oder? Da aber doch immer nur einer senden kann müßte es doch keinen Konflikt geben. Oder welches Problem könnte bei der Arbitrierung & Acknowledge auftauchen
Benjamin schrieb: > letztendlich kann man den Transceiver doch als reinen Pegelumwandler > betrachten, oder? Da aber doch immer nur einer senden kann müßte es doch > keinen Konflikt geben. Oder welches Problem könnte bei der Arbitrierung > & Acknowledge auftauchen es gibt dominante und rezessive pegel auf dem CAN... RX/TX haben das nicht..daher funktioniert das so nicht! nimm 2 transceiver!
Hm, müsste eigentlich funktionieren. Allerdings verstehe ich nicht, was du mit 2 CAN-Controllern am selben Platz überhaupt machst:
H.joachim Seifert schrieb: > Hm, müsste eigentlich funktionieren. Die Grundidee scheint plausibel zu sein. Beim CAN Bus ist allerdings 0 der dominante Pegel, d.h. das OR Gatter muss durch ein AND Gatter ersetzt werden. Gruß, Reinhard
Oder die beiden Controller mit einem Pin verbinden und einen dominanten uC definieren?
@ Benjamin (Gast) >letztendlich kann man den Transceiver doch als reinen Pegelumwandler >betrachten, oder? Oder. Es ist ein CAN-CONTROLLER, der ne MENGE Logik enthält, kein dummer MAX232. > Da aber doch immer nur einer senden kann müßte es doch >keinen Konflikt geben. Oder welches Problem könnte bei der Arbitrierung >& Acknowledge auftauchen Endlose. Nimm je einen CAN-Controller pro uC, die DInger sind spottbillig. MFG Falk
Falk Brunner schrieb: > Oder. Es ist ein CAN-CONTROLLER, der ne MENGE Logik enthält, kein dummer > MAX232. > ... > Endlose. Nimm je einen CAN-Controller pro uC, die DInger sind > spottbillig. Falk, schau Dir noch mal sein Bild an: Er wollte doch nur einen Transceiver für zwei Controller verwenden. Allerdings, ob sich das lohnt? Mit getrennten Transceivern spart man sich die "Synchronisation" der beiden Controller, um zu verhindern, dass sie gleichzeitig senden. Gruß Dietrich
Ja, Logik muss geändert werden. Dominanter CAN-Pegel: Differenzspannung >0,9V. Den erzeugen CAN-Transceiver mit Eingangspegel Low. D.h. der Low-Pegel des Controllers muss auf jeden Fall auf den Bus geschaltet werden -> UND-Gatter. Ich behaupte, das funktioniert.
@ Dietrich L. (dietrichl) >Falk, schau Dir noch mal sein Bild an: >Er wollte doch nur einen Transceiver für zwei Controller verwenden. OK, du hast recht. War ich wohl ein wenig zu oberflächlich. >Allerdings, ob sich das lohnt? Nö. Vor allem, wer packt ZWEI COntroller auf die Platine, die dann per LON kommunizieren? In den allermeisten Fällen kann man die Funktionen in EINEM uC unterbringen, und es wird meist auch einfacher und besser. Aber selbst wenn zwei uCs sinnvoll wären, den Transceiver doppelt zu nutzen ist nicht sonderlich sinnvoll. MFG Falk
Dietrich L. schrieb: > Mit getrennten Transceivern spart man > sich die "Synchronisation" der beiden Controller, um zu verhindern, dass > sie gleichzeitig senden. Selbst das ist nicht nötig.
Ein AND statt des OR und die Schaltung funktioniert korrekt. Ich sehe allerdings auch keinen Sinn darin, 2 CAN-Controller auf einer Platine zu verwenden. Peter
Hallo, vielen Dank für eure zahlreichen Antworten. Ich habe das OR gegen ein AND getauscht und schon funktioniert der CAN-Bus. Vielen Dank
Peter Dannegger schrieb: > Ein AND statt des OR und die Schaltung funktioniert korrekt. > > > > Ich sehe allerdings auch keinen Sinn darin, 2 CAN-Controller auf einer > > Platine zu verwenden. > > > > > > Peter So etwas nennt man in der KFZ-Elektronik (und sicherlich auch woanders) Gateway. Nur das die CAN-Controller dann auch einem Chip sich befinden. Andererseits hat man so stets einen Zuhörer. Man hat ein Problem weniger, wenn der CAN-Bus nicht angeschlossen sein sollte. Zum Lernen OK. @Benjamin: Wenn Du schon einen Chip für die Disjunktion der Schnittstellensignale verwendest, dann kannst Du doch auch gleich einen zweiten Trasceiver nehmen und den dann mit dem des anderen auf der CAN-Seite zusammenschalten. Dann funktioniert es auf jeden Fall. Ich verstehe noch nicht, wieso Du einen Transceiver einsparen willst? Platzprobleme? -> Das Oder-Gatter und die Dioden kosten auch Bauraum.
Nehme anstatt dem LCDA12 besser einen NUP2105L. Spart auch wieder Platz.
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.