Einfacher programmierbarer Teiler?

J

jetmarc

Guest
Hallo..

Fuer ein Projekt mit Mikrokontroller suche ich einen programmierbaren
Vorteiler. Geteilt werden soll der Ausgang eines 48 MHz "canned" CMOS
Oszillators, und zwar /2, /3, /4 und /6 (also 24/16/12/8 MHz).

Bei Aenderung der Frequenz koennen Pulse ausfallen, es darf aber nicht
zu "runt clock pulses" kommen (zu kurze Periode, die den Mikrokontroller
zum abstuerzen bringt). Da der Mikrokontroller die Frequenzauswahl mit
seinen eigenen IO Pins steuert, darf es auch keine ungueltige Auswahl
geben (aus der sich der Mikro nicht mehr befreien koennte). Langsamer
als /6 waere OK, aber eine /1 Ausgabe ist nicht tolerierbar (der Mikro
ist nur bis 25 MHz spezifiziert).

Soweit moeglich moechte ich nicht mehr als 2 Chips dafuer aufwenden,
und gerne auf leicht beziehbare Bauteile zurueckgreifen (74HC Logik?).

Kennt jemand eine geeignete Schaltung oder AppNotes zu diesem Thema?

Gruesse, Marc
 
jetmarc schrieb:
Hallo..

Fuer ein Projekt mit Mikrokontroller suche ich einen programmierbaren
Vorteiler. Geteilt werden soll der Ausgang eines 48 MHz "canned" CMOS
Oszillators, und zwar /2, /3, /4 und /6 (also 24/16/12/8 MHz).

Bei Aenderung der Frequenz koennen Pulse ausfallen, es darf aber nicht
zu "runt clock pulses" kommen (zu kurze Periode, die den Mikrokontroller
zum abstuerzen bringt). Da der Mikrokontroller die Frequenzauswahl mit
seinen eigenen IO Pins steuert, darf es auch keine ungueltige Auswahl
geben (aus der sich der Mikro nicht mehr befreien koennte). Langsamer
als /6 waere OK, aber eine /1 Ausgabe ist nicht tolerierbar (der Mikro
ist nur bis 25 MHz spezifiziert).

Soweit moeglich moechte ich nicht mehr als 2 Chips dafuer aufwenden,
und gerne auf leicht beziehbare Bauteile zurueckgreifen (74HC Logik?).
Da würde ich ein GAL verwenden, flexibel und Singlechip. Bedingt
allerdings ein wenig Einarbeitung - ist aber auf jeden fall lohnend !
Software frei, Hardware für Downloadkabel EU 1.-

mfg Bertram




--

Bertram Geiger, Graz - AUSTRIA
Private Mail: remove the letters "b a d" from my reply address
 
In article <af3f5bb5.0309210328.2cd23f18@posting.google.com>,
jetmarc@hotmail.com (jetmarc) writes:
Hallo..

Fuer ein Projekt mit Mikrokontroller suche ich einen programmierbaren
Vorteiler. Geteilt werden soll der Ausgang eines 48 MHz "canned" CMOS
Oszillators, und zwar /2, /3, /4 und /6 (also 24/16/12/8 MHz).
Was spricht gegen einen Zähler den du als Teiler verwendest?

Soweit moeglich moechte ich nicht mehr als 2 Chips dafuer aufwenden,
und gerne auf leicht beziehbare Bauteile zurueckgreifen (74HC Logik?).
Ich weis nicht ob du den Microcontroller seinen eigenen Takt
steueren lassen willst, aber evt. kannst du ja auch einen
PLL-IC verwenden der sich via I2C progammieren lässt. Ist
evt. mit Kanonen auf Spatzen geschossen. Dafür bist du
dann aber sehr variabel was die Frequenz angeht.

Tschüss
Martin L.

PS: Hast du schonmal bei groups.google.de gesucht?
 
jetmarc wrote:

Fuer ein Projekt mit Mikrokontroller suche ich einen programmierbaren
Vorteiler. Geteilt werden soll der Ausgang eines 48 MHz "canned" CMOS
Oszillators, und zwar /2, /3, /4 und /6 (also 24/16/12/8 MHz).
Grundsaetzlich sollte das mit einem synchron vorsetzbaren Zaehler gehen,
z.B. dem 74HC161. Der ľC legt den Startwert auf die Dateneingaenge des
Zaehlers, wobei der invertierte "Terminal Count"-Ausgang (TC) mit dem
(synchronen) "Parallel Load Enable" (/PE) verbunden wird. Das Signal an TC
stellt gleichzeitig die geteilte Frequenz dar.

