реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> USB-blaster на ATmega8, Вопрос по назначению битов
BSACPLD
сообщение Oct 22 2006, 17:50
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Нашел в Интернете следующую ссылку.
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

С уважением, Сергей.

Сообщение отредактировал BSACPLD - Oct 22 2006, 17:51
Прикрепленные файлы
Прикрепленный файл  sxema.pdf ( 56.93 килобайт ) Кол-во скачиваний: 697
 
Go to the top of the page
 
+Quote Post
vetal
сообщение Oct 22 2006, 18:19
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Скачанный вами вариант usb-blaster не поддерживает jtag. Пользуйтесь поиском! Была ссылка на реализацию с поддержкой jtag, но без AS/PS.
Послежний вариант у меня нормально работает, и шъет циклон.

http://www.ixo.de/info/usb_jtag/
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Oct 22 2006, 18:30
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Цитата(vetal @ Oct 22 2006, 22:19) *
Скачанный вами вариант usb-blaster не поддерживает jtag. Пользуйтесь поиском! Была ссылка на реализацию с поддержкой jtag, но без AS/PS.
Послежний вариант у меня нормально работает, и шъет циклон.

Поиском уже пользовался, но - безуспешно.
А если он не поддерживает JTAG, то как же он шьёт MAX-ы?
Автор писал, что цитата:
"Успешно протестированы семейства MAX3000, MAX7000, ACEX, Cyclone :-)".
Go to the top of the page
 
+Quote Post
vetal
сообщение Oct 22 2006, 18:37
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



1. Если вы посмотрите на 2 ваиант бластера, то вы увидите, что для jtag там более хитрый обмен и одной защелкой не обойдешся.
2. Никто не говорил, что max3,max7 прошивались квартусом. Скорее всего был адаптирован jam плеер. У меня российский релиз с jtag не заработал.
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Oct 22 2006, 18:41
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Цитата(vetal @ Oct 22 2006, 22:37) *
1. Если вы посмотрите на 2 ваиант бластера, то вы увидите, что для jtag там более хитрый обмен и одной защелкой не обойдешся.
2. Никто не говорил, что max3,max7 прошивались квартусом. Скорее всего был адаптирован jam плеер.

Понятно. Буду разбираться со вторым вариантом USB-blaster.
Как только будет результат - напишу. Спасибо за ответы.

С уважением, Сергей.
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Oct 24 2006, 20:54
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(BSACPLD @ Oct 22 2006, 21:41) *
[Понятно. Буду разбираться со вторым вариантом USB-blaster.
Как только будет результат - напишу. Спасибо за ответы.

С уважением, Сергей.

А Вы читали тему USB byte blaster, нужна схема в этом форуме? Понятно ли Вам о чем пишет khach и мое примечание? Если да, то у Вас должен получиться аналог Altera USB-Blaster, только более медленный.



Цитата(vetal @ Oct 22 2006, 22:37) *
...
2. Никто не говорил, что max3,max7 прошивались квартусом. Скорее всего был адаптирован jam плеер.

Мисячный сделал полный аналог Altera USB-Blaster (FTDI+CPLD). Quartus распознает его устройство как Altera USB-Blaster и успешно программирует CPLD: MAX3000, MAX7000; работает с FPGA: ACEX, Cyclone. У Мисячного не было (во время создания страницы Попытка повторить USBBlaster.) модулей со Stratix, Stratix II, Cyclone II... Попробовать, работает ли его устройство со Stratix, предложил ему я. У нас на фирме есть Stratix EP1S25 DSP Development Board. Но в то время этот Kit активно использовался другим разработчиком, поэтому не было времени разобраться, почему blaster Мисячного не работал со Stratix.

Я сделал функциональный аналог Altera USB-Blaster на микроконтроллере C8051F320 фирмы SiLabs. Работа устройства была проверена на CPLD MAX7000, FPGA Stratix и Cyclone.

В настоящее время протокол обмена Altera USB-Blaster уже известен. Теперь можно делать клоны на чем угодно.
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Nov 2 2006, 20:25
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Тему "USB byte blaster, нужна схема" читал.
Перепробовал разные варианты - пока не работает.
У меня возникли следующие вопросы:
1) опрос вывода TDO необходимо производить до записи в выходную
защелку или после?
2) если бит 6 = '0', то ничего не нужно отправлять или же просто не
обращать внимание на значение вывода TDO?

Кстати эта EPM7064S нормально работала с ByteBlasterMV на 74AC244 и
почему-то наотрез отказывалась работать с ByteBlasterMV на 74ABT244.


Вот код, может быть кто-нибудь сможет найти ошибку в алгоритме.
.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,0b00100000
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

sbrs in_reg,5
rjmp tri
mov temp,in_reg
andi temp,0b00111111
out PORTB,temp
ldi temp, 0b00111111
out DDRB,temp
metka:
nop
nop
nop
mov out_reg,in_reg

sbrs in_reg,6
rjmp no_echo

mov temp,in_reg
in out_reg,PINC
andi out_reg,0b00000011
andi temp, 0b11111100
or out_reg,temp

no_echo:
loop_TXE:
sbic PINC,TXE
rjmp loop_TXE

ser temp
out DDRD,temp
sbi PORTC,WR
out PORTD,out_reg
nop
nop
nop
nop
cbi PORTC,WR
clr temp
out DDRD,temp

rjmp start

tri:
ldi temp,0b00100000
out DDRB,temp
mov temp,in_reg
andi temp,0b00111111
out PORTB,temp
rjmp metka

.exit
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Nov 4 2006, 11:21
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(BSACPLD @ Nov 3 2006, 00:25) *
1) опрос вывода TDO необходимо производить до записи в выходную
защелку или после?

До формирования отрицательного фронта TCK

Цитата(BSACPLD @ Nov 3 2006, 00:25) *
2) если бит 6 = '0', то ничего не нужно отправлять или же просто не
обращать внимание на значение вывода TDO?

Если бит 6 = '0', то не нужно опрашивать бит TDO и отправлять байт хост-контроллеру (в ПЭВМ)


Цитата(BSACPLD @ Nov 3 2006, 00:25) *
Вот код, может быть кто-нибудь сможет найти ошибку в алгоритме.

До сегодняшнего дня мне не приходилось работать с ATmega8. В ответ могу предложить разобраться с работающим кодом для C8051F320 (см. procedure USB2JTAG.txt).
Для выдачи и приема байтов используется SPI. Вместо SPI для приема и выдачи байтов по JTAG можно использовать MACRO (см. Read bit from TDO.txt)
Прикрепленные файлы
Прикрепленный файл  procedure_USB2JTAG.txt ( 3.82 килобайт ) Кол-во скачиваний: 395
Прикрепленный файл  Read_bit_from_TDO.txt ( 692 байт ) Кол-во скачиваний: 272
 
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Nov 5 2006, 20:37
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



[attachment=8085:attachment][attachment=8085:attachment]
Цитата(Konst_777 @ Nov 4 2006, 14:21) *
Цитата(BSACPLD @ Nov 3 2006, 00:25) *

Вот код, может быть кто-нибудь сможет найти ошибку в алгоритме.

До сегодняшнего дня мне не приходилось работать с ATmega8. В ответ могу предложить разобраться с работающим кодом для C8051F320 (см. procedure USB2JTAG.txt).
Для выдачи и приема байтов используется SPI. Вместо SPI для приема и выдачи байтов по JTAG можно использовать MACRO (см. Read bit from TDO.txt)


Уважаемый Konst_777!
Если вам нетрудно взгляните, пожалуста, на временные диаграммы того, что у меня получилось.
Правильно ли я разобрался в Вашем исходнике?
Возник еще один вопрос:
Когда на 5 бите '0' выходы обязательно переводить в 3-е состояние или их можно оставлять как есть?

Написал небольшую тестовую программу.
По идее она должна возвращать то же, что и в файле mylog.txt с сайта
http://njnmnp.narod.ru/usbblaster/usbblaster.html, но почему-то в место 0x7C возвращает 0x7D.
Может быть кто-нибудь у кого есть живой USB-blaster опробует ее и пришлет мне скриншот.
Тогда по крайней мере можно будет выяснить в каком направлении дальше искать ошибки.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Nov 6 2006, 20:45
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(BSACPLD @ Nov 6 2006, 00:37) *
Уважаемый Konst_777!
Если вам нетрудно взгляните, пожалуста, на временные диаграммы того, что у меня получилось.
Правильно ли я разобрался в Вашем исходнике?

