Frequenzteiler durch 100000?...

Hi Hans-Peter,
Genau das gibt Probleme, weil alle Eingänge mit dem internen I/O Takt
synchronisiert werden. So lese ich das jedenfalls aus den Datenblättern,

Kannst Du das mal konkretisieren, woraus Du das liest?

Z.B. aus dem Edge Detector in diversen Timer Blockschaltbildern
(*simplified* block diagram).

Änderungen in den Timer Registern dürfen ja nicht während einer
Registerabfrage auftreten, müssen also vorher zum Prozessortakt
synchronisiert werden.

Vielen Dank. Zuerst dachte ich auch: Wie blöd muss man denn sein, um
solch einen Unfug zu fabrizieren, jetzt wirds klarer. Trotzdem ist das
eine blöde Stelle, die Synchronisierung zu machen. Das wäre viel
sinnvoller nach dem Timer zu tun. Dann synchronisiert man erst, wenn man
auf den Timer zugreift, indem man da zuvor mal latcht. Ich kann mir
soooo viele sinnvolle Sachen denken, die man mit einem schnellen Timer
und langsamem Prozessortakt realisieren könnte.

Marte
 
Hi Leo & Reinhard,
... wie bastel ich denn den am besten?
Ich will von 10 MHz auf 100 Hz.
ist nämlich aktuell mit dem RDD104 ein CMOS-Teiler im DIL8-Gehäuse
übern Weg gelaufen:

Warum auch immer ... ich hab die früheren Beiträge verpasst.

10 MHz auf 100 Hz oder sonst wohin, würde ich mit einem AVR-Prozessor
machen, der möglichst nahe herumliegt. Da würde ich kein spezielles IC
dafür suchen. im nächsten Schritt fällt Leo noch auf, dass es doch nicht
genau 10.000.000 Hz sind und er doch lieber 10.000.012 Hz auf 100 Hz
herunterteilen möchte. Dann sind das beim µC ein paar Bytes, die
anzupassen sind, zur Not während des Betriebs.

Marte
 
Hi Leo & Reinhard,
... wie bastel ich denn den am besten?
Ich will von 10 MHz auf 100 Hz.
ist nämlich aktuell mit dem RDD104 ein CMOS-Teiler im DIL8-Gehäuse
übern Weg gelaufen:

Warum auch immer ... ich hab die früheren Beiträge verpasst.

10 MHz auf 100 Hz oder sonst wohin, würde ich mit einem AVR-Prozessor
machen, der möglichst nahe herumliegt. Da würde ich kein spezielles IC
dafür suchen. im nächsten Schritt fällt Leo noch auf, dass es doch nicht
genau 10.000.000 Hz sind und er doch lieber 10.000.012 Hz auf 100 Hz
herunterteilen möchte. Dann sind das beim µC ein paar Bytes, die
anzupassen sind, zur Not während des Betriebs.

Marte
 
Marte Schwarz <marte.schwarz@gmx.de> wrote:
Hi Hans-Peter,
Genau das gibt Probleme, weil alle Eingänge mit dem internen I/O Takt
synchronisiert werden. So lese ich das jedenfalls aus den Datenblättern,

Kannst Du das mal konkretisieren, woraus Du das liest?

Z.B. aus dem Edge Detector in diversen Timer Blockschaltbildern
(*simplified* block diagram).

Änderungen in den Timer Registern dürfen ja nicht während einer
Registerabfrage auftreten, müssen also vorher zum Prozessortakt
synchronisiert werden.

Vielen Dank. Zuerst dachte ich auch: Wie blöd muss man denn sein, um
solch einen Unfug zu fabrizieren, jetzt wirds klarer. Trotzdem ist das
eine blöde Stelle, die Synchronisierung zu machen. Das wäre viel
sinnvoller nach dem Timer zu tun. Dann synchronisiert man erst, wenn man
auf den Timer zugreift, indem man da zuvor mal latcht. Ich kann mir
soooo viele sinnvolle Sachen denken, die man mit einem schnellen Timer
und langsamem Prozessortakt realisieren könnte.
Dann musst du dafür einen PIC nehmen. Allerdings darf der Prozessortakt
auch dort nicht beliebig langsam sein, mindestens 4*fIn/n mit n=Prescaler
Wert. Bei 32 kHz Clock und Prescalerwert 256 wären es aber noch immer
2 MHz.

