Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
Bootload
Design
Documents
Evaluation
Icsp
Schooling
Shutdown
Testing
README.md
linux.md
status_icon.png

README.md

ICSP Hardware

Overview

Use a Raspberry Pi Zero as a host to do In-Circuit Serial Programming of AVR’s. IOFF buffers are used to level convert to the targets voltage. It also allows the serial port to be used for serial bootload and has some switches to control looping of the upload.

Inputs/Outputs/Functions

        Open Drain Voltage level converter for ICSP pins 
        Open Drain Voltage level converter for serial bootload pins
        Swithchs for control of Shutdown, Bootload, and ICSP.

Uses

        In-Circuit Serial Programing of AVR target 2V7 to 5V. 
        Bootload programing of target (1.8V to 5V).
        Use your own R-Pi software to detect a switch (BCM13, BCM5) and run the uploader.

Table Of Contents

  1. Status
  2. Design
  3. Bill of Materials
  4. How To Use

Status

Options

Status

        ^3  Done: Design, Layout, BOM,
            WIP: Review*,
            Todo: Order Boards, Assembly, Testing, Evaluation.
            *during review the Design may change without changing the revision.
            connect MIS0 to MISO (zero should have been a 'O')   

        ^2  Done: Design, Layout, BOM, Review*, Order Boards, Assembly, Testing, Evaluation.
            WIP: 
            Todo: 
            *during review the Design may change without changing the revision.
            try with an R-Pi zero rather than Uno with ISP sketch.
            set up the serial port for bootloading use.
            set up better for pogo pins. 

Debugging and fixing problems i.e. Schooling

Setup and methods used for Evaluation

Design

The board is 0.063 thick, FR4, two layer, 1 oz copper with ENIG (gold) finish.

Top TAssy Bottom BAssy

Electrical Parameters (Typical)

74LVCO7A input are tolerant to 5.5V
74LVCO7A supply on target side can range from 1.65V to 5.5V
When used for in-circuit programming consult the MCU datasheet for valid programming voltages (AVR seems to mostly be 2V7 to 5V).

Mounting

        Connectors or pogo pins are to be soldered by user

Electrical Schematic

Schematic

Testing

Check correct assembly and function with Testing

Bill of Materials

The BOM is a CVS file(s), import it into a spreadsheet program like LibreOffice Calc (or Excel), or use a text editor.

Option BOM's included
A. BRD
M. BRD SMD HDR
X. BRD SMD HDR POGO
Z. BRD SMD HDR POGO POL

Available

How To Use

This tool works with Makefiles. For example, I have build rules like “make linuxspi" or "make bootload" to upload my project firmware. I use a little Python (e.g., Icsp and Bootload) program to operate those rules when a button is pushed on this board.

Ether use connectors or spring probes (e.g., pogo pins ICT-100-T). I am not yet sure of a pleasant way to solder the probes, they are also expensive, but the advantage of not having to solder headers on my various boards makes this worth it to me.

The 74LVC07A has IOFF circuitry which disables the output to prevent damaging current backflow when the device is powered down since the buffer is powered by the target removing power from the target device after programming is both safe and advised.

Bootload

The R-Pi host can use its hardware serial to upload firmware to a serial bootloader with a verity of methods: optiboot is "avrdude -c arduino," xboot is "avrdude -c avr109". It can also operate serial tools like an Uno loaded with ArduinoISP "avrdude -c stk500v1", ElTangas/STK2UPDI with "avrdude -c stk500v2", or even mraardvark/pyupdi. The pinout is like an FTDI_Friend.

Run the bootld.py script over an SSH connection in a folder with the Makefile bootload rule.

ICSP on SPI

The R-Pi host can also upload with "avrdude -c linuxspi" or bit-bang with "avrdude -c linuxgpio."

Run the icsp.py script over an SSH connection in a folder with the Makefile linuxspi rule.

Linux

In this case, it is Raspian; here are my notes.

You can’t perform that action at this time.