Во-первых, на временной диаграмме отсутствует TMS. Во-вторых, хотелось бы видеть сигналы RXF# и TXE# FT245BM.
Теперь анализ диаграммы:
Если 0xC4 - это первый байт, который ATmega8 читает из FT245BM, то запись байта 0xC4 в FT245BM является ошибочной . Ее быть не должно. Байт 0xC4 означает, что ATmega8 нужно выдать через TDI следующие 4 байта, которые она считает из FIFO FT245BM. Так как бит 6 = "1", то нужно записывать в FT245BM значения битов, считанных с TDO. До завершения обработки данного формуляра TMS должен быть равен "0". ATmega8 правильно формирует все сигналы (отсутствует TMS) для данного формуляра.
Следующий формуляр начинается с байта 0x2C. Опять ATmega8 формирует ошибочную запись байта 0x2C в FT245BM. Байт 0x2C означает, что ATmega8 нужно установить сигналы TCK="0", TMS="0", TDI=0. Если не учитывать ошибочную запись и отсутствие на диаграмме TMS smile.gif , то ATmega8 правильно формирует все сигналы.
Следующий формуляр начинается с байта 0x7E. Поскольку бит 7 равен нулю и для этого формуляра, то это тоже формуляр прямого управления сигналами TCK, TMS, TDI. Однако, в отличие от предыдущего формуляра, у данного бит 6 равен "1". Это означает, что ATmega8 должна записать в FT245BM байт, младший бит которого равен состоянию TDO, а все остальные биты - равны нулю. TMS отсутствует на на диаграмме biggrin.gif. Сигналы TCK и TDI установлены правильно. Но вместо записи байта 0x01 записан байт 0x7D.
Ну и так далее.



Цитата(BSACPLD @ Nov 6 2006, 00:37) *
Возник еще один вопрос:
Когда на 5 бите '0' выходы обязательно переводить в 3-е состояние или их можно оставлять как есть?

Похоже это вопрос из темы USB byte blaster, нужна схема. Не знаю. Может быть Мисячный или khach знают ответ. Я не перевожу TCK, TMS, TDI в 3-е состояние.



Цитата(BSACPLD @ Nov 6 2006, 00:37) *
Может быть кто-нибудь у кого есть живой USB-blaster опробует ее и пришлет мне скриншот.
Тогда по крайней мере можно будет выяснить в каком направлении дальше искать ошибки.

Архив Blaster.rar содержит два файла.
Файл Logger_Real_Blaster.qar - архив проекта, созданный Quartus II ver.5.0. Проект содержит временную диаграмму работы USB Blaster-а, снятую с помощью SignalTap II Logic Analyzer. USB Blaster - из NIOS II Evaluation Kit - содержит только сигналы JTAG (не поддерживает AS Mode и PS Mode).
Файл Tester.JPG показывает, какие байты были выданы в USB Blaster и, какие байты были получены от него. Поскольку SignalTap II Logic Analyzer запускается по спаду (заднему фронту) сигнала TCK, на временной диаграмме отсутствуют первые два байта (2C2D). Выданные байты не являются реальным формуляром Quartus-а, их назначение - показать реакцию USB Blaster-а на возможные формуляры Quartus-а.

Сообщение отредактировал Konst_777 - Nov 7 2006, 18:09
Прикрепленные файлы
Прикрепленный файл  Blaster.rar ( 344.72 килобайт ) Кол-во скачиваний: 5582
 
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Nov 6 2006, 21:17
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Цитата(Konst_777 @ Nov 6 2006, 23:45) *
Во-первых, на временной диаграмме отсутствует TMS. Во-вторых, хотелось бы видеть сигналы RXF# и TXE# FT245BM.

Эти сигналы отсутствуют потому, что диаграмма снята не с реального устройства, а смоделирована в Proteus'е.

