Hallo!
Ich möchte meinen SAMD21G16 über das Atmel Studio programmieren. Nun
habe ich das Atmel Start Tool genutzt um das Blink Beispiel zu
modifizieren (SPI, I2C, USART etc. hinzugefügt.
Mir sind jetzt noch ein paar Sachen aufgefallen.
a) In der "Clock config" läuft die CPU nur mit 1Mhz (?). Leider findet
man im USB beispiel leider auch keine hinweise wie man die CPU so
konfiguriert, sodass sie mir ihren vollen 48Mhz läuft. Wie sollte es
aussehen? (Siehe Screenshots)
Standard = Standard GPIO Blink example (funktioniert)
Testweise = CPU mit 48Mhz betrieben (externer Crystal) funktioniert
nicht.
USB-Beispiel = selbst im USB Beispiel wird die CPU mit 1Mhz betrieben.
b) Soweit ich sehe exportiert Atmel Start keine ASF vorlage. Das problem
ist jedoch, das dieser Code nirgendwo dokumentiert ist! ASF "einfach"
importieren geht leider nicht.
Beispiel für den USART Port (eigentlich recht verständlich):
Initialisieren:
1 | void SERIAL_USART_PORT_init(void)
|
2 | {
|
3 |
|
4 | gpio_set_pin_function(PA17, PINMUX_PA17C_SERCOM1_PAD1);
|
5 |
|
6 | gpio_set_pin_function(PA18, PINMUX_PA18C_SERCOM1_PAD2);
|
7 | }
|
8 |
|
9 | void SERIAL_USART_CLOCK_init(void)
|
10 | {
|
11 | _pm_enable_bus_clock(PM_BUS_APBC, SERCOM1);
|
12 | _gclk_enable_channel(SERCOM1_GCLK_ID_CORE, CONF_GCLK_SERCOM1_CORE_SRC);
|
13 | }
|
14 |
|
15 | void SERIAL_USART_init(void)
|
16 | {
|
17 | SERIAL_USART_CLOCK_init();
|
18 | usart_sync_init(&SERIAL_USART, SERCOM1, (void *)NULL);
|
19 | SERIAL_USART_PORT_init();
|
20 | }
|
Und anwenden:
1 | struct io_descriptor *io;
|
2 | usart_sync_get_io_descriptor(&SERIAL_USART, &io);
|
3 | usart_sync_enable(&SERIAL_USART);
|
4 |
|
5 | io_write(io, (uint8_t *)"Hello World!", 12);
|
Leider findet man jedoch nirgendwo eine doku wie man denn jetzt bspw.
die Baudrate "on the fly" festlegt.
Atmel Start ist ja ganz nett, so habe ich bereits alle Treiber die ich
brauche an den dazugehörigen Pins initialisiert.
Ich habe das ändern der Baudrate in der "hpl_sercom_config.h" gefunden.
Aber gibt es auch irgendwo eine Doku dazu? Wie ist das ganze im
vergleich zu ASF einzuordnen?