Перейти к содержанию
    

Поиском уже прошелся, толком ничего не нашел.

прям в этой же теме, пару страниц назад

http://electronix.ru/forum/index.php?showt...st&p=883608

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это не тот протокол.

Интересен протокол вызовов функций dll и аргументы.

Например, чтоб перевести пин CS адаптера в активное состояние.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это не тот протокол.

Интересен протокол вызовов функций dll и аргументы.

Например, чтоб перевести пин CS адаптера в активное состояние.

nCS high if bit 3 was set (0x08), otherwise low

какой dll?

в \drivers\usb-blaster стандартные ftdi драйвера лежат: http://www.ftdichip.com/Drivers/D2XX.htm

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>> какой dll?

Пока не знаю какой dll, изучаю.

Но usbblstr*.dll программатором Квартуса не вызывается.

Видимо из jtagserver.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но usbblstr*.dll программатором Квартуса не вызывается.

Видимо из jtagserver.

usbblstr* это просто переименованные драйвера от ftdi, они не могут не вызываться.

с ними и работать надо, как просто с ft245, какой бит что значит выше описано,

расковырять квартус чтобы найти более высокоуровневую библиотеку для бластера вряд ли получится проще будет самому написать

 

static char cmd = 0;

//nCS high if bit 3 was set (0x08), otherwise low

void SetCS(int level){

if (level) cmd |= 0x08; else cmd &= ~0x08;

cmd &= 0x3F;

FT_Write(..., &cmd, 1, ...);

}

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>>вряд ли получится

Посмотрим...

 

>>FT_Write(..., &cmd, 1, ...);

Это понятно... Не понятно другое.

1. Как тогда программировать байт?

2. Чем байт данных будет отличаться от команды установки пинов?

3. Как инициализировать MCU адаптера?

 

У меня такое железо, внутри только чип Cypress.

И протокол отличается. Если без какой либо инициализации вписать 1 байт, FT_Write(0xAA), то на выходе адаптера получаем 8 последовательных импульсов CLK и на выходе данных 1 0 1 0 1 0 1 0

 

Те, похоже, что поддерживается пакетный режим программирования. Который надо предварительно инициализировать "особым" набором команд, и затем на выход бластера автоматически вписывается страница из 256 последовательных байт, пришедших от PC. Так же автоматически генерится CLK и CS.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>>FT_Write(..., &cmd, 1, ...);

Это понятно... Не понятно другое.

1. Как тогда программировать байт?

2. Чем байт данных будет отличаться от команды установки пинов?

3. Как инициализировать MCU адаптера?

1,2 старший бит переключает режимы.

3. в оригинальном BB никакого MCU нет, соответственно инициализировать ничего не надо, а данный китайский адаптер должен вести себя абсолютно как ft245b, иначе квартус с ним работать не будет.

 

https://github.com/swetland/jtag

тут пример работы с ВВ через libusb, но протокол тот же самый.

 

Те, похоже, что поддерживается пакетный режим программирования. Который надо предварительно инициализировать "особым" набором команд, и затем на выход бластера автоматически вписывается страница из 256 последовательных байт, пришедших от PC. Так же автоматически генерится CLK и CS.

вы описание протокола читали? там написано что делает старший бит.

попробуйте послать подряд более чем 63 байта 0х00, это наверняка должно переключить его в режим ногодрыгания.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ОК, спасибо сейчас потестю.

 

Кстати команда:

>> //nCS high if bit 3 was set (0x08), otherwise low

После передёргивания питания управляет пином номер 8 разьёма, который есть TRST а не CS.

Изменено пользователем sevstels

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати команда:

>> //nCS high if bit 3 was set (0x08), otherwise low

После передёргивания питания управляет пином номер 8 разьёма, который есть TRST а не CS.

не вижу CS на картинке.

у альтеры несколько иное мнение по поводу распиновки их собственного программатора, но китайцам, конечно, виднее как оно должно быть.

post-3954-1373452070_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос к _pv.

Не получилось перевести пины программатора в высоко импедансное состояние.

На плате аппаратно формирователь установлен, и дорожка от пина управления к процу идёт.

Случайно не знаете "заветного ключика"?

 

По идее должно поддерживаться по умолчанию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Output Enable/LED active if bit 5 was set (0x20), otherwise low

только там буфер вроде как 4х битный стоит, а выходов - 5 (TMS, TSK, TDI, nCE, nCS), кому-то одному не хватит и он останется небуферизированным

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет, там нормальный 8и вентильный LV244, все сигнала должны буферироваться.

Картинка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну значит повезло, в моей китайской копии бластера стоит контроллер силабс f321 и sn74lvc125 как буфер.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На другой стороне платы cy7c68013A.

1я нога гейтов сидит на массе, а 19я подключена на проц, прозвонил.

Должен он управляться... но как? :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...