Allerdings sind da wohl viele Details zu beachten. Z.B. ist das Ergebnis
einer solchen Teilung nicht symmetrisch. Die Dauer des positiven Impulses
ist immer doppelt so lang wie beim (symmetrischen) Eingangssignal. Der
negative Teil ist im schlimmsten Fall (/6) fuenfmal so lange wie der
positive. Immerhin kann dabei keinesfalls etwas Schnelleres als die halbe
Eingangsfrequenz herauskommen.

Bei Aenderung der Frequenz koennen Pulse ausfallen, es darf aber nicht
zu "runt clock pulses" kommen (zu kurze Periode, die den Mikrokontroller
zum abstuerzen bringt).
Das muesste hier erfuellt sein - zumindest dann, wenn man sicherstellen
kann, dass waehrend der Ladevorgaenge des Zaehlers immer ein gueltiger
Wert an der Zaehlereingaengen liegt. Wobei man eigentlich nur darauf
achten muss, dass der Wert ungleich 15 ist (siehe unten). Wenn man ganz
sicher gehen will, koennte man den Startwert in zwei Schritten umstellen:
zuerst Null ausgeben (oder auch 8, falls Du das hoechstwertige Bit fix
auf High gelegt hast), und danach den gewuenschten Wert. Auf diese Weise
kann eigentlich zu keinem Zeitpunkt der gefaehrliche Wert 15 an den Pins
liegen.

Da der Mikrokontroller die Frequenzauswahl mit seinen eigenen IO Pins
steuert, darf es auch keine ungueltige Auswahl geben (aus der sich der
Mikro nicht mehr befreien koennte).
Die gibt es hier sehr wohl. Wenn der ľC naemlich den groesstmoeglichen
Zaehlerstand (15) anlegt, dann wird das Ausgangssignal konstant High sein,
und der ľC kann ueberhaupt nichts mehr machen. Diesen Fall muss man
verhindern, insbesondere ist hier der Pegel der Controller-Ausgaenge im
Reset-Zustand zu beachten (ggf. mit Pullup- und Pulldown-Widerstaenden
gewuenschten Wert vorgeben).

Wenn das Ausgangssignal hingegen symmetrisch sein soll, wird die Sache
schwieriger, insbesondere bei der Teilung durch 3...

--
Gruesse,
Pascal Le Bail, Wien
Meine Absenderadresse ist derzeit inaktiv. Siehe <http://swen.pascal.at/>.
 
In article <3f6e2573@olaf.komtel.net>,
Daniel Schramm <daniel@pinguin.sauerland.de> writes:
Martin Laabs wrote:

Ich weis nicht ob du den Microcontroller seinen eigenen Takt
steueren lassen willst, aber evt. kannst du ja auch einen
PLL-IC verwenden der sich via I2C progammieren lässt.

Kennst Du konkrete ICs? Suche sowas naemlich auch noch.
Also in einer Anleitung von DH1AAD für einen 2m Empfänger
wird ein TSA6057 verwendet. So viel ich dem Artikel (findets
du auf seiner Homepage) entnehmen kann hat der Chip
aber nur Teilerfaktoren von 1, 10 und 25kHz. Also
zum empfangen von SSB oder CW sicher nicht optimal.

Von anderen Chips habe ich gehört, aber keine genauen
Bezeichnungen da.

Tschüss
Martin L.
 
Daniel Schramm schrieb:
Martin Laabs wrote:

Ich weis nicht ob du den Microcontroller seinen eigenen Takt
steueren lassen willst, aber evt. kannst du ja auch einen
PLL-IC verwenden der sich via I2C progammieren lässt.

Kennst Du konkrete ICs? Suche sowas naemlich auch noch.
warum nicht doch 1-Chip mit CPLD ?

Bertram


--

Bertram Geiger, Graz - AUSTRIA
Private Mail: remove the letters "b a d" from my reply address
 
In article <bkmg72$3411l$1@id-191456.news.uni-berlin.de>,
98malaab@gmx.de (Martin Laabs) writes:
In article <3f6e2573@olaf.komtel.net>,
Daniel Schramm <daniel@pinguin.sauerland.de> writes:

Kennst Du konkrete ICs? Suche sowas naemlich auch noch.

