Forum: Mikrocontroller und Digitale Elektronik 16 MHz ext. Clock für AVR über PCB routen


von Johnny (Gast)


Lesenswert?

Hey,

Ich layoute gerade eine Platine auf der sich im Wesentlichen ein AVR und 
ein Schrittmotortreiber IC befinden. Der Treiber bietet die Möglichkeit, 
ein 16 MHz Clock-Signal auszugeben. Aus Platzgründen hat der AVR keinen 
eigenen externen Taktgeber, ich wollte ihn eigentlich mit den internen 8 
MHz betreiben. Ich überlege jetzt, ob ich die 16 MHz des Treibers für 
den AVR als ext. Clock verwenden kann - zumindest als Option 
(Jumper/Lötbrücke). Allerdings sind Treiber und AVR ca 30 mm Luftlinie 
auseinander und es kommt mir nicht so günstig vor, die 16 MHz quer über 
das Board zu routen - wirklich beurteilen kann ich die Problematik als 
Hobbyist aber auch nicht. Also: ist es überhaupt ein Problem so ein 
relativ hochfrequentes Signal quer über das Board zu legen? Gibt es 
"Tricks" beim layouten, die das Problem verringern (MAsseflächen/-traces 
um den Takt-Trace)?

Danke für alle Tipps!
Johnny

von hmmm (Gast)


Lesenswert?

Mach mal das Layout und poste es hier. Welche Motorentreiber verwendest 
du? Wenn du die Treiber erst programmieren musst um die CLK out zu 
bekommen wäre das wohl nicht optimal...

Lg

von Johnny (Gast)


Lesenswert?

hmmm schrieb:
> Wenn du die Treiber erst programmieren musst um die CLK out zu
> bekommen wäre das wohl nicht optimal...

Es handelt sich um einen L6470. Der Treiber gibt defaultmäßig 2 MHz aus, 
dann müsste man ihn über SPI auf 16 MHz stellen.

hmmm schrieb:
> Mach mal das Layout und poste es hier.

Naja, ich dachte ich frag mal vorher ...


Gruß
Johnny

von hmmm (Gast)


Lesenswert?

Alles klar. Wie läuft das in der uC Firmware ab, wenn du zuerst mit 2MHz 
tacktest und dann umschaltest auf 16MHz?

Das mit dem Layout macht weniger Probleme. Wie üblich eine ordentliche 
Trennung auf der Print von uC/SPI und der Motorversorgung.

Lg

von Conny G. (conny_g)


Lesenswert?

hmmm schrieb:
> Wie üblich eine ordentliche
> Trennung auf der Print von uC/SPI und der Motorversorgung.

Für mich aus Neugier bzw zur Weiterbildung: was heißt ordentliche 
Trennung?

von hmmm (Gast)


Lesenswert?

Zu einer ordentlicher Trennung gehört:
a: Versorgung trennen/gut entkoppeln.
b: Steuerung/uC und die "Leistungspfade" vom Motor und Versorung auf der 
Print trennen.

Lg

von Reinhard Kern (Gast)


Lesenswert?

Johnny schrieb:
> Also: ist es überhaupt ein Problem so ein
> relativ hochfrequentes Signal quer über das Board zu legen?

Das ist eben relativ, andere Boards arbeiten mit einigen 100 MHz, bei 16 
MHz ist die Leitungsführung noch nicht besonders kritisch; aber 
grundsätzlich sollte ein Taktsignal nicht dicht neben anderen 
empfindlichen Leitungen verlaufen. Tricks wie Abschirmung durch GND 
links und rechts können nicht schaden.

Gruss Reinhard

von holger (Gast)


Lesenswert?

>Der Treiber bietet die Möglichkeit,
>ein 16 MHz Clock-Signal auszugeben.

Mit bis zu 3% Fehler. UART im ATMega ist damit nicht mehr möglich.

von Wolfgang (Gast)


Lesenswert?

holger schrieb:
> Mit bis zu 3% Fehler. UART im ATMega ist damit nicht mehr möglich.

Warum nicht?
(3% * 9) Symbolzeiten ergibt einen Fehler von 27% der Symbolzeit beim 
letzten Bit. Das ist nicht schön, aber bei halbwegs sauberen Signalen 
überhaupt kein Problem.

von Georg G. (df2au)


Lesenswert?

Wolfgang schrieb im Beitrag #3294343:
> Nach dem Shannontheorem

Nur gut, dass die meisten Signale dumm sind und das nicht wissen. 16MHz 
sind etwas unruhiger Gleichstrom. Das kannst du gern über 50cm Backplane 
ziehen. Es sollte nur nicht allzu hochohmig sein.

Nach deiner Rechnung sind PCs mit Taktraten von 300MHz und mehr im 
Speicher unmöglich zu bauen, weil man die Leitungen nur 1mm weit routen 
kann.

16MHz sind in etwa 18m Wellenlänge. Die 5. Oberwelle (und damit sieht 
ein Signal schon ganz passabel aus) wäre dann gut 3m. Selbst mit 
Verkürzungsfaktor x auf der Platine ist alles jenseits von gut und böse.

von Frank K. (fchk)


Lesenswert?

Johnny schrieb:

> Es handelt sich um einen L6470. Der Treiber gibt defaultmäßig 2 MHz aus,
> dann müsste man ihn über SPI auf 16 MHz stellen.

Vorsicht. Wenn bei der Umschaltung Glitches auftreten, stürzt der AVR 
mit einer gewissen Wahrscheinlichkeit ab. Wenn der Controller mit dem 
internen RC-Controller anläuft und nach der Taktumschaltung auf den 
externen Takt geschaltet wird, wäre das kein Problem, aber keiner der 
AVRs, die ich bislang in den Fingern hatte, kann das, im Gegensatz zu 
den PICs, die das zumindest ab PIC18 können.

fchk

von hmmm (Gast)


Lesenswert?

Investiere einfach die 25 Cent für einen Quarz und die Lastkapazitäten. 
Das haut hin und erspart dir einen haufen Ärger. Oder bist du 
größentechnich so am Limit?

Lg

von Frank K. (fchk)


Lesenswert?

hmmm schrieb:
> Investiere einfach die 25 Cent für einen Quarz und die Lastkapazitäten.
> Das haut hin und erspart dir einen haufen Ärger. Oder bist du
> größentechnich so am Limit?

Selbst wenn - ein SMD-Quarz im 3mm*2mm Format plus zwei Cs im 0402 sind 
garantiert noch drin.

fchk

von Johnny (Gast)


Lesenswert?

Hallo nochmal!

Vielen Dank für die Hinweise!

hmmm schrieb:
> Investiere einfach die 25 Cent für einen Quarz und die Lastkapazitäten.

Ich denke ihr habt recht, ich lass' die Variante mit der externen Clock 
ganz. Ich werde ziemlich sicher mit den AVR internen 8 MHz auskommen, 
der Controller macht nur ein bißchen i2c und eben SPI zum Motortreiber. 
War nur so frei nach dem Motto "lieber den Magen verrenken als dem Wirt 
was schenken" - dachte mir halt wenn schon mal 16 MHz da sind ... Aber 
im Endeffekt macht das nur Umstände mit den unterschiedlichen Clocks 
beim Starten und beim Lauf. Also Danke nochmal für die 
Entscheidungshilfe :-)!

Gruß
Johnny

von hmmm (Gast)


Lesenswert?

Gute Entscheidung! Das erspart dir Bauchweh. :)
Jetzt gehts ans Layout....

Bitte poste deinen Entwurf. Bin gespannt!

Lg

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.