Forum: Mikrocontroller und Digitale Elektronik Maximale Frequenz am ADC


von Lazlo Panaflex (Gast)


Lesenswert?

Hi,

ich habe hier einen DC Motor der mit bis zu 6000 Touren dreht. Ein auf 
der Welle aufgeflanschter quadruple Encoder (A, A-, B, B-) dient dabei 
zur Poitionsbestimmung. Der Encoder ist verdammt schnell - bzw schickt 
viele Bits/Umdrehung - und da frag ich mich, was so ein ADC auswerten 
kann, ohne sich zu verschucken.

Gruß

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Sowas wird nicht mit einem ADC ausgewertet, sondern mit normalen 
Eingangs-Pins.

> Der Encoder ist verdammt schnell - bzw schickt viele Bits/Umdrehung -
Zahlen?

von Falk B. (falk)


Lesenswert?

Siehe Drehgeber.

MFG
Falk

von Lazlo Panaflex (Gast)


Lesenswert?

Habe gerade aufs Datenblatt geschaut; der Encoder haut 2500 Bits raus. 
Bei bis zu 6000rpm, macht das schonmal 250.000 Bits/Sec.

In Falks Link steht: Die Auswertung eines Drehgebers macht man am besten 
in einem Timer-Interrupt, der mit einer festen Frequenz ausgeführt wird. 
Die Abtastfrequenz muss so hoch sein, dass bei maximaler Drehzahl 
zwischen zwei Codewechseln mindestens 1 Abtastung erfolgt, besser jedoch 
mehr.

Interrupt und Co sind Neuland für mich.

250.000 ist schon ne ordentliche Hausnummer...

von Falk B. (falk)


Lesenswert?

@  Lazlo Panaflex (Gast)

>Habe gerade aufs Datenblatt geschaut; der Encoder haut 2500 Bits raus.
>Bei bis zu 6000rpm, macht das schonmal 250.000 Bits/Sec.

Hast du eine Linka auf das Datenblatt oder kannst du es als Anhang 
posten?

>Interrupt und Co sind Neuland für mich.

Tja.

>250.000 ist schon ne ordentliche Hausnummer...

Ziemlich viel. Rein in Software wird das wahrscheinlich nix. Da muss ein 
Hardwaredecoder her.

MfG
Falk

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Warum zum Geier fragst Du dann nicht nur eine Leitung des Drehencoders 
ab? Gibt genau einen Puls pro Umdrehung.

von Lazlo Panaflex (Gast)


Lesenswert?

Das ist ein - auf einem MCG Servo Motor aufgeflanschter - Encoder aus 
einem in der Halbleiterindustrie verwendeten Handlingsystem (Intel).

Was bringt es, wenn ich nur A oder B abfrage? Ich brauche beide um die 
Drehrichtung festzustellen und wo hab ich denn nur einen Puls/Umdrehung, 
wenn ich nur A oder B nutze? A sowie B geben um jeweils 90° verschoben 
(elektrisch, nicht mechanisch) 2500 - in Worten: Zweitausendfünhundert - 
Pulse pro Umdrehung aus. Ich muss also mit mindestens 500kHz abtasten.

Mutter sagte bereits: Wenn man keine Ahnung hat, einfach mal die Fresse 
halten ;)


@Falk: Hier das Datenblatt: http://www.quantumdev.com/pdf/qd145.pdf

Könntest du das mit dem Hardwaredecoder bitte etwas präzisieren, bzw mir 
einen Link zu entsprechenden Infos posten?

von Karlheinz (Gast)


Lesenswert?

>> Mutter sagte bereits: Wenn man keine Ahnung hat, einfach mal die Fresse
>> halten ;)

Deine Mutter hätte besser daran getan dir Manieren beizubringen.

von Falk B. (falk)


Lesenswert?

@  Lazlo Panaflex (Gast)

>Was bringt es, wenn ich nur A oder B abfrage?

Nix. Travel Rec meint wohl eher den Indeximpuls. Für eine 
Drehzahlmessung reicht es, zum Positionieren natürlich nicht.

>Mutter sagte bereits: Wenn man keine Ahnung hat, einfach mal die Fresse
>halten ;)

Naja, inhaltlich richtig, Form diskussionswürdig.

>Könntest du das mit dem Hardwaredecoder bitte etwas präzisieren, bzw mir
>einen Link zu entsprechenden Infos posten?

Hab ich doch schon. Der Artikel Drehgeber ist dein Freund.

MfG
Falk

von tobi (Gast)


Lesenswert?

Naja ein Timerinterrupt aller 2µs ist etwas ungünstig. Ein Pin Interrupt 
ist auch nicht schön. Da muss deine Interruptroutine schon verdamt kurz 
sein weil du sonst garnichts machen kannst.
Dreht der Motor nur in eine Richtung? Wenn ja würde ich ein XOR Gatter 
davorklemmen und ein Timer mit externen Takt benutzen. Wenn dir die 
Hälfte der Auflösung ausreicht, dann kannst du auch direkt ein Pin 
anschließen, ohne Gatter.
Ansonsten haben, glaub ich, die XMegas einen Hardware Decoder für solche 
Anwendungen. Die machen die Auswertung also nebenbei ohne das dafür 
Takte benötigt werden.

von Lazlo Panaflex (Gast)


Lesenswert?

Manieren hin oder her; Montags liegt meine Reizschwelle ziemlich 
niedrig. Vielleicht hätte meine Mutter Sonntags weniger oft Kohleintopf 
kochen sollen, dann wäre ich Montags nicht so grantig. Und hätte weniger 
Blähungen.

von Lazlo Panaflex (Gast)


Lesenswert?

Danke tobi. Dem mit dem XMega Decoder werd ich nachgehen.

Der Motor dreht in beide Richtungen.

von Tropenhitze (Gast)


Lesenswert?

Um die Quadratursignale auszuwerten, gab/gibt es Bausteine wie den 
74HCT12024, der 24Bit zählen kann sowie kaskadierbar ist.

Eine andere Möglichkeit, die Signale zu verwurschteln, wäre ein FPGA.

Controller von Renesas, zum Beispiel die H8S-Reihe, haben zwei Hardware 
Quadraturdekoder auf dem Chip.

Wie schnell ein Xmega die Signale aufbereiten und verwenden kann, weiß 
ich nicht. Ein ATmega48 mit 20MHz schafft es jedoch, 250kHz Signale zu 
zählen. Die Zählroutinen müssen aber in Assembler geschrieben und 
optimiert werden.

Persönlich würde ich einen Renesas Controller nehmen. Eine günstige 
Lösung wäre aber auch ein ATmega48, der nur als 'Vorteiler' programmiert 
wird und Ausgangssignale wie Takt und Richtung liefert, die z. B. Faktor 
10-100 untersetzt sind, und mit einem anderen µC ausgewertet werden.

Das hängt aber davon ab, wie genau die Position bestimmt werden soll. 
Die Eingangsfrage nach der Schnelligkeit des ADC hat jedoch sehr 
irritiert.

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.