Forum: Analoge Elektronik und Schaltungstechnik Spannungsversorgung und Daten über zwei Leitungen


von Florian (Gast)


Lesenswert?

Hallo.

Ich hoffe, ihr könnt mir weiterhelfen.

Habe mich schon die ganze Zeit gefragt, wie das funktioniert mit 2
Leitungen. Ein Elektroniker hat mir heute erklärt, das die eine Leitung
immer minus ist und die andere Leitung z.B. immer 5 Volt. Wenn dann
Daten gesendet werden sollen, dann wird einfach bei den 5 Volt z.B. 3
Volf dazu aufmoduliert, was dann (8 Volt) eine logische 1 ergeben
würde. Wenn es 5 Volt sind, dann wäre es eine logische 0. Stimmt das
so?

Wie schaut es da bei den Takten aus? Ist da bei GND noch irgendein
Clocksignal drinnen, oder reicht es, wenn beide µC mit z.B. 16 MhZ
laufen, damit das Sendesignal mit der Zeit übereinstimmt?

Ach ja, wie heißt eigentlich dieser Bus, damit ich vielleicht mal
selber im Forum nach Informationien suchen kann? Wäre das dann ein
CAN-Bus?

Vielen dank im voraus

Gruß Florian

von Sebastian Heyn (Gast)


Lesenswert?

Wenn du daten und Spannung über zwei gleiche leitungen übertragen
willst, machst du das indem du ne Wechselspannung auf die
Gleichspannung modulierst (Wie es dein kumpel erklärt hat) im empfänger
filterst du die gleichspannung mit hilfe eines Kondensators einfach
raus, (der lässt nämlich nur wechselspannungen durch) und gleichzeitig
hast du dioden, welche die wechselspannung filtern, damit das
dtensignal nicht zur spannungsversorgung gelangt
Ein extra datensignal ist meist nicht notwendig, da der empfänger und
der sender die Gleiche Zeitbasis benutzen, du überträgst dann zwar
einsen und nullen, aber die eigentlich daten werden anhand der abstände
der flanken errechnet..

Wie sich das bei den Bussystemen (CAN etc) verhält weiss ich nicht.
Darüber gibts aber massig Anleitungen im netz.

von Unbekannter (Gast)


Lesenswert?

Dein Kumpel hat das richtig erklärt.

Das fehlende Taktsignal ist kein Problem, das ist quasi im Datenstrom
enthalten. Vereinfach kannst Du Dir das wie Disco-Musik vorstellen: Da
klopft der Bass auch ständig, und dazu gibts noch irgendein Gejole. Der
Bass wäre dann der Takt und das Gejole sind die Daten.

Der Fachbegriff dafür heißt "Modulation".

Es gibt hunderte, wenn nicht tausende, Modulationsarten. Bei manchen
benötigt man eine separate Taktleitungen, bei manchen nicht.

von Florian (Gast)


Lesenswert?

Vielen Dank erstmal für die Antworten.

Dann muß das nicht unbedingt Wechselspannung sein? Das klingt mir zu
kompliziert.

Also einen hohne Datenstrom bräuchte ich ja nicht. Ich dachte es mir
so:

Der Sender "Atmega 8" legt die Versorgungsspannung für den Empfänger
"Atmega 8" von 5 auf 12 Volt... also von low auf high. Auf der
Empfängerseite kommt dann ein Spannungsteiler hin, der z.B. aus 5 Volt
0,8 Volt und aus 12 Volt 1,8 Volt macht.(<----geht das?)  So... Diese
positive Flanke könnte ich am INT0 dranhängen, die mir dann den ext.
Interupt auslöst. Sofort nach der positiven Flanke wechselt der Sender
entweder auf 5 Volt (0) oder er bleibt auf 12 Volt. Zur Sicherheit
vieleicht 5 Takte, damit der Empfänger das Bit auch sicher erreicht.Der
Empfänger liest den zustand in der int-schleife aus und speichert ihn.
Das dann mal 8, dann hat man ein byte drüben.

Würde das so gehen?

Allerdings wie könnte ich mit dem ATMEGA 8 aus 5 Volt 12 Volt machen.
Ist das mit Transistoren irgendwie möglich?

Gruß Florian

von Unbekannter (Gast)


Lesenswert?

Sagen wir mal so, es geht in die richtige Richtung:

a.) Der Empfänger-Atmega verträgt keine 12 Volt. Also musst Du da noch
einen Spannungsregler einbauen.

b.) Mit dem entsprechend dimensioniertem Spannungsteiler gehst Du auf
den Analogkomparator der Empfänger-Atmega. An einem normalen Eingang
geht das nicht so einfach ohne weitere Elektronik.

c.) Wenn der Sender nur 5 Takte wartet, sind die Impulse viel zu Kurz.
Du könntest Dir z.B. überlegen, das ein Bit 1/1000 Sekunden, also 1 ms
lang sein soll. Dann kannst Du 1000 Bits pro Sekunde übertragen. Um nun
die 0-Bits und die 1-Bits zu unterscheiden, könntest Du Dir überlegen,
dass für ein 0-Bit die Spannung für 0,25 ms auf 12 Volt gehen muss und
danach für 0,75 ms auf 5 Volt sein muss. Für das 1-Bit hebst Du dann
die Spannung für 0,5 ms auf 12 Volt und danach für 0,5 ms auf 5 Volt.
Dann dauern beide Bits exakt eine Millisekunde. Damit sich der
Empfänger syncronsieren kann, könntest Du Dir z.B. überlegen, dass 10
ms lang keine Bits gesendet werden, dann 5 Eins-Bits kommen bei der der
Empfänger die Länge messen kann, und dann ein Null-Bit und danach die 8,
16, 32, oder ... Bits Deiner Bytes, also das Datenpaket.

d.) Nur mit Transistoren kann man keine 12 Volt erzeugen. Am
leichtestens ist es, aus vorhanden 12 Volt entweder 5 Volt erzeugen
oder 12 Volt durchzulassen.

von Sebastian Heyn (Gast)


Lesenswert?

Also ich weiss ja nicht was du vor hast AABER:

Die meisten systeme haben eh 12V als versorgungsspannung.
Im nimmst du nen 7809 und nen 7805 hintereinander sieh zu das du
ordentlich 100nF dranbaust :-))