--
Dipl.-Inform(FH) Peter Heitzer, peter.heitzer@rz.uni-regensburg.de
 
Marte Schwarz <marte.schwarz@gmx.de> wrote:
Hi Hans-Peter,
Genau das gibt Probleme, weil alle Eingänge mit dem internen I/O Takt
synchronisiert werden. So lese ich das jedenfalls aus den Datenblättern,

Kannst Du das mal konkretisieren, woraus Du das liest?

Z.B. aus dem Edge Detector in diversen Timer Blockschaltbildern
(*simplified* block diagram).

Änderungen in den Timer Registern dürfen ja nicht während einer
Registerabfrage auftreten, müssen also vorher zum Prozessortakt
synchronisiert werden.

Vielen Dank. Zuerst dachte ich auch: Wie blöd muss man denn sein, um
solch einen Unfug zu fabrizieren, jetzt wirds klarer. Trotzdem ist das
eine blöde Stelle, die Synchronisierung zu machen. Das wäre viel
sinnvoller nach dem Timer zu tun. Dann synchronisiert man erst, wenn man
auf den Timer zugreift, indem man da zuvor mal latcht. Ich kann mir
soooo viele sinnvolle Sachen denken, die man mit einem schnellen Timer
und langsamem Prozessortakt realisieren könnte.
Dann musst du dafür einen PIC nehmen. Allerdings darf der Prozessortakt
auch dort nicht beliebig langsam sein, mindestens 4*fIn/n mit n=Prescaler
Wert. Bei 32 kHz Clock und Prescalerwert 256 wären es aber noch immer
2 MHz.

--
Dipl.-Inform(FH) Peter Heitzer, peter.heitzer@rz.uni-regensburg.de
 
On 12/16/22 08:08, Marte Schwarz wrote:
Hi Leo & Reinhard,
... wie bastel ich denn den am besten?
Ich will von 10 MHz auf 100 Hz.
ist nämlich aktuell mit dem RDD104 ein CMOS-Teiler im DIL8-Gehäuse
übern Weg gelaufen:

Warum auch immer ... ich hab die früheren Beiträge verpasst.

10 MHz auf 100 Hz oder sonst wohin, würde ich mit einem AVR-Prozessor
machen, der möglichst nahe herumliegt.

Ob das eine gute Idee ist ergibt sich aus dem Rest der Anforderungen.
Ein Hardwareteiler läuft gleich los wenn er Strom bekommt, der µC nicht,
der muss erst durch seinen Reset.

Auch leidet die Reparierbarkeit der Schaltung wenn sie für längeren
Betrieb (Jahrzehnte) gedacht ist. Im Fehlerfalle musst du nicht nur
einen passenden µC auftreiben sondern auch die Software wieder finden
und in den µC programmieren anstatt einfach den defekten Teiler-IC zu
tauschen.

Als Teilerchip würde ich mir den 74HC4059 genauer anschauen, notfalls
kaskadiert.

Gerrit
 
On 12/16/22 08:08, Marte Schwarz wrote:
Hi Leo & Reinhard,
... wie bastel ich denn den am besten?
Ich will von 10 MHz auf 100 Hz.
ist nämlich aktuell mit dem RDD104 ein CMOS-Teiler im DIL8-Gehäuse
übern Weg gelaufen:

Warum auch immer ... ich hab die früheren Beiträge verpasst.

10 MHz auf 100 Hz oder sonst wohin, würde ich mit einem AVR-Prozessor
machen, der möglichst nahe herumliegt.

Ob das eine gute Idee ist ergibt sich aus dem Rest der Anforderungen.
Ein Hardwareteiler läuft gleich los wenn er Strom bekommt, der µC nicht,
der muss erst durch seinen Reset.

