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
Siehe Datenblatt unter: 7.8.2.3 Oscillator Configuration
akt. Datenblatt Seite 55
1 | OSCCFG |
2 | |
3 | 0x0 Reserved |
4 | 0x1 Run at 16 MHz |
5 | 0x2 Run at 20 MHz |
6 | 0x3 Reserved |
Matthias W. schrieb: > In der iom4809.h fand ich keinen Hinweis wie man 16MHz einstellen kann. Die Umschaltung erfolgt durch Ändern der Fusebits per UPDI. Eine Umschaltung zur Laufzeit ist nicht möglich.
:
Bearbeitet durch User
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.
Beitrag #6309191 wurde von einem Moderator gelöscht.
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.
Peter D. schrieb: > Die Umschaltung erfolgt durch Ändern der Fusebits per UPDI. Danke Peter. Das müsste dann ggf. auch mit AVRDUDE gehen oder einem Tool das darauf aufsetzt?
Tatenblatt schrieb: > Naja, es kommt darauf an, welches Datenblatt benutzt wird. welches sollte ich denn nun nutzen? Hast Du einen Link auf die Fassung die Dir half?
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.
> welches sollte ich denn nun nutzen? Hast Du einen Link auf die Fassung > die Dir half? Das hier stimmt (bei dem, was ich an dem Kntroller benutzt habe) https://www.microchip.com/wwwproducts/en/ATMEGA4809
Wunderer schrieb: > 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! Bezahlst Du mir und dem TO jeweils ein Atmel-Original Tool? Nein? Dann halt die Fresse und verpiss Dich hier!
Ergänzung: Es gibt Leute, die verstehen's nur, wenn die Worte klar und unmißverständlich sind.
Tatenblatt schrieb: > Bezahlst Du mir und dem TO jeweils ein Atmel-Original Tool? Was kostet denn das Atmel Studio 7?
Georg M. schrieb: > Tatenblatt schrieb: >> 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?
Tatenblatt schrieb: > Was kostet ein Atmel-Programmiergerät, > das vom Atmel-Studio 7 unterstützt wird? 14.38 Euro https://www.ebay.de/itm/AVRISP-AVR-ISP-mkII-Programmierer-AVRISPmkII-ATAVRISP2-konforme-MD-FU/254618730099?hash=item3b48757e73:g:w4MAAOSwrwhbdAD4
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 ...
Tatenblatt schrieb: > Dann halt die Fresse und verpiss Dich hier! Jetzt hab ich immer noch nicht die Fresse gehalten und mich immer noch nicht verpisst! So ein Mist.
Tatenblatt schrieb: > Was kostet ein Atmel-Programmiergerät, > das vom > Atmel-Studio 7 unterstützt wird? ATmega4809 Curiosity Nano kostet bei Mouser 13,89 € (+MwSt.)
Wunderer schrieb: > 14.38 Euro > > https://www.ebay.de/itm/AVRISP-AVR-ISP-mkII-Programmierer-AVRISPmkII-ATAVRISP2-konforme-MD-FU/254618730099 Das ist kein UPDI-Programmer.
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.
Wunderer schrieb: > kann man zwar nicht debuggen, aber programmieren. Dann gehts noch billiger: ATTINY416-XNANO kostet bei Mouser 8,22 € (+MwSt.), bei Digi-Key 8,06 € (+MwSt.).
Beitrag #6309337 wurde von einem Moderator gelöscht.
Beitrag #6309340 wurde von einem Moderator gelöscht.
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.
Für UPDI braucht ihr nur ein UART-USB converter und dann PyUPDI
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.
Wunderer schrieb: > Bloss nicht das Atmel Original Tool verwenden! Das könnte > zu einfach sein. welches Originaltool meinst Du denn? Das was beim Studio 7 dann aufgerufen wird? Ich nutze bewusst kein Studio 7 weil mein Laptop älter ist.
A. B. schrieb: > Das vollständige Datenblatt ist ein unabdingbares MUSS bevor > man sich irgendwie mit uCtrl-Software oder uCtrl-Hardware beschäftigt. ja. genau deswegen hatte ich das 2019 heruntergeladen. Nur war auf den 457 Seiten dieses wichtige Thema nicht zu finden. > seit Anfang 2020 in einer neuen Version. Danke für den Hinweis.
Es ist schon eigenartig, dass man zwischen 20MHz und 32kHz umschalten kann, nicht aber zwischen 20MHz und 16MHz.
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!
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.
m.n. schrieb: > Der "Main Clock Prescaler" ist ja jederzeit umstellbar. ja. Nur leider sind die Teiler nicht immer so genial. 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.
Matthias W. schrieb: > Ich muss dann also einen Quarz verbauen. Quarz geht nur für RTC EXTCLK nur mit externem Oszillator ..
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.
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.
Matthias W. schrieb: > Ich muss dann also einen > Quarz verbauen. Wenn dann einen entsprechend extern generierten Takt. Externe Quarze werden hier nur 32kHz Typen unterstützt! Aber alles kein Drama, hochfrequente Quarze sind für die meisten Anwendungen neuerer AVR Controller längst überflüssig.
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.
Moby schrieb: > Externe Quarze werden hier nur 32kHz Typen unterstützt! also ist kein 12MHz Quarz so wie beim LPC1343 da möglich? man kann dann natürlich einen MEMS-Oszillator nehmen.
m.n. schrieb: > Laut Datenblatt läßt sich der > int. Oszillator zwar recht grob aber doch deutlich und ausreichend > linear "verstimmen". Fig. 5-67 im Datenblatt. Danke für den Hinweis.
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
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.
Moby schrieb: > 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. Danke für den Hinweis. Hier ist das vorläufige Datenblatt: http://ww1.microchip.com/downloads/en/DeviceDoc/40002183A.pdf das schaue ich mal an.
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?
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.
AVR128DA28, I [mA]:
1 | f [MHz] 24 4.0 |
2 | U [V] |
3 | 5.0 4.75 1.15 |
4 | 3.0 4.60 1.05 |
5 | 2.0 4.25 0.90 |
S. Landolt schrieb: > AVR128DA28, I [mA]: vielen Dank ! das sieht ja so aus als ob der Strom kaum spannungsabhängig ist. Interessant !
gerade bei 4809 muss man immer nachgucken ob das vorhandene Datenblatt schon veraltet ist. Auch heute war mal wieder eine PCN im Mailverteiler: https://www.microchip.com/mymicrochip/NotificationDetails.aspx?pcn=SYST-19FKNH955 Anselm
Anselm schrieb: > gerade bei 4809 muss man immer nachgucken ob das vorhandene Datenblatt > schon veraltet ist. Danke Anselm !
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.