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
Ich wuerd RS485 anstelle von RS232 verwenden. Das kann ja nach Treiber bis zu 128 Slaves ansteuern.
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?
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....
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.
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?
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...
@ 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?
@ 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...
wenn es unbeding sein soll: +5V | R 240R |------- out - / < pnp zb BC 557 b..c in \ | | GND Spannungsfolger.
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
@ Hans Gefällt mir echt gut! Doofe Frage muß ich A+B und X+Y kurzschließen? Danke für die Info
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
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?
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.
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
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
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.
@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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.