_pv 74 9 июля, 2013 Опубликовано 9 июля, 2013 · Жалоба Поиском уже прошелся, толком ничего не нашел. прям в этой же теме, пару страниц назад http://electronix.ru/forum/index.php?showt...st&p=883608 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 9 июля, 2013 Опубликовано 9 июля, 2013 · Жалоба Это не тот протокол. Интересен протокол вызовов функций dll и аргументы. Например, чтоб перевести пин CS адаптера в активное состояние. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 74 10 июля, 2013 Опубликовано 10 июля, 2013 · Жалоба Это не тот протокол. Интересен протокол вызовов функций dll и аргументы. Например, чтоб перевести пин CS адаптера в активное состояние. nCS high if bit 3 was set (0x08), otherwise low какой dll? в \drivers\usb-blaster стандартные ftdi драйвера лежат: http://www.ftdichip.com/Drivers/D2XX.htm Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 10 июля, 2013 Опубликовано 10 июля, 2013 · Жалоба >> какой dll? Пока не знаю какой dll, изучаю. Но usbblstr*.dll программатором Квартуса не вызывается. Видимо из jtagserver. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 74 10 июля, 2013 Опубликовано 10 июля, 2013 · Жалоба Но 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, ...); } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 10 июля, 2013 Опубликовано 10 июля, 2013 · Жалоба >>вряд ли получится Посмотрим... >>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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 74 10 июля, 2013 Опубликовано 10 июля, 2013 · Жалоба >>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, это наверняка должно переключить его в режим ногодрыгания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 10 июля, 2013 Опубликовано 10 июля, 2013 (изменено) · Жалоба ОК, спасибо сейчас потестю. Кстати команда: >> //nCS high if bit 3 was set (0x08), otherwise low После передёргивания питания управляет пином номер 8 разьёма, который есть TRST а не CS. Изменено 10 июля, 2013 пользователем sevstels Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 74 10 июля, 2013 Опубликовано 10 июля, 2013 · Жалоба Кстати команда: >> //nCS high if bit 3 was set (0x08), otherwise low После передёргивания питания управляет пином номер 8 разьёма, который есть TRST а не CS. не вижу CS на картинке. у альтеры несколько иное мнение по поводу распиновки их собственного программатора, но китайцам, конечно, виднее как оно должно быть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 15 июля, 2013 Опубликовано 15 июля, 2013 · Жалоба Положил тестовую версию на страницу. Если есть желающие попробовать, велком. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 13 января, 2014 Опубликовано 13 января, 2014 · Жалоба Вопрос к _pv. Не получилось перевести пины программатора в высоко импедансное состояние. На плате аппаратно формирователь установлен, и дорожка от пина управления к процу идёт. Случайно не знаете "заветного ключика"? По идее должно поддерживаться по умолчанию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 74 13 января, 2014 Опубликовано 13 января, 2014 · Жалоба Output Enable/LED active if bit 5 was set (0x20), otherwise low только там буфер вроде как 4х битный стоит, а выходов - 5 (TMS, TSK, TDI, nCE, nCS), кому-то одному не хватит и он останется небуферизированным Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 13 января, 2014 Опубликовано 13 января, 2014 · Жалоба Нет, там нормальный 8и вентильный LV244, все сигнала должны буферироваться. Картинка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 74 13 января, 2014 Опубликовано 13 января, 2014 · Жалоба ну значит повезло, в моей китайской копии бластера стоит контроллер силабс f321 и sn74lvc125 как буфер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 13 января, 2014 Опубликовано 13 января, 2014 · Жалоба На другой стороне платы cy7c68013A. 1я нога гейтов сидит на массе, а 19я подключена на проц, прозвонил. Должен он управляться... но как? :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться