Frequenzzähler vs. Taktfrequenz
Mittwoch, 23. Mai 2012
 
 

PIC Mikrocontroller Forum  |  PIC Mikrocontroller  |  CCS Compiler  |  Timer (CCS)  |  Frequenzzähler vs. Taktfrequenz « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Frequenzzähler vs. Taktfrequenz  (Gelesen 6542 mal)
 
Sascha
Newbie
*
Offline Offline

Beiträge: 46


Profil anzeigen
« am: März 03, 2011, 14:52:55 »

Hallo zusammen,
ich versuche gerade eine Encoder auszuwerten, der bei einer Drehzahl von 7500 U/min ca. 1.9 millionen Impulse erzeugt. Meine Frage an euch, wie hoch muss die Taktfrequenz meines Controllers sein, um diese Impulse zu erfassen?

Viele Grüße
Sascha
Gespeichert
Master Snowman
Sr. Member
****
Offline Offline

Beiträge: 289



Profil anzeigen WWW
« Antworten #1 am: März 04, 2011, 20:53:13 »

die frage ist, wie oft pro sekunde du ein messresultat bruachst. timer_0 und _1 können oft als taktquelle auch einen externen takt an einem pin entgegen nehmen (T0CKI oder T1OSO) (bitte datenblatt konsultieren). wenn du nun in der software einen solchen timer auf null setzt und dann exakt 1/1000s laufen lässt und anschliessend den wert vom timer ausliest, so hast du 1/1000 der anzahl impulse pro sekunde. wie du siehst, hat das nichts mit dem takt des PIC an sich zu tun, wie schnell der 1/1000s "abzählt".

> 1.9 millionen Impulse erzeugt
pro minute?

was die maximalfrequenz als externer eingang für diese timer-module sind, weiss ich nicht auswendig (bitte datenblatt konsuliteren), aber ich glaube es müssten so 40MHz sein.
Gespeichert
oerni
Full Member
***
Offline Offline

Beiträge: 196



Profil anzeigen WWW
« Antworten #2 am: März 05, 2011, 17:55:56 »

@Snowman
Ich glaube, dass du das falsch interpretierst.
Die Anzahl pro Sekunde liegt ja vor.

@Sascha
Bei 7500U/min sind das alle 8ms ein Impuls.
1. Bei einem einfachen Impulsgeber, z.B. Fächerscheibe, zählst du einfach die Interrupts, das ist zeitlich unkritisch.
2. Angenommen es handelt sich um einen Inkrementalgeber mit A und B Kanal, setzt du Kanal A auf einen Interrupt fähigen Pin. Wenn eine Flanke kommt, schaust du am anderen Pin von Kanal B nach, ob high oder low, und zählst dann rauf oder runter.
3. Das kann man auch noch genauer treiben, wenn man will.

Bei 1,9 Millionen Gesamtimpulsen verwendest du eine 32 Bit Zahl zum zählen.

Ein Zählvorgang im Interrupt dauert zwischen 10..30 Zyklen, je nach dem wie intelligent du zählst.
Bei einem 4MHz Quarz dauert ein Zyklus z.B. 1µs (PIC16, PIC18), insgesamt also 30µs verbraucht. Du solltest also genug Zeit zum Zählen haben.
Wenn der µC nebenbei noch mehr zu tun hat, kannst du auch einen PIC32 mit 8MHz Quarz verwenden und das Ding über die PLL mit 40 MIPS betreiben.
Das sind dann 25ns Zykluszeit und du kannst rund 10.000 Encoder gleichzeitig nutzen  Grinsend, natürlich nur theoretisch und mathematisch  Weinen.
Genauere Angaben deinerseits, ergeben genauere Angaben unsererseits.

Tschau Oerni
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Powered by MySQL Powered by PHP Made for Mozilla (Firefox) Made for Internet Explorer
Seite erstellt in 0.035 Sekunden mit 18 Zugriffen.
 
Top! Top!