Von anderen Chips habe ich gehört, aber keine genauen
Bezeichnungen da.
Ich habe nochmal gesuch.
SAA 1057 bis 120MHz mit 1kHz,1.25kHz,10kHz,12.5kHz Schritten
1.80 Euro bei Reichelt

TSA5511 bis 1.3GHz mit vielen Funktionen, Phasenkomperatorfrequenz
anscheinend durch Quartz bestimmbar.
1.50 Euro bei Reichelt

Tschüss
Martin L.
 
Martin Laabs wrote:

warum nicht doch 1-Chip mit CPLD ?

Evt. weil es Digital ist? Der Daniel will evt.
Sinus anstatt Rechteck. (Und Sieben mag er nicht)
Es geht mir in erster Linie um Rechteck, aber ob man jetzt bei Sinus oder
Dreieck noch nen Komperator dahinter setzt, oder direkt einen Rechteck
erhhält ist ja zweitrangig, in erster Linie interessiert die
Beschaffbarkeit.

Was ich damit sagen will: Würde man alles mit progammierbarer
Logik machen können gäbe es nur noch sehr wenige konventionelle
Chips. Und gerade in der Analogtechnik wird man nicht
drum rum kommen noch viel diskret aufzubauen.
Wenn ein fertiger VHDL-Entwurf (am besten Lizenzfrei) zu bekommen ist, hätte
ich daran auch Interesse, oder an entsprechender Literatur, zur
Frequenzerzeugung mit CPLDs, bisher habe ich mich noch um VHDL gedrückt und
nur CPLDs über Schaltplaneingabe mit Software versorgt, da fallen mir dann
nur Zaehler-/Teiler-Lösungen ein, die dann doch relativ teuer (viele
Macrozellen) werden. Ausserdem ist das Raster bei hohen Frequenzen sehr
gross.

Aber der Tip nach programmierbarer PLL zu suchen ist schon Klasse.
Eigentlich suche ich etwas, das mir aus dem unteren kHz-Bereich (dafür
missbrauche ich schon den PWM-Ausgang des Prozessors) bis in den
MHz-Bereich (bisher noch über externen Funktionsgenerator) viele Frequenzen
liefern kann, aber es laeuft wohl darauf hinaus, dass man mehrere Quellen
umschalten muss, wenn es leicht beschaffbar und preiswert bleiben soll.

DDS ist wegen der nötigen Filterumschaltung (Oberwellen) ja keine triviale
Lösung.
Wie sieht's in der Praxis bei solchen PLLs mit dem Oberwellenanteil des
generierten Sinus-Signals aus? (Oberwellen stören schon unter Umständen
den dahinter geschalteten Komperator, wenn man Rechteck haben möchte)
Meine Erfahrungen mit Analogtechnik sind leider noch kleiner, als die mit
programmierbarer Logik. (CPLD und uC sind beide in dem Geraet im Einsatz)

Bye Daniel

