UC3 support in Demos (USB keyboard (device) demo for AT32UC3B)

13 views
Skip to first unread message

Edocecrous Yes

unread,
Nov 3, 2021, 2:41:43 AM11/3/21
to LUFA Library Support List

Hi,

Is it just me, or there are really no USB Keyboard demos for the Atmel UC3 MCUs?
lufa-master/Demos/Device/ClassDriver/Keyboard/
I check the doxygen documentation, and it doesn't list the UC3 family.

Can someone point me to the right direction?
I need to set up an AT32UC3B to act as a standard USB keyboard, and sen keystrokes to a host (PC/RPI).

All help is appreciated!
thx,
Edo

Dean Camera

unread,
Nov 19, 2021, 8:03:00 PM11/19/21
to lufa-s...@googlegroups.com, Edocecrous Yes

Hi Edo,

The UC3 chips were never very well supported, as most people that chose to use them when they were new needed a stack that was more capable than what LUFA was designed for (I made a number of tradeoffs for size and resources that would adversely impact a full featured 32-bit processor). I did have the keyboard demos working at one point however - you should just need to add in some additional SetupHardware() code for the UC3:

    #elif (ARCH == ARCH_UC3)
        /* Start the master external oscillator which will be used as the main clock reference */
        AVR32CLK_StartExternalOscillator(0, EXOSC_MODE_8MHZ_OR_MORE, EXOSC_START_0CLK);

        /* Start the PLL for the CPU clock, switch CPU to it */
        AVR32CLK_StartPLL(0, CLOCK_SRC_OSC0, 12000000, F_CPU);
        AVR32CLK_SetCPUClockSource(CLOCK_SRC_PLL0, F_CPU);

        /* Start the PLL for the USB Generic Clock module */
        AVR32CLK_StartPLL(1, CLOCK_SRC_OSC0, 12000000, F_USB);

        /* Initialize interrupt subsystem */
        INTC_Init();
        INTC_RegisterGroupHandler(INTC_IRQ_GROUP(AVR32_USBB_IRQ), AVR32_INTC_INT0, USB_GEN_vect);    
    #endif

These days I would *STRONGLY STRONGLY STRONGLY* advise you not to start a greenfields project using UC3 family; the GCC compiler for it was always a buggy mess, and eventually completely discontinued a few years ago. The only compilers for it now are either positively ancient, or commercial with propritary extensions. ARM parts are widely available from many vendors, and don't carry the enormous list of errata, old fabrication processes and/or wonker toolchains.

- Dean

--
You received this message because you are subscribed to the Google Groups "LUFA Library Support List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lufa-support...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/lufa-support/52b7def6-a128-4350-8a12-f58cdf05065cn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages