wie ist das mit den 16/20MHz beim Atmega4809

OP #6309126
Lesenswert?

der Atmega4809 hat einen internen RC-Oszillator, der per Fuses bzw. per 
Software beeinflusst werden kann. Im Datenblatt steht 16/20MHz. Leider 
blieb mir bisher verborgen wie zwischen 16 und 20MHz umgeschaltet werden 
kann.

Mit dem Befehl CLKCTRL_MCLKCTRLA = CLKCTRL_CLKSEL_OSC20M_gc;  soll man 
20MHz einstellen können. Um die tatsächlich erzeugte Frequenz zu messen 
stelle ich mit der Zeile CLKCTRL_MCLKCTRLA = 0x80; laut Datenblatt 20MHz 
ein und setze CLKOUT aktiv. Am Pin kamen jedoch nur 16MHz (~62ns) an.

Wie kann man auf die 20MHz kommen?

In der iom4809.h fand ich keinen Hinweis wie man 16MHz einstellen kann. 
Und doch kommen 16 MHz statt der erwarteten 20MHz an.

Wer kann das Rätsel lösen?

Gruss
Matthias
Beitrag #6309191 wurde von einem Moderator gelöscht.
Gast #6309212
Lesenswert?

Wunderer schrieb:
> Matthias W. schrieb:
>> Wie kann man auf die 20MHz kommen?
>
> Matthias W. schrieb:
>> Wer kann das Rätsel lösen?
>
> Seltsam ... dass der Hersteller das ins Datenblatt schreibt?
>
> Da kommt keiner drauf.

Naja, es kommt darauf an, welches Datenblatt benutzt wird. Es gibt da 
neue und überarbeitete, in denen die Hälfte fehlt, oder der 
Vorgängerversion widerspricht. Insofern ist die Frage: Was steht denn im 
Datenblatt eine zunehmend blöde.
Gast #6309256
Lesenswert?

Matthias W. schrieb:
> Das müsste dann ggf. auch mit AVRDUDE gehen oder einem Tool
> das darauf aufsetzt?

Bloss nicht das Atmel Original Tool verwenden! Das könnte
zu einfach sein. Da würde einem das Schreiben von Kommando-
zeilen verwehrt bleiben und man dürfte sich auch nicht mit
der fehlerbehafteten Umrechnung von Bits in Hexzahlen
herumschlagen.
Beitrag #6309262 wurde von einem Moderator gelöscht.
Gast #6309267
Lesenswert?

Georg M. schrieb:
> Tatenblatt schrieb im Beitrag #6309262:
>> Bezahlst Du mir und dem TO jeweils ein Atmel-Original Tool?
>
> Was kostet denn das Atmel Studio 7?

Nerven.

Gegenfrage, Herr Schlauberger: Was kostet ein Atmel-Programmiergerät, 
das vom
Atmel-Studio 7 unterstützt wird?
Gast #6309291
Lesenswert?

Matthias W. schrieb:
> welches sollte ich denn nun nutzen? Hast Du einen Link auf die Fassung
> die Dir half?

Das vollständige Datenblatt des interessierenden uCtrl ist ein 
unabdingbares MUSS bevor man sich irgendwie mit uCtrl-Software oder 
uCtrl-Hardware beschäftigt.

Microchip stellt alles zur Verfügung: Im Fall des ATmega4809 in einer 
ersten zweigeteilten, eher ungeeigneten Fassung, seit Anfang 2020 in 
einer neuen Version.

Google - Microchip - Atmega4809 :
*******************************
http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega4808-09-DataSheet-DS40002173B.pdf

https://www.microchip.com/wwwproducts/en/ATMEGA4809#additional-features
[Documents] liefert auch Application-Notes

...
Beitrag #6309337 wurde von einem Moderator gelöscht.
Beitrag #6309340 wurde von einem Moderator gelöscht.
Gast #6309362
Lesenswert?

Moby schrieb im Beitrag #6309337:
> Schon die Anzahl der Leitungen unterscheidet sich. PDI kommt mit einer
> extra CLK Leitung daher, UPDI ist bidirektoral auf nur 1 Datenleitung...

Ja scheint so zu sein.

UPDI ist nicht gleicht PDI, der AVR ISP MKII dürfte es zwar
von der Hardware her können aber an der Firmware wird sich
wohl nichts mehr dahingehend tun.
OP #6309934
Lesenswert?

Tatenblatt schrieb:
> es kommt darauf an, welches Datenblatt benutzt wird.

offensichtlich !

im "Family Data Sheet - megaAVR® 0-series" DS40002015C von 2019 ist der 
Punkt 7.8.2.3 Oscillator Configuration nicht enthalten. Auch auf S.55 
steht nichts dazu.

im "48-Pin Data Sheet – megaAVR® 0-series" DS40002016C von 2019 gibt es 
auch keinen Punkt 7.8.2.3. Auf S.55 dazu nichts.
Gast #6310029
Lesenswert?

Georg M. schrieb:
> Es ist schon eigenartig, dass man zwischen 20MHz und 32kHz
> umschalten kann

Sind eben auch physikalisch verschiedene Taktquellen.

>nicht aber zwischen 20MHz und 16MHz.

Immerhin lassen sich während der Laufzeit 11 verschiedene Vorteiler 
zuschalten und auch ein Tuning via OSC20MCALIBA/B vornehmen. Das sollte 
doch alle Ansprüche an eine Taktänderung zur Laufzeit erfüllen

Die Vorfestlegung auf 20/16MHz geht doch im wesentlichen auf die 
Festlegung von Baudraten im Design zurück und beides ist halt schon im 
voraus: festgelegt!
Gast #6310034
Lesenswert?

Georg M. schrieb:
> Es ist schon eigenartig, dass man zwischen 20MHz und 32kHz umschalten
> kann, nicht aber zwischen 20MHz und 16MHz.

Das finde ich nicht. 16/20 MHz ist die Option für ein und denselben 
internen Oszillator. Die Umschaltung der Taktquelle per Programm ist 
eine andere Baustelle. Da kann man sogar auf einen externen Takt 
umschalten.

Wenn das Teil mit 20 MHz läuft, sähe ich in 16 MHz keinen Vorteil.
Der "Main Clock Prescaler" ist ja jederzeit umstellbar.
Gast #6310120
Lesenswert?

Matthias W. schrieb:
> Wenn ich eine
> Frequenz von 12MHz nutzen will, so geht das nicht. Denn mit Teiler 2
> kommt ich von 20MHz auf 10 und nicht auf 12.

Nur mit 16 MHz und ganzzahligem Teiler kommst Du auch nicht auf 12 MHz.

Moby schrieb:
> Immerhin lassen sich während der Laufzeit 11 verschiedene Vorteiler
> zuschalten und auch ein Tuning via OSC20MCALIBA/B vornehmen. Das sollte
> doch alle Ansprüche an eine Taktänderung zur Laufzeit erfüllen

Das würde ich auf jeden Fall probieren. Laut Datenblatt läßt sich der 
int. Oszillator zwar recht grob aber doch deutlich und ausreichend 
linear "verstimmen". Fig. 5-67 im Datenblatt.
Gast #6310139
Lesenswert?

Matthias W. schrieb:
> Nur leider sind die Teiler nicht immer so genial.

Wünschen kann man sich vieles nur müssen eben in der Praxis leider immer 
irgendwelche Kompromisse gemacht werden.
Im Fall des Falles muss man einen anderen Controller nehmen.

> Wenn ich eine
> Frequenz von 12MHz nutzen will, so geht das nicht. Denn mit Teiler 2
> kommt ich von 20MHz auf 10 und nicht auf 12. Ich muss dann also einen
> Quarz verbauen.

Nur mal so aus Interesse: Was wäre an 12MHz so begehrenswert? Jenseits 
10MHz gibts bei diesem Controller halt nur noch 16 und 20 im Angebot.
OP #6310199
Lesenswert?

Moby schrieb:
> Was wäre an 12MHz so begehrenswert?

laut Datenblatt S.477 kann der Atmega4809 bei 3.6V 14MHz und bei 3V 
10MHz. Daher sind bei 3.3V wohl 12MHz zu erwarten. Nur kann man die eben 
nicht mit dem internen Oszillator und dem Teiler /2 darstellen. Es sei 
denn man versucht es mit Kalibrierwerten hinzubiegen was ich im ersten 
Ansatz nicht machen wollte.
(Firma: L-E-A) #6310219
Lesenswert?

Wunderer schrieb:
> Georg M. schrieb:
>> Das ist kein UPDI-Programmer.
>
> Doch, nur dass es früher nur PDI Interface genannt wurde.
> Mit dem genannten Interface (das ein Clone zum Original ist)
> kann man zwar nicht debuggen, aber programmieren.

Quatsch! PDI ist eine synchrone 2-Draht-Schnittstelle, Daten und Takt 
verwenden getrennte Leitungen. UPDI ist ein asynchrones 1-Draht-Format.

Mit einem FT230x und ein paar Gattern habe ich mir einen UPDI-Programmer 
gebaut, der sogar echtes HV-Programming beherrscht und mit 
Target-Spannungen von 1,8V bis 5V arbeitet.
Den Schaltplan findet man auf 
https://www.dr-bosch.com/bilder/elektronik/updi230x.htm
Die Beschreibung auf 
https://www.dr-bosch.com/elektronik_mikrocontroller.php
(ganz nach unten scrollen).

Als Software (Linux) habe ich diesen Code verwendet:
https://github.com/Polarisru/updiprog
der für die HV-Programmierung geringfügig ergänzt werden muss.

Grüßle
Volker
Gast #6310227
Lesenswert?

Matthias W. schrieb:
> Moby schrieb:
> Was wäre an 12MHz so begehrenswert?
>
> laut Datenblatt S.477 kann der Atmega4809 bei 3.6V 14MHz und bei 3V
> Daher sind bei 3.3V wohl 12MHz zu erwarten.

OK. Du willst also bei 3,3V das Maximum nutzen können. Ohne externen 
Takt sind wir hier bei 10MHz. Daran ist leider nichts zu ändern. Bei 
dieser Gelegenheit aber noch ein Tipp: Der neue (auch in schmalem DIP) 
lieferbare AVR128DAxx schafft seine bis 24 MHz bereits mit jeder 
Betriebsspannung, das dürfte wohl zukünftig Standard werden.
Beitrag #6310436 wurde von einem Moderator gelöscht.
Gast #6313000
Lesenswert?

Matthias W. schrieb:
> Moby schrieb:
> ab immerhin 1,8V bis 5,5.
>
> leider habe ich im vorläufigen Datenblatt keine Diagramme zum
> Strombedarf gesehen. Auf S.562 steht: 4.7mA bei 24MHz und 1.1mA bei
> 4MHz. Leider ist da keine Spannung angegeben. Also wohl bei 1.8V?

Gute Frage. Vorläufig steht wohl auch für unvollständig. Evt. könnte ich 
das mal ausmessen...
Beitrag #6313414 wurde von einem Moderator gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren