Archiv verlassen und diese Seite im Standarddesign anzeigen : ServoSignal nur 1V Amplitude? Schnelle Hilfe benötigt
the_Ghost666
26.04.2008, 20:47
Moin zusammen, ich habe ein Problem, das schnelle Abhilfe braucht:
Ich habe hier eine Modellbaufernsteuerung, der Empfänger ist ein Multiplex "RX7-Synth IPD". Ich muss die Signale mit einem Atmega8 auswerten. Nun habe ich die Fernbedienung mal angeschlossen und muss mit schrecken feststellen, dass mein Oszilloskop mir sagt, es wäre nur ein Servosignal mit 1V Amplitude vorhanden, statt erwarteten 5V TTL Pegeln. Kann das jemand nachvollziehen, und mir ne Möglichkeit nennen Abhilfe zu schaffen? Die Mittel sind jedoch sehr begrenzt. Liegt das Problem an meinem Empfänger, oder ist das Grundsätzlich der Fall, dass den Servos zwar 5V bereitstehen, aber das Informationssignal nur 1V hat? Habe ich einen Fehler gemacht?
zapfst du das pwm fuer die servos an oder das summensignal ??
wenn du alle kanäle haben willst brauchst du ja das summensignal... dann an den icp rein...
das kannst du mit ner kleine op-amp schaltung auf 5 v ziehen
so z.b. http://www.mikrocontroller.net/attachment/30738/kompi.png
war bei meinem empänger (auch multiplex bei ca 2,2 volt ) mit der shcaltung tuts ...
nikolaus10
27.04.2008, 09:20
Wenn es wirklich TTL ist einfach ein Pull Up Widerstand einfuegen.
Einen 5 Volt TTL Pgel gibt es naemlich nicht.
Besserwessi
27.04.2008, 09:27
Der Pullup ist wirklich einen Versuch wert.
Sonst kann man auch den Analogen Comperator eingang des Mega benutzen. Allerdings hat man dann keine Hysterese und ist damit etwas empfindlicher auf Störungen. Bei der Schaltung mit dem externen Komerator oben sollte man übrigens eine HYsterese vorsehen.
the_Ghost666
27.04.2008, 09:40
Moin zusammen.
Also, ich hab nur die einzelnen Kanäle, an ein Summensignal komm ich nicht ran, will ich auch nicht.
Ich darf nur bestimmte Teile nutzen, leider keine OPs, ich hab ne handvoll BC547 und damit mal nen einfachen Verstärker gebaut, damit könnte es klappen (in der Simulation gehts).
Warum soll es keine 5V TTL Pegel geben? TTL definiert doch nur, wo die Schaltschwellen liegen (öh 0,8*Vcc als High und 0,2*Vcc als Low oder so), es gibt doch auch LowVoltage TTL, bei den ganzen Prozessoren mit 3,3V, oder irre ich mich?
Den Pullup hab ich versucht (in der Hoffnung, dass es nur open collector Ausgänge sind), aber der Spannungsbereich verschiebt sich nur minimal, etwa 1V komplett rauf bei 1kOhm.
Weitere Nachforschungen haben auch gezeigt, dass der Chip im Empfänger ein MSP430 ist, der max 3,6V schafft. Die Aussenbeschaltung der Pins bestehen nur aus einem Widerstand zwischen Pin und µC-Port.
Besserwessi
27.04.2008, 11:56
Eine Einfache Verstärkungläßt sich mit einen Transistor aufbauen. Da reicht wohl schon die einfache inverterschaltung: Emitter nach GND, Widerstand vor die Basis und Pullup am Kollektor. Der Low pegel sollte dann nur dicht bei GND liegen.
Der MSP430 sollte aber mehr als 1 V ausgeben,es sei denn er läuft nur mit 1 V.
nikolaus10
27.04.2008, 12:06
Hallo
Eigentlich liegt TTL zwischen ECL und MOS Logik.
Und ist nach Stroemen definiert , deswegen ist sie auch so schnell.
Also, wenn aus einem Eingang 1,2 mA rausfliessen wird das als 0 erkannt!
Das die Pegel (auch) nach Spannungen definiert werden liegt nur daran das man sie besser messen kann.
Alles klar ?
@Ghost666
Was soll die überflüssige SchleichWerbung in Deiner Signatur?
Das ist hier kein Werbeforum und ich bin froh, wenn ich so einen Mist mal nicht sehen muss.
Wenn Du Werbung machen willst, dann zahl' auch was dafür, das kommt dem Bord wenigstens zu Gute.
Gruß
the_Ghost666
27.04.2008, 14:12
@Gock
1. Das ist in keiner Weise Schleichwerbung, da ich ganz offensichtlich dafür Werbe,
2. Du bist der einzige, seit einem Jahr, der auch nur ein Wort darüber verliert.
3. Ich bin bisher der Meinung gewesen, dass keine Regel dieses Forums etwas gegen die Gestaltung der Signatur sagt. Abgesehen davon wirbt jeder, der auch nur seine Website in die Signatur stellt für sich selbst.
4. Es ist nichtmal Eigenwerbung, ich habe mit dem Shop bis auf eine Bestellung vor einem Jahr nichts zu tun.
Um nicht deine Nerven zu strapazieren, entferne ich die Werbung.
Und jetzt bitte wieder Back to Topic...
the_Ghost666
27.04.2008, 15:06
Argh, wer möchte mich schlagen?
Ich habe mein Oszi seit nem Jahr nichtmehr angefasst und war mit Digitalen Speicheroszis verwöhnt.. nun da sind so Drehknöpfe dran, die zum Skalieren, extra Rot, damit man merkt, wenn man die aufdreht ist man ausserhalb des kalibrierten Bereichs. Also dreh ich die alle nach Links zu.. und das war genau verkehrt.. überall der Faktor 0,5 drin....
1. Schleichwerbung ist Werbung dort, wo sie nicht hingehört, weil dafür nichts gezahlt wird.
2. Dann wird es langsam Zeit
3. Die Regel heißt: Keine Werbung in Threads (vor allem ständig), solange nicht zum Thema gehörig. Also auch Posts, egal ob im Text oder der Signatur. Eine eigene Website ist was anderes, solange man kein Geld damit verdient.
4. Wenn Du dafür kein Geld bekommst, bist Du selber Schuld, ändert aber am Prinzip nichts. Außerdem kann es keiner prüfen.
Für diese Regeln gibt es nachvollziehbare Gründe.
Ich lese gerne Signaturen auch weil es dort keine kommerzielle Werbung geben sollte.
Sorry, ist ja nicht böse gemeint, auch wenn ich vielleicht etwas gereizt klinge. Du hattest vielleicht auch keine böse Absicht, aber mir reicht die Werbung, die mich den ganzen Tag schon trifft.
Warum man sich kostenlos zum Dauer-Werbehansel macht, wird mir ein Rätsel bleiben.
Am meisten aber stört mich, dass dieses nicht gerade schnelle Forum davon nichts abbekommt.
Malzeit
the_Ghost666
27.04.2008, 20:07
Ok.. der Pegel liegt also bei ca. 2V, invertierender Verstärker ist auch kein Ding. Aber dann fiel mir auf, dass ich 2 Dioden nutze, die problematisch sind.
Um 3 Signale mit INT0 und INT1 zu erfassen, habe ich einen Interruptpin über Dioden mit 2 freien Pins verbunden, an denen die Signale ankommen. Dioden ,damit nicht der eine Servo den andere Pin runterzieht, und damit eine Identifikation nichtmehr möglich ist.
Aber wenn ich das so aufbaue, ergibt sich, dass die Signale meist auf 5V liegen, sich dabei überlagern und so am INT-Pin hinter den Dioden 10V ergeben....dreck.
Jemand noch eine Idee? Wie gesagt, es steht nicht viel zur Verfügung, hab ein paar LogikICs (NAND, NOR, Inverter) und einfache Transistoren.
Naja der Hammer wäre das Signal danach nochmal mit einem Inverter zu beschalten, hat jemand ne bessere Lösung?
Hallo!
@ the_Ghost666
Ich habe den ganzen Tread gelesen und trotzdem weiß ich nicht, ob dein Problem noch besteht. Wenn ja, bitte, genaue Ein-, Ausgangsspannungen und vielleicht eine Skizze deiner Schaltung angeben, dann kann ich dir hoffentlich helfen. :)
MfG
the_Ghost666
27.04.2008, 21:07
Das Servosignal am Empfänger, welches ich auslesen will, hat eine Periode von 20ms, eine Einschaltdauer von 1-2ms und eine Amplitude von 2-2,3V.
Die Dioden entkoppeln die Servokanäle 1 und 3 voneinander, sollen aber am PD2 eine Interrupt auslösen, in dem ich dann die Ports abfragen kann.
Die Pegel reichen aber nicht um den mit 5V betriebenen Atmega8 zum Auslösen zu bringen. Ich weiß nicht, ob das ein grundsätzliches Problem ist, oder nur mein Empfänger so geringe Pegel liefert.
Ich hab nur BC547 (NPN) zur Verfügung, ausserdem NOR,NAND,Inverter und ein paar Widerstände.
Invertierende Transistorverstärker führen zu einer Spannungserhöhung hinter den Dioden auf etwa 10V, was zuviel ist. Ne alternative Idee?
Kannst Du genauer die L und H Pegel der Eingangssignale definieren, weil die Amplitude 2-2,3V wahrscheinlich die Differenz ist?
the_Ghost666
27.04.2008, 21:30
jop, L=0V H=2,2V
Danke.
Ich habe im Datenblatt für Mega8 folgende Werte für Eingangsspannungen der Ports gefunden:
max. L = 0,2 VCC und min. H = 0,6 VCC
Ich nehme an, dass VCC = 5 V, dann max. L = 1V und min. H = 3V.
Wenn Du TTL Gätter aus der 74XX (normal) oder 74LSXX Familie hast, sollte die Schaltung aus dem Code funktionieren, da schon 2V als H Pegel angenommen wird.
Wenn Du die Interrupt auslösende Flanke von steigender auf fallende im Programm ändern kannst, sollte die einfachste (untere) Schaltung auch funktionieren.
Bei Problemen melde Dich, bitte, dann werde ich weiter denken. :)
MfG
|\ |\
Servo1 >-----| >O-| >O-+---------------------> PD0
|/ |/ |
| __ __
+-\ \ +-\ \
| |o-+ | |o-----> PD2
+-/__/ +-/__/
|
|\ |\ |
Servo3 >-----| >O-| >O-+---------------------> PD4
|/ |/
|\ |\
Servo2 >-----| >O-| >O-----------------------> PD3
|/ |/
__
Servo1 >----+-\ \
| | |o----> PD0
+-/__/
| __
+-\ \
| |o----> PD2
+-/__/
| __
+-\ \
| | |o----> PD4
Servo3 >----+-/__/
__
+-\ \
Servo2 >----+ | |o----> PD3
+-/__/
the_Ghost666
27.04.2008, 23:24
Mh, was ist wenn ich sage, dass ich nur MOS-Logik zur Verfügung habe?
2 MOS 4011 ;4xNAND 2xEingänge
1 MOS 4023 ;3xNAND 3xEingänge
1 MOS 4572 ;1xNAND 1xNOR 4xINVERTER
Diese Limits liegen daran, dass es nur nen begrenzten Bausatz gibt. Ich würde mir auch was schöneres wünschen, aber hab keine Wahl.
Laut Datenblatt haben die erst bei 3.5V HighPegel, bei 4.5V Betriebsspannung.
Sagmal, hast du für die Ascii-Zeichnungen ein Programm oder viel Geduld?
Dann muss ich noch meine letzten 2 grauen Zellen anstrengen um Dir zu helfen. :)
Meine Skizzen sind "created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de".
Die Rb und Rc Widerstände sind nicht kritisch und können im Bereich 1-10 kOhm liegen. Es wäre besser wenn Rb grösser als Rc sind.
MfG
VCC
Rc +
___ |
+-|___|-+ __
| +-| \
+------------+------+ | )o-----> PD0
Rb | | +-|__/
___ |/ |
Servo1 >-|___|--| | __
|> +-| \
| | )o------------> PD2
=== VCC +-|__/
GND Rc + |
___ | |
+-|___|-+ | __
| | +-| \
+------------+------+ | )o-----> PD4
Rb | +-|__/
___ |/
Servo3 >-|___|--|
|>
|
=== VCC
GND Rc +
___ |
+-|___|-+ __
| +-| \
+-------------------+ | )o-----> PD3
Rb | +-|__/
___ |/
Servo2 >-|___|--|
|>
|
===
GND
the_Ghost666
27.04.2008, 23:43
Also wenn die ganze Geschichte morgen über einen Empfänger verfügt, der 5V Signale ausgibt, ist das alles erledigt, dann klappts so. Ansonsten werde ich wohl den Inverter nehmen müssen um die Geschichte nach dem Verstärken zu invertieren, also mal abwarten
Ich bin schon fertig, natürlich nur mit der Skizze (siehe noch mal meinen letzten Beitrag). :)
Wenn die Interrupt auslösende Flanke, wie oben ärwehnt, geändert werden kann, sollte die einfachste Schaltung (im Code) auch funktionieren.
Na ja, dann werden wir sehen und eventuell, falls nötig weiter denken.
MfG
VCC
Rc +
___ |
+-|___|-+
|
+------------+-------------> PD0
Rb | | VCC
___ |/ - Rpu +
Servo1 >-|___|--| ^ ___ |
|> | +-|___|-+
| +-+-----------> PD2
=== VCC |
GND Rc + |
___ | V
+-|___|-+ -
| |
+------------+-------------> PD4
Rb |
___ |/
Servo3 >-|___|--|
|>
|
=== VCC
GND Rc +
___ |
+-|___|-+
|
+--------------------------> PD3
Rb |
___ |/
Servo2 >-|___|--|
|>
|
===
GND
the_Ghost666
29.04.2008, 10:14
Moin.
Die Lösung des Problems sieht nun etwas anders aus. Der eigentliche Empfänger liefert 3-3,5V Highpegel, aber das Konzept wurde geändert, sodass nur 2 Signale direkt über nen invertierenden Verstärker an den INTX Pins ausgewertet werden und der dritte Servo einfach mit seinem Hebel Taster bedienen wird. Wenn das klappt bau ich mir das privat mit nem Mega88 auf, der hat Pinchange Interrupts.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.