Hallo,
bin am rumspielen mit einem Microchip AVR128DB48 Curiosity Nano Board.
Allerdings funktioniert CFD nicht wie ich denke zu verstehen.
Auch der Bsp. Code funktioniert nicht.
https://github.com/microchip-pic-avr-examples/avr128db48-getting-started-with-xoschf/blob/master/getting-started-with-xoschf/CFD-on-XOSCHF/main.c
Eigentlich müßte die onboard Led PB3 in irgendeiner Art und Weise
takten, wenn ich das init vom externen Takt nicht ausführe. Richtig?
Der µC läuft dann mit internen Takt, default 4MHz, sehe ich auch am Pin
PB0. Soweit passt das schon. Nur entweder wird der CFD Interrupt nicht
ausgeführt oder was anderes stimmt noch nicht. Ideen?
mein Code
1
#define F_CPU 16000000UL
2
3
#include<avr/io.h>
4
#include<avr/interrupt.h>
5
6
voidCLOCK_XOSCHF_crystal_init(void);
7
voidCLOCK_CFD_XOSCHF_init(void);
8
9
staticinlinevoidinit_Leds(void)
10
{
11
PORTB.DIRSET=PIN3_bm|PIN0_bm;
12
PORTB.OUTSET=PIN3_bm|PIN0_bm;
13
PORTB.PORTCTRL=PORT_SRL_bm;
14
}
15
16
staticinlinevoidled0_toggle(void)
17
{
18
VPORTB.IN=PIN0_bm;
19
}
20
21
staticinlinevoidled3_toggle(void)
22
{
23
VPORTB.IN=PIN3_bm;
24
}
25
26
intmain(void)
27
{
28
// CLOCK_XOSCHF_crystal_init();
29
CLOCK_CFD_XOSCHF_init();
30
init_Leds();
31
32
sei();
33
34
while(1)
35
{
36
led0_toggle();
37
}
38
}
39
40
voidCLOCK_XOSCHF_crystal_init(void)
41
{
42
// Enable crystal oscillator with frequency range 16MHz and 4K cycles startup time
Veit D. schrieb:> Ideen?
Es gibt einen Simulator für den AVR128DB Klotz, ABER nur im MPLAB X.
Dann kannst du vielleicht besser rumspielen mit der Konfiguration und
schauen was die Interrupts so tun.
Veit D. schrieb:> { ; }
Meine "optisch gut erkannbare" Variante dazu ist
while (...) continue;
Hallo,
ich kann mir noch keinen Reim drauf machen. CFD hängt laut Blockdiagram
12.2.1 zwischen den Clock Selektoren und dem Main Clock Switch. CFD
sieht damit per default den onboard Quarztakt. Jetzt habe ich
XOSCHFCTRLA so konfiguriert das nicht Crystal sondern Extclock aktiv ist
und noch disabled. Also bewusst falsch. Damit sollte CFD keinen Takt von
extern sehen und seinen Interrupt auslösen. Ergebnis, es tut sich
dennoch nichts.
1
voidCLOCK_XOSCHF_crystal_init(void)
2
{
3
// bewusst falsch und disabled
4
CPU_CCP=CCP_IOREG_gc;
5
CLKCTRL.XOSCHFCTRLA=CLKCTRL_SELHF_EXTCLOCK_gc;
6
}
Edit:
MPLAB X installieren wollte ich eigentlich nicht nochmal.
Wenn mir nichts weiter einfällt, vielleicht ... :-)
Danke.
Hallo,
nochmal gelesen und nachgedacht. :-)
Vielleicht löst der Interrupt nur einmalig aus pro Ereignis.
Also external Crystal enable und disable gemacht. Siehe da, es tut sich
was. Blinkt zwar nicht schön regelmäßig, stockt manchmal, aber optisch
aktiv. Nimmt man das delay zu weit runter tut sich nichts mehr. Ich
vermute CFD fragt nicht ständig die Quelle ab sondern aller paar
unbekannten [ms].
Hängt vielleicht auch mit dem umchalten auf intern 4MHz zusammen o.ä.
Pin PB0 taktet dagegen sauber weiter als wenn nichts wäre.
Test beendet. :-)
1
#define F_CPU 16000000UL
2
3
#include<avr/io.h>
4
#include<util/delay.h>
5
#include<avr/interrupt.h>
6
7
voidenable_CLOCK_XOSCHF_crystal(void);
8
voiddisable_CLOCK_XOSCHF_crystal(void);
9
voidCLOCK_CFD_XOSCHF_init(void);
10
11
staticinlinevoidinit_Leds(void)
12
{
13
PORTB.DIRSET=PIN3_bm|PIN0_bm;
14
PORTB.OUTSET=PIN3_bm|PIN0_bm;
15
PORTB.PORTCTRL=PORT_SRL_bm;
16
}
17
18
staticinlinevoidled0_toggle(void)
19
{
20
VPORTB.IN=PIN0_bm;
21
}
22
23
staticinlinevoidled3_toggle(void)
24
{
25
VPORTB.IN=PIN3_bm;
26
}
27
28
intmain(void)
29
{
30
disable_CLOCK_XOSCHF_crystal();
31
CLOCK_CFD_XOSCHF_init();
32
init_Leds();
33
34
sei();
35
36
while(1)
37
{
38
enable_CLOCK_XOSCHF_crystal();
39
led0_toggle();
40
_delay_ms(15);
41
disable_CLOCK_XOSCHF_crystal();
42
led0_toggle();
43
_delay_ms(15);
44
}
45
}
46
47
voidenable_CLOCK_XOSCHF_crystal(void)
48
{
49
// Enable crystal oscillator with frequency range 16MHz and 4K cycles startup time
Hallo,
die AVR128DBxx sind zwar laut Microchip in Produktion und bei Mouser
gelistet aber noch nicht bestellbar. Das einzigste was laut Microchip
möglich wäre direkt bei denen Samples bestellen. Habe gerade geschaut.
Ich könnte dir allerdings auch ein Curiosity-Board verkaufen.
Beitrag "[V] Microchip Curiosity Nano Boards mit AVR128DB48 / ATmega4809"
Wollte zwar noch etwas warten. Ich würde auf 10,- pro Board runtergehen.
an Wilhelm M.:
Ich habe, wie auch das 'AVR128DB48 Curiosity Nano Evaluation kit',
AVR128DB28-I/SP bei 'microchip DIRECT' (merkwürdige Schreibweise)
bestellt, am 13. Es läuft z.Z. aber etwas chaotisch dort: Ersteres war
mit Lieferdatum 22. avisiert, kam am 16., also letzten Freitag, an,
allerdings die alte Revision 2, 'A09‑3372/02'. Bei Letzteren wechselt
ständig das "Estimated Ship Date", per E-Mail:
14. 08:44: "03-Dec-2020"
15. 10:44: "06-Mar-2021"
15. 23:14: "04-Feb-2021"
16. 23:14: "30-Oct-2020"
Dass als VAT 19 % berechnet werden, war zu erwarten.
Hallo,
woran erkennst du die Revision?
Auf der Curiosity Nano Schachtel steht A09-3336/2.
Das bezieht sich bestimmt auf das Board und nicht auf den µC.
Auf dem µC steht AVR128DB48 2020 9JR.
Laut Errata gibts nur Revision 4 und 5 wobei 4 nie ausgeliefert wurde,
also bleibt nur Revision 5 übrig.
19% MwSt. wurden mir auch berechnet, etwas frech.
Edit:
Alles klar, ich nehme alles zurück. In der Doku zum Board stehts drin.
Board Rev.2 mit Chip Rev.4. Bin ich jetzt nicht davon ausgegangen wenn
man das Chip Errata liest. Etwas ärgerlich.
> woran erkennst du die Revision?
Schrieb ich doch:
> 'A09‑3372/02'
Das steht auf dem Aufkleber der Platine. Und im User-Guide steht:
6.1 Identifying Product ID and Revision
...
6.2 Revision 3
AVR128DB48 silicon revision A5 or later is mounted on this revision of
the board.
6.3 Revision 2
Revision 2 is the initially released board revision.
AVR128DB48 silicon revision A4 is mounted on this revision of the board.
Hallo,
okay. Erklärt vielleicht mein Problemchen mit dem CFD in der Rev.4
Errata 2.5.1 wenn ein Fehler im Status Bit ist mit external Clock.
Kann man sich bei denen beschweren das die alte Revisionen ausliefern?
Also nehmen die das ernst oder lachen darüber?
> Also nehmen die das ernst oder lachen darüber?
Weiß ich nicht, vielleicht wundern sie sich auch.
Was mich betrifft, so bin ich mit dem Board zufrieden, das Allermeiste
lässt sich ja austesten. Noch zufriedener wäre ich, wenn denn die
28-PDIP tatsächlich Anfang November kämen (which I am doubtful of).
an Veit Devil:
Ich habe es mal ausprobiert, und da ich mich glaube zu erinnern, dass
Sie, zumindest früher, auch in Assembler programmieren, hänge ich das
Programm an: die LED auf der Platine ist zunächst aus, ein Antippen von
J215 mit einem Schraubendreher schaltet sie ein.
Noch eine Spielerei (bevor ich mich verabschiede): schnelles Blinken
zeigt den Normalbetrieb (16 MHz) an, ein paarmal langsam blinken den
"Notbetrieb" (4 MHz).
Hallo,
Danke für den Test, habe aber mit Assembler noch nichts gemacht. :-)
Habe versucht es zu übersetzen, bin auch sicher das es genau 1:1
nachgebaut ist, funktioniert leider nicht wenn ich J215 berühre. Hatte
auch noch deine Bits statt den Defines probiert.
1
#include<avr/io.h>
2
#include<avr/interrupt.h>
3
4
intmain(void)
5
{
6
VPORTB_DIR=0x03;
7
VPORTB_OUT=0x03;
8
9
// enable CFD Interrupt
10
CPU_CCP=CCP_IOREG_gc;
11
CLKCTRL.MCLKINTCTRL=CLKCTRL_CFD_bm;
12
13
// enable crystal oscillator with frequency range 16MHz
Guten Morgen,
die LED ist an B3 angeschlossen, folglich alle drei '0x03' ersetzen
durch '0x08' bzw. '(1<<3)'.
cbi und sbi greifen auf die Bitposition zu: 'Clear Bit in I/O
Register' bzw. 'Set Bit ...'.
> Funktioniert.
Prima.
Sonst wäre es ja auch kein CFD, sondern ein CDF - Clock Detection
Failure.
Aber eine andere Frage: Haben Sie ein besseres Datenblatt der
AVR128DB-Serie, oder wie kommen Sie an diesem äußerst lästigen 'Content
Copying: Not Allowed' vorbei? Ich kann nicht mal eben zitieren,
geschweige denn diese ellenlangen Variablennamen schnell mit copy&paste
ins Programm übernehmen.
Hallo,
wollen wir nicht mal langsam Du sagen? :-) Ich bin Veit.
Ich arbeite parallel mit dem Headerfile. Aber man kann das pdf
problemlos hier https://smallpdf.com/de/pdf-passwort-entfernen von allen
befreien lassen. Musst nur das große Indianerehrenwort abnicken. :-)
Abschließend Sicherheitshalber nochmal durch den Virenscanner jagen.
https://www.virustotal.com Alles clean.
Guten Morgen, Veit,
ganz herzlichen Dank für den Tipp, hat geklappt. Wobei ich mich
allerdings frage, weshalb dabei aus 5.5 MB 6.8 werden, aber erstmal
egal.
Welcher Teufel hat bloß Microchip geritten, plötzlich Datenblätter in
dieser Art zu beschränken, das gab's doch früher nicht.
Was nun den anderen Punkt betrifft, so kann ich ja schlecht sagen
"Hallo, ich bin der S." - aber Spaß beiseite, ich tue mich schwer mit
der ubiquitären Duzerei und bleibe lieber beim 'Sie', und solange sich
auch der Forumsbetreiber noch nicht gänzlich davon verabschiedet hat
(siehe unten), fühle ich mich in nicht allzu schlechter Gesellschaft.
Das soll aber unsere Freundschaft nicht trüben, schreiben Sie ruhig
'du'; mir jedoch geht es einfach nicht aus den zehn Fingern.
S. Landolt schrieb:>> Also nehmen die das ernst oder lachen darüber?>> Weiß ich nicht, vielleicht wundern sie sich auch.> Was mich betrifft, so bin ich mit dem Board zufrieden, das Allermeiste> lässt sich ja austesten. Noch zufriedener wäre ich, wenn denn die> 28-PDIP tatsächlich Anfang November kämen (which I am doubtful of).
Gerade kam die Mail, dass die AVR128DB32 am 06.01.2021 ausgeliefert
werden sollen :-(
> ... die AVR128DB32 am 06.01.2021 ...
Tja, schlecht.
Bei mir nicht Neues, also sollte noch "30-Oct-2020" gelten - aber bei
meiner doch eher ungebräuchlichen Gehäusevariante PDIP ...
S. Landolt schrieb:> Tja, schlecht.> Bei mir nicht Neues, also sollte noch "30-Oct-2020" gelten - aber bei> meiner doch eher ungebräuchlichen Gehäusevariante PDIP ...
Warum hast du keine Samples bestellt, das ging bei mir deutlich
schneller.
Nach 3/4 Wochen langen die PDIP's im Brifkasten. Jetzt musss ich nur
noch GCC 10.x dazu bringen die Klötzer zu mögen.
Von Mplabx mit AVR bin ich fast geheilt, da geht LTO nicht ohne prof
Licence. Dreist!
AS7 ist bei mir viel stabiler und performater als Mplabx.
Hallo,
ich habe zu der Dateigröße nur eine Vermutung. Das PW wird nicht durch
bearbeiten von paar Bits entfernt, es werden alle Seiten durchgegangen
und das pdf neu abgespeichert. Jetzt vermute ich das dabei vorbeugend
eine höhere Qualitätsstufe für die Komprimierung angewendet wird, um
keine krassen/zusätzlichen Verluste für die eingebetteten Bilder zu
erhalten. Das ist der Nachteil vom nochmaligen speichern mit weniger
Komprimierung. Größere Dateigröße ohne Detailgewinn.
Apollo M. schrieb:> Jetzt musss ich nur noch GCC 10.x dazu bringen die Klötzer zu mögen.
Wenn ich auch einmal etwas zurückgeben darf. Ich habe mir dafür 3
Batchdateien gebaut.
Im Bild sieht man meine Ordnerstruktur.
Die entpackten DevicePacks und den Ordner von der Toolchain.
Jetzt muss man nur noch in allen .bat Files in den ersten beiden Zeilen
die Pfade/Ordnername vom DevicePack und seinem Toolchain Ordner ändern.
Danach alle .bat ausführen lassen. Zum Schluss noch die µC in die io.h
eintragen.
1
/* begin new AVR128DBxx */
2
#elif defined (__AVR_AVR128DB28__)
3
# include <avr/ioavr128db28.h>
4
#elif defined (__AVR_AVR128DB32__)
5
# include <avr/ioavr128db32.h>
6
#elif defined (__AVR_AVR128DB48__)
7
# include <avr/ioavr128db48.h>
8
#elif defined (__AVR_AVR128DB64__)
9
# include <avr/ioavr128db64.h>
10
/* end new AVR128DBxx */
Wenn die µC irgendwann im avr-gcc schon eingebaut sind, ist das kopieren
der specfiles nicht mehr notwendig. Darüber weiß Johann mehr wie ich.
:-)
Wer die .bat erstmal trocken testen möchte, schreibt in die Zeile
Optionen noch ein '/L' rein und schaut sich die Ausgaben oder das
Logfile an.
Hallo,
weil jemand nach einer Bezugsquelle fragte. TME hat mehrere AVR128DA und
drei verschiedene AVR128DB (28, 48 und 64 Pin) auf Lager laut deren
Anzeige. Filter "AVR128" und "auf Lager" setzen.