If you hate reading then maybe a video is suitable for you so please check the above video.

Needed Supplies

To ensure successful ISP programming of an AVR microcontroller, you will need the following essential hardware:

  • USBASP Programmer: This is the primary programmer device that will be used to communicate with the microcontroller during the programming process.
  • ISP Adaptor: The ISP adaptor is a crucial component that allows you to connect the USBASP programmer to the microcontroller's ISP pins. There are two options for the adaptor:
  • a. 2.54mm Adaptor: This adaptor is designed for ISP pins with a 2.54mm spacing. It provides a convenient and secure connection between the programmer and the microcontroller.
  • b. 1.27mm Adaptor: If your microcontroller has ISP pins with a smaller 1.27mm spacing, you will need a 1.27mm adaptor. This adaptor allows you to connect the USBASP programmer to the microcontroller's ISP pins accurately.

In the upcoming steps, I will guide you on how to produce these adaptors, ensuring that you have the necessary hardware for a successful ISP programming experience. Stay tuned for detailed instructions!

Why ISP

First, let's start with a brief explanation of ISP. In-System Programming is a technique used in electronics to program microcontrollers or other embedded devices without requiring the removal of the chip from the circuit board. This is a very convenient and cost-effective way to program chips and update firmware or software.

One of the biggest benefits of using ISP is that it can greatly reduce development time and lower costs as you will not need extra electronics components to upload your code to the MCU.

Some microcontrollers support ISP via a standard communication protocol such as SPI or I2C, while others uses some specific protocols, the most commonly used protocol for ISP programming for AVRs is the SPI protocol where you need four pins of your microcontroller plus the two pins for power and shared ground, and since most AVRs are equipped by SPI port then this is the most reliable way for programing them.

To perform ISP, you will need the right hardware and software. This includes a programmer device, which is used to communicate with the microcontroller, as well as software that is compatible with both the programmer and the microcontroller. Considering the social media shared projects, the USBASP programmer is the most popular for AVRs and by connecting it to the microcontroller SPI pins you can easily upload codes.

What To Consider While Designing

If you are willing to use the USBASP programmer then you need to consider this on your PCB design by providing access to the microcontroller SPI pins and make this access exposed somehow and this technique is the most suitable to keep a small programming area in the PCB layout, by placing some surface pads arranged in 2 by 3 array of 2.54mm spacing you could access the SPI port using some pogo pins, this technique requires an adaptor that you connect it to USBASP JTAG connector to link the SPI pins of programmer and the SPI pins of the microcontroller, you must consider the pins order of SPI based on the adaptor order pins.

IMG_20230619_085250.jpg

I considered this pins array of 2.54mm spacing as example but you could go for smaller array of 1.27mm spacing and then you need a smaller programming adapter.

How To Produce The ISP Adapter

We can't use the USBASP itself to upload codes, but it has to be connected to the board ISP pins and since a JTAG connector is a bit big part then it will take a larger space then using ISP pins technique and in order to connect the USBASP JTAG connector to the ISP pins of our circuit design then we need an ISP adapter that has a JTAG Male connector where we place the USBASP JTAG Female connector and some pins that could touch the surface ISP pads of the circuit board,

Here I designed two adapter for the two pads spacing so the small one is for ISP pins of 1.27mm spacing and the big one is for ISP pins of 2.54mm spacing....

Read more »