nabbla (nabbla1) wrote,
nabbla
nabbla1

Category:

Мучаем 5576ХС4Т - часть 0 - покупаем, паяем, ставим драйвера и софт

Часть 0 - покупаем, паяем, ставим драйвера и софт
Часть 1 - что это вообще за зверь?
Часть 2 - наша первая схема!
Часть 3 - кнопочки и лампочки
Часть 4 - делитель частоты
Часть 5 - подавление дребезга кнопки
Часть 6 - заканчиваем кнопочки и лампочки
Часть 7 - счетчики и жаба
Часть 8 - передатчик UART
Часть 9 - Hello, wolf!
Часть 'hA - приёмник UART
Часть 'hB - UART и жаба
Часть 'hC - полудуплексный UART.
Часть 'hD - МКО (МКИО, Mil-Std 1553) для бедных, введение.
Часть 'hE - приёмопередатчик МКО "из подручных материалов" (в процессе)
Часть 'hF - модуль передатчика МКО
Часть 'h10 - передатчик сообщений МКО
Часть 'h20 - работа с АЦП ADC124s051
Часть 'h21 - преобразование двоичного кода в двоично-десятичный (BCD)
Часть 'h22 - Bin2Bcd с последовательной выдачей данных
Часть 'h23 - перемножитель беззнаковых чисел с округлением
Часть 'h24 - перемножитель беззнаковых чисел, реализация
Часть 'h25 - передаём показания АЦП на компьютер
Часть 'h26 - работа над ошибками (быстрый UART)
Часть 'h27 - PNG и коды коррекции ошибок CRC32
Часть 'h28 - передатчик изображения PNG
Часть 'h29 - принимаем с ПЛИС изображение PNG
Часть 'h2A - ZLIB и коды коррекции ошибок Adler32
Часть 'h2B - ускоряем Adler32
Часть 'h2C - формирователь потока Zlib
Часть 'h2D - передаём сгенерированное PNG-изображение
Часть 'h2E - делим отрезок на равные части
Часть 'h2F - знаковые умножители, тысячи их!
Часть 'h30 - вычислитель множества Мандельброта
Часть 'h31 - ускоренные сумматоры
Часть 'h32 - ускоренные счётчики (делаем часы)
Часть 'h33 - ускоряем ВСЁ
Часть 'h34 - ускоренные перемножители
Часть 'h35 - умножители совсем просто
Часть 'h36 - уравновешенный четверичный умножитель


Расскажем, что это за зверь такой, отечественная ПЛИС 5576ХС4Т, и как сделать первые шаги в её освоении.

Самое сложное - раздобыть к ней отладочную плату. Одну разновидность выпускает сам ВЗПП-С, но в розницу и вообще физическим лицам, похоже, не продаёт. Другую делают LDM-Systems из Зеленограда, вот её я и купил. На тот момент они были готовы продавать её физическим лицам (сейчас, по кр. мере если верить сайту - только юридическим), да и цена была чуть менее кусачей.

DSC_4644.JPG



Также у них продаётся отладочная плата на более слабенькую ПЛИС 5576ХС1Т - в ней 2880 логических ячеек (LE) и 20 кбит встроенной памяти (RAM-блоков), а не 9984 LE и 96 кбит, как в 5576ХС4Т. Зато подешевле, и совершенно точно продадут физическим лицам.

Можно ещё попробовать заказать плату не в полной комплектации. Если открыть электрическую схему, там будут отдельные фрагменты, обведённые пунктиром и обозначенные "A, B, C, D". Это опциональная периферия. A - виртуальный COM-порт и приёмопередатчик RS485, B - контроллер Ethernet, C - светодиодики и кнопочки на плате, чтобы побыстрее включиться в процесс, D - АЦП. Каждый из них можно без вреда для других не напаивать, и тогда получится чуточку дешевле.

По-хорошему, приобретением этих отладочных плат должен озаботиться работодатель. Эти цены - сущая фигня в сравнении с тем, сколько будет стоить сама микросхема уже в металлокерамическом корпусе и с военной приёмкой!

Окромя самой платы, понадобится отладчик JTAG и шнурок, который позволит подключить его к данной плате. Отладчик я купил там же, но вообще тут подойдёт любой USB Blaster (за авторством Altera, нынче Intel).

Чтобы подключить его к данной плате, можно было купить переходник, но я пожадничал и спаял кабель самостоятельно, на фото - справа сверху. Даже не то, чтобы пожадничал - при покупке отладочной платы я не ожидал, что будет такая проблема, надеялся может, что там в комплекте уже какой-то шнурок будет. Но плата пришла, USB Blaster пришёл, хочется уже это дело проверить - в такой ситуации спаять явно быстрее, чем ещё раз заказывать что-то.

Распиновка шнура выясняется следующим образом. Открываем принципиальную схему отладочной платы, находим на ней разъём X4 (под микросхемой FLASH). Нам нужны следующие выводы:

- GND, желательно 2 штуки
- VTref (иногда VCC или VDD) - он объяснит USB Blaster'у, что нужно выдавать сигналы с логическими уровнями 3,3 вольта
- TCK, TMS, TDI, TDO - основные выводы JTAG.

Остальное нам не надо, оставляем неподключёнными. На шелкографии платы находим "единичку" - первую ножку разъёма. Эти разъёмы нумеруются справа налево!

Дальше открываем руководство по эксплуатации USB Blaster, находим таблицу 2, там во вкладке JTAG прописаны интересующие нас выводы.

Свериться можно всё по той же фотографии в начале поста - можно открыть её в полном разрешении, и расположение проводов там видно вполне отчётливо.

Для работы с данной ПЛИС нужно использовать среду Quartus II, версии НЕ ВЫШЕ 9.0 sp2. В более свежих версиях прекращается поддержка кристаллов Flex10k, функциональным аналогом которой является наша 5576ХС4Т.

Скачать Quartus II 9.0 sp2 можно бесплатно с FTP-сервера Altera:
ftp://ftp.altera.com/outgoing/release
находим там
90sp2_quartus_free.exe

собственно, вот ссылка непосредственно на скачивание: ftp://ftp.altera.com/outgoing/release/90sp2_quartus_free.exe

Устанавливаем Quartus. Не помешает запустить установщик от имени администратора, иначе он может какие-то файлы не установить, но промолчать.

И остаётся ещё установить драйвера на USB Blaster. Подключаем данный драндулет, он появится как "неизвестное устройство", драйвера к нему лежат в папке Quartus: drivers\usb-blaster.
Под windows xp появится предупреждение, что драйвера не подписаны, жмём "всё равно продолжить", и всё устанавливается в лучшем виде.
Под семёркой такой фокус, увы, не прокатывает, и я отключил подпись драйверов следующим способом.

Запустил командную строку от имени администратора и ввёл 2 команды:

bcdedit -set loadoptions DISABLE_INTEGRITY_CHECKS

bcdedit -set TESTSIGNING ON

после чего перезагрузился, и всё поставилось. Есть и другие варианты.

После всех мучений в диспетчере устройств должен появиться USB Blaster. И далее нам надо убедиться, что кабель спаян правильно, и вся эта штука вообще подаёт признаки жизни.

Для этого подключаем отладочную плату по USB (или втыкиваем её в зарядное для телефона, нам пока что нужно лишь 5 вольт), подключаем USB Blaster, открываем Quartus, а в нём - Programmer, либо из меню Tools, либо из панели инструментов, нарисован чип, из которого валит пар.

У этой штуки укуренный интерфейс. Тыкаем Hardware setup, и там в списке должен САМОСТОЯТЕЛЬНО появиться наш USB Blaster. Он может появиться не сразу, кнопка Add hardware нам абсолютно ничем не поможет, там речь пойдёт о каких-то сетевых устройствах. Как появится - долбим по нему два раза, чтобы он появился в строке Currently selected hardware, и наконец-то жмём OK.

И теперь жмём Auto detect, и должны увидеть следующую картину:



Два устройства. Первое, EPC16/4/8 - это FLASH-конфигуратор ПЛИС, выполненный на микросхеме 5576РС1У. Именно туда мы хотим прошиваться, чтобы далее ПЛИС работала по нашей "программе" уже без отладчика, грузилась при подаче питания.

Второе устройство, EPF10K200E/S - непосредственно ПЛИС. Можно законфигурировать непосредственно её, это ГОРАЗДО быстрее, буквально полсекунды, и с этого момента она начнёт работать по новой "прошивке". Но после выключения питания она, разумеется, будет утеряна, и ПЛИС будет "загружена" из FLASH-конфигуратора.

Теперь у нас всё готово для работы!
Tags: ПЛИС, работа, странные девайсы
Subscribe

Recent Posts from This Journal

  • Нахождение двух самых отдалённых точек

    Пока компьютер долго и упорно мучал симуляцию, я пытался написать на ассемблере алгоритм захвата на ближней дистанции. А сейчас на этом коде можно…

  • Слишком общительный счётчик

    Вчера я чуть поторопился отсинтезировать проект,параметры не поменял: RomWidth = 8 вместо 7, RamWidth = 9 вместо 8, и ещё EnableByteAccess=1, чтобы…

  • Балансируем конвейер QuatCore

    В пятницу у нас всё замечательно сработало на симуляции, первые 16 миллисекунд полёт нормальный. А вот прошить весь проект на ПЛИС и попробовать "в…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 5 comments