Hallo,
ich besitze das 44-Pin Demo Board von Microchip mit nem PIC16F887 drauf.
Darauf befindet sich ein Poti, welches auf einen Analogeingang des PIC
geführt ist.
Jetzt hab ich mich mal mit PWM auseinandergesetzt und ein Programm
geschrieben, welches ein Modellbauservo entsprechend der Poti-Stellung
steuern soll.
ADC und PWM habe ich alles für sich allein getestet und das funktioniert
auch zuverlässig.
Den Signaleingang des Servo habe ich direkt mit dem PIC verbunden, die
Versorgunsspannung ist dieselbe wie vom PIC. Beides wird vom PICKIT2 mit
Spannung versorgt.
Als ich nun die ADC und PWM Programmteile gemeinsam testen wollte, fiel
mir ein unerwartetes Verhalten des Servo auf.
Beim Hardwaredebugging hab ich festgestellt, dass die ADC-Resultate
nicht den erwarteten entsprachen. Dies würde ja ein unvorhergesehenes
Verhalten des Servo erklären.
Wodurch kann ein solches Verhalten verursacht werden?
Ist es möglich, dass das Servo irgendwie die Spannungen "verzerrt"?
Wie macht man das normalerweise? Sollte man MCU und Servo mit jeweils
eigenen Versorgungsspannungen betreiben??
Wahrscheinlich wäre es doch auch besser, das Servo über ein FET quasi
vom µC-Ausgang zu entkoppeln?
.. ein unerwartetes Verhalten des Servo auf.
Was war denn unerwartet?
Wenn es um den Sollwert zittert, solltest Du nur Masse und den
Signaleingang verbinden, den Plus aus 2 verschiedenen Quellen. Ist es
dann OK, die Spannungsversorgung verbessern.
Überhaupt ist es nicht verkehrt, in die Signalleitung einen
"Angstwiderstand" von 470 Ohm (als Größenordnung) zu schalten.
Manche Servos brauchen auch einen H-Pegel von > 3.5V, um korrekt zu
arbeiten.
Bist du sicher daß die Versorgung deines Demo Boards genügend Strom für
den Servo bereitstellt? Der Servo benötigt relativ hohe Ströme beim
stellen (auf den Versorgungsleitungen, nicht der Steuerleitung)
EGS_TI schrieb:> Beim Hardwaredebugging hab ich festgestellt, dass die ADC-Resultate> nicht den erwarteten entsprachen.
Stimmen die Werte wenn du den Servo nicht angeklemmt hast?
Getrennte Versorgung des Servos wäre auf jeden Fall nicht schlecht.
Aaah, ok, das Servo hat am Signaleingang wahrscheinlich nen großen
Widerstand?
Das könnte natürlich sein, dass das PICKIT2 nicht genug Strom liefern
kann.
Leider hab ich bezüglich der Stromaufnahme des Servo nichts gefunden.
Es ist das "Jamara XT Micro Blue", also ein sehr kleines.
Udo Schmitt schrieb:> Stimmen die Werte wenn du den Servo nicht angeklemmt hast?
Ist leider festangelötet. Bin hier leider nicht so gut ausgestattet. :/
bussard schrieb:> Was war denn unerwartet?
Es bewegt sich nicht auf die entsprechenden Positionen.
> Wenn es um den Sollwert zittert, solltest Du nur Masse und den> Signaleingang verbinden, den Plus aus 2 verschiedenen Quellen. Ist es> dann OK, die Spannungsversorgung verbessern.
Masse und Signaleingang verbinden? Ein Pulldown oder wie meinst du das?
Udo Schmitt schrieb:> EGS_TI schrieb:>> Ist leider festangelötet. Bin hier leider nicht so gut ausgestattet. :/>> Zur not tuts ne Schere
Aber dann müsste ich den Lötkolben nachher wieder an machen. ;D
Ein Servo kann ordentliche Störungen verursachen. Die Peakströme sind
häufig >1A. An einem USB Port hat ein Modellbauservo nichts zu suchen.
Bei einem Servo dieser Größe kannst du von ca. 300mA Stromaufnahme
ausgehen.
Auch sonst empfiehlt sich eine getrennte Versorgung für den ADC.
Wenn du kein Oszi zur Kontrolle hast, versorge deine µC Schaltung und
das Servo seperat.
Die Signaleingänge sind hochohmig, Angstwiderstände schaden nicht, sind
aber auch nicht notwendig.
chick schrieb:> - Stromverbrauch des Servos wissen oder messen.
Ist leider nicht mal auf der Herstellerseite angegeben.
> - Paßt der Stromverbrauch zu Deinem Board?me schrieb:> Ein Servo kann ordentliche Störungen verursachen. Die Peakströme sind> häufig >1A. An einem USB Port hat ein Modellbauservo nichts zu suchen.> Bei einem Servo dieser Größe kannst du von ca. 300mA Stromaufnahme> ausgehen.
Wenn wirklich so hohe Ströme auftreten können, dann, leider nicht. Somit
wäre das der Fehler.
> - Weißt Du wie man Servos ansteuert?
Ja, das Servo habe ich ja schon seperat angesteuert. Hab den ADC
Programmteil auch nochmal auskommentiert und die Pulsweite von Hand
gesetzt. Das Servo verhält sich wie gewollt.
me schrieb:> Auch sonst empfiehlt sich eine getrennte Versorgung für den ADC.> Wenn du kein Oszi zur Kontrolle hast, versorge deine µC Schaltung und> das Servo seperat.
Ok, bei mir hängt halt alles übers PICKIT am USB Port, darin wird auch
die Problematik liegen.
Wie wird sowas normalerweise realisiert?
Eine 12 V Versorgungsspannung und dann jeweils zwei getrennte
Spannungsregler, würde man das so machen?
me schrieb:> Die Signaleingänge sind hochohmig, Angstwiderstände schaden nicht, sind> aber auch nicht notwendig.
Hab nochmal drüber nachgedacht.
Die wären dann ja eigentlich nur für den Fall da, dass, warum auch
immer, ein Kurzschluss zu einem Stromfluss führen sollte, der Controller
nicht beschädigt wird, oder?
EGS_TI schrieb:> Wie wird sowas normalerweise realisiert?> Eine 12 V Versorgungsspannung und dann jeweils zwei getrennte> Spannungsregler, würde man das so machen?
Könnte man, da da PicKit schon versorgt wird würde eine potentialfreie
Versorgung für das Servo reichen, die Massen müssen zusammengeschaltet
werden.
Nur du kannst das leider nicht machen, da ja das Servo schon festgelötet
ist und du zu faul bist den Lötkolben anzumachen :-P
EGS_TI schrieb:> Aber dann müsste ich den Lötkolben nachher wieder an machen. ;D
Hier nochmal für alle Interessierten der Grund weshalb man einen
"Angstwiderstand" verwendet:
> ich verwende einen (MOS)FET - in diesem Fall P-K.... - als Schalter.> Welche Bedeutung hat in diesem Fall der Gate-Widerstand?
Es gibt Konstellationen in denen der MosFET durch die Gate-
Drain Kapazität eine negative Impedanz an dem Gate erzeugt.
Damit fängt der parasitäre Schwingkreis aus Zuleitungsindukti-
vität und den verschiedenen Kapazitäten an zu schwingen.
Das bedämpft man nun mit den Gate Widerständen.
Es gibt Ingenieure die diese Angstwiderstände weg lassen weil
der Treiber nah genug am Gate sitzt und hoffentlich genug
dämpft.
Aber ganz genau vorhersagen kann man das Verhalten nicht
und deswegen findet man oft kleine Gate Vorwiderstände.
> Ich habe mir> bereits zahlreiche Beispielschaltungen angesehen. Einige sehen einen> Gate-Widerstand im Bereich von 1k bis 10k vor
Das erscheint mir viel zu viel. Üblich sind wenige Ohm bis vielleicht
10 Ohm. Man möchte ja den MosFET sehr schnell umschalten und der
Widerstand verhindert dies weil er mit der Gate-Source Kapazität
ja ein RC-Glied bildet.
Schaltet man nicht oft und muss man auch nicht auf die Verluste
beim Umschalten rücksicht nehmen, kann man natürlich auch
sehr große Gate-Widerstände verwenden. Dann macht der Einsatz
von Gate-Treibern aber gar keinen Sinn mehr und man kann
gleich irgendwelche Logik-Gatter missbrauchen.
EGS_TI schrieb:> Beim Hardwaredebugging hab ich festgestellt, dass die ADC-Resultate> nicht den erwarteten entsprachen.
Was hast du denn erwartet. Beitreibst du den ADC auch ratiometrisch,
d.h. wird das Poti aus der gleichen Spannung gespeist, die der ADC als
Referenz verwendet?
Insoweit ich den Aufbau des Boards hier einschätzen kann, ja.
Mittlerweile ist mir ja auch bewusst, dass das das (wer schafft mehr
das(s) :D ) Problem ist.