Forum: Mikrocontroller und Digitale Elektronik AVR Programmierung


von TT (Gast)


Lesenswert?

Hallo,

ich möchte gerne einen inkremental Encoder auswerten (A-,B-,N-Signal). 
Hierfür benutze ich einen µC aus der UC3A-Baureihe(32Bit).
Zudem soll der gemessene Winkel mit einem Zeitstempel versehen werden.

Kurze Infos:
Drehzahl: 116,67 1/s
Impulse pro Umdrehung: 1800

Kann mir einer sagen , wie ich das am besten lösen kann?
Benötige jetzt kein Programm , mir reicht eine schrittweise Erklärung 
vollkommen.
Könnte der Capture Mode eventuell nützlich sein ?

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

> UC3A-Baureihe(32Bit)
Uiuiui, bißchen knapp, oder? Das schafft der doch nie.

Im Grund wertet man eine (z.B. die fallende) Flanke von einem Kanal aus 
und schaut bei deren Erkennung nach, wie der Pegel des anderen Kanals 
ist. Daraus erkennt man die Richtung.

Edit: Aber ich denke das wird sowieso nichts, Du erzeugst da Impulse mit 
210kHz. Wenn ich da für jeden Impuls einen Zeitpunkt speichern möchte, 
fallen da einige Megabyte Daten pro Sekunde an. Wozu?

: Bearbeitet durch User
von Toliam T. (tt95)


Lesenswert?

Ah stimmt , die Richtungserkennung habe ich mit D-Flip-Flops gelöst.
Bsp. 1 für Linksdrehend und 0 für Rechtsdrehend.

von M.A. S. (mse2)


Lesenswert?

Ben B. schrieb:
> Edit: Aber ich denke das wird sowieso nichts, Du erzeugst da Impulse mit
> 210kHz. Wenn ich da für jeden Impuls einen Zeitpunkt speichern möchte,
> fallen da einige Megabyte Daten pro Sekunde an. Wozu?

Es ist doch nicht gesagt, dass bei jeder Flanke ein Winkel mit 
Zeitstempel erhoben werden muss (oder doch?).

von Toliam T. (tt95)


Lesenswert?

Einen externen 24 Mhz Quarz verwende ich auch noch.

von Toliam T. (tt95)


Lesenswert?

M.A. S. schrieb:
> Ben B. schrieb:
>> Edit: Aber ich denke das wird sowieso nichts, Du erzeugst da Impulse mit
>> 210kHz. Wenn ich da für jeden Impuls einen Zeitpunkt speichern möchte,
>> fallen da einige Megabyte Daten pro Sekunde an. Wozu?
>
> Es ist doch nicht gesagt, dass bei jeder Flanke ein Winkel mit
> Zeitstempel erhoben werden muss (oder doch?).

Der Zeitstempel dient dazu um mehrdeutige Winkelinformationen zu 
vermeiden.

von M.A. S. (mse2)


Lesenswert?

Toliam T. schrieb:
> Der Zeitstempel dient dazu um mehrdeutige Winkelinformationen zu
> vermeiden.

TT schrieb:
> ich möchte gerne einen inkremental Encoder auswerten...

"Auswerten" ist keine sehr eindeutige Information. Wie viele Winkelwerte 
pro Zeit sollen denn nun genommen werden? Was wird damit gemacht?

von Toliam T. (tt95)


Lesenswert?

M.A. S. schrieb:
> Toliam T. schrieb:
>> Der Zeitstempel dient dazu um mehrdeutige Winkelinformationen zu
>> vermeiden.
>
> TT schrieb:
>> ich möchte gerne einen inkremental Encoder auswerten...
>
> "Auswerten" ist keine sehr eindeutige Information. Wie viele Winkelwerte
> pro Zeit sollen denn nun genommen werden? Was wird damit gemacht?


