[SOLVED] [Moved]: Simple Atmel Fusebit Doctor using PIC / ATMEGA Fuse bit Reset using PIC

Status
Not open for further replies.

george_leon

Junior Member level 3
Joined
Jan 20, 2010
Messages
29
Helped
3
Reputation
6
Reaction score
4
Trophy points
1,283
Location
india
Activity points
1,447
;*********************************
; atmel fusebit doctor
;************************************
;this is program to reset atmel fusebits to enable serial programming
;use 4 mhz crystal in pic16f72
;load the atmega fusebit doctor hex file in pic16f72
;apply +5v to vcc & avcc and +12v to reset of atmega and +5v to pic simultaneously
;and wait until led at portb,0 of pic blinks, power off and take as fresh atmel ic
;**** connection details ***********
; atmega8 pic16f72
; pin1 ------- +12 v
; pin2 ------- open
; pin3 ------- open (optional rdy/bsy led)
; pin4 ------- +5 v
; pin5 ------- portc,1
; pin6 ------- portc,2
; pin7 ------- +5 v
; pin8 ------- gnd
; pin9 ------- portc,3
; pin10 ------ open
; pin11 ------ portc,4
; pin12 ------ portc,5
; pin13 ------ gnd
; pin14 ------ portc,0
; pin15 ------ gnd
; pin16 ------ gnd
; pin17 ------ gnd
; pin18 ------ gnd
; pin19 ------ gnd
; pin20 ------ +5v
; pin21 ------ open
; pin22 ------ gnd
; pin23 ------ portc,6
; pin24 ------ portc,7
; pin25 ------ gnd
; pin26 ------ open
; pin27 ------ open
; pin28 ------ open
 

Attachments

  • ATMEGA FUSE BIT DOCTOR HEX FILE.txt
    513 bytes · Views: 75
  • ATMEGA FUSEBIT DOCTOR ASM FILE.txt
    3.6 KB · Views: 78

Load this hex file in pic16f72 (or) any equivalent pic

Code:
:020000040000fa
:020000000528d1
:040002000034003492
:06000a008316fe308600a3
:1000100000308700831202308700061045208716c3
:100020008717871545208711871045208714871269
:10003000871387160717871545208711071387121f
:10004000071687170717871545208711071587108b
:1000500045208714071207118713071345208712bd
:10006000071607140717871787154520871187106c
:10007000452087140710071387130712071145201f
:10008000061445200610452040283030a300a20069
:10009000a100a10b4928a20b4828a30b4728080060
:02400e00fa3f77
:00000001ff
 
Last edited by a moderator:

Code:
;****************************************************
;			               	ATMEL FUSEBIT DOCTOR ASM FILE
;****************************************************
;THIS IS PROGRAM TO RESET ATMEL FUSEBITS TO ENABLE SERIAL PROGRAMMING
;COMPILE USING MPLAB X IDE
;USE 4 MHZ CRYSTAL IN PIC16F72
;APPLY +5V TO VCC & AVCC AND +12V TO RESET FOR ATMEGA AND +5V TO PIC SIMULTANEOUSLY
;AND WAIT UNTIL LED AT PORTB,0 BLINKS, POWER OFF AND TAKE AS FRESH ATMEL IC
;*********************** CONNECTION DETAILS *************************
;  ATMEGA8     PIC16F72
;   PIN1 ------- +12 V
;   PIN2 ------- OPEN
;   PIN3 ------- OPEN (OPTIONAL RDY/BSY LED)
;   PIN4 ------- +5 V
;   PIN5 ------- PORTC,1
;   PIN6 ------- PORTC,2
;   PIN7 ------- +5 V
;   PIN8 ------- GND
;   PIN9 ------- PORTC,3
;   PIN10 ------ OPEN
;   PIN11 ------ PORTC,4
;   PIN12 ------ PORTC,5
;   PIN13 ------ GND
;   PIN14 ------ PORTC,0
;   PIN15 ------ GND
;   PIN16 ------ GND
;   PIN17 ------ GND
;   PIN18 ------ GND
;   PIN19 ------ GND
;   PIN20 ------ +5V
;   PIN21 ------ OPEN
;   PIN22 ------ GND
;   PIN23 ------ PORTC,6
;   PIN24 ------ PORTC,7
;   PIN25 ------ GND
;   PIN26 ------ OPEN
;   PIN27 ------ OPEN
;   PIN28 ------ OPEN

