GithubHelp home page GithubHelp logo

vitmain / avr_programmer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from brianpepin/avr_programmer

0.0 0.0 0.0 1.77 MB

Eagle files and gerbers for a programmer designed for Microchip's series of AVR microcontrollers

License: MIT License

avr_programmer's Introduction

AVR Programmer

Eagle files and gerbers for a programmer designed for Microchip's series of AVR microcontrollers. There is also a KiCad variant in the kicad directory, but I haven't tried it yet. It was ported from Eagle and I re-routed the board.

Board Image

Overview

Microchip's series of AVR chips are simple 8 bit microcontrollers often used in Arduino boards. This programmer board can be used to program fuses and flash for bare AVR chips.

Features

  • Compatible with USBASP firmware and features, including slow clock.
  • Selectable target voltage of 3.3v, 5v, or target provided (1.8v - 5.5v).
  • Built-in serial to USB converter.
  • Board can remain connected to target after programming.
  • USB-C interface to PC with full ESD and overload protection.

Design

This board is based on the hardware design for USBASP and is 100% compatible wth the USBASP firmware. I designed it to support different target voltages (namely 3.3v) and wanted built-in serial IO so I could connect a single connector to boards I design.

The board shows up as two USB devices: a FTDI serial port and a USBASP programmer. There is an on-board USB hub that exposes both devices. Target voltage is selectable through the VTARG switch and has three values:

  1. 5V (left): Provide 5 volts as power and logic levels to the target board.
  2. Float (middle): Adapt to whatever voltage the target board is using.
  3. 3.3V (right): Provide 3.3 volts as power and logic levels to the target board.

If your board provides voltage of its own make sure you keep VTARG in the middle position.

The different voltage levels are shifted through an array of level shifters. This circuit will change direction of the signals if PGM is bridged, which allows for initial programming of the board. All connections other than TXD and RXD also go to a high-impedance state whenever the red programming light is off (I reuse that signal line so I don't need any modifications to the USBASP firmware). Signal direction and tri-state is controlled by discrete logic, again so no USBASP mods are needed. The level shifters I'm using go to high-impedance state when VCCA or VCCB is grounded. This is handled by a push-pull pair of mosfets driven by discrete logic.

Programming

Once the board is complete it must be flashed with the USBASP code. You need another working programmer for this.

  1. Bridge the PGM pins on the board and set VTARG to either 5v or 3.3v depending on the output voltage of your existing programmer.
  2. Connect your existing programmer's connector to the board.
  3. Set your programmer to use a slow clock.
  4. Run 'make Makefile88 fuses' from the USBASP project.
  5. You can now turn off the slow clock feature of your programmer.
  6. Run 'make Makefile88" to flash the firmware.

If successful, a green LED should be lit on the board. This LED is controlled by the USBASP firmware so it's a good indicator everything's working. Remove the bridge to PGM and you should be good to go.

avr_programmer's People

Contributors

brianpepin 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.