AT90USB646 und Drehzahlmessung bis 30.000 ?

OP #2536410
Lesenswert?

Hallo Leute,

ich habe folgendes Problem, mein AT90USB646 hat zwar einen 16Mhz 
Systemtakt anliegen aber der Takt wird durch das Fusebit CHKDIV8 auf 
2Mhz reduziert.

Wenn ich das richtig im Datenblatt verstanden habe, ist das für die USB 
Kommunikation notwendig.

Also darf ich den Systemtakt für die Timer nicht auf 16Mhz erhöhen, weil 
ich dann nicht mehr über USB kommunizieren kann richtig?

Die Drehzahlmessung sollte einen Bereich zwischen 50 und 30000 U/min. 
abdecken mit einer Auflösung von 1 rpm.

Was gibt es hier für Möglichkeiten mit diesen Controller?

Ich denke die Variante der Periodendauermessung ist sowieso die einzige 
genaue Variante oder? Denn mit der Pulszählvariante habe ich unten herum 
eine zu hohe Auflösung.

Für hilfreiche Antworten und Tipps wäre ich wirklich sehr dankbar.

Gruß Dennis
OP #2536428
Lesenswert?

Kilpikonna schrieb:
> Bei 30000 U/min hast du 500 U/sec, das sollte doch auch bei 2MHz noch
> machbar sein, das auszuwerten. Da hast du dann 4000 Takte zeit zu
> rechnen zwischen den einzelnen Umdrehungen.

Naja also bei 30.000 Umdrehungen sind es 2000µs

und als bsp. bei 29999 Umdrehungen sind es 2000,07µs

Der Controller kann aber nur alle 0,5µs messen...

also gehen ca. 5 Umdrehungen in den Bereich flöten.... und das ist für 
z.B. eine Zündanlage blöd...
#2536439
Lesenswert?

Dennis P. schrieb:
> Ich denke die Variante der Periodendauermessung ist sowieso die einzige
> genaue Variante oder? Denn mit der Pulszählvariante habe ich unten herum
> eine zu hohe Auflösung.
???
Mit der Pulszählvariante hast du bei vielen Pulsen und/oder entsprechend 
langer Torzeitdauer eine hohe Auflösung und auch Genauigkeit (bei 
entsprechend genauer Torzeit).
Bei niedriger Pulszahl (niedrige Frequenz bräuchte man für entsprechende 
Genauigkeit eine hohe Torzeit was oft nicht praktikabel oder erwünscht 
ist.
Also misst man dort die Pulszeit.

Was wann eine höhere Auflösung liefert darfst du dir selbst berechnen, 
Ausgangswerte sind Pulsfreqenz, max Torzeit, bzw max. Refreshdauer der 
Anzeige und Timerfrequenz.
OP #2536464
Lesenswert?

Okay erstmal vielen Dank an alle,

ich fasse kurz zusammen als erstes nehme ich das FuseBit CHKDIV8 
heraus,...

passe dann dieses Register PLLCSR an...
(hoffentlich liegt das nicht in Atmels Bootloader)

dann habe ich immerhin 16Mhz zur Verfügung und kann dann mit den Link 
von m.n. meine Drehzahlmessung realisieren...

Nur eine Frage hätte ich noch...

wie reduziert man am Besten die Ausgabegeschwindigkeit auf dem 
LCD-Display?

Weil wie erwartet funktionierte der Code hier 
Beitrag "Input Capture Pin (ICP) auslesen ( Frequenz messen)" nicht gut, weil die 
Frequenz in der Hauptschleife zu oft auf das Display ausgegeben 
wurde....

Da kommen dann nur Spezialeffekte heraus auf dem Display.

Was meint ihr 3-4 mal in der Sekunde müsste ja reichen oder?
OP #2536482
Lesenswert?

m.n. schrieb:
> Dennis P. schrieb:
>> und kann dann mit den Link
>> von m.n. meine Drehzahlmessung realisieren...
>
> Da werden max. drei Messungen/s aufs Display gegeben - kann man
> schneller und auch langsamer machen "#define MESSZEIT 100" anpassen.

Suuuper, habe gerade schon ein Blick auf dein Code geworfen, das sieht 
erstmalig viel versprechend aus :-)

Vielen Dank

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren