Forum: Mikrocontroller und Digitale Elektronik Welcher Baustein für Frequenzteiler?


von Werner A. (Gast)


Lesenswert?

Ich habe von einem Motor Hallsignale, die über einen gegebenen
Verfahrweg 5000 - 8000 Impulse (je nach Getriebestufe) mit einem
Puls/Pausenverhältnis von 50:50 abgeben. Eine gegebene
Controllerschaltung kommt aber nur mit max. 300 Impulsen zurecht.
Ich hab mir nun überlegt einfach nen Frequenzteiler ala 4017
davorzusetzten. Wenn ich das Datenblatt richtig verstanden habe, habe
ich aber jetzt keine Signalverhältnis von 50:50, richtig?
Weiss jemand ne sinnvolle Lösung um nen Frequenzteiler mit 16:1 - 26:1
mit 50:50 zu realisieren? Ich brauche nachher nur eine Getriebestufe
und somit muss das ganze natürlich nicht variabel einstellbar sein...

Werner

von Karl H. (kbuchegg)


Lesenswert?

Wozu den Dekaden-Counter.
Ein stink normaler 4-Bit Counter passt doch
perfekt. 4516, 4520 oder so was in der Richtung.

von Karl H. (kbuchegg)


Lesenswert?

Aeh.
Mit einem Baustein kannst du nur maximal bis zu
einem Teiler von 8 kommen. Aber man kann die kaskadieren
und dann ist /16 /32 /64 /128 auch noch drinn.
Je nachdem wie du vom Pin abgreifst könnte man das
dann auch ganz leicht umschaltbar machen.

von Karl H. (kbuchegg)


Lesenswert?

Alternativ könnte man natürlich auch einen
kleinen Tiny nehmen. Vorteil: Ein 8 Pinner auf
der Platine und du kannst das Teilverhältnis auch
noch programmieren, bist also nicht auf 2-er Potenzen
angewiesen.

von Werner A. (Gast)


Lesenswert?

hmm, ich glaub ich muss morgen mal nen bischen programmieren üben...
Danke Karl Heinz

von Dietmar (Gast)


Lesenswert?

8000/300 = 26,66.... also z.B. 32 = 2^5.

also ein Teiler durch 32 bietet sich da an.

Mir fällt da spontan der 4060 bzw. 74HC4060 ein, der ist gängig, hat
Teilungsverhältnis 16, 32, 64 und einige andere, und macht ein paar
MHz.

Wenn es eleganter sein soll: Der uralte aber elegante
Peripheriebaustein Intel 82x54 bietet ein paralleles µC-Interface und
programmierbare sehr flexible 16 Bit Timer und Teiler auch mit externem
Clock-Eingang.

Gruß

Dietmar

von johnny.m (Gast)


Lesenswert?

> habe ich aber jetzt keine Signalverhältnis von 50:50,

Warum denn nicht? Da die Binärzähler flankengetriggert sind, hast Du,
solange die Frequenz des Eingangssignals konstant ist, nach wie vor ein
Puls/Pausen-Verhältnis von 1:1 (oder eben fiftyfifty...).

Ich hätte jetzt übrigens spontan auch an den 4060 gedacht...

von Werner A. (homebrew)


Angehängte Dateien:

Lesenswert?

@johnny.m
ich hatte das so verstanden, daß das high byte durchgeschoben wird und
jeweils nur 1 ausgang aktiv ist. der gewünschte wird dann
rückgekoppelt.
ist aber jetzt auch egal ;-)

@all
ich habe das ganze jetzt mal mit ne 2343 im avrstudio programmiert und
simuliert. im avrstudio scheint alles zu funktionieren. könntet ihr mal
drüberschauen was es da vielleicht noch zu verbessern gibt?
Zweite Frage, wenn ich nen größeren AVR nehme mit 2 ext. Interrupts,
könnte ich dann direkt 2 Signale damit teilen?

Danke
  Werner

von Werner A. (homebrew)


Angehängte Dateien:

Lesenswert?

So, einen Fehler noch gefunden...
Anbei der Code für 2 Sensoren an nem AT902313 (hatte ich hier gerade
noch rumfliegen)
Wer noch was zu verbessern weiss, gerne melden ;-)

Werner

von Karl H. (kbuchegg)


Lesenswert?

Das hier
>
>  if (counterA > halfdivide)
>  {
>    Set_Bit(PB2);
>  }

würde ich umformulieren zu

   if( counterA == halfdivide )
     Set_Bit(PB2);

Der Grund ist simpel:
Während der Counter von halfdivide bis zum Endwert hochzählt,
ist es nicht notwendig des PB2 jedesmal neu zu setzen (schadet
allerdings auch nichts, verbraucht nur ein bischen mehr Zeit).
Eimal setzen reicht. Wenn der counter dann den Endwert erreicht

   if( counter > Div_Factor )

wir der wieder auf 1 gesetzt (warum eigentlich 1 und nicht 0?)
und der PB2 wieder gelöscht. Counter beginnt dann wieder von
vorne zu zählen, bis halfdivide erreicht wird und PB2 wieder
gesetzt wird.

von Werner A. (Gast)


Lesenswert?

Ok, leuchtet ein. Das ich mit 1 anfange hat machte mir das denken ein
wenig leichter ;-) da ich nicht immer -1 rechnen muss

Danke für die Unterstützung
  Werner

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.