Auch leidet die Reparierbarkeit der Schaltung wenn sie für längeren
Betrieb (Jahrzehnte) gedacht ist. Im Fehlerfalle musst du nicht nur
einen passenden µC auftreiben sondern auch die Software wieder finden
und in den µC programmieren anstatt einfach den defekten Teiler-IC zu
tauschen.

Als Teilerchip würde ich mir den 74HC4059 genauer anschauen, notfalls
kaskadiert.

Gerrit
 
On 12/16/22 8:08 AM, Marte Schwarz wrote:

10 MHz auf 100 Hz oder sonst wohin, würde ich mit einem AVR-Prozessor
machen, der möglichst nahe herumliegt.

Du meinst den mit den 10 MHz betreiben?

DoDi
 
On 12/16/22 8:08 AM, Marte Schwarz wrote:

10 MHz auf 100 Hz oder sonst wohin, würde ich mit einem AVR-Prozessor
machen, der möglichst nahe herumliegt.

Du meinst den mit den 10 MHz betreiben?

DoDi
 
Am 16.12.2022 um 08:34 schrieb Gerrit Heitsch:
Ob das eine gute Idee ist ergibt sich aus dem Rest der Anforderungen.
Ein Hardwareteiler läuft gleich los wenn er Strom bekommt, der µC nicht,
der muss erst durch seinen Reset.

Auch leidet die Reparierbarkeit der Schaltung wenn sie für längeren
Betrieb (Jahrzehnte) gedacht ist. Im Fehlerfalle musst du nicht nur
einen passenden µC auftreiben sondern auch die Software wieder finden
und in den µC programmieren anstatt einfach den defekten Teiler-IC zu
tauschen.

Als Teilerchip würde ich mir den 74HC4059 genauer anschauen, notfalls
kaskadiert.

Einen Prozessor würde ich ablehnen. Hinreichend Gründe wurden bereits
weiter oben genannt.-

Wenn ich das richtig verstehe, muss beim 74HC4059 der LE-Eingang LOW
sein und ansonsten ist Duty Cycle im Ausgang 50%. - Fein ...

Grüße
 
Am 16.12.2022 um 08:34 schrieb Gerrit Heitsch:
Ob das eine gute Idee ist ergibt sich aus dem Rest der Anforderungen.
Ein Hardwareteiler läuft gleich los wenn er Strom bekommt, der µC nicht,
der muss erst durch seinen Reset.

Auch leidet die Reparierbarkeit der Schaltung wenn sie für längeren
Betrieb (Jahrzehnte) gedacht ist. Im Fehlerfalle musst du nicht nur
einen passenden µC auftreiben sondern auch die Software wieder finden
und in den µC programmieren anstatt einfach den defekten Teiler-IC zu
tauschen.

Als Teilerchip würde ich mir den 74HC4059 genauer anschauen, notfalls
kaskadiert.

Einen Prozessor würde ich ablehnen. Hinreichend Gründe wurden bereits
weiter oben genannt.-

Wenn ich das richtig verstehe, muss beim 74HC4059 der LE-Eingang LOW
sein und ansonsten ist Duty Cycle im Ausgang 50%. - Fein ...

Grüße
 
On 12/16/22 12:43, Leo Baumann wrote:
Am 16.12.2022 um 08:34 schrieb Gerrit Heitsch:
Ob das eine gute Idee ist ergibt sich aus dem Rest der Anforderungen.
Ein Hardwareteiler läuft gleich los wenn er Strom bekommt, der µC
nicht, der muss erst durch seinen Reset.

Auch leidet die Reparierbarkeit der Schaltung wenn sie für längeren
Betrieb (Jahrzehnte) gedacht ist. Im Fehlerfalle musst du nicht nur
einen passenden µC auftreiben sondern auch die Software wieder finden
und in den µC programmieren anstatt einfach den defekten Teiler-IC zu
tauschen.

Als Teilerchip würde ich mir den 74HC4059 genauer anschauen, notfalls
kaskadiert.

Einen Prozessor würde ich ablehnen. Hinreichend Gründe wurden bereits
weiter oben genannt.-

Wenn ich das richtig verstehe, muss beim 74HC4059 der LE-Eingang LOW
sein und ansonsten ist Duty Cycle im Ausgang 50%. - Fein ...