list p=16f72
list n=0
#include p16f72.inc

__config _HS_OSC & _WDT_OFF & _PWRTE_OFF & _BODEN_ON & _CP_OFF

#DEFINE XA0 PORTC,4
#DEFINE XA1 PORTC,5
#DEFINE XTAL1 PORTC,3
#DEFINE BS1 PORTC,2
#DEFINE WR PORTC,1
#DEFINE D6 PORTC,6
#DEFINE D7 PORTC,7
#DEFINE D0 PORTC,0
#DEFINE LED PORTB,0

		ORG 0x0000
		GOTO START
		ORG 0X0005
START	BSF STATUS,RP0
        MOVLW 0XFE
		MOVWF TRISB		;DEFINE PORTB,0 AS OUTPUT
		MOVLW 0X00
		MOVWF TRISC		;PORTC AS OUTPUT
		BCF STATUS,RP0
        MOVLW B'00000010'   ;WR ALONE 1
        MOVWF PORTC
        BCF LED         ;LED BLINKS AFTER PROGRAMMING OVER
        CALL HLFSEC
        BSF XA1     ;LOAD COMMAND FOR CHIP ERASE
        BSF D7      ;COMMAND FOR CHIP ERASE 1000 0000
        BSF XTAL1
        CALL HLFSEC
        BCF XTAL1
        BCF WR      ;START CHIP REASE
        CALL HLFSEC
        BSF WR
        BCF XA1
        BCF D7
        BSF XA1     ;LOAD COMMAND FOR PROGRAMMING FUSE BITS
        BSF D6      ;COMMAND FOR PROGRAMMING FUSE BITS 0100 0000
        BSF XTAL1
        CALL HLFSEC
        BCF XTAL1
        BCF D6
        BCF XA1     ;LOAD DATA FOR FUSE HIGH BYTE
        BSF XA0     ;FIRST LOAD IN LOW BYTE AND THEN SELECT HIGH BYTE
        BSF D7      ;FUSE HIGH BYTE 1100 0000
        BSF D6
        BSF XTAL1
        CALL HLFSEC
        BCF XTAL1
        BSF BS1     ;SELECT FUSE HIGH BYTE
        BCF WR      ;GIVE WRITE COMMAND
        CALL HLFSEC
        BSF WR
        BCF XA0
        BCF BS1
        BCF D7
        BCF D6
        CALL HLFSEC
        BCF XA1     ;LOAD DATA FOR FUSE LOW BYTE
        BSF XA0
        BSF D0      ;FUSE LOW BYTE 1100 0001
        BSF D6
        BSF D7
        BSF XTAL1
        CALL HLFSEC
        BCF XTAL1
        BCF WR      ;GIVE WRITE COMMAND
        CALL HLFSEC
        BSF WR      ;END OF WRITE COMMAND
        BCF D0
        BCF D6
        BCF D7
        BCF XA0
        BCF BS1
        CALL HLFSEC
 LOOP   BSF LED     ;LED BLINKS CONTINOUSLY INDICATES END OF PROGRAMMING
        CALL HLFSEC
        BCF LED
        CALL HLFSEC
        GOTO LOOP
	


HLFSEC	MOVLW 0X30		;DELAY FOR HALF SECOND
		MOVWF 0X23
COU5	MOVWF 0X22
COU4	MOVWF 0X21
COU3	DECFSZ 0X21,F
		GOTO COU3
		DECFSZ 0X22,F
		GOTO COU4
		DECFSZ 0X23,F
		GOTO COU5
		RETURN



		END
 
Last edited by a moderator:

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…