Hallo,
ich will ein Bussystem bauen (mehrere Sender und Empfänger) und habe
folgendes Problem:
Der ULN2003 wird direkt vom Controller angesteuert (5V) und gibt dabei
einen Wert von ca. 0,6V aus. auf der Empfängerseite gehen durch den
Filter (ungewollter Spannungsteiler von R1 und R2) nochmals ca. 0,2V
verloren.
Der Eingangspin des Empfängercontrollers erhält für ein Low-Signal ca.
0,8V. Der Controller erkennt laut Datenblatt ein Low-Signal aber nur bis
0,5V als Low bei einer Versorgung von 5V).
R1 und R2 könnte ich noch anpassen, um das ganze so auf 0,05 bis 0,1V
Verlust zu begrenzen. Allerdings gibt der 2003 dann immer noch zu viel
Spannung aus.
Hat jemand eine Idee für einen alternativen Baustein zum 2003 oder
irgend einen anderen Vorschlag, wie man die Pegel mit wenig Aufwand
anpassen könnte. Da ich bereits ein paar Empfängerbausteine aufgebaut
habe, wäre eine Lösung auf der Sender-Seite von Vorteil. Kann aber zur
Not auch noch Anpassungen am Empfänger vornehmen.
Prinzipschaltbild der Busleitung im Anhang. Controller ist jeweils ein
Mega64.
Gruß Rüdiger
>auf der Empfängerseite gehen durch den>Filter (ungewollter Spannungsteiler von R1 und R2) nochmals ca. 0,2V>verloren.
Häng den Pullup vor den Filter.
Dann baust du auch keinen Spannungsteiler.
Hi
>auf der Empfängerseite gehen durch den Filter (ungewollter >Spannungsteiler von
R1 und R2)...
Das ist eh kein Filter. Dazu müsste R1 vor R2. Eine bessere
Störsicherheit erreichst du einfacher durch Verkleinerung von R1.
MfG Spess
ruediger wrote:
> 0,8V. Der Controller erkennt laut Datenblatt ein Low-Signal aber nur bis> 0,5V als Low bei einer Versorgung von 5V).
Was ist denn das für ein seltener Vogel? Damit ist der noch nicht einmal
TTL-kompatibel, denn das akzeptiert immerhin 0,8V.
Ein AVR jedenfalls akzeptiert ganz offiziell bis 0.2*VCC, hier also 1V.
>Das ist eh kein Filter. Dazu müsste R1 vor R2. Eine bessere>Störsicherheit erreichst du einfacher durch Verkleinerung von R1.
Ich habe das Schaltbild abgeändert. R1 ist jetzt vor R2, und nebenbei
spar ich mir noch ein paar Widerstände, in dem ich sie auf den
Empfängerplatinen komplett weg lasse und nur noch ein zentraler PullUp
irgend wo in die Busleitung einfüge. Oder ist das bei ca. 2-3 Meter
Busleitung nicht ratsam?
Ich habe den Wert von 100k auf 4,7k verringert. R1 war ursprünglich
wegen dem ungewollten Spannungsteiler so hoch. Das fällt ja jetzt weg.
>Was ist denn das für ein seltener Vogel? Damit ist der noch nicht einmal>TTL-kompatibel, denn das akzeptiert immerhin 0,8V.>Ein AVR jedenfalls akzeptiert ganz offiziell bis 0.2*VCC, hier also 1V.
Ist ein Mega64. Hab nochmals ins Datenblatt geschaut und nehme alles
zurück. Sind natürlich 0,2*Vcc, wie komm ich nur auf 0,1*Vcc???
Da er 0,8V bekommt sollte es dann ja funktionieren. Tuts aber nicht.
Muss ich mich nochmals auf Fehlersuche begeben.
Hi
>Ich habe das Schaltbild abgeändert. R1 ist jetzt vor R2, und nebenbei
Dein R2 ist eigentlich in beiden Fällen überflüssig. R1 und C1 bilden
nämlich schon ein Filter.
MfG Spess
ruediger wrote:
> Da er 0,8V bekommt sollte es dann ja funktionieren. Tuts aber nicht.> Muss ich mich nochmals auf Fehlersuche begeben.
Dann hast du definitiv ein anderes Problem, denn bei einem AVR bei 5V
liegt der Umschaltbereich irgendwo zwischen 2V und 3V.
Zunächst mal vielen Dank an alle.
Das Problem ist behoben. Funktioniert wunderbar mit 0,8V Eingangspegel.
Jetzt kann ich meine Platinen mit dem ULN2003 zum Glück doch verwenden.
Bei meinem 8Bit-Bus hatte sich ein falscher SMD-Widerstand
eingeschlichen. Der hat mir eine ganz andere Leitung fälschlicher Weise
auf "High" gezogen . dadurch wurde mein eigentlicher Befehl
korrekterweise von der Software ignoriert. Durch den Denkfehler mit
0,1*Vcc hab ich dann gleich auf das Spannungsproblem gestürzt.
Jetzt werd ich noch eure Vorschläge mit dem Spannungsteiler umsetzen.
Dann sind Schaltplan und Software fertig.
Warum nimmst du nicht einen echten Bustreiber ?
74HC(T) 245 (Bidirektional) oder 74HC(T)541 sind fuer sowas gemacht.
Der ULN2003 ist eher zur ansteuerung von Relais und LEDs gedacht und hat
eine typische Vcsat Spannung von 0.9V. Auch ist die
Schaltgeschwindigkeit mit 1uS auch nicht gerade schnell.
Gruss Helmi
>Schaltgeschwindigkeit mit 1uS auch nicht gerade schnell.
Mein Bus gibt Signale von 5ms bzw. 10ms aus -> Schaltgeschwindigkeit
zweitrangig
>Warum nimmst du nicht einen echten Bustreiber ?>74HC(T) 245 (Bidirektional) oder 74HC(T)541 sind fuer sowas gemacht.
Strom. Da ich viele Teilnehmer anschließen möchte und ein ULN mehr Strom
treiben kann als die beiden Bustreiber. Wenn der ULN gegen Masse
durchschaltet, muss er die ganzen PULL-UP´s aller Schaltungen die am Bus
hängen vertragen und die Filterkondensatoren umladen (desshalb der
kleine Wert von nur 1nF).
>eine typische Vcsat Spannung von 0.9V
Deswegen werd ich mir jetzt den von dir vorgeschlagenen 74HC541
anschauen. Vielleicht kommt er trotz des geringeren Stromes zum Einsatz.
Nach den Vorschlägen von den Beiträgen oben überarbeite ich jetzt
nochmals die Filter- und Pull-UP-Geschichte. Dann reicht er vielleicht
auch bei den vielen Teilnehmern, die ich plane (ca. 50 bis 60)
Es gibt ja auch noch die Möglichkeit, mehrere Bussegmente zu machen und
per µC miteinander zu koppeln. Dann hängen nicht alle Teilnehmer am
gleichen Bus, was das Stromproblem entschärfen würde. Ich starte jetzt
erst mal mit dem ULN2003, da ich schon geätzte Platinen habe. Vielleicht
bekommen die nächsten Platinen dann den 74HC541.
Ist alles noch im Anfangsstadium. Noch nicht ausgereift.
>Um was für Buslängen handeltes sich eigentlich?
max. ca. 6 bis 7 Meter
wenn ich das ganze in Segmente aufteile (wovon ich momentan ausgehe)
werden es so 3 bis 4 Meter sein.
Ist für eine Modellbahnanlage
Hi
Für solche Entfernungen bringen übliche Bustreiber a'la 541 nicht sehr
viel. Persönlich würde ich zu RS485- oder CAN-Bustreibern tendieren.
MfG Spess