За объяснение работы диаграммы Вам большое спасибо.
Буду исправлять ошибки, но наверное уже утром, а то наверняка попалю чего-нибудь ненароком smile.gif.

Сообщение отредактировал BSACPLD - Nov 6 2006, 21:25
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Nov 7 2006, 18:26
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(Konst_777 @ Nov 7 2006, 00:45) *
...До завершения обработки данного формуляра TMS должен быть равен "0"...

Это утверждение неправильно. Сейчас придется цитировать самого себя. sad.gif Нужно было написать так: "До завершения обработки данного формуляра TMS должен сохранять свое состояние". То есть, состоянием TMS управляет не программист, а формуляры Quartus-а.
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Nov 13 2006, 20:44
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Ура! Заработало! smile.gif
Вот рабочий вариант AlteraFT.rar.
Работает с 3,3В и 5В.
Насколько я знаю оригинальный USB-blaster работает с напряжениями от 1,5В до 5В.
В связи с этим возникли вопросы:
1) На чем Altera сделала свой преобразователь уровней?
2) Какие преобразователи уровней порекомендуете использовать?

У меня есть следующий вариант.
5В --> 2,5В 74AHC125
2,5В --> 5В MAX903 или AD8041 в качестве компаратора, Vref = 1/2 Vtarget.

В общем жду Ваши замечания и предложения по данному вопросу.
Прикрепленные файлы
Прикрепленный файл  AlteraFT.rar ( 199.54 килобайт ) Кол-во скачиваний: 1085
 
Go to the top of the page
 
+Quote Post
Tran
сообщение Nov 27 2006, 12:03
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 135
Регистрация: 21-06-04
Пользователь №: 70



BSACPLD, спасибо за выложеный проект a14.gif , я его повторил - всё работает.
Только медленно, раза в 3 медленнее LPT. Это у меня так или это сам бластер медленный?


--------------------
Настоящее чревато будущим.
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Nov 28 2006, 11:27
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Цитата(Tran @ Nov 27 2006, 12:03) *
BSACPLD, спасибо за выложеный проект a14.gif , я его повторил - всё работает.
Только медленно, раза в 3 медленнее LPT. Это у меня так или это сам бластер медленный?


Просто МК медленнее передает данные между FT245BM и программируемой схемой, чем оригинальный
USB-blaster сделанный на CPLD. Можно попробовать использовать более быстрый МК.
Go to the top of the page
 
+Quote Post
WEST128
сообщение Dec 5 2007, 14:14
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 468
Регистрация: 13-10-06
Из: Россия, Томск
Пользователь №: 21 291



А будет ли данный программатор работать без логики, с только одним контроллером ATmega8L, если его питать от 3.3 В ? ПЛИС тоже 3.3 В (Cyclone)
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Dec 5 2007, 19:41
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Цитата(WEST128 @ Dec 5 2007, 17:14) *
А будет ли данный программатор работать без логики, с только одним контроллером ATmega8L, если его питать от 3.3 В ? ПЛИС тоже 3.3 В (Cyclone)

По идее должен работать, только медленнее, т.к. у ATmega8L fmax=8MHz.
Я бы все таки поставил буферы, так, на всякий случай. Вместо 74AHC(T) можно поставить 74VHC(T).
Во вложенном архиве модифицированный вариант на ATmega48 (работает несколько быстрее первой версии, поддерживает только PS и JTAG).
Чтобы USB-blaster виделся Quartus'ом как USB-blaster Rev.B в UserArea кофигурационной EEPROM нужно с помощью EditEEPROM записать строчку "REVB" (без кавычек).
Прикрепленные файлы
Прикрепленный файл  EditEEPROM.rar ( 269.88 килобайт ) Кол-во скачиваний: 2867
Прикрепленный файл  AlteraFTv2.rar ( 99.57 килобайт ) Кол-во скачиваний: 635
 
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 6 2007, 12:50
Сообщение #18


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(BSACPLD @ Dec 5 2007, 14:41) *
По идее должен работать, только медленнее, т.к. у ATmega8L fmax=8MHz.
Я бы все таки поставил буферы, так, на всякий случай. Вместо 74AHC(T) можно поставить 74VHC(T).
Во вложенном архиве модифицированный вариант на ATmega48 (работает несколько быстрее первой версии, поддерживает только PS и JTAG).
Чтобы USB-blaster виделся Quartus'ом как USB-blaster Rev.B в UserArea кофигурационной EEPROM нужно с помощью EditEEPROM записать строчку "REVB" (без кавычек).


Добрый день! Поковырял ваши исходники и нашел большие расхождения по реализации между выложеным проектом мисячного и вашим.

Не могли бы вы сказать ваша версия точно работает в режимах JTAG (Signal Tap + Nios) и PS (прошивка конф. ПЗУ). Если ваша прошивка верна, то я сделаю новый код на верилоге, на основе вашего. для программатора от мисячного, который будет видеться квартусом как родной программатор. И выложу в эту тему.

Спасибо!


--------------------
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Dec 6 2007, 15:53
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Цитата(des00 @ Dec 6 2007, 15:50) *
Добрый день! Поковырял ваши исходники и нашел большие расхождения по реализации между выложеным проектом мисячного и вашим.

Не могли бы вы сказать ваша версия точно работает в режимах JTAG (Signal Tap + Nios) и PS (прошивка конф. ПЗУ). Если ваша прошивка верна, то я сделаю новый код на верилоге, на основе вашего. для программатора от мисячного, который будет видеться квартусом как родной программатор. И выложу в эту тему.

Спасибо!

SignalTap работает, с Nios не проверял, т.к. пользуюсь собственным процессором (самописный AVR ~2100 LE в Cyclone II).
PS сейчас нет возможности проверить, поскольку нет под рукой нужной ПЗУ.

P.S. В архиве поправил скриншот с конфигурационными битами.
Go to the top of the page
 
+Quote Post
WEST128
сообщение Dec 7 2007, 03:54
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 468
Регистрация: 13-10-06
Из: Россия, Томск
Пользователь №: 21 291



Цитата(BSACPLD @ Dec 6 2007, 01:41) *
По идее должен работать, только медленнее, т.к. у ATmega8L fmax=8MHz.
Я бы все таки поставил буферы, так, на всякий случай. Вместо 74AHC(T) можно поставить 74VHC(T).

Спасибо. Надо собрать за 1 день, во вторник уже сдавать прибор, в котором ПЛИС, а подобная логика в Томске только под заказ 2 недели. Потом соберу по нормальной версии. Еще вопрос: будет ли данный зверь работать в испольнении на процессоре со встроенным интерфейсом USB, например, AT91SAM7S64 ?

Сообщение отредактировал WEST128 - Dec 7 2007, 03:55
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 7 2007, 06:51
Сообщение #21


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Добрый день!

Выкладываю верилог код для EPM3064. Немного подправил код мисячного. топ левел идет из проекта который реализован у меня.

Работает JTAG на MAX3064, Cyclon I.
PS нечем проверить.

AS не работает. EPCS ки не хотят зашиваться. Но полагаю что вопросами AS никто не занимался.
Или у кого нибудь есть лог работы квартуса в режиме AS ?
Прикрепленные файлы
Прикрепленный файл  usb_jtag.zip ( 4.54 килобайт ) Кол-во скачиваний: 296
 


--------------------
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Dec 7 2007, 19:33
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Цитата(WEST128 @ Dec 7 2007, 06:54) *
Спасибо. Надо собрать за 1 день, во вторник уже сдавать прибор, в котором ПЛИС, а подобная логика в Томске только под заказ 2 недели. Потом соберу по нормальной версии. Еще вопрос: будет ли данный зверь работать в испольнении на процессоре со встроенным интерфейсом USB, например, AT91SAM7S64 ?

По поводу AT91SAM7S64.
Если поставить нужные VID и PID и сделать так, чтобы микросхема со стороны компьютера виделась как FTDI, то точно должно работать. А чем не нравится FT245BM? У FT245R вообще минимум обвески, так, что должно получится очень компактно.

Цитата(des00 @ Dec 7 2007, 09:51) *
Добрый день!

Выкладываю верилог код для EPM3064. Немного подправил код мисячного. топ левел идет из проекта который реализован у меня.

