Suche möglichst kleine Schaltung (SMD) für µC-Takt: 4MHz -> 16MHz (PLL) oder 16MHz -> 4MHz (Teiler)

Apr 22, 2004 28 Replies

Also wie schon im Subject erw=E4hnt suche ich nach einer Schaltung (am = besten in SMD Bauteilen), mit der ich entweder:


4MHz nach 16MHz

oder


16MHz nach 4MHz wandeln kann.

Der Hintergrund: F=FCr die MG100 Gyroskope der Fa. Gyration werden spez= ielle A/D Wandler mitgeliefert, denen ein Takt von 4MHz zugef=FChrt werden mu= ss. Als =B5C will ich einen Atmel AT Mega161 verwenden, der sich mit bis zu= 16MHz takten l=E4sst. 4MHz w=FCrden zwar auch gehen, aber ich will die h=F6ch= ste Taktung. Gleichzeitig werte ich n=E4mlich das DutyCycle Signal von ADXL=



202 Accelerometern aus in einer Z=E4hlschleife aus. Das ganze l=E4uft in ei= ner Zeitscheibe, sodass ein hoher Takt notwendig ist, um den DutyCycle pr=E4= zise zu messen.

Gleichzeitig geht es in meinem Ger=E4t sehr eng zu, so dass ich keine g= r=F6=DFeren Bauteile einbauen kann. Daher will ich das Taktsignal von einem Quarzoszillator f=FCr die beiden A/Ds und den =B5C verwenden. Gleichzei= tig w=E4r's auch vom Programmiertechnischen einfacher zu l=F6sen: Wenn Takt= von =B5C und A/D synchronisiert w=E4ren, k=F6nnte ich die St=FCcke der Zeitschei= be f=FCr die DutyCycle Z=E4hler der A/D Wandler auf die L=E4nge von 2^13 (8192) Takt= e setzen, die die A/D Wandler zum integrieren des Signals ben=F6tigen. So=



k=F6nnte ich mir einen Timer sparen.



Irgendwelche Ideen?



Wolfgang



Vielleicht blashpemisch, bin ja auch keine Fachmann, aber: Hast Du einen Timer im AVR frei? Wenn ja, dann verwende den doch direkt, damit ist alles andere 100% synchron zum AVR. Andere Moeglichkeit: Keinen Quarz, sondern integrierten Quarzoszillator verwenden. Der kann dann auch mehrere Komponenten ansteuern. Ausserdem sollten XTAL2 IMHO auch als Taktausgang verwendbar sein.

Gruss, Dirk

Dirk Wiebel SFB 441 Linguistische Datenstrukturen Nauklerstr. 35 fon: +49 7071 29-77153 D-72074 Tuebingen fax: +49 7071 29-5830 Email: -- hidden in Usenet -- GNUpg public key: http://www.sfb441.uni-tuebingen.de/~dirk/key.txt

Vergiss den zweiten Teil -- mal wieder zu spaet geschaltet...

Gruss, Dirk

Dirk Wiebel SFB 441 Linguistische Datenstrukturen Nauklerstr. 35 fon: +49 7071 29-77153 D-72074 Tuebingen fax: +49 7071 29-5830 Email: -- hidden in Usenet -- GNUpg public key: http://www.sfb441.uni-tuebingen.de/~dirk/key.txt

Wolfgang Draxinger schrieb:

SN74HC74 in SO-14 oder TSSOP-14.

Gruß Dieter

Wolfgang Draxinger schrieb:

besten

Hallo,

wenn es m=F6glichst einfach und klein werden soll, dann bleibt nur der=20 Teiler 4:1, daf=FCr reicht ein 2 Bit Bin=E4rz=E4hler der 16 MHz kann. Wen= n es=20 keinen 2 Bit Z=E4hler gibt, ein 4 Bit Z=E4hler tut es auch, es muss nur d= er=20 Ausgang des zweiten Fliflops zug=E4nglich sein. Z.B. der 74xx164 in SMD hat nur 14 Pins, der 74xx163 ginge auch, hat=20 aber 16 Pins. Eigentlich w=FCrden ja schon 5 bis 6 Pins reichen, bei 4 Bi= t=20

7 bis 8.

Bye

Wieder mal ein Bauteil, dass in den EAGLE Standardbibliotheken fehlt...=

Hat da jemand vielleicht ne fertige Bibliothek?

Wolfgang

Wolfgang Draxinger schrieb:

a) such doch erst mal. Im SO14 ist der garantiert vorhanden, und auch ein TSSOP14 sollte sich irgendwo finden lassen.

b) selbst erstellen dauert höchstens 5 Minuten. Schneller als auf eine Antwort zu warten.

Kopfschüttelnd,

Dipl.-Ing. Tilmann Reh Autometer GmbH Siegen - Elektronik nach Maß. http://www.autometer.de

Wolfgang Draxinger schrieb:

Timer im CTC-Modus ohne Vorteiler betreiben, compare match toggles OC output, OCR-Register auf 1 stellen. Das sollte am OC-Ausgang 4 MHz ergeben.

Jörg Wunsch "Verwende Perl. Shell will man können, dann aber nicht verwenden." Kristian Köhntopp, de.comp.os.unix.misc

