User Tools

Site Tools


Lab 1: Microcontroller programming setup

In this first exercise let's install the necessary tools and run an example program on a pre-assembled microcontroller board.

By the end of this exercise we should be able to compile the example project usb-rgb-ldr and program a copper board with it, then run the host side while the board runs its firmware.

  1. See uc for tool installation.
  2. Arrange a day/time for soldering your own ‘bronze’ board during the following week; see lab_2.
  3. Answer the questions below.


By next class, hand in (individually) attempts at answers to the following questions, which you may be able answer by reading the AVR32 Datasheet and AVR32 Technical Reference Manual. The datasheet contains usage information, while the technical reference has more information about implementation and architecture.

  1. How much flash/SRAM memory does the ATUC3B1256 have?
  2. Is there one instruction executed per clock cycle or does it require multiple clock cycles per instruction?
  3. What is the maximum system clock frequency, and the maximum clock frequency that allows single cycle access to the embedded memory?
  4. What is the power consumption at maximum clock frequency for the core?
  5. What is the oscillator start-up time from sleep?
  6. What is the “setup time” for the ADC?
  7. What is the ADC power consumption?
  8. What is the maximum PWM output frequency using the PWM module?
  9. What is the difference between local peripheral bus and GPIO peripheral bus driver (hint, look in the documentation installed with AVR32 Studio under UC3 Software Framework/GPIO)?
  10. What is the value of the pull-up resistor on the GPIO (when enabled)?
  11. Does the AVR32 have floating point hardware support?
  12. Does the AVR32 UC3B have a hardware multiplier? If so, how many clock cycles does it take and what is its resolution, i.e, how does it handle overflow of the 32 bit multiply?
  13. And does the AVR32 UC3B have DSP (Digital Signal Processing) instructions for multiplying, accumulating, and incrementing a pointer in one instruction?


dig/lab_1.txt · Last modified: 2012/02/24 06:29 by tobi