Работает JTAG на MAX3064, Cyclon I.
PS нечем проверить.

AS не работает. EPCS ки не хотят зашиваться. Но полагаю что вопросами AS никто не занимался.
Или у кого нибудь есть лог работы квартуса в режиме AS ?

AS и не должен работать, я делал только JTAG и PS.
У меня есть оригинальный Altera USB-Blaster Rev.C, как только будет время попробую снять лог работы с помощью BusHound.
Go to the top of the page
 
+Quote Post
WEST128
сообщение Dec 8 2007, 18:12
Сообщение #23


Местный
***

Группа: Свой
Сообщений: 468
Регистрация: 13-10-06
Из: Россия, Томск
Пользователь №: 21 291



Всем нравится, но ради интереса попробую сделать на AT91SAM7S64. Как только время свободное появится.
Go to the top of the page
 
+Quote Post
alexf
сообщение Dec 16 2007, 08:23
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608



Цитата(des00 @ Dec 6 2007, 22:51) *
Добрый день!

Выкладываю верилог код для EPM3064. Немного подправил код мисячного. топ левел идет из проекта который реализован у меня.


я синтезировал - получилось 42 логических элемента.
Для сравнения вариант Kolja Waschk, ixo.de - синтезируется в 52.

Казалось бы функциональность не должна отличаться. Я внимательно не смотрел,
но там на вскидку в лоб сделан FSM и больше ничего. Вы на его вариант не смотрели? За счет чего
такое расхождение?

И еще. У него же симпатичный вариант на 68013 вообще без CPLD, но сказано что на 60% медленнее.
Похоже что там код ножками дергает "вручную". А никто не пытался SPI приспособить? Казалось бы
должно все ускориться? Если конечно сдвиг - узкое место.
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 17 2007, 03:55
Сообщение #25


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(alexf @ Dec 16 2007, 03:23) *
я синтезировал - получилось 42 логических элемента.
Для сравнения вариант Kolja Waschk, ixo.de - синтезируется в 52.

Казалось бы функциональность не должна отличаться. Я внимательно не смотрел,
но там на вскидку в лоб сделан FSM и больше ничего. Вы на его вариант не смотрели? За счет чего
такое расхождение?


шарился по его сайту, но его код не нашел, а может быть и плохо искал. все делал по верилог коду мисячного (те же 42 плитки) параллельно опираясь на асм код BSACPLD.
выложите код посмотрю в чем разница, может быть его вариант работает с AS %)

Цитата
И еще. У него же симпатичный вариант на 68013 вообще без CPLD, но сказано что на 60% медленнее.
Похоже что там код ножками дергает "вручную". А никто не пытался SPI приспособить? Казалось бы
должно все ускориться? Если конечно сдвиг - узкое место.


в проекте BSACPLD для вывода используется именно SPI


--------------------
Go to the top of the page
 
+Quote Post
alexf
сообщение Dec 17 2007, 08:24
Сообщение #26


Местный
***

Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608



Цитата(des00 @ Dec 16 2007, 19:55) *
шарился по его сайту, но его код не нашел, а может быть и плохо искал. все делал по верилог коду мисячного (те же 42 плитки) параллельно опираясь на асм код BSACPLD.
выложите код посмотрю в чем разница, может быть его вариант работает с AS %)
в проекте BSACPLD для вывода используется именно SPI



МОжет я плохо смотрел на код BSACPLD, но мне показалось что делается bit banging.

loop_shift:
lsr data
ori port,(1<<TCK)
out PORTB,port
sbic PINC,TDO
ori data,0b10000000
andi port,0b00101110
brcc clr_TDI
ori port, 0b00010000

Не тот код? И сказано что "в 3 раза медленнее чем ПАРАЛЛЕЛЬНЫЙ КАБЕЛЬ", если не опечатка.
Вроде SPI в AVR работает до CLK/2, так что даже на 8 МГц от внутреннего генератора может неплохо
получиться?


А вот прошивка от Kolja. Правда на VHDL. 10 лет назад сам на нем писал, но как занялся вериложеством, так и не могу остановиться smile.gif

