Giter Club home page Giter Club logo

understanding_avr_microcontrollers's Introduction

Understanding AVR Microcontrollers

Overview

Having played around with the Arduino, I wanted to expand my knowledge by digging into the heart of Arduino's: Atmel's AVR MCUs.

In general, differences between the two are how it's programmed. The Arduino makes it easily accessible to utilize tools without having to deal with the underlying hardware (using the C++ language), like the AVR (using a version of C: avr-gcc) does.

The goal of this small project is to document my learning experience. This projects utilizes a simplex (one way) UART communication between two AVR MCUs: ATMega328P and the ATTiny85

The ATmega is bootloaded with MiniCore, this will be used as a transmitter (TX).

The ATTiny85 is bootloaded with TinyCore, this as a receiver (RX).

  • Both the ATMega and ATTiny is provided a 3.3V power supply.

  • The transmitter is hooked up to two push buttons, and OLED display and a LED indicator to simply display the status of whether the LED is turned on or off. This action sends an 8-bit binary number.

  • The receiver is also hooked up to an OLED to show the data sent. An LED is wired to the data pin of the OLED and will light up.

(Schematic down below)

Hardware Resources

  • +3.3V power supply
  • 6 pin ISP programmer
  • ATMega328P
  • ATTiny85
  • SH1106 128x64 I2C OLED
  • SSD1306 128x64 SPI OLED
  • 16 MHz crystal oscillator
  • 10K ohm resistors - x3
  • 680 ohm resistor
  • 22pF capacitor - x2
  • 0.1uF capacitor - x3
  • Red LED
  • Blue LED
  • Tactile push buttons - x2

(Resistors on RESET pins of the MCUs must be pulled to LOW (GND) when programming, HIGH (VCC) after programming)

Software Resources:

(Makefile included, this will include how to specifically compile the U8G2 library)

Schematic

schematic

Issues

  • I was not able to fully understand the code of Technoblogy's terminal and so I had set out to produce a minimal example. For now however, this is may be able to explain the idea.

understanding_avr_microcontrollers's People

Contributors

bnzel avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.