Close

Programming AVRs

A project log for Atari AVR Development Workstation

A couple parted out Kaypro keyboards and a tired old Apple IIc monitor become a resto-mod late 70s looking AVR development workstation

john-andersonJohn Anderson 12/15/2024 at 18:440 Comments

As mentioned before, the PI has custom hat with a level shifter for a couple serial tx/rx lines from the PI. These and the power going to the 6 pin programming port are selectable between 3.3v and 5v via a toggle switch on the faceplate. The Volt/Amp meter next to the voltage selection switch displays the voltage and current draw of the Vcc pin on the programming port. Lastly, there is an on/off toggle switch that disable the programming port to make it safe to plug and unplug the cable.

The programming protoboard is replaceable for different AVR parts. The one shown is for the most common AVR part I use in projects, the AVR128DA28. The programming cable to the board can be used for programming the AVR and for debug. The cable may also be disconnected from the protoboard and plugged into one of my project boards for in circuit programming or debug.

You can see here how the cable connects using an aviation style connector at the back of the workstation and the standard AVR 6 pin ISP on the other end of the cable.

The serial TX/RX lines from the PI implement the UPDI programming interface to the AVR and another TX/RX pair for CLI interface to the application programmed on the AVR. This CLI can be used for development, debugging, and testing. I'm developing a tiny embedded OS for the AVR called avrOS that implements a state machine scheduler, events, queues, CLI, logger, and some basic AVR device drivers.

You can see programming an AVR part here.

And the avrOS CLI for development and debug.

Since this is Linux based and I do 95% of my development from Vscode, I usually remote connect to the Atari workstation from the desktop Linux PC. So, my regular development setup actually looks like this with plenty of modern big LCD displays for browsing part manuals, more than one code editing window and the avrOS CLI on yet another screen.

Discussions