Jetzt kannst du mit zwei einfachen PNP transistoren entweder 9V auf die
Leitung geben, oder 12V auf der anderen Seite (am empfänger) nimmst du
dir erstmal wieder zwei spannungsregler (dann ist die ausgansspannung
stabiler) und erzeugst die 5V betriebsspannung für das gerät. Jetzt
koppelst du aber vor dem ersten Spannungsregler das signal mit nem
Optokoppler aus (wenn du nen spannungsteiler davormachst wird er bei
12V am Ausgang durchschalten aber bei 9V aber nicht.

Der rest dürfte dann so software sein. Als Problem sehe ich die
Kabellänge. Wie lang soll es denn werden?

von Florian (Gast)


Lesenswert?

Achja, den 7805 hatte ich noch vergessen. Das mit den Transistoren habe
ich so gemeint:

Versorgungsspannung:12 V
2X 7805 für Atmega
Datenleitung fix auf 5 V

So, wenn der Senderausgangspin auf 0 ist, dann sollten die 5 Volt auf
der Daten-Spannungsleitung bleiben und wenn er auf 1 ist, dann sollte
ein Transistor 12 V durchschalten. Das einzigste Problem wäre dann,
wenn ich auf die 5 Volt Leitung 12 Volt anlege, dann schalte ich mit 7
Volt einen kurzen, oder nicht?

Verstehst du, was ich meine?

Das mit der einen ms klingt sehr interessant. Darüber werde ich mir mal
Gedanken machen.

Gruß Florian

von Florian (Gast)


Lesenswert?

Das mit dem Optokoppler klingt auch gut.

Die Länge des Kabels wird max. 3m.

Gruß Florian

von Sebastian Heyn (Gast)


Lesenswert?

du brauchst für den empfänger mindestens 2V mehr als die
ausgangsspannung des spannungsreglers, sonst kann er nicht regeln!

von Peter (Gast)


Lesenswert?

Hallo Florian,

das geht mit einer Schmitt Trigger Schaltung sehr einfach. Mit der
Schaltung werden Nadelimpulse(Datensignal) erzeugt die im Empfänger
wieder rausgefiltert werden. Man braucht dazu nur eine 5V Versorgung.
Funktioniert locker 90m mit einer Datenrate von 4800Baud.

http://www.mikrocontroller.net/forum/read-1-263716.html#new

von Florian (Gast)


Lesenswert?

Hallo Peter.

Hast du da zufällig einen Schaltplan? Das wäre sehr interessant.

Gruß Florian

von Florian (Gast)


Lesenswert?

Würde das eventuell funktionieren? (Bild im Anhang)

Anstatt den 5 Volt könnte ich auch 9 Volt nehmen.

Gruß Florian

von Florian (Gast)


Angehängte Dateien:

Lesenswert?

Ups, das Bild.....

von Unbekannter (Gast)


Lesenswert?

Ersetze R4 durch eine Diode, und mach R3 größer, so ca. 4,7 Kiloohm.

von Florian (Gast)


Lesenswert?

Gäbe es da eventuell auch einen Trick, damit ich die GND Leitung als
Clockleitung hernehmen kann, so wie bei SPI?

Ich dachte, einfach die GND Leitung (0V) auf 1 Volt hochziehen.

Geht das?

Gruß Florian

von Thorsten Wilmer (Gast)


Lesenswert?

Hallo,

das mit der Wechselspannung muss nicht unbedingt sein. Auf:
http://ls12-www.cs.uni-dortmund.de/rock/info/endbericht.pdf
gibt es ein Beispiel, wie mit Hilfe des sog. RockWire auch bidirekional
Daten übertragen werden können. Der Trick besteht darin, dass Sender und
Empfänger sich einig sind, wann Daten zu senden sind und dann der Bus
nur durch einen Pull-Up hochgezogen wird. Dann kann wie bei einem Open
Collector o.ä. jeder Teilnehmer den Bus auf 0 V ziehen. 0 und 1 werden
wie oben erwähnt dadurch markiert wie lange man den Bus
"kurzschließt". Der Rockwire Client bekommt seinen Strom auch über
diesen Bus, damit das Laden des Stützkondensators im Client  nicht so
lange dauert wird während der Ladezeit der Pul-Up Widerstand
überbrückt. Damit es nicht zu einem echten Kurzenkommt muss  in
Softwarre sicher gestellt werden, dass dann kein Teilnehmer sendet.

Die Schaltung ist recht einfach aus Mosfets aufgebaut.

Grüße,
   Thorsten Wilmer

von Henning (Gast)


Lesenswert?

Hallo,
wo wir gerade bei dem thema sind, kann ich auch gleich mal meine frage
stellen, die mich zu diesem thema beschäftigt.

was ist wenn die hauptbetriebsspannung (die also bei keiner
datenübertragung anliegt) mit einem hohen strom 1-3A belastet ist. Muss
meine Datenspannung dann auch diesen strom liefern?

gruß

von TravelRec. (Gast)


Lesenswert?

Yep, muß sie. Wie sonst sollte es zu einem merklichen Spannungsanstieg
auf der Versorgungsleitung kommen?

von Unbekannter (Gast)


Lesenswert?

Oder Du modulierst Dein Datensignal auf einen Träger, z.B. mit 100 kHz.
Dann musst Du am Verbraucher eine kleine Spule einbauen, die die 100
kHz teilweise blockt, so dass die Impedanz des Verbrauchers bei 100 kHz
geringer ist wie bei DC.

Naja, dann blässt Du den Träger auf die Versorgungsleitung, und der
Verbraucher dämpft den trotzdem relativ stark, so dass Du ihn beim
Empfänger wieder verstärkst.

von Unbekannter (Gast)


Lesenswert?

Die Impedanz des Verbraucher soll bei 100 kHz natürlich größer sein, als
bei DC. Ist ja logisch...

Wann kommt die Edit-Funktion?

von Florian (Gast)


Lesenswert?

Hi, habe die oben genannte Schaltung mit der Diode jetzt aufgebaut.

Mein Problem momentan ist, wie kann ich aus den 5/12V nun 0/5V machen,
damit ich direkt an den Port des µC Empfängers fahren kann. Mit einem
Spannungsteiler hab ich es schon probiert, doch das haut nicht ganz
hin.

Wie könnt ich das sonst noch realisieren?

Gruß Florian

von Florian (Gast)


Lesenswert?

Kann mir da niemand weiter helfen? Ich weiß wirklich nicht, wie ich das
machen soll.

Gruß Florian

von TOM (Gast)


Lesenswert?

Spannungsteiler und interner Analogkomp. sollten gehen.

von Florian (Gast)


Lesenswert?

Hi, habe leider noch nie mit dem Analogkomperator gearbeitet. Laut
Datenblatt des Atmega 8 und das schlechte Englisch von mir, ist dabei
das rausgekommen.

Ich möchte zur Probe einfach eine Led an Port B ein und ausschalten,
wenn sich die Spannung ändert.

Kann man das im AVR Studio überhaupt simulieren?

Hier das Programm.....würde das so funktionieren, oder fehlt da noch
was?

.include"m8def.inc"

.def  temp = r16


.org $000
rjmp  reset

.org $010
rjmp  ana_comp


ana_comp:
    com    temp
    out    portb, temp
    reti

reset:
    ldi    temp, low(ramend)
    out    spl,  temp

    ldi    temp, high(ramend)
    out    sph,  temp

    ser    temp
    out    ddrb, temp

    clr    temp
    out    ddrd, temp

    ldi    temp, (1<<acme)
    out    sfior, temp

    ldi    temp,
(0<<acd)|(0<<acbg)|(0<<aco)|(0<<aci)|(1<<acie)|(0<<acic)|(0<<acis1)|(0<< 
acis0)
    out    acsr, temp

    ser    temp
    out    portb, temp

main:
    rjmp   main




Vielen Dank für Eure Hilfe
Gruß Florian

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.