Die Messdauer beträgt 10s. Sinn ist von einem Motor die Winkel zu 
bestimmen.
Mit einer Winkelauflösung von 0,2°. Maximale Drehzahl wäre 7000 U/min.
Die Messdaten werden auf einem MT48LC16M16A2-75 zwischengespeichtert.
Danach sollen die Daten auf einem USB Speicher abgeliefert werden in 
Form einer Textdatei. Auswertung erfolgt offline.

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

7000 U/min bei 1800 Impulsen pro Umdrehung? Was soll das werden, ein 
Maschinensender? Sowas kann man inzwischen schon in Röhrentechnik bauen.

Nee ernsthaft, hast Du das überhaupt mal durchgerechnet? Ich verstehe 
nicht mal was Du damit meinst von einem Motor die Winkel zu bestimmen.

von Thomas F. (igel)


Lesenswert?

TT schrieb:
> Könnte der Capture Mode eventuell nützlich sein ?

Die AT32UC3 haben Quadrature-Encoder in Hardware. Da braucht es keine 
Capture-Interrupts. Dazu findet sich bestimmt auch Beispiel-Code oder 
ein Application-Note.

von Toliam T. (tt95)


Lesenswert?

Ben B. schrieb:
> 7000 U/min bei 1800 Impulsen pro Umdrehung? Was soll das werden, ein
> Maschinensender? Sowas kann man inzwischen schon in Röhrentechnik bauen.
>
> Nee ernsthaft, hast Du das überhaupt mal durchgerechnet? Ich verstehe
> nicht mal was Du damit meinst von einem Motor die Winkel zu bestimmen.

Geht um einen Bremsmotor von dem ich die exakte Position bestimmen soll.
Wären soweit ich richtig gerechnet habe 210kHz.
Mit Einbezug auf das Abtasttheorem müsste ich dann jede 2,4 µs abtasten.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Toliam T. schrieb:
> Die Messdauer beträgt 10s. Sinn ist von einem Motor die Winkel zu
> bestimmen.
> Mit einer Winkelauflösung von 0,2°. Maximale Drehzahl wäre 7000 U/min.

Und was sollen "die Winkel" von einem sich schnell drehenden Motor sein?

von abc.def (Gast)


Lesenswert?

Ich rate mal, daß man die Winkelgeschwindigkeit eines Hubkolbenmotors in 
der Abwürge-Rampe bestimmen kann, inkl. Drehschwingungen.
ISt aber nur geraten. Bestimmt ein Studentenprojekt.

von abc.def (Gast)


Lesenswert?

Brauchst du noch einen DMS auf der Welle für das Drehmoment mit gleichem 
Zeitstempel.? Oder macht das der kommilitone? Werden die zeitstempel 
synchronisiert?
Wird ein Sample pro Winkel genommen, oder pro Zeiteinheit?
Schreibst Du diesen thread ins Literaturverzeichnis von deiner 
'Batschellerarbeit'??!!

von Thomas F. (igel)


Lesenswert?

Toliam T. schrieb:
> Geht um einen Bremsmotor von dem ich die exakte Position bestimmen soll.

Und wie oft sollst du die Position bestimmen?
Wirklich jedes mal wenn einer der 1800 Impulse pro Umdrehung auftritt?

Oder vielleicht doch nur z.B. jede Millisekunde.

Wir haben hier auch Bremsmotore mit 2048 Impulsen pro Umdrehung. 
Trotzdem wird die Drehzahl nur alle 10ms abgespeichert.

von M.A. S. (mse2)


Lesenswert?

Thomas F. schrieb:
> Und wie oft sollst du die Position bestimmen?
> Wirklich jedes mal wenn einer der 1800 Impulse pro Umdrehung auftritt?
>
> Oder vielleicht doch nur z.B. jede Millisekunde.
>
> Wir haben hier auch Bremsmotore mit 2048 Impulsen pro Umdrehung.
> Trotzdem wird die Drehzahl nur alle 10ms abgespeichert.

Eben.
@TO: Was denn nun?

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.