- Introduction
- Hardware Components
- How to Use AVR Template on Linux
- How to Use AVR Template on Windows
- How to Use AVR Template on Mac OS X
- References
The repository contains all lecture tasks for bachelor course Digital Electronics 2 (Winter 2019/2020) at Brno University of Technology, Czech Republic. The repository has the following hierarchy:
avr-template$ tree
.
├── docs
│ ├── ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf
│ ├── dht12_manual.pdf
│ ├── ds3231_manual.pdf
│ ├── esp8266_at_instruction_set.pdf
│ ├── git-cheatsheet.pdf
│ ├── HOWTO_linux.md
│ ├── HOWTO_mac.md
│ ├── HOWTO_windows.md
│ └── hw
│ ├── arduino_shield.kicad_pcb
│ ├── arduino_shield.pdf
│ ├── arduino_shield.pro
│ ├── arduino_shield.sch
│ ├── LCD_tlacitka.sch
│ ├── led_7segment_.sch
│ ├── mcu_modul.sch
│ └── pcb_outline_drawings.sch
├── LICENSE
├── projects
│ ├── library
│ │ ├── inc
│ │ │ ├── gpio.h
│ │ │ ├── lcd_definitions.h
│ │ │ ├── lcd.h
│ │ │ ├── segment.h
│ │ │ ├── timer.h
│ │ │ ├── twi.h
│ │ │ └── uart.h
│ │ └── src
│ │ ├── gpio.c
│ │ ├── lcd.c
│ │ ├── segment.c
│ │ ├── timer.c
│ │ ├── twi.c
│ │ └── uart.c
│ ├── projects.in
│ ├── schprj
│ │ ├── main.c
│ │ ├── Makefile
│ │ └── README.md
│ ├── 01-demo
│ │ ├── main.c
│ │ ├── Makefile
│ │ ├── Makefile.win
│ │ └── README.md
│ ├── 02-leds
│ │ ├── main.c
│ │ └── Makefile
│ ├── 03-gpio
│ │ ├── main.c
│ │ └── Makefile
│ ├── 04-interrupts
│ │ ├── main.c
│ │ └── Makefile
│ ├── 05-segment
│ │ ├── main.c
│ │ └── Makefile
│ ├── 06-lcd
│ │ ├── main.c
│ │ └── Makefile
│ ├── 07-uart
│ │ ├── main.c
│ │ └── Makefile
│ ├── 08-twi_scan
│ │ ├── main.c
│ │ └── Makefile
│ ├── 08-twi_temperature
│ │ ├── main.c
│ │ └── Makefile
│ ├── 09-asm_random
│ │ ├── DEMO.lss
│ │ ├── main.c
│ │ ├── Makefile
│ │ └── rand.S
│ └── 09-burst
│ ├── main.c
│ ├── Makefile
│ └── rand.S
└── README.md
In folder docs
all manuals and datasheets are stored. Folder hw
contains KiCad schematic of Arduino shields used in the course. All projects are located within projects
folder. Source and header files of LCD, TWI, segment display and UART libraries are located in the library
folder.
Breif description of what project folders deal with.
Foler Name | Description |
---|---|
01-demo | Default C-code source file |
02-leds | Controls led blinking |
03-gpio | Basic funcitons for I/O port setting |
04-interrupts | Led blinking using timer overflow interrupt |
05-segment | Controlling 7 segment display using segment.c library |
06-lcd | Provides code for two row LCD display and making custom characters |
07-uart | Send information via UART (USB) to computer |
08-twi_scan | Using I2C bus to find devices |
08-twi_temperature | Attempt to receive data from I2C bus |
09-asm_random | Random number generator using LSFR written in Assembly language |
09-burst | Attempt of burst generator in Assembly language |
schprj | Controlling two servos using analog joystick (semestral project) |
The following hardware components are mainly used in the lab.
Component | Description | Manual |
---|---|---|
ATmega328P | 8-bit microcontroller | Instruction set |
Arduino Uno board | Low-cost clone of Arduino UNO R3 CH340 mini USB | Schematic |
Breadboard | 300-pin breadboard | |
Male-male wires | Wires for interconnections | |
Logic analyzer | 24MHz 8-channel logic analyzer | Software |
Multi-function shield | Multi-function shield with four LEDs, three push buttons, four seven-segment displays, and others | Schematic |
Arduino LCD Shield | LCD and keypad shield with LCD and five push buttons | Schematic |
DHT12 | I2C humidity and temperature sensor | Data sheet |
DS3231 | I2C real time clock | Data sheet |
ESP8266 | Wi-Fi module | AT commands |
Joystick PS2 | Analog Joystick HW-504 | |
Micro servo | Micro servo SG90 | Datasheet |
- Git, free and open source distributed version control system
- GNU Make tool for Linux
- Minimalist GNU for Windows
- AVRDUDE, software for programming Atmel AVR Microcontrollers
- Microchip, AVR 8-bit Toolchain for Windows, Linux, Mac OS X
- Atom text editor
- Doxygen, a standard tool for generating documentation from annotated source files
- Graphviz, open source graph visualization software
- Peter Fleury, AVR-GCC libraries
- Wykys, Tools for development of AVR microcontrollers
Name | Version | Result | Note |
---|---|---|---|
OpenSUSE | 15.1, Leap | OK (2019-11-27) | Home |
Linux Mint | 18.3, Sylvia | OK (2019-06-13) | Laptop |
Windows | Windows 7 | OK (2019-05-17) | Lab |
Linux Mint | 18.2, Sonya | OK (2019-05-17) | Lab |
Ubuntu | 18.04.1 LTS, Bionic Beaver | OK (2019-05-15) | Office |
Ubuntu | 16.04, Xenial Xerus | OK (2018-09-15) | Office |
# FYI: How to check OS version in Linux
cat /etc/os-release