Нашел в Интернете следующую ссылку.
http://njnmnp.narod.ru/usbblaster/usbblaster.html
Решил повторить, но заменить EPM3064 микроконтроллером ATmega8.
После подключения устройство определяется как Altera USB-blaster,
но при попытке прошить EPM7064 выдает ошибку.
В связи этим решил спросить у Вас о назначении битов и начальном состоянии выводов.
Выход.
D0 - TCK
D1 - TMS
D2 - не используется в режиме JTAG
D3 - не используется в режиме JTAG
D4 - TDI
D5 - ?
D6 - ?
D7 - ?
Вход.
D0 - TDO
D1 - не используется в режиме JTAG
D2-D7 - отправляем то же, что и было
Начальное состояние выводов Z или
D0 - 0
D1 - 1
D2 - 1
D3 - 1
D4 - 1
D5 - ?
.include "m8def.inc"
.def temp =r16
.def in_reg =r17
.def out_reg =r18
.equ RXF =PC2
.equ TXE =PC3
.equ WR =PC4
.equ RD =PC5
.equ LED =PB5
.cseg
.org 0
rjmp begin
.org 0x100
begin:
ldi temp,high(RAMEND)
out SPH,temp
ldi temp,low(RAMEND)
out SPL,temp ; Установка адреса стека.
wdr
ldi temp,(1<<WDCE)|(1<<WDE)
out WDTCR,temp
ldi temp,(0<<WDE)
out WDTCR,temp ; Выключение WDT.
ldi temp,0b00011110
out PORTB,temp
ldi temp,0b00101111
out PORTC,temp
clr temp
out PORTD,temp
ldi temp,0b00111111
out DDRB,temp ; Инициализация порта B
ldi temp,0b00110000
out DDRC,temp ; Инициализация порта C
clr temp
out DDRD,temp ; Инициализация порта D
clr in_reg
clr out_reg
start:
loop_RXF:
sbic PINC,RXF
rjmp loop_RXF
cbi PORTC,RD
nop
nop
nop
nop
in in_reg,PIND
sbi PORTC,RD
mov temp,in_reg
in out_reg,PINC
andi out_reg,0b00000011
andi temp, 0b11111100
or out_reg,temp
out PORTD,out_reg
loop_TXE:
sbic PINC,TXE
rjmp loop_TXE
ser temp
out DDRD,temp
sbi PORTC,WR
nop
nop
nop
nop
cbi PORTC,WR
clr temp
out DDRD,temp
mov temp,in_reg
com temp
andi temp,0b11000000
brne led_on
led_off:
mov temp,in_reg
ori temp,(1<<PB5)
andi temp,0b00111111
out PORTB,temp
rjmp start
led_on:
mov temp,in_reg
andi temp,0b00011111
out PORTB,temp
rjmp start
.exit
С уважением, Сергей.