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

 
 
> 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
3 страниц V  < 1 2 3 >  
Start new topic
Ответов (15 - 29)
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

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

 


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


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