M
Matthias Weingart
Guest
Hi,
ich hab immer mal wieder Quadratur-Encoder (Drehgeber u.ä.) an einen
Mikrocontroller anzuschliessen. Irgendwie geht das mit jedem Controller (im
schnellen Timerinterrupt die zwei Pins einlesen und dekodieren), besonders
glücklich bin ich dabei aber meist nicht - denn das ist zu langsam (der
Encoder verliert dann doch mal Impulse, weil man zu schnell dreht) und
belastet die CPU mit recht vielen und häufigen Interrupts, bzw. man darf dann
im Hauptprogramm tunlichst nie Interrupts sperren, damit der Encoder
fehlerfrei funktioniert. D.h. ich will da lieber ne Hardware im Controller,
die das macht.
Welche Controller haben (möglichst mehrere) Timer, die auch Quadratur-
Dekodierung können?
Ich hab schon recherchiert, leider ist das nicht leicht rauszufinden. Da das
Feature kaum in den Filtern der Distris oder Hersteller auftaucht, muss man
sich erst durch Datenblätter oder Appnotes kämpfen...
Also beim STM32 können es nur die "Advanced timer" und da hat man oft nur
einen davon drin, in den größeren Controllern aber manchmal sogar schon zwei
und ganz selten sogar drei.
https://www.st.com/resource/en/application_note/dm00042534.pdf
Welche Controller gibt es noch? (Mir reichen da Typen mit 16 MHz Takt und ein
paar kB RAM, gern auch mehr, Hauptsache sie sind keine Stromschlucker ;-).
M.
--
ich hab immer mal wieder Quadratur-Encoder (Drehgeber u.ä.) an einen
Mikrocontroller anzuschliessen. Irgendwie geht das mit jedem Controller (im
schnellen Timerinterrupt die zwei Pins einlesen und dekodieren), besonders
glücklich bin ich dabei aber meist nicht - denn das ist zu langsam (der
Encoder verliert dann doch mal Impulse, weil man zu schnell dreht) und
belastet die CPU mit recht vielen und häufigen Interrupts, bzw. man darf dann
im Hauptprogramm tunlichst nie Interrupts sperren, damit der Encoder
fehlerfrei funktioniert. D.h. ich will da lieber ne Hardware im Controller,
die das macht.
Welche Controller haben (möglichst mehrere) Timer, die auch Quadratur-
Dekodierung können?
Ich hab schon recherchiert, leider ist das nicht leicht rauszufinden. Da das
Feature kaum in den Filtern der Distris oder Hersteller auftaucht, muss man
sich erst durch Datenblätter oder Appnotes kämpfen...
Also beim STM32 können es nur die "Advanced timer" und da hat man oft nur
einen davon drin, in den größeren Controllern aber manchmal sogar schon zwei
und ganz selten sogar drei.
https://www.st.com/resource/en/application_note/dm00042534.pdf
Welche Controller gibt es noch? (Mir reichen da Typen mit 16 MHz Takt und ein
paar kB RAM, gern auch mehr, Hauptsache sie sind keine Stromschlucker ;-).
M.
--