Hallo Leute,
Ich benutze einen AT32UC3C mit Atmelstudio7 und dazu das STK600.
Mein Ziel ist es das Teil an ein CAN Netz zu stecken und Daten davon zu
verarbeiten.
Möchte den MCU mit der maximalen Frequenz betreiben die noch sicher ist
(66MHz für die CPU).
Habe mit dem ASF Wizard alle benötigten Module heruntergeladen (CAN
software stack, SCIF System Control Interface und Generic Board
Support). Habe die maximale Taktung eingestellt hier der code dafür.
Und ja ich benutze PLL0 für den CAN und die CPU, habe nichts gefunden,
dass das wie eine schlechte Idee erscheinen lässt ;)
1 | sysclk_init();
|
2 |
|
3 | setup_gclk = scif_gc_setup(AVR32_SCIF_GCLK_CANIF,
|
4 | SCIF_GCCTRL_PLL0,
|
5 | AVR32_SCIF_GC_USES_PLL0,
|
6 | 4);
|
7 | scif_gc_enable(AVR32_SCIF_GCLK_CANIF);
|
dazu habe ich in conf_clock.h folgendes definiert:
1 | #ifndef CONF_CLOCK_H_INCLUDED
|
2 | #define CONF_CLOCK_H_INCLUDED
|
3 |
|
4 | #define CONFIG_SYSCLK_SOURCE SYSCLK_SRC_PLL0
|
5 |
|
6 | /* Fbus = Fsys / (2 ^ BUS_div) */
|
7 | #define CONFIG_SYSCLK_CPU_DIV 0
|
8 | #define CONFIG_SYSCLK_PBA_DIV 0
|
9 | #define CONFIG_SYSCLK_PBB_DIV 0
|
10 | #define CONFIG_SYSCLK_PBC_DIV 0
|
11 |
|
12 | #define CONFIG_USBCLK_SOURCE USBCLK_SRC_PLL0
|
13 |
|
14 | /* Fusb = Fsys / USB_div */
|
15 | #define CONFIG_USBCLK_DIV 1
|
16 |
|
17 | #define CONFIG_PLL0_SOURCE PLL_SRC_OSC0
|
18 |
|
19 | /* Fpll0 = (Fclk * PLL_mul) / PLL_div */
|
20 | #define CONFIG_PLL0_MUL 11
|
21 | #define CONFIG_PLL0_DIV 2
|
22 |
|
23 | /* Fpll1 = (Fclk * PLL_mul) / PLL_div */
|
24 | #define CONFIG_PLL1_MUL (48000000UL / BOARD_OSC0_HZ)
|
25 | #define CONFIG_PLL1_DIV 1
|
26 |
|
27 | #endif /* CONF_CLOCK_H_INCLUDED */
|
Mehr sollte der Doku zufolge nicht nötig sein! (zumindest finde ich nix)
Allerdings fängt der MCU nach dieser Konfiguration an sich komisch zu
verhalten (LEDs an den GPIOs blitzen nur kurz auf anstatt zu leuchten).
Lasse ich ihn mit standarteinstellungen laufen geht wieder alles.
Hat jemand ne Idee was da los ist?