Forum: Mikrocontroller und Digitale Elektronik RS485 Treiber mit Adresse


von Christian (Gast)


Lesenswert?

Hallo,

wie schon viele vor mir möchte ich ein kleines Netz aus AVRs aufbauen. 
Die Struktur sieht einen Master vor, der die Slaves konfiguriert und 
Daten anfragt.

Die Leitungslängen dürften kleiner als 2m zum am weitesten entfernten 
Slave sein. Mehr wie 32 Slaves werden es auf keinen Fall. Die 
Geschwindikeit soll ähnlich RS232 sein. Eine Bootloaderfunktion für die 
Slaves ist Pflicht!

Ich halte RS485 für meine Anwendung als sinnvoll. S.N.A.P oder SSI als 
Protokoll erscheint mir immernoch zu kompiziert. Ich habe mir überlegt 
einfach das UART Protokoll zu verwenden. Die Adresse des Slaves möchte 
ich mit gesetzem Paritätsbit senden. Alle anderen Daten werden mit 8N1 
gesendet.

Schade ist, dass ich auf vohandene UART Bootloader dann nicht 
zurückgreifen kann, sondern alles an mein Protokoll anpassen muss.

Richtig cool wäre auf der Slave Seite ein RS485 Treiber, den der Master 
"freischalten" kann. D.h. Der Master sendet ein Adressbyte (Parität 
gesetzt) an den RS485 Treiber des Slaves. Der angesprochene Treiber 
schaltet die Kommunikation zum Slave AVR durch. Anschießend kann der 
Master ganz normal über UART mit dem Slave direkt sprechen...

Gibt es einen solchen intelegenten RS485 Treiber?

Danke

Gruß,
Christian

von spess53 (Gast)


Lesenswert?

Hi

>Gibt es einen solchen intelegenten RS485 Treiber?

Wozu? Die UARTS der AVRs haben einen Multiprozessor-Mode. Läuft 
allerdings nicht über das Parity-Bit sondern über den 9-Bit Mode.

MfG Spess

von HolgerT (Gast)


Lesenswert?

Ich glaube, der TO ist sich nicht darüber im klaren, dass RS485 KEIN 
Protokoll ist. RS485 mit S.N.A.P o.ä. zu vergleichen ist Äpfel mit 
Birnen...

Nimm CAN und alles wird gut.

von Sven P. (Gast)


Lesenswert?

HolgerT schrieb:
> Ich glaube, der TO ist sich nicht darüber im klaren, dass RS485 KEIN
> Protokoll ist. RS485 mit S.N.A.P o.ä. zu vergleichen ist Äpfel mit
> Birnen...
>
> Nimm CAN und alles wird gut.

Ja, etwa mit MCP2515 und MCP2551. Ich micht vor CAN lange gedrückt, weil 
ich es für zu komplex hielt. Aber diese beiden Bausteine sind in einer 
halben Stunde programmiert (Programmierwiderstand am Transceiver nicht 
vergessen) und funktionieren -- ganz untypisch für Microchip -- 
tatsächlich, wie im Datenblatt beschrieben...

von Christian (Gast)


Lesenswert?

Hallo,

vielen Dank für Eure Antworten.

Mir ist klar, dass ein Protokoll au RS485 aufsetzt. Ich vergleiche SNAP 
nicht mit RS485, sondern hatte überlegt das Snap Protokoll mit RS485 
Schnittstellen einzusetzten...

Mit Can hatte ich mich zugegebenermaßen noch nicht beschäftigt, da es 
mir sehr kompliziert erschien. Mit den MCP25xx Bausteinen ist es das 
aber in der Tat nicht.

Nachteilig ist allerdings, dass ich statt 2 ICs dann 3ICs auf der 
Platine brauche. Baugröße ist allerdings immer ein Thema.

Einen Bootloader habe ich auf 
http://www.kreatives-chaos.com/artikel/can-bootloader gefunden. Das ist 
schon mal toll!

Gibt es eine möglichkeit CAN mit AVR noch etwas kleiner zu machen? Ein 
AT90Can ist auch sehr groß und braucht zusätzlich einen Transsiver. Ein 
LPC11c22 vielleicht? Mit den NXP Bausteinen habe ich allerdings noch nie 
gearbeitet geschweige denn einen Bootloader geschrieben.

Gruß,
Christian

von spess53 (Gast)


Lesenswert?

Hi

Hast du dir denn den Multi-processor Mode mal angesehen?

MfG Spess

von Frank K. (fchk)


Lesenswert?

Christian schrieb:

> Gibt es eine möglichkeit CAN mit AVR noch etwas kleiner zu machen? Ein
> AT90Can ist auch sehr groß und braucht zusätzlich einen Transsiver. Ein
> LPC11c22 vielleicht? Mit den NXP Bausteinen habe ich allerdings noch nie
> gearbeitet geschweige denn einen Bootloader geschrieben.

Geh zu Microchip. Ist auch nicht teurer und Du hast viel, viel mehr 
Peripherieoptionen. Es gibt über 900 verschiedene PICs mit 8, 16 oder 32 
Bit.

Da gibts z.B. den PIC18F26K80. Das ist der MCP2515 mit Prozessor gleich 
dabei. Oder wenn Du mehr Power brauchst: dsPIC33EP64GP502 16 Bit/70 MHz 
im gleichen 28 Pin Gehäuse. Und wie gesagt, auch nicht teurer als ein 
AVR90CAN128, der im Vergleich dazu ziemlich alt aussieht.

Andere Möglichkeit: LIN
Nimm einen PIC12F1840 im SO08 und dazu einen MCP2021 LIN-Transceiver mit 
eingebautem Spannungsregler. LIN ist ein serieller Eindraht-Bus mit 
12V-Pegel und 19200 bps aus der Automobilindustrie. Designziel von LIN: 
möglichst billig, möglichst robust. Mit den beiden Chips hast Du zwei 
SO08-Bausteine, mit denen Du einen kompletten LIN-Knoten hinbekommst.

fchk

von Mr (Gast)


Lesenswert?

Microchip oder Atmel das ist egal
der eine mag Microchip der andere Atmel

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
Noch kein Account? Hier anmelden.