architectures Harvard, von Neumann RISC, CISC microprocessor, microcontroller FPGA ALA memory registers SRAM DRAM EEPROM FLASH fuse peripherals A/D comparator D/A timer/counter/PWM USART USB ... word size 8 16 32 64 families 8051 PIC MSP AVR ARM STM32 vendors Octopart Digi-Key Mouser Newark Farnell processors ATtiny10 ATtiny45V ATtiny44 ATmega168 STM32F103 data sheets packages DIP SOT SOIC TSSOP TQFP MLF, CSP, BGA clocks RC (10%, 1% calibrated) ceramic (0.5%) quartz (50 ppm) in-system development ISP (header, pads, clip) bootloader JTAG, debugWire ICE programmers ISP AVRISP FabISP hello.ISP.44.cad board components traces interior firmware avrdude JTAG, debugWIRE Dragon assembly language hex file instruction set, opcodes mnemonics, directives, expressions avr-as gavrasm C AVR Libc GCC avr-libc, binutils-avr, gcc-avr WinAVR CrossPack host communication RS232 bit timing VT100/ANSI/ISO/ECMA terminal Kermit Minicom term.py FTDI cable libFTDI hello.ftdi.44.cad board components traces interior programming hello.ftdi.44.echo.c hello.ftdi.44.echo.c.make hello.ftdi.44.echo.interrupt.c hello.ftdi.44.echo.interrupt.c.make hello.ftdi.44.echo.asm hello.ftdi.44.echo.asm.make IDE AVR Studio AVR Eclipse Arduino C libraries + IDE + bootloader + board Fabkit Fabio hello.arduino.168.cad board components traces interior programming Blink.pde hardware/hello.arduino/boards.txt hello.arduino.168.blink.c hello.arduino.168.blink.make ATtiny Firefly Scratch Modkit Interpreters Python BASIC FORTH AVRSH debugging "printf" AVR Studio ddd, gdb, gdb-avr, avarice assignment read a microcontroller data sheet program your board to do something, in as many different programming languages and programming environments as possible