Forum: Mikrocontroller und Digitale Elektronik Wie Rotary Encoder AS5145 anschließen/auslesen/init?


von Thomas W. (thomas0906)


Lesenswert?

Hi

Ich habe mir einen AS5145 besorgt.

Wenn ich herausgefunden habe, wie ich die Beinchen verlöte (0,65mm)
werde ich vor folgenden Problemen stehen:

1.
Welche PINs benötige ich bzw. muß ich anschließen, wenn ich ihn per PWM 
Ausgang auslesen möchte?
(+5V, Vss, PWM reicht das?)

2.
Wie stelle ich ihn auf ZERO?
Am Besten mit einem uC Ausgang, der dann auf HIGH oder LOW geht.
Geht das? Hab ich im Datasheet nicht so erkannt.

3.
Wie werte ich das PWM Signal aus?
Reicht ein Interrupt am uC Eingang bei steigender Flanke und dann die 
Länge des Impulses mit einem Timer messen?


Hat vielleicht jemand schon Erfahrung mit dem AS5145(B) und kann mir 
weiterhelfen?

Danke
Thomas

von Michel (Gast)


Lesenswert?

Thomas W. schrieb:
> Reicht ein Interrupt am uC Eingang bei steigender Flanke und dann die
> Länge des Impulses mit einem Timer messen?

Das reicht wegen der Temperaturabhängigkeit des Taktes mit Sicherheit 
nicht. (siehe DS Abschnitt 9.7.7)

von Helfer (Gast)


Lesenswert?


von Thomas W. (thomas0906)


Lesenswert?

Hi


Den Datasheet habe ich natürlich gelesen.
Die Fragen sind trotzdem alle noch offen, weil ich es nicht kapiere :-(

Zum PWM:
Ich denke, der AS sendet abhängig vom Winkel ständig Impulse mit der 
Länge 1us bis 4096us. Daran kann der uC dann den Winkel erkennen: 2048 
sind 180 Grad und 4095 sind 360 Grad.
Wieso kann ich dieses PWM Signal nicht ständig an einem Eingang des uC 
mit einem Interrupt auswerten?
Das macht man z.B. mit DCC Signalen mit dem uC doch auch so.

Gruß
Thomas

von Thomas W. (thomas0906)


Lesenswert?

Hi

Das Programmieren wird so erklärt:

3 PINS steuern den OTP Mode: PDIO, CSn und CLK

Damit soll man bestimmte bits Z0 bis Z11 mit der Zero Position 
beschreiben können.
Aber WIE wähle ich das zu setzende bit aus und wie setze ich es dann?

Dann steht da, daß man bits nur setzen kann, aber nie wieder löschen?
Kann man den dann wegwerfen, falls man das falsche bit gesetzt hat?

Dann gibt es noch WRITE, READ, PROGRAM Modes.
Es wird nur erklärt, daß es die gibt, aber nicht wie man die aktiviert?
Kann man mit WRITE eventuell alle bits wieder auf 0 rücksetzen? Und muß 
man das dann mit PROGRAM in den Speicher schreiben?

Un eine kleine Hardware muß man auch bauen als Programmer?
Der uC steuert dann den Transistor und geht nicht direkt auf den AS5145.
Alles nur, um die Zero Postion festzulegen!

So eine schlechtes Anleitung habe ich selten gesehen...

Hilfe, ich brauche irgendwie ein Beispiel...

Gruß
Thomas

von Matthias (Gast)


Lesenswert?

Thomas W. schrieb:
> Ich denke, der AS sendet abhängig vom Winkel ständig Impulse mit der
> Länge 1us bis 4096us. Daran kann der uC dann den Winkel erkennen: 2048
> sind 180 Grad und 4095 sind 360 Grad.

So weit die heile Welt der nominellen Werte.
Im wahren Leben hat der interne Taktgenerator Abweichungen von der 
Sollfrequenz und einen Temperaturgang. Die Pulsdauer für den maximalen 
Winkel kann daher zwischen 3686 und 4506 us liegen. Die PWM Frequenz 
liegt zwischen 220 und 268 Hz, d.h. wenn man den PWM-Ausgang nutzen 
möchte, liegt die Information im duty-cycle, nicht in der Pulsdauer.
Statt mit dem uC die PWM auszuzählen, sollte man direkt die 
Winkelinformation über das SSI auslesen.

von Helfer (Gast)


Lesenswert?

> Den Datasheet habe ich natürlich gelesen.

Das habe ich vorausgesetzt. Mir war der AS5145 kein Begriff und weil bei 
der Frage kein Datenblattlink war und ich das Datenblatt daraufhin 
nachgeschlagen habe, habe ich den Link für eventuell folgende Leser 
gesetzt.

von Thomas W. (thomas0906)


Lesenswert?

Matthias schrieb:
> Thomas W. schrieb:
>> Ich denke, der AS sendet abhängig vom Winkel ständig Impulse mit der
>> Länge 1us bis 4096us. Daran kann der uC dann den Winkel erkennen: 2048
>> sind 180 Grad und 4095 sind 360 Grad.
>
> So weit die heile Welt der nominellen Werte.
> Im wahren Leben hat der interne Taktgenerator Abweichungen von der
> Sollfrequenz und einen Temperaturgang. Die Pulsdauer für den maximalen
> Winkel kann daher zwischen 3686 und 4506 us liegen. Die PWM Frequenz
> liegt zwischen 220 und 268 Hz, d.h. wenn man den PWM-Ausgang nutzen
> möchte, liegt die Information im duty-cycle, nicht in der Pulsdauer.
> Statt mit dem uC die PWM auszuzählen, sollte man direkt die
> Winkelinformation über das SSI auslesen.

Das ist doch schonmal interessant.
Dann macht das PWM zum Winkelmessen ja keinen richttigen Sinn...

Gruß
Thomas

von Thomas W. (thomas0906)


Lesenswert?

www.austriamicrosystems.com/.../AS514x_Application+Note_v1_3_PPTRIM_OPT_ 
Programming.pdf

Hurra, ich habe was gefunden...

Werde dann aber doch nichts OTP programmieren, da mir das Risiko zu hoch
ist!

Dann muß ich eben den Winkel selber normieren.

Jetzt muß ich nur noch rausfinden, wie ich mit nem PIC18F1320 per SSI 
die Daten auslesen kann... :-)

Gruß
Thomas

von Matthias (Gast)


Lesenswert?

Thomas W. schrieb:
> Dann macht das PWM zum Winkelmessen ja keinen richttigen Sinn...

Für eine Analoganzeige, die direkt über einen Tiefpaß mit dem PWM-Signal 
gefüttert wird, schon.

Gruß
Matthias

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.