Das Package ist schon vorhanden, klar. Es fehlt halt nur ein korrekter Pinout, naja, hab mittlerweile eh die Library erstellt...

Nur, wieso das Rad zwei mal erfinden?

Wolfgang

Klingt interessant, muss ich ausprobieren. Gibt's dabei irgendwelche Kl= ippen die zu umschiffen sind?

Wolfgang

Wolfgang Draxinger schrieb:

Nicht daß ich wüßte. Das Übliche: damit OC ein Ausgang ist, muß man auch das passende DDRx-Bit setzen. ;-) Das trifft beim AVR eigentlich auf alle Sonderfunktionen von Ports zu mit Ausnahme der U[S]ART, die beim Einschalten des Senders den entsprechenden Pin selbst auf Ausgang konfiguriert.

Ich habe selbst den output toggle mode noch nicht mit so hohen Frequenzen konfiguriert, aber laut der Formel im Datenblatt sollte das kein Problem sein, man müßte maximal den halben Takt auf diese Weise herausführen können, ohne daß man sonst irgendwelche Interruptlast oder so erzeugt (die wäre ja weiß Gott tödlich bei dieser Frequenz :).

Jörg Wunsch "Verwende Perl. Shell will man können, dann aber nicht verwenden." Kristian Köhntopp, de.comp.os.unix.misc

Arne Rossius schrieb:

Hallo,

Du hast v=F6llig recht, der 197 oder 293 w=E4ren Bin=E4rz=E4hler mit nur =

14 Pins.

Bye

ast

enz :).

Ich dachte vor allem an Interrupts, die vielleicht Probleme machen k=F6= nnten, aber wenn keine erzeugt werden ist es auch kein Problem ;-)

Bin eh grade dabei das alles auf eine winzige Platine (27mm x 17mm) zu frickeln (AVR, C-MAC IQXO-57, MAX232ECWE, ADXL202E und ein paar RC-Glieder...) Scheint alles gerade eben zu passen.

Wolfgang

Bist du sicher, dass du den 164 (8 Bit Schieberegister) vorschlagen wolltest? Wie soll man damit durch 4 teilen?

Gruß, Arne

s

ise

ast

enz :).

Des kommt davon, wenn man Vergleichstabellen in zu kleiner Schrift lies= t: Der ATMega 161 geht ja blo=DF bis 8MHz, direkt drunter war der Mega32, = aber der ist einfach zu gro=DF... Aber deine Idee ist die beste L=F6sung f=FC= r mein Problem und sollte auch bei einem Taktverh=E4ltnis von 1:2 funktioniere= n.

Wolfgang

wie wäre es mit 74LS74 oder 7474 oder 74XY74 einfach nach 74HC74 kopieren?

Ich glaubs kaum, dass keiner der 7474 derivate in der Lib stehen. Ansonsten werf den Adler weg.

Martin

Martin Schönegg schrieb:

Nein, *irgendeinen* 74xx74 nehmen und neuen VALUE geben. Fertich.

[ ] Du kennst EAGLE.
Dipl.-Ing. Tilmann Reh Autometer GmbH Siegen - Elektronik nach Maß. http://www.autometer.de

Am Thu, 22 Apr 2004 18:43:27 +0200 hat Wolfgang Draxinger geschrieben:

Wenn du wirklich 16MHz brauchst, dann nimm den Mega16 (Nachfolger von Mega161/Mega163), der kann das bei 5V.

Martin

Leider hat der ATMega16 A/D Wandler Ports die ich beim aktuellen Projek= t aber nicht brauchen kann (zu wenig Aufl=F6sung und nicht Differential).= Die dezidierten A/D Wandler sind genau auf die Gyroskope abgestimmt. Demgegen=FCber braucht ich aber eine genze Menge Digitalports. (Auslese= n der Gyroskop A/D)

8MHz sind ausreichend, 4MHz w=E4ren aber zu wenig. Der DutyCycle der AD= XL202 ist so eingestellt, dass ich einen 1MHz Z=E4hler brauche um die 10Bit Aufl=F6sung rauszuholen die die angeblich liefern.

Ich muss den Wert vom Port einlesen (2 Takte), vergleichen (2 Takte) un= d einen Z=E4hler setzen (nochmal 2 Takte). Macht summa summarum 6 Takte. = Wenn man dann noch von Phasenabweichungen ausgeht (der ADXL202 hat seinen eigenen Oszillator) und die unausweichlichen Latenzzeiten ber=FCcksicht= igt br=E4uchte ich ca 6,5MHz Takt. Aber nachdem ich die 4MHz f=FCr die A/D = Wandler der Gyroskope m=F6glichst unkompliziert aus dem =B5C Takt erzeugen will= , sind

8MHz das n=E4chsth=F6here und reichen daf=FCr aus. 16MHz w=E4ren zwar a= uch nett gewesen, sind aber nicht so wichtig.

Wolfgang

Wolfgang Draxinger schrieb:

Ist wahrscheinlich nicht so wichtig, aber das sollte auch mit 5 clks gehen:

loop: adiw r25:r24,1 ; 2 clks sbis PortA,0 ; 1 clk, wenn Bit 0 noch nicht gesetzt rjmp loop ; 2 clks ...

Jens (selber gerade beim programmieren)

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required