Das ist etwas unklar geschrieben, aber selbst wenn nicht, so einstellen,
daß die genetierte Frequenz doppelt so hoch ist wie gewünscht und ein
D-Flipflop nachschalten und schon hat man 50% Duty Cycle.

Gerrit
 
On 12/16/22 12:43, Leo Baumann wrote:
Am 16.12.2022 um 08:34 schrieb Gerrit Heitsch:
Ob das eine gute Idee ist ergibt sich aus dem Rest der Anforderungen.
Ein Hardwareteiler läuft gleich los wenn er Strom bekommt, der µC
nicht, der muss erst durch seinen Reset.

Auch leidet die Reparierbarkeit der Schaltung wenn sie für längeren
Betrieb (Jahrzehnte) gedacht ist. Im Fehlerfalle musst du nicht nur
einen passenden µC auftreiben sondern auch die Software wieder finden
und in den µC programmieren anstatt einfach den defekten Teiler-IC zu
tauschen.

Als Teilerchip würde ich mir den 74HC4059 genauer anschauen, notfalls
kaskadiert.

Einen Prozessor würde ich ablehnen. Hinreichend Gründe wurden bereits
weiter oben genannt.-

Wenn ich das richtig verstehe, muss beim 74HC4059 der LE-Eingang LOW
sein und ansonsten ist Duty Cycle im Ausgang 50%. - Fein ...

Das ist etwas unklar geschrieben, aber selbst wenn nicht, so einstellen,
daß die genetierte Frequenz doppelt so hoch ist wie gewünscht und ein
D-Flipflop nachschalten und schon hat man 50% Duty Cycle.

Gerrit
 
Am 16.12.2022 um 14:37 schrieb Gerrit Heitsch:
Wenn ich das richtig verstehe, muss beim 74HC4059 der LE-Eingang LOW
sein und ansonsten ist Duty Cycle im Ausgang 50%. - Fein ...

Das ist etwas unklar geschrieben, aber selbst wenn nicht, so einstellen,
daß die genetierte Frequenz doppelt so hoch ist wie gewünscht und ein
D-Flipflop nachschalten und schon hat man 50% Duty Cycle.

Da steht nur im Datenblatt, dass für fmax input duty cycle 50% sein soll.-

Über output duty cycle steht da gar nichts.

https://www.ti.com/lit/ds/symlink/cd74hc4059.pdf?ts=1671175846072&ref_url=https%253A%252F%252Fwww.google.com%252F

Grüße
 
Am 16.12.2022 um 14:37 schrieb Gerrit Heitsch:
Wenn ich das richtig verstehe, muss beim 74HC4059 der LE-Eingang LOW
sein und ansonsten ist Duty Cycle im Ausgang 50%. - Fein ...

Das ist etwas unklar geschrieben, aber selbst wenn nicht, so einstellen,
daß die genetierte Frequenz doppelt so hoch ist wie gewünscht und ein
D-Flipflop nachschalten und schon hat man 50% Duty Cycle.

Da steht nur im Datenblatt, dass für fmax input duty cycle 50% sein soll.-

Über output duty cycle steht da gar nichts.

https://www.ti.com/lit/ds/symlink/cd74hc4059.pdf?ts=1671175846072&ref_url=https%253A%252F%252Fwww.google.com%252F

Grüße
 
Leo Baumann <ib@leobaumann.de> writes:

Am 16.12.2022 um 14:37 schrieb Gerrit Heitsch:
Wenn ich das richtig verstehe, muss beim 74HC4059 der LE-Eingang
LOW sein und ansonsten ist Duty Cycle im Ausgang 50%. - Fein ...

Das ist etwas unklar geschrieben, aber selbst wenn nicht, so
einstellen, daß die genetierte Frequenz doppelt so hoch ist wie
gewünscht und ein D-Flipflop nachschalten und schon hat man 50% Duty
Cycle.

Da steht nur im Datenblatt, dass für fmax input duty cycle 50% sein soll.-

Über output duty cycle steht da gar nichts.

