Arduino Projects    |   Raspberry Pi  |     Electronic Circuits    |    AVR    |    PIC    |    8051    |    Electronic Projects   |   Free TI Design & Simulation Tools 

How to disable JTAG of AVR microcontroller

Summary

Developed By: 
Akshay Daga
JTAG stands for “Joint Test Action Group” which was standardized as the IEEE 1149.1 Standard Test Access Port and Boundary-Scan Architecture in 1990. JTAG is generally used in IC debugging and device programming. Atmega16 consists of one JTAG port which shares four pins with PORTC. Until JTAG port is not disabled, these pins can’t be used as normal I/O pins. This article explores the methods for JTAG disabling.

 

JTAG Introduction : How to disable JTAG Port in AVR Microcontroller (Atmega16)

Description

 
JTAG interface shares PC2, PC3, PC4 and PC5 of ATmega16. To use these four pins for general I/O operations, JTAG must be disabled. There are two methods for disabling JTAG: 
1. By programming
2. Using Avrdude
 
1. Programming method:
There is a register in atmega16 MCUCSR (MCU control and status register). It consists of JTD (JTAG disable) bit as 7th bit of register. JTAG can be disabled by writing 1 to this bit. 
                                    MCUCSR|= (1<<JTD);
 
This command must be written twice to disable JTAG. This is a temporary method of JTAG disabling because using this method, it is required to write the above command in every program. For permanent disabling next method can be used.
 
2. Using Avrdude:
JTAG can be permanently disabled by configuring two fuse bits, OCDEN and JTAGEN (must be disabled). This is done by using Avrdude software. The following instruction should be followed carefully to disable the JTAG 
1. Connect your microcontroller burner circuit to your system.
2. Go start>run and write “cmd”.
3. Write command “avrdude –p <microcontroller code> –c <programmer type> -t” in Command window
 
Commands                    -p                to select microcontroller
                                    -c                to select programmer type
                                    -t                 to enter in AVRDUDE’s interactive window.
 
Microcontroller code     m8                 for ATmega8
                                  m16               for ATmega16
                                  m32               for Atmega32
 
Programmer types are       bsd                for parallel port programmer (Brain Dean’s programmer)
                                       usbasp           for USB programmer (USBasp)
 
The following picture shows the output of above command.
 
 
4. Write command “d lfuse” and “d hfuse” at avrdude interactive window to get values of low Fuse byte and high fuse byte.
 
 
5. As shown in above picture the value of Fuse bytes is 0x89FF. This value shows that JTAG port of the microcontroller is enabled. To disable JTAG, the value of fuse bytes must be 0xC9FF.
6. To write 0xC9 in higher fuse byte the command “w hfuse 0 0xc9” is written. Lower byte will remain same.
 
 
7. Write “d hfuse” command again to make it confirm that value is written or not.
 
 
8. For terminating this window by type “quit”.

By this operation JTAG will be disabled and PORTC will work as normal I/O port. 

 

Circuit Diagram

Video

Code

This Code is only visible to Registered users. Please Login/Register

Code2

This Code is only visible to Registered users. Please Login/Register

Components

LEDs | Light Emitting Diode
LED
 
Light emitting diodes (LEDs) are semiconductor light sources. The light emitted...
ATmega16 AVR Microcontroller
ATmega16
 
ATmega16 is an 8-bit high performance microcontroller of Atmel’s Mega AVR family with low power consumption. Atmega16 is based on enha...

Free TI Design & Simulation Tools

WEBENCH Design Center

WEBENCH Design Environments are unique and powerful software tools that deliver customized power, lighting, filtering, clocking and sensing designs in seconds. These easy-to-use tools help you generate, optimize and simulate designs that conform to your unique specifications. They allow you to make value-based tradeoffs at a design, system and supply chain level before your design is committed to production.



Design & Simulation Tools

Power Design

 


Sensors, Filter, Clock and Amplifier Design


Download Tools, Models and Symbols


Resources

 

You are here