Forum: Mikrocontroller und Digitale Elektronik Inkrementalencoder an ATxmega


von Mathias H. (mathias)



Lesenswert?

Hallo,

kenne mich mit den normalen ATmegas einigermaßen aus.
Nun möchte ich in einem neuen Projekt einen ATxmega einsetzen.
Da das Neuland für mich ist bräuchte ich eure Hilfe.
Habe eine Skizze gezeichnet was ich gerne mit dem ATxmega umsetzen 
möchte.
Quadrature Decoder, Event System und jeweils zwei 16 Bit Zähler 
hintereinander die dann einen 32 Bit Zähler ergeben.
Das ganze sollte die CPU wenig belasten. Die beiden zum Einsatz 
kommenden optischen Inkrementalencoder prellen nicht.
Des weiteren die Register Einstellungen. Denke das wird kompliziert. 
Kennt jemand hierzu so eine Art „ATxmega wizard“ für die Register?
Es braucht kein C-Code rauszukommen. Daß als Ergebnis die richtige 
Einstellung für die Register angezeigt wir, würde genügen.
Kann englische Datenblätter lesen und verstehen doch eine gute deutsche 
Literatur ist mir alle mal lieber.
Kennt jemand eine gute ATxmega Beschreibung auf deutsch?
Schaut mal bitte drüber und sagt mir ob das so gehen kann.

Danke

Gruß
    Mathias

von Alexxx (Gast)


Lesenswert?

Ist das eine Technikerarbeit / Projektarbeit??
Ich kenne den Xmega gut, habe aber mit dem Quadraturencoder noch nix 
gemacht.
Jedoch wird (hoffentlich) niemand deine "Hausaufgabe" für dich machen!

Also sich in das Eventsystem und die Timer/Counter einzulesen und die 
Registerwerte zu bestimmen, solltest du selbst hinbekommen...

Theoretisch könntest du es mit ASF vom A.Studio probieren.
Mit dem ASF sehe ich aber den Wald vor lauter Bäumen (zig Dateien in zig 
Unterordnern)dann nicht mehr, deshalb programmiere ich die Register 
selbst.

PS:
Die Register programmiert man am besten mit den vordefinierten 
Konstanten - in der entsprechenden iox.h

von Georg (Gast)


Lesenswert?

Mathias H. schrieb:
> Das ganze sollte die CPU wenig belasten. Die beiden zum Einsatz
> kommenden optischen Inkrementalencoder prellen nicht.

Das kommt natürlich auf die (bisher geheime) maximale Zählrate an - ich 
gehe mal davon aus, dass es sich bei 32 bit Zählern um 
Positionserfassung handelt und nicht um manuelle Eingaben. Bei hohen 
Zählraten (=Verfahrgeschwindigkeiten) ist es nicht sinnvoll oder 
unmöglich, die Dekodierung als Software zwischen I/O-Pin und Zähler zu 
realisieren, dann brauchtst du einen Prozessor mit eingebautem Dekoder 
oder du schaltest einen solchen in Logik davor.

Bei 1 µ Auflösung und 1 m/s Geschwindigkeit ergeben sich schon 1 MHz, 
das sind beides keine ungewöhnlichen Werte. 2 Mio Events pro Sekunde 
sind aber schon recht anspruchsvoll.

Georg

von Mathias H. (mathias)


Lesenswert?

Habe im Übersichtsplan 3000 Impulse pro Sek. eingetragen. Also pro A/B 
Signal.
Mehr wird's wahrscheinlich nicht werden. Ein recht verträglicher Wert.
Zunächst werden zwei WPS-1250-MK46 eingesetzt.
http://www.micro-epsilon.com/download/products/_displacement/dax--wireSENSOR-MK46--en-us.html
Vielleicht später ersetzt durch welche mit höherer Auflösung.

Und nein es ist keine Hausaufgabe, bin dafür ein bißchen zu alt ;-)

Mathias

von Mathias H. (mathias)


Lesenswert?

Mir geht es in erster Linie darum, ob das wie in der Skizze gezeichnet 
so funktionieren wird.
Oder wie muß ich es ändern, daß es funktioniert.
Wenn bestätigt wird, daß es so klappt werde ich zuerst eine Platine 
machen.

Während die Platine gefertigt wird habe ich Zeit mich mit den Registern 
und anderen Softwaredingen zu befassen.
Erst wenn die Platine fertig bestückt vor mir liegt beginnt der 
praktische Teil der Software.

Mathias

von Jonas B. (jibi)


Lesenswert?

>Erst wenn die Platine fertig bestückt vor mir liegt beginnt der
>praktische Teil der Software.

FAIL. Nehm ein Evaluationsboard (xplain oder was auch immer) schließ da 
dein Zeug an und programmier die Software. Wenn alles läuft, baust du 
eine Platine (Prototype)...

Gruß J

von Mathias H. (mathias)


Lesenswert?

Hallo,

das ganze in Kurzform.
Ist es möglich zwei Inkrementalencoder an einen ATxmega64A3 
anzuschließen und die Pulse mit jeweils zwei kakadierten Zählern (32bit) 
zu zählen?
Alles andere ist erstmal nicht so wichtig.

http://www.atmel.com/devices/ATXMEGA64A3.aspx?tab=documents

Danke

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.