https://www.ti.com/lit/ds/symlink/cd74hc4059.pdf?ts=1671175846072&ref_url=https%253A%252F%252Fwww.google.com%252F

| The output signal is a pulse one clock cycle wide
^^^^^^^^^^^^^^^^^^^^
| occurring at a rate equal to the input frequency divide by N.

--
Stefan
 
Leo Baumann <ib@leobaumann.de> writes:

Am 16.12.2022 um 14:37 schrieb Gerrit Heitsch:
Wenn ich das richtig verstehe, muss beim 74HC4059 der LE-Eingang
LOW sein und ansonsten ist Duty Cycle im Ausgang 50%. - Fein ...

Das ist etwas unklar geschrieben, aber selbst wenn nicht, so
einstellen, daß die genetierte Frequenz doppelt so hoch ist wie
gewünscht und ein D-Flipflop nachschalten und schon hat man 50% Duty
Cycle.

Da steht nur im Datenblatt, dass für fmax input duty cycle 50% sein soll.-

Über output duty cycle steht da gar nichts.

https://www.ti.com/lit/ds/symlink/cd74hc4059.pdf?ts=1671175846072&ref_url=https%253A%252F%252Fwww.google.com%252F

| The output signal is a pulse one clock cycle wide
^^^^^^^^^^^^^^^^^^^^
| occurring at a rate equal to the input frequency divide by N.

--
Stefan
 
Am Fri, 16 Dec 2022 10:24:30 +0100 schrieb Hans-Peter Diettrich:

On 12/16/22 8:08 AM, Marte Schwarz wrote:

10 MHz auf 100 Hz oder sonst wohin, würde ich mit einem AVR-Prozessor
machen, der möglichst nahe herumliegt.

Du meinst den mit den 10 MHz betreiben?

DoDi

Das dürfte die günstigste Lösung sein, da tut es der billigste Tiny13(a).
Eingangsfrequenz als Prozessortakt, Timer mit Vorteiler (durch 8) im CTC-
Modus mit Reload = 250 macht eine Interruptfrequenz von 5 KHz. In der
Serviceroutine einen Softwarezähler bis 25, dann einen Portpin toggeln,
das macht ein einziger Assemblerbefehl.

Alternativ den Takt erst einmal durch zwei teilen, dafür Reload mit 125
aufsetzen, macht dasselbe und braucht ggf. weniger Strom.

Sollte nur ein paar Dutzend Assemblerbefehle brauchen, Hauptprogramm
besteht nur aus Endlosschleife mit Sleep-Befehl.

Pulsweite am Ausgang ist damit automatisch 50%.
 
Am Fri, 16 Dec 2022 10:24:30 +0100 schrieb Hans-Peter Diettrich:

On 12/16/22 8:08 AM, Marte Schwarz wrote:

10 MHz auf 100 Hz oder sonst wohin, würde ich mit einem AVR-Prozessor
machen, der möglichst nahe herumliegt.

Du meinst den mit den 10 MHz betreiben?

DoDi

Das dürfte die günstigste Lösung sein, da tut es der billigste Tiny13(a).
Eingangsfrequenz als Prozessortakt, Timer mit Vorteiler (durch 8) im CTC-
Modus mit Reload = 250 macht eine Interruptfrequenz von 5 KHz. In der
Serviceroutine einen Softwarezähler bis 25, dann einen Portpin toggeln,
das macht ein einziger Assemblerbefehl.

Alternativ den Takt erst einmal durch zwei teilen, dafür Reload mit 125
aufsetzen, macht dasselbe und braucht ggf. weniger Strom.

Sollte nur ein paar Dutzend Assemblerbefehle brauchen, Hauptprogramm
besteht nur aus Endlosschleife mit Sleep-Befehl.

Pulsweite am Ausgang ist damit automatisch 50%.
 
Am 16.12.2022 um 16:12 schrieb Stefan Wiens:
The output signal is a pulse one clock cycle wide
^^^^^^^^^^^^^^^^^^^^
| occurring at a rate equal to the input frequency divide by N.

ah - ok - danke
 

Welcome to EDABoard.com

Sponsor

Back
Top