Forum: Mikrocontroller und Digitale Elektronik RS232 mit Transitor Verstärken??


von Christoph B. (elgigo)


Lesenswert?

Hallo Leute!

Bin neu im Bereich uC und hab auch schon viele Infos aus dem Forum 
bekommen.
Da ich erst vor kurzem zum entwickeln / uC Programmieren angefangen 
habe, tu ich mir noch etwas schwer...

Ich hab vollgendes Projekt gestartet:

Ich möchte mir einen Sternenhimmel mit ca. 100 weißen 12 Volt LED´s 
bauen die ich über die serielle einzeln mit PWM dimmen kann. Ich habe 
für die kommunikation zum PC einen ATMega 162 genommen. Die eine RS232 
hängt über nen MAX232 an ner Sub-D, die andere geht über RJ45 zu meine 7 
"Slaves" (ATTiny 2313). Die Slaves senden nicht sondern empfangen nur 
und hängen alle paralell an der RS232. Da doch ein paar Meter zwischen 
den Dingern sind wollte ich fragen ob ich TxD einfach mit einem 
Transistor (pro Slave) verstärken kann??

Ich wollte mit 19,2 kBaud "fahren", das is aber noch flexibel

Oder is das etwas komplexer??

Danke im voraus für die bemühungen, schönen Abend noch,

MFG
Christoph

von ccc (Gast)


Lesenswert?

Ich wuerd RS485 anstelle von RS232 verwenden.  Das kann ja nach Treiber 
bis zu 128 Slaves ansteuern.

von Klaus (Gast)


Lesenswert?

hab mal ne frage

>Die Slaves

was oder wer ist das? ein weiter µC oder ein "scharzer" der Dir
das Licht in kurzen Abständen ein/ausschaltet?

von Klaus (Gast)


Lesenswert?

Sorry, ich hab daneben gegriffen es steht im Text.

von Christoph B. (elgigo)


Lesenswert?

Das sind auch uC, genauer gesagt ATTiny 2313. Auf der Seriellen werden 
folgende Daten übertragen:

Led-ID
Dimmstufe (0-255)
Dimmgeschwindigkeit

Der ATMega sendet die Daten und die Tiny haben jeweils einen Bereich von 
Led-ID´s. Wenns Slave nummer 1 was angeht stellt er die PWM um ansonsten 
verwirft er die Daten, so ist zumindest die Theorie....

von Klaus (Gast)


Lesenswert?

Wenn Du keine weitere Hardware einsetzen willst,
könnte es mit dieser oder einer evtl. kleineren Taktfreq. funktionieren.

Bei dieser Beleuchtungsgeschichte ist doch bestimmt, die 
Übertragungszeit",
Dein kleinstes Problem.

von Christoph B. (elgigo)


Lesenswert?

Stimmt, das größte Problem ist das ich von der Sprache C noch fast keine 
Ahnung hab und in Assembler wirds schwierig werden....

Würde das mit einen Wald und Wiesen Transistor denn funzen?

von Peter K. (opa-peter)


Lesenswert?

Hi,
ich sehe da kein Problem, die Spezifikation des MAX232 ist an der Stelle 
sehr genau, was Ströme und Spannungen angeht. Datenblatt bei maxim-ic 
oder TI, oder woher dein max232 auch her ist...

von Klaus (Gast)


Lesenswert?

@ Christoph Baumgartner,

>Stimmt, das größte Problem ist das ich von der Sprache C noch fast keine
>Ahnung hab und in Assembler wirds schwierig werden....

meist Du mich?

von Christoph B. (elgigo)


Lesenswert?

@ Klaus

Nein war allgemein gemeint

@Peter
Der "Kreis" hat mit dem MAX232 nix zu tun, die Kommunikation geht über 
die zweite Serielle des ATMege 162, da hab ich das Problem...

von Klaus (Gast)


Lesenswert?

wenn es unbeding sein soll:

    +5V
     |
     R 240R
     |-------  out
-    / < pnp zb BC 557 b..c
in   \
     |
     |
    GND

Spannungsfolger.

von hans (Gast)


Lesenswert?

Dann würde ich beim Master und jedem Slave nen MAX488/490 hinsetzen.

http://datasheets.maxim-ic.com/en/ds/MAX1487E-MAX491E.pdf

Master sendet DI -> Y+Z

Slave rein A+B -> RO --- DI -> Y+Z raus
                      |
                    Abgriff Slave

Ist einfach und bei langen Leitungen sicher.

GND der platinen muß nicht verbunden sein.

gruß hans

von Christoph B. (elgigo)


