-
architectures
- von Neumann, Harvard
- RISC, CISC
- microprocessor, microcontroller
- GPU, TPU
- FPGA, TinyFPGA, ASICs, difference
-
memory
- registers (instructions)
- SRAM (fast)
- DRAM (big)
- EEPROM (non-volatile)
- FLASH (programs, strings)
- fuse (configuration)
-
peripherals
- ports
- A/D
- comparator
- D/A
- timer/counter/PWM
- USART
- USB
- ...
-
word size
- 8
- 16
- 32
- 64
-
families
-
Articles
-
vendors
-
- DIP
- SOT
- SOIC
- TSSOP
- TQFP
- LQFP
- BGA
-
in-system development
- ISP (AVR)
- UPDI (AVR 0,1-series)
- software
-
pyupdi install: pip3 install intelhex pylint pyserial
program: python3 pyupdi.py -d your_processor -c your_port -b your_baud_rate -f your_hex -v
-
hardware
-
- software
- JTAG (ARM)
- software
- [OpenOCD]j(http://openocd.org/)
- EDBG program: edbg -b -t target_type -pv -f binary_file read fuses: edbg -b -t target_type -F r,*,file_name write fuses: edbg -b -t target_type -F w,high_bit:low_bit,bit_value
- hardware
- software
- bootloader (all)
-
assembly language
- hex file
- instruction set, opcodes
- mnemonics, directives, expressions
- avr-as
- inline
-
C
-
IDE
-
clocks
- types
- RC (10%, 1% calibrated)
- ceramic (0.5%)
- quartz (50 ppm)
- PLL
- Crystal, Resonator, difference
- types
-
host communication
-
- hello.t412.blink components traces interior
timing blink.ino video - hello.t412.echo components traces interior
UART echo.ino video - Pinout (for Arduino IDE)
- hello.t412.blink components traces interior
-
- hello.ftdi.45 components traces interior pin re-use
ports port.c port.make port.ino port.write.ino
echo.ino echo.serial.ino video - Pinout (for Arduino IDE)
- hello.ftdi.45 components traces interior pin re-use
-
- hello.t1614.echo components traces interior
echo.ino video - Pinout (for Arduino IDE)
- hello.t1614.echo components traces interior
-
- hello.ftdi.44 components traces interior
- Pinout (for Arduino IDE)
-
Interpreters
-
Operating Systems
-
Systems
-
debugging
- hardware
- Atmel ICE
- inspect, reflow solder joints
- check component orientation, values
- verify data sheets
- confirm connector orientation
- measure supply voltages
- probe I/O signals
- software
- blink LED
- add print statements
- use embedded debugger
- hardware
-
assignment
- individual assignment:
- read a microcontroller data sheet
- program your board to do something,
- with as many different programming languages and programming environments as possible
- individual assignment: