Skip to content

Super repository of DE2 course at Brno University of Technology

License

Notifications You must be signed in to change notification settings

walliv/Digital-electronics-2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

university faculty

AVR Template

Table of Contents

  1. Introduction
  2. Hardware Components
  3. How to Use AVR Template on Linux
  4. How to Use AVR Template on Windows
  5. How to Use AVR Template on Mac OS X
  6. References

Introduction

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)

Hardware Components

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

References

  1. Git, free and open source distributed version control system
  2. GNU Make tool for Linux
  3. Minimalist GNU for Windows
  4. AVRDUDE, software for programming Atmel AVR Microcontrollers
  5. Microchip, AVR 8-bit Toolchain for Windows, Linux, Mac OS X
  6. Atom text editor
  7. Doxygen, a standard tool for generating documentation from annotated source files
  8. Graphviz, open source graph visualization software
  9. Peter Fleury, AVR-GCC libraries
  10. Wykys, Tools for development of AVR microcontrollers

Tested on Operating Systems

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

About

Super repository of DE2 course at Brno University of Technology

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published