Там весь проэкт, даже два. Второй чисто на 68013.
Прикрепленные файлы
Прикрепленный файл  usb_jtag_20070215_1134.zip ( 97.65 килобайт ) Кол-во скачиваний: 1160
 
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 17 2007, 10:28
Сообщение #27


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



за VHDL спасибо, посмотрю на досуге.

по асм коду, это из другого проекта.
разбор исходника от BSACPLD с моими коментариями в атаче
это оттуда
Код
.....

;
; конфигурируем SPI регистр
;
    ldi temp, (1<<SPE)|(1<<MSTR)|(1<<DORD)
    out SPCR, temp
.....
    cbi PORTC, RD  ; читаем
    nop
    nop
    in data, PIND    
    sbi PORTC, RD
    
    out SPDR, data ; пишем в спиай
......

Прикрепленные файлы
Прикрепленный файл  _________.txt ( 5.67 килобайт ) Кол-во скачиваний: 251
 


--------------------
Go to the top of the page
 
+Quote Post
RYury
сообщение Dec 17 2007, 16:08
Сообщение #28


Участник
*

Группа: Свой
Сообщений: 70
Регистрация: 4-12-06
Из: Окно Петра в Европу
Пользователь №: 23 119



попробовал вериложный код для cpld от месячного и подправленный des00 -> Altera usb-blaster определяется, но jic файлы не прошиваются, взял от kolja waschk на vhdl -> все ok, по jtag и AS шьется (тестировал Cyclone первый)
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 18 2007, 03:59
Сообщение #29


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(RYury @ Dec 17 2007, 11:08) *
попробовал вериложный код для cpld от месячного и подправленный des00 -> Altera usb-blaster определяется, но jic файлы не прошиваются, взял от kolja waschk на vhdl -> все ok, по jtag и AS шьется (тестировал Cyclone первый)


все правильно. Вчера расковырял код от коли.
прошивка мисячного не поддерживает AS, я немного подправил его код, с теми же ограничениями.

Причем функционально верилог код КА + SPI идентичный, за исключением того что нога выходных для AS в верилог коде вообще не читается, ну и то что в vhdl коде все выходные сигналы регистровые. Вот и вся разница между прошивками.

Вывод : с кодом от kolja waschk получается полный аналог усб бластера. Смысла перевести его на верилог и/или оптимизировать его нет никакого
т.к. в 3064 проблем с ресурсом нет, а 3032 все равно не запихнуть. К тому же в его коде самовосстанавливающийся КА (как КА в JTAG и квартус похоже интенсивно этим пользуется).

ЗЫ. правда ради искусства переведу сегодня все на систем верилог.

Удачи!


--------------------
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 18 2007, 06:13
Сообщение #30


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Занятно, но тоже самое (изменил поведение только одного сигнала) на систем верилоге заняло на 4 плитки меньше. Если кому интересно см. в атаче.
Прикрепленные файлы
Прикрепленный файл  mjtag_logic.v ( 7.01 килобайт ) Кол-во скачиваний: 306
 


--------------------
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Jan 21 2008, 18:49
Сообщение #31


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(alexf @ Dec 17 2007, 12:24) *
А вот прошивка от Kolja...
... Там весь проэкт, даже два. Второй чисто на 68013.

alexf спасибо за ссылку на проект от Kolja Waschk. a14.gif И уж конечно спасибо самому Kolja Waschk. a14.gif a14.gif

Слегка переделал firmware для CY7C68013A. Теперь при подключении к PC устройство распознается Windows и Quartus-ом как Altera Nios II Evaluation Board. То есть ограниченный вариант Altera USB Blaster - поддерживается только режим JTAG (а значит SignalTap II Logic Analyzer, In-System Memory Content Editor и отладка в NIOS II biggrin.gif).
Ограничил функционирование устройства только в режиме full-speed USB. Поскольку в High-Speed USB все равно нет смысла, так как сам контроллер не способен обрабатывать данные поступающие со скоростью больше мегабайта в секунду.
Проверил работоспособность с Cyclone и MAX 7000.

Выкладываю исходник для компилятора Keil. Чтобы получить работающее устройство возможно потребуется переназначить выводы порта C контроллера, формирующие сигналы JTAG.
Прикрепленные файлы
Прикрепленный файл  NIOS_eval_kit.rar ( 88.64 килобайт ) Кол-во скачиваний: 363
 
