Welcher Baustein für Frequenzteiler?

Gast #346503
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
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.
Gast
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
Gast
> 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...
@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
Angehängte Dateien:
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.
Gast
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.