Lesenswert?

@ Hans

Gefällt mir echt gut!

Doofe Frage muß ich A+B und X+Y kurzschließen?

Danke für die Info

von hans (Gast)


Lesenswert?

Nein!!

Die Verbindung besteht aus 2 (meist verdrillten) Adern.

Schau dir mal das Datenblatt und die Schnittstellenbeschreibung

http://de.wikipedia.org/wiki/EIA-485

an.

gruß hans

von Christoph B. (elgigo)


Lesenswert?

Ich glaub jetzt hab ichs, hab das so verstanden:

Zwischen RO und DI wird ne brücke gemacht, auf der Brücke greif ich mir 
meine RxD leitung für den Slave ab. A + B gehen zum vorherigen Slave 
(oder Master) X + Y zum nächsten. ist es so korrekt?

von JensM (Gast)


Lesenswert?

Hallo,

wenn in den Slaves ein MAX232 vorhanden ist,
so kann die Loesung von hans (Gast) auch mit diesem realisiert werden.
Somit macht jeder Slave eine Signalaufbereitung fuer den naechsten 
Slave.


Vorteil:
Keine 12V Versorgung.
Billiger.

Nachteil:
Nicht so Stoersicher wie RS485.

Bei den geplanten Uebertragungsraten sollte das aber bei einigen Metern 
noch kein Problem sein.

Bei RS485 ist die Masseverbindung aber auch noetig.
Die Bausteine halten wohl einiges an Stoerspannung aus,
fuer den Betrieb ist es aber Notwendig, dass die Eingaenge im Bereich
von -8V bis +12,5V liegen. Dies kann nur mit einer Masseverbindung 
garantiert werden.

von hans (Gast)


Lesenswert?

Jetzt past es.

Wenn du mehrere Slaves der gleichen Art baust, mach doch die
Adresse mit Dipschalter und lese diesen beim Programmstart
(bei Pinmangel mit einem 74HC165).

Dann ist das Programm wirklich gleich bei allen.

Und eine Universaladresse um Alle anzusprechen (z.B. für alle ein/aus)
nicht vergessen!

gruß hans

von Christoph B. (elgigo)


Lesenswert?

Bin jetzt etwas verwirrt denn im Datenblatt der Max488 steht das sie 
eine versorgung von 5 Volt benötigen. Die GND Verbindung habe ich 
sowieso über die Spannungsversorung der LED´s (12 Volt Sitop). Denn 
größten Nachteil den ich beim MAX232 sehe ist der Platzbedarf. Hab zur 
zeit noch ne Eagle Freeware und die Boards sind jetzt schon sehr voll

von Sentinel (Gast)


Lesenswert?

Verträgt RS485 nicht maximal 32 Busteilnehmer wg. Eingangsimpedanz der 
Empfänger?

Ich würde als Empfänger ein CMOS-Gatter einsetzen (niedrige 
Busbelastung). Warum nicht direkt auf den RxD des µC gehen?

Nachdem die Daten eh zyklisch versendet werden, können 
Übertragungsfehler toleriert werden.

Auf eine busförmige Verdrahtung mit Leitungsabschluss achten.

von JensM (Gast)


Lesenswert?

@Sentinel

Bei der Verdrahtung die hans vorgeschlagen hat ist jewels nur 1 
Teilnehmer
am vorherigen Slave angeschlossen.

Geplant sind auch nur 7 Slaves (nicht fuer jede LED einer).
Wenn man den Eingang eines µC verwendet, so hat man alle Vorteile des
MAX488 wieder zunichte gemacht.

@Christoph Baumgartner
Unter diesen Voraussetzungen ist der MAX488 dem MAX232 vorzuziehen.
Die 12V waren ein Fehler von mir. Ich habe die ABSOLUTE MAXIMUM RATINGS
auf VCC im Datenblatt gesehen.

Gruss JensM

von hans (Gast)


Lesenswert?

Klar können an eine RS485 mehrere Empfänger angeschlossen werden.
Aber dann braucht man T-Stücke in der Leitung. Wenn man die
Schnittstelle wie oben beschrieben durchschleift ist das T-Stück
auf der Leiterplatte und man braucht auch keine Terminierung.


@Christoph

Der Max ist ein normaler IC mit 8 Pin, die Versorgung 5V.
Der 3,3V -Typ heist MAX3488. Versorgung also wie dein Tiny2313.
Keine Kondensatoren wie beim 232 (nur evtl. der übliche 100nF in der
versorgung).

Das mit der Adressierung war bloß für den Tiny gedacht!

gruß hans

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.