Go to the top of the page
 
+Quote Post
alexander55
сообщение Jan 22 2008, 07:32
Сообщение #32


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Тема очень интересная.
С Altera вопросы решены, теперь начинается "чистое искусство".
А для Xilinx что-нибудь подобное есть ?
Go to the top of the page
 
+Quote Post
misyachniy
сообщение Jun 12 2008, 15:12
Сообщение #33


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Решил и я попробовать NIOS Cyclone2.
В моем варианте
http://njnmnp.narod.ru/usbblaster/usbblaster.html
Прошивался корректно, но отладка и загрузка NIOS IDE, не хотела идти.
Прошил альтеру этим проектом.
http://www.ixo.de/info/usb_jtag/
И прошил файлом altera_ft_v2.ept EEPROM FT245 и добавил строку "REVB"
Загрузка пошла, но пошаговая отладка сбоит - пару шагов сделает и вылетает.
Отладка через ByteBlasterMV идет корректно.

Работает ли у кого проект http://www.ixo.de/info/usb_jtag/ с NIOS?
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Jun 14 2008, 07:47
Сообщение #34


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Может быть, все это из за слишком длинного шлейфа JTAG? Для ByteBlasterMV, как правило, все работает даже если длина шлейфа больше 50 см. Для USB-Blaster-а проблемы с отладкой и загрузкой в NIOS начинаются если длина шлейфа больше 5 см.
Go to the top of the page
 
+Quote Post
misyachniy
сообщение Jun 17 2008, 07:07
Сообщение #35


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Чудеса какие-то :-)
Я делал еще вариант USB Blaster-а с резисторами по 22 ома во всех цепях.
И диодами Шотки на каждой ножке для защиты от выбросов.
Достал из тумбочки - подключил и все работает как часы.
Прошивку не менял.
Будет немного свободного времени, проверю в чем точно вопрос и выложу информацию на сайте.
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Jun 17 2008, 16:18
Сообщение #36


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Цитата(misyachniy @ Jun 17 2008, 11:07) *
Чудеса какие-то :-)
Я делал еще вариант USB Blaster-а с резисторами по 22 ома во всех цепях.
И диодами Шотки на каждой ножке для защиты от выбросов.
Достал из тумбочки - подключил и все работает как часы.
Прошивку не менял.
Будет немного свободного времени, проверю в чем точно вопрос и выложу информацию на сайте.

Дело в том, что у EPM очень резкие фронты.
Линия не согласована, следовательно, от входа идет отраженная волна, которая и сбивает отладку.
Варианта два. Первый - установка резисторов 22-120 Ом, которые будут гасить отраженную волну.
Второй - установить режим пониженного быстродействия, тем самым загрубив фронты.

Цитата(misyachniy @ Jun 12 2008, 19:12) *

misyachniy!
У Вас что-то не то с главной страницей сайта - посмотрите скриншоты.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
alexander55
сообщение Jun 18 2008, 07:58
Сообщение #37


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(misyachniy @ Jun 17 2008, 11:07) *

Мой антивирус у Вас обнаружил веб трояна. Только чей он непонятно.
Go to the top of the page
 
+Quote Post
misyachniy
сообщение Jun 20 2008, 14:51
Сообщение #38


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Цитата(alexander55 @ Jun 18 2008, 10:58) *
Мой антивирус у Вас обнаружил веб трояна. Только чей он непонятно.


Мой NOD32 не обнаружил.
Заменил страницу.
Go to the top of the page
 
+Quote Post
wired
сообщение Dec 30 2009, 09:22
Сообщение #39


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 13-06-08
Из: KYIV
Пользователь №: 38 269



Хочу повторить девайсину http://njnmnp.narod.ru/usbblaster/usbblaster.html
но в продаже есть FT245R насколько я понял из ДШ там EEPROM уже встроенная, подскажите получится програматор? или искать FT245B

Сообщение отредактировал wired - Dec 30 2009, 09:24
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 23:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01806 секунд с 7
ELECTRONIX ©2004-2016