Hallo! Ich möchte mehrere (10-14) mit Sensoren ausgestattete AVR Megax8 an den PC hängen. Die einzelnen Geräte sollen mit 1 (Temperatursensoren) bis 25Hz (Spannungsmessung) Daten liefern. Sie sind höchstens 1m voneinander entfernt in einem Gerät eingebaut. Momentan habe ich einen Mc der mittels RS232 mit dem PC kommuniziert. Ich bin auf der Suche nach einer Möglichkeit, weitere Controller Kabelsparend entweder an den hauptcontroller oder alle an einen Bus anzuschließen. Eine Art Bus mit dem RS232 aufzubauen wäre zwar einfach, aber ich weis nicht, wie das dann mit der Kollisionserkennung funktionieren soll. SPI braucht zu viele Leitungen und CAN mindestens einen externen Baustein.
Gast
#400447
4-Draht RS485-Bus verwenden. Den PC zyklisch die Controller abfragen lassen. Dadurch keine Kollisionen. Zusätzlich einen RS485-RS232 Konverter für den PC (=> MAX485+MAX232).
Gast
#400448
Sorry, der RS485 passt natürlich nur zu 2-Draht. Aber ist eh egal, 2-Draht bedeutet bloss etwas mehr Software-Kniffel bei der Sende/Empfangs-Umschaltung.
Gast
#400449
...oder einen CAN-Transceiver, z.B. MCP2551, direkt an RX/TX der Controller hängen. PC-seitig dann MAX232 + MCP2551. Spart die Sende-/Empfangsumschaltung.
Gast
#400450
nimm lieber EINEN pc...
Du könntest du sie als daisy chain hintereinader hängen. andere Idee: alle parallel an der TX-Leitung des Hauptcontrollers (oder direkt am PC) mithöhren lassen, und wenn ein für den jeweiligen µC festgelegter Code reinkommt, Daten senden, wobei die TX-Leitungen sämtlicher µCs parallel auf den Master gelegt sind, und die gerade nicht sendenden AVRs ihren Pin hochohmig schalten. Also quasi wie inner Schule: der Lehrer ruft den Schüler auf, von dem er was höhren will, die anderen halten die Klappe. Senden an die AVRs kann genauso laufen: erst Adresscode, und nur der angesprochene nimmmt die Daten an, die anderen tun nix.
Gast
#400452
Wie müsste man die AVRs physikalisch verschalten um einen RS232 Bus aufzubauen? Einfach alle RX und TX zusammenschließen?
Gast
#400453
Gast
#400454
Wie funktioniert eigendlich der Multi-processor Communication mode der USART des AVR? Im Datenblatt ist das Ganze kurz beschrieben, ich habe im Internet aber nirgendwo ein Projekt, weches diesen Modus verwendet gefunden und erst recht keine Schaltung dazu.
Gast
#400455
Hat mit einer Schaltung nichts zu tun. Dieser Modus sorgt nur dafür, dass Controller die grad nicht adressiert sind, von USART-Interrupts verschont bleiben. Haken an diesem Modus: Kann der PC schlecht mitmachen, weil der keinen 9-Bit Modus kennt.
Gast
#400456
9 Bit kann man mit der Checksumme hinbiegen. Habe ich schonmal gemacht und läuft auch. Kan ich einfach alle RX der Controller zusammenhängen und alle TX auch?
Gast
#400457
Muss ich den Link nochmal posten???
Gast
#400458
"Billiglösung, für kurze Distanzen:" "Alternative, aber immer noch kurze Distanzen:" Ich suche schon was auch für mittlere Entfernungen. Je einen Max232 o.ä. dazwischen z.B.
Gast
#400459
Mit den '07-ern dazwischen könnte 1m noch funktionieren, wenn es sich nicht um eine störverseuchte Umgebung handelt. Und wenn's nicht allzu eilig ist, also bei 38400 oder so. Ausprobieren. Ggf. CRC verwenden, mindestens aber Parity. Darüber und in unsauberem Umfeld sind CAN- oder RS485-Transceiver der einfachste Weg.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.