Hallo, ich habe Probleme mit dieser FQ-Teiler Schaltung. Sie soll die Ausgangsfrequenz eines Motorencoders reduzieren. Ich nutze zur Zeit nur den zweiten Counter (Teiler durch 5), daher habe ich die nicht bestückten Bauteile durchgestrichen. Das Problem liegt in dem Counter "2" (Pin 12, Pin 9). Hier bekomme ich keine saubere Teilung. Mal wird durch zehn geteilt, dann durch zwei.. ziemlich zufällig. Der Counter "1" läuft genau wie er soll. Ich habe schon das IC getauscht > gleicher Effekt. Spannung am IC ist 4,95V Spannung an PIN 12 ist etwa 4,6V bei HL Da ich die ICs bei der letzten Bestellung vergessen hatte, habe ich sie über Ebay bezogen, hier macht mich der Phillips Aufdruck etwas stutzig :-| PS: Der Motor läuft noch langsam, in "la_1.jpg" sind etwa 40ms abgebildet Hat noch jemand eine Idee was ich noch probieren könnte?
Deine Schaltung beschaltet beide Zählerstufe exakt gleich (ich nehme an, daß die dicken blauen Schrägstriche "nicht vorhanden" bedeuten). Das Taktsignal liegt in beiden Fällen an B, der Eingang A ist offen(!) und als Ausgang nutzt Du in beiden Fällen QD. Leg' mal den Eingang A (Pin 1/15) auf definierten Pegel.
Wie kommst du auf einen 74AC390? Tut's kein HC-Typ? Takteingänge (A alias /CP0) in der Luft hängen zu lassen, ist keine gute Idee. Oder welche Bewandnis hat es in deinem Schaltplan mit den blau durchgestrichenen Widerständen? In deinem Schaltsymbol fehlt IMHO die Invertierung für die Takte. Zumindest ein 74HC390 zählt mit den fallenden Taktflanken.
Hallo Rufus, Wolfgang Ich habe den Input 1A/2A (Pin 1,15) jetzt mit dem Taktsignal beschaltet (R3 R5 mit 0Ohm bestückt). Leider immer noch das selbe mysteriöse Bild an 2QD. Ich hatte mir die Möglichkeit bei der Erstellung der Platine offen gehalten durch 5 oder 10 zu teilen. Die blau durchgestrichenen Bauteile sind nicht bestückt. Wobei JETZT auch R3 und R5 bestückt sind. Nur die Verbindung QA->B (1Q0/2Q0 > 1CP1/2CP1) ist NICHT vorhanden. Es ist ein 74HC390 eingesetzt, da habe ich mit dem Schaltplan etwas geschludert pfeift leise vor sich hin Ich habe keine Invertierung eingesetzt. Ich sehe da so erstmal kein Vorteil ob ich jetzt auf die steigenden oder fallenden Flanken reagiere? Die Anwendung ist eine Wegmessung. Ob mir da jetzt eine Flanke "verloren" ist nicht so wichtig. Danke erstmal für eure Hilfe!
:
Bearbeitet durch User
Schliess mal deinen Abblockkondensator richtig an. Die anbindung an Pin 8 hat ja eine halbe Weltreise hinter sich. Und wie sehen die Signale am Clockeingang wirklich aus? Bitte kein Bildchen von einem Logiganalyser sondern von einem richtigen Oszi.
Peter S. schrieb: > Ich habe keine Invertierung eingesetzt. Die Invertierung ist im 74HC390 vorhanden. Dein Schaltsymbol ist falsch. http://www.netzmafia.de/skripten/digitaltechnik/flanke2.gif
Helmut L. schrieb: > Die anbindung an Pin > 8 hat ja eine halbe Weltreise hinter sich. ACK! So, wie das jetzt ist, kann man den Abblock-C auch genausogut weglassen. Helmut L. schrieb: > Und wie sehen die Signale am Clockeingang wirklich aus? Bitte kein > Bildchen von einem Logiganalyser sondern von einem richtigen Oszi. Interessant wäre in diesem Zusammenhang auch mal das Signal am GND-Pin vom IC...
:
Bearbeitet durch User
Peter S. schrieb: > Das Problem liegt in dem Counter "2" (Pin 12, Pin 9). Hier bekomme ich > keine saubere Teilung. Mal wird durch zehn geteilt, dann durch zwei.. > ziemlich zufällig. Das halte ich für eine Fehlanalyse. Das IC teilt zwar die Frequenz des Signals an B durch 5, aber das Ausgangssignal ist asymmetrisch. Es geht für eine Periode des Eingangssignals auf H, dann für 4 auf L. Schau dir das Timingdiagramm im Datenblatt an. Peter S. schrieb: > Die Anwendung ist eine Wegmessung. Ich habe da eine ganz schreckliche Ahnung. Da du das Ganze zweikanalig ausgelegt hast, ist dein Wegaufnehmer vielleicht ein Quadraturencoder? Dann kannst du das mit dem Teiler vergessen. Die Information steckt nämlich nicht (nur) in der Frequenz der Quadratursignale, sondern in der Phasenlage. Und die versaut dein Frequenzteiler.
Zunächst erstmal Danke für die Hinweise und Tipps. Ein ordentliches Oszi habe ich leider nicht hier, die alte analog Kiste mit schlechter Triggerung ist eher als Schätzeisen als ein Messgerät. Ich habe noch eine Leitung direkt vom C zu Pin 8 geführt, dass hat keine Verbesserung gebracht. Nach der Änderung war aber das Problem nun an Counter 1. Nach etwas probieren habe ich dann gemerkt das dieses Phänomen auftritt wenn ich einen bestimmten Kanal des LA nutze. Anderen Kanal benutzt -> alles OK. Also jetzt steht neben einem guten Oszi noch ein anständiger LA auf dem Wunschzettel :) @Axel >Das IC teilt zwar die Frequenz des Signals an B durch 5, aber das >Ausgangssignal ist asymmetrisch. Es geht für eine Periode des >Eingangssignals auf H, dann für 4 auf L. Schau dir das Timingdiagramm im >Datenblatt an. Ok, aber genau dass passiert halt nicht? In la_2.jpg steht in der ersten Reihe das 2CP2 Signal und in der zweiten Reihe das 2Q3 Signal. >Ich habe da eine ganz schreckliche Ahnung. Da du das Ganze zweikanalig >ausgelegt hast, ist dein Wegaufnehmer vielleicht ein Quadraturencoder? >Dann kannst du das mit dem Teiler vergessen. Die Information steckt >nämlich nicht (nur) in der Frequenz der Quadratursignale, sondern in der >Phasenlage. Und die versaut dein Frequenzteiler. Im Idealfall würde die Verschiebung der Kanäle ja erstmal nicht verändert werden. Macht ein Kanal mehr Impulse (Drehrichtungswechsel) dann hätte ich zwar eine "versaute" Verschiebung, aber halt nur für diesen Moment. Sind die Zähler durchgelaufen würde auch die Verschiebung wieder passen. (Flanke am Eingang erzeugt Flanke am Ausgang). Die Verzögerung im Baustein ist bei Periodendauer von >2µs vernachlässigbar. Das Problem ist vielmehr die Impulsdauer.. das ursprüngliche Problem ist natürlich, dass der µC zu langsam ist um die Signale zu verarbeiten. Nur durch den Teiler ist das Ausgangssignal ist halt nur für eine Periode lang eingeschaltet (und für vier Perioden ausgeschaltet) und damit habe ich nichts gewonnen. Mein nächste Idee wäre es mit dem Ausgang des Zählers einen zusätzlichen 2 stufigen Zähler anzusteuern? Oder was wäre eine bessere Lösung für mein Problem?
Axel S. schrieb: > Die Information steckt nämlich nicht (nur) in der Frequenz > der Quadratursignale, sondern in der Phasenlage. Und die versaut > dein Frequenzteiler. Aber die Phasenlage ist aber nur von der Bewegungsrichtung abhängig und bezieht sich auf die Beziehung der beiden Zählkanäle zueinander. Wenn in dem Bild in den ersten beiden Kanälen Zählerein- und -ausgang eines Zählers dargestellt ist, müsste das unabhängig von der Herkunft der Pulse und der Phasenlage zum anderen Zählkanal eine saubere 5:1-Teilung sein. Peter S. schrieb: > la_2.jpg
Peter S. schrieb: > Mein nächste Idee wäre es mit dem Ausgang des Zählers einen zusätzlichen > 2 stufigen Zähler anzusteuern? Oder was wäre eine bessere Lösung für > mein Problem? Was willst du überhaupt mit der Teilerei erreichen? > das ursprüngliche Problem ist natürlich, dass der µC zu langsam ist um > die Signale zu verarbeiten. Wie schnell sind denn die dargestellten Signale - Bilder ganz ohne Skala und Kanalbezeichnungen sind Sch.... Falls es sich, wie von Axel vermutet, um Signale von einem schnelleren Inkrementalgeber handelt, bietet es sich doch an, einen µC zu nehmen, der die hardwareseitig unterstützt, z.B. einen Arduino Due für 11€. Bevor man da groß das Basteln anfängt, kann man lieber die paar Euro in ein passendes µC-Board investieren. > Also jetzt steht neben einem guten Oszi noch ein anständiger LA auf dem > Wunschzettel :) Passende LA-Hardware gibts aus Shenzhen für 6€ und die tuts, solange man die Eingänge nicht misshandelt (eildieweil weitgehend ungeschützt). Bestell dir besser gleich zwei, wenn du da größeren Verschleiß hast ;-)
>Was willst du überhaupt mit der Teilerei erreichen? Wie schon geschrieben, der vorhandene µC ist zu langsam um alle Signale des Encoders mitzubekommen. >Wie schnell sind denn die dargestellten Signale - Bilder ganz ohne Skala >und Kanalbezeichnungen sind Sch.... Ja wäre besser gewesen. Ich hatte bei ~3500U/min und 500imp/U etwa 10µs Periodendauer gemessen. In dem Screenshot waren es aber eher 200U/min und 2ms Periodendauer Für die Wegerfassung (Getriebe 1:180) würde ich mit gut 10% der Auslösung immer noch gut auskommen. >Passende LA-Hardware gibts aus Shenzhen für 6€ und die tuts, solange man >die Eingänge nicht misshandelt (eildieweil weitgehend ungeschützt). >Bestell dir besser gleich zwei, wenn du da größeren Verschleiß hast ;-) Ja da kommt der auch her und er hat auch soweit funktioniert.. grml...
Peter S. schrieb: > Für die Wegerfassung (Getriebe 1:180) würde ich mit gut 10% der > Auslösung immer noch gut auskommen. Bleibt du Frage, war du nicht einen µC nimmst, der einen fertigen Quadrature Decoder enthält und damit direkt auf einen Hardware-Zähler geht. Dann hättest du den µC frei und kannst fertige Positionen/Drehwinkel/Umdrehungsanzahlen direkt aus den Zählerregistern ablesen.
Wolfgang schrieb: > Falls es sich, wie von Axel vermutet, um Signale von einem schnelleren > Inkrementalgeber handelt, bietet es sich doch an, einen µC zu nehmen, > der die hardwareseitig unterstützt, z.B. einen Arduino Due für 11€. Viel zu teuer! ;-) Hier eine € 1,-- Lösung: Beitrag "mini Quadraturdekoder + 32 Bit Zähler + TWI, Attiny25"
Peter S. schrieb: > Im Idealfall würde die Verschiebung der Kanäle ja erstmal nicht > verändert werden. Macht ein Kanal mehr Impulse (Drehrichtungswechsel) > dann hätte ich zwar eine "versaute" Verschiebung, aber halt nur für > diesen Moment. Sind die Zähler durchgelaufen würde auch die Verschiebung > wieder passen. (Flanke am Eingang erzeugt Flanke am Ausgang). Die > Verzögerung im Baustein ist bei Periodendauer von >2µs vernachlässigbar. Ich verstehe aber nicht, wie Du eine Auswertung der Drehrichtung NACH den Teilern bewerkstelligen willst? Oder brauchst Du das nicht - dann würde ja ein Kanal nur zum Zählen der Impulse ausreichen. Was auch noch interessant wäre: ob die Signale vom Encoder überhaupt ordentlich steile Signalflanken haben oder ob das eher was analoges ist. Dann wird das ohne Schmitt-Trigger zur Signalformung nichts.
Mehrfachzählen einer Flanke durch Rauschen oder durch Ringing wegen Fehlanpasung. Abhilfe: Serien-R in die Taktleitung.
m.n. schrieb: > Viel zu teuer! ;-) > Hier eine € 1,-- Lösung: > Beitrag "mini Quadraturdekoder + 32 Bit Zähler + TWI, Attiny25" Bei der genannten Periodendauer von 10µs hätte man etwa alle 2.5µs eine Flanke, also 400kHz. Würde der ATtiny das schaffen - angegeben sind "Flankenänderungen bis ca. 350 kHz" (Worauf auch immer sich die 350kHz genau beziehen). Wenn er es dann auch noch schafft, die Zählerstände zusätzlich an den Master zu übermitteln, ohne sich bei der Zählerei gestört zu fühlen, wäre das in der Tat einen Versuch wert.
Wolfgang schrieb: > Bei der genannten Periodendauer von 10µs hätte man etwa alle 2.5µs eine > Flanke, also 400kHz. Naja, an der gemessenen Periodendauer (10µs) oben kann aber etwas nicht stimmen: Peter S. schrieb: > Ich hatte bei ~3500U/min und 500imp/U etwa 10µs Periodendauer gemessen. 3600 Upm sind 60/s, *500 Impulse pro Umdrehung = 30000, also eine Periodendauer von 33,3 µs. Klingt jetzt nicht so, als ob man dazu einen besonders schnellen µC bräuchte...
Wolfgang schrieb: > (Worauf auch immer sich die 350kHz genau beziehen) Auf die max. Frequenz der Ereignisse. Das bezieht sich auf die 4-fach aufgelöste Messung der beiden Phasen mit je 87,5 kHz, was einem Abstand der Flanken von 2,86 µs entspricht. Ausgehend von 3500 Upm und 500 Impulsen/U komme ich auf 29,17 kHz der Phasen, was bequem auszuwerten ist. Da die Erfassung per Interrupt abläuft und TWI per USI ohne Interrupt, ist das Auslesen nicht sonderlich gebremst. Einfach probieren!
Hallo zusammen, kurzes Update nachdem ich mich da heute noch einmal darangesetzt habe. >Bleibt du Frage, war du nicht einen µC nimmst, der einen fertigen >Quadrature Decoder enthält und damit direkt auf einen Hardware-Zähler >geht. Dann hättest du den µC frei und kannst fertige >Positionen/Drehwinkel/Umdrehungsanzahlen direkt aus den Zählerregistern >ablesen. Weil jemand bei der Erstellung des Boards für die Positionierung viel zu schnell war und bestimmte Dinge nicht durchdacht hat ;) Jetzt liegen die Dinger hier fertig. >Ich verstehe aber nicht, wie Du eine Auswertung der Drehrichtung NACH >den Teilern bewerkstelligen willst? Oder brauchst Du das nicht - dann >würde ja ein Kanal nur zum Zählen der Impulse ausreichen. Ja hat etwas gedauert aber es geht natürlich so nicht mit dem Zählern. Oder halt nur mit viel mehr Aufwand um die Spuren zu synchronisieren. >Naja, an der gemessenen Periodendauer (10µs) oben kann aber etwas nicht >stimmen: >3600 Upm sind 60/s, *500 Impulse pro Umdrehung = 30000, also eine >Periodendauer von 33,3 µs. Klingt jetzt nicht so, als ob man dazu einen >besonders schnellen µC bräuchte... Auch hier lag ich daneben, ein Motor macht T=40µs, der andere Motor macht T=20µs. Allerdings kommen die Werte vom dem LA welcher bislang keine gute Figur gemacht hat. So ich habe meine selbstgemachten Probleme jetzt gelöst: Ein Tiny ließt mir den Encoder aus und gibt über zwei Pins das "verlangsamte" Signal an die Positionierung aus. Ich habe den Code von Peter Dannegger genutzt, rufe aber die Auswertung der Eingänge zyklisch auf und nutze den IRQ für die Generierung des Ausgangssignals. Danke an alle die Tipps und Ideen beigetragen haben! Wünsche noch frohe Ostern und so..
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.