--
.~. Daniel Schramm Phone: +49 231 6108112 Mail:daniel.schramm@gmx.de
/V\ Bruehlweg 36 Mobile:+49 178 8839848 ICQ: 35816985
// \\ 44379 Dortmund Fax: +49 231 96989961 WWW: www.fset.de/~daniel
/( )\ Germany
^`~'^
 
Martin Laabs schrieb:
In article <3F6ED50C.6070705@aon.at>,
Bertram Geiger <badnews_geiger@aon.at> writes:
Daniel Schramm schrieb:

Kennst Du konkrete ICs? Suche sowas naemlich auch noch.

warum nicht doch 1-Chip mit CPLD ?

Evt. weil es Digital ist? Der Daniel will evt.
Sinus anstatt Rechteck. (Und Sieben mag er nicht)
uC Takt = rechteck

Weil es mehr Arbeit macht ihn zu programmieren als einen fertigen
zu kaufen. (Evt. sogar preiswerter?)
richtig, aber eben nur wenn komplett fertig erhältlich, was eher
fraglich ist

Evt. muss man sich auch erst einarbeiten um VHDL zu lernen.
(Ich kann es nicht und habe keinen blassen schimmer von
progammierbarer Logik)
richtig, aber:
es gibt auch recht einfache Sprachen, wie ABEL u.a., deren
Einarbeitungszeit vertretbar ist - kann aber eine Hürde darstellen.
Der Einsatz lohnt sich bestimmt für später

Vieleicht ist es auch zu langsam.
Im Gegenteil, weit schneller als für uP notwendig

Was ich damit sagen will: Würde man alles mit progammierbarer
Logik machen können gäbe es nur noch sehr wenige konventionelle
Chips.
Das trifft für den digitalen Bereich auch voll zu,
74xxx ist abgesehen von Buslogik und Tinylogik am Aussterben bzw.
ausgestorben

Und gerade in der Analogtechnik wird man nicht
drum rum kommen noch viel diskret aufzubauen.
Richtig, nur verschiebt sich der Übergang von Analog zu Digital immer
mehr, d.h. der digitale Teil ist drastisch im Rückzug.
Das schliesst aber nicht aus, dass man auch in der Digitaltechnik solide
"Analogkenntnisse" gut gebrauchen kann

mfg Bertram


--

Bertram Geiger, Graz - AUSTRIA
Private Mail: remove the letters "b a d" from my reply address
 
In article <3f6eeae4@olaf.komtel.net>,
Daniel Schramm <daniel@pinguin.sauerland.de> writes:
Martin Laabs wrote:

Aber der Tip nach programmierbarer PLL zu suchen ist schon Klasse.
Eigentlich suche ich etwas, das mir aus dem unteren kHz-Bereich (dafür
missbrauche ich schon den PWM-Ausgang des Prozessors) bis in den
MHz-Bereich (bisher noch über externen Funktionsgenerator) viele
Frequenzen
liefern kann, aber es laeuft wohl darauf hinaus, dass man mehrere Quellen
umschalten muss, wenn es leicht beschaffbar und preiswert bleiben soll.
Wenn es nur im kHz Bereich ist kannst du ja den NE564 nehmen
und einen feste Teiler davor basteln (damit der uC nicht mehr
so viel zu tun hat). Das Signal teilst du dann in dem
uC mit einem Zähler so das du die gewünschte Frequenz
bekommst. Wären also der NE564 und u.U. noch ein Zähler.

Wie sieht's in der Praxis bei solchen PLLs mit dem Oberwellenanteil des
generierten Sinus-Signals aus?
Das kommst doch ganz darauf an wie gut der VCO gebaut ist.

(Oberwellen stören schon unter Umständen
den dahinter geschalteten Komperator, wenn man Rechteck haben möchte)
Wie meinst du das? Den Komperator in der PLL Regelschleife oder
den um aus dem Sinussignal ein Rechtecksignal zu machen?

Wenn ich mich nicht ganz irre kannst du auch eine PLL ohne
Sinus sonder gleich mit Rechteckverlauf bauen.

Meine Erfahrungen mit Analogtechnik sind leider noch kleiner, als die mit
programmierbarer Logik. (CPLD und uC sind beide in dem Geraet im Einsatz)
Also ich mag die Analogtechnik viel lieber. Auch wenn ich schon
ein paar uC's progammiert habe.
Da weis man immer gleich was raus kommt. Beim Analogen gibs immer
noch den Überraschungseffekt ob es denn nun alles klappt und
termisch stabiel ist.

Tschüss
Martin L.
 
Daniel Schramm schrieb:
Martin Laabs wrote:

warum nicht doch 1-Chip mit CPLD ?
....

Wenn ein fertiger VHDL-Entwurf (am besten Lizenzfrei) zu bekommen ist, hätte
ich daran auch Interesse, oder an entsprechender Literatur, zur
Frequenzerzeugung mit CPLDs, bisher habe ich mich noch um VHDL gedrückt und
nur CPLDs über Schaltplaneingabe mit Software versorgt, da fallen mir dann
nur Zaehler-/Teiler-Lösungen ein, die dann doch relativ teuer (viele
Macrozellen) werden. Ausserdem ist das Raster bei hohen Frequenzen sehr
gross.
Nun so schlimm ist es nicht, bei CPLDs kannst du auch mit einfacheren
Sprachen arbeiten (z.B. ABEL). Bei deinem Ursprungsposting hattest du
nach 4...6 verschiedenen Ausgangsfrequ. gefragt, wenn ich mich recht
erinnere.
Ein umschaltbarer Teiler benötigt nur soviele FF, wie für den größten
Teilerfaktor erforderlich. Für Taktumschaltung benötigst du ja noch
keinen ausgewachsenen Synthesizer ;-)


DDS ist wegen der nötigen Filterumschaltung (Oberwellen) ja keine triviale
Lösung.
Wie sieht's in der Praxis bei solchen PLLs mit dem Oberwellenanteil des
generierten Sinus-Signals aus? (Oberwellen stören schon unter Umständen
den dahinter geschalteten Komperator, wenn man Rechteck haben möchte)
DDS sind keine PLLs !
Schau dir DDS mal genauer an (z.B. bei AD), dann siehst du, dass das
ganze keine Hexerei ist, insbesonder wenn du den reinen Digitalteil
anschaust (Phase Accumulator) - ideal für Realisierumg mit CPLD. damit
lassen sich wunderbar 'krumme' Teilerfatoren realisieren, alle (2^n)/m
wie z.B. 16 Hz auf 11 Hz teilen. Ein gewisser Phasenjitter ist dabei
allerdings unvermeidbar.

Meine Erfahrungen mit Analogtechnik sind leider noch kleiner, als die mit
programmierbarer Logik. (CPLD und uC sind beide in dem Geraet im Einsatz)
Dann hast du die Starthürde ja schon genommen, alles bleibt digital !
Beschreibung in einer HDL ist weitgehend einfacher und schneller als mit
reinem Schematic, ausser du kannst auf Libraries zurückgreifen.

Nur so als Minibeispiele (ohne Pindefinitionen, "zaehler" besteht aus 4
FF):

*Synchronzähler modulo 13
IF zaehler==12 THEN zaehler:=0 ELSE zaehler:=zaehler+1;

*Modulo x programmierbar:
IF zaehler>=modulo THEN zaehler:=0 ELSE zaehler:=zaehler+1;

*Teiler mit Teilerfaktor 11/16:
zaehler:=zaehler+11;

Bei reinem Schematic darfst du da ganz schön Wahrheitstabellen und KV
Diagramme (fehlerfrei) schnitzen und das wird über 4 Bit ja nicht
unbedingt übersichtlich ...

doch ein weig neugierig ?

Nur so drübergeflogen, könnte dein ursprünglicher Job sogar in ein 22V10
passen - war aber nicht so exakt definiert. Sonst eben wirklich CPLD,
z.B. Xilinx XC95xxx

mfg Bertram



--

Bertram Geiger, Graz - AUSTRIA
Private Mail: remove the letters "b a d" from my reply address
 
In article <3F6F31A6.8090901@aon.at>,
Bertram Geiger <badnews_geiger@aon.at> writes:
Daniel Schramm schrieb:
Martin Laabs wrote:

Bei deinem Ursprungsposting hattest du
nach 4...6 verschiedenen Ausgangsfrequ. gefragt, wenn ich mich recht
erinnere.
Nene. Da verwechselst du glaub ich was. Das Ursprungsposting
war von Jetmarc (wer das auch immer ist).
Daniel hat sich dann nur in den Thread eingehakt. So hab
ich das auf jeden fall verstanden. Kann natürlich sein
das jetmarc auch Daniel ist. Glaub ich aber nicht.

Ein umschaltbarer Teiler benötigt nur soviele FF, wie für den größten
Teilerfaktor erforderlich. Für Taktumschaltung benötigst du ja noch
keinen ausgewachsenen Synthesizer ;-)
Bei 4 Frequenzen die ich umschalten wollte würde ich evt.
einfach 4 RC Oszillatoren bauen.


Tschüss
Martin L.
 
Vielen Dank fuer alle Antworten.

Der Vorschlag von Pascal scheint mir am geeignetsten. Mein Mikro
ist bis 25 MHz spezifiziert, dh der schraege Dutycycle bereitet
keine Schwierigkeiten.

Fragt sich nur noch mit welcher Logikfamilie ich bei 48MHz am Strom
sparendsten dran bin. Als 74AC sind die ICs leicht zu bekommen,
aber als 74LCX oder 74LVX waeren sie vielleicht besser (?) ...

Marc
 
jetmarc schrieb:
Hallo..

Fuer ein Projekt mit Mikrokontroller suche ich einen programmierbaren
Vorteiler. Geteilt werden soll der Ausgang eines 48 MHz "canned" CMOS
Oszillators, und zwar /2, /3, /4 und /6 (also 24/16/12/8 MHz).

Es wurde im Thread auch nach programmierbaren PLLs gefragt. Ich habe da
schon Clock-Synthesizer von Cypress eingesetzt, zB CY2907. Die machen
auch Clock Generatoren für PC Mainboards. Die Teile selbst gehen gut,
der Programmer ist nicht ganz billig und proprietär und die Software von
denen ist zwar gratis, aber etwas buggy. Vielleicht hat sich da in den 2
Jahren aber auchs chon was getan.

Martin
 

Welcome to EDABoard.com

Sponsor

Back
Top