Меню

Altera usb blaster своими руками

USB-Blaster

Здесь уже начали разбирать ПЛИС, так что принимайте мой вклад.

Простенькую платку уже описали, я расскажу про программатор.
Есть 2 способа программирование этих ПЛИС (точнее оно называется конфигурирование) – через ByteBlaster или USB-Blaster.
ByteBlaster (5 проводков которыми AVR шьется) очень простой, но он подключается через LPT порт, вот информация по нему http://marsohod.org/index.php/howtostart/programmer. USB-Blaster будет интересней, но информации по нему очень мало, а готовые дороги.

После долгих поисков я таки нашел подходящую реализацию. http://sa89a.net/mp.cgi/ele/ub.htm статья японского автора, конструкцию которого я повторил.

USB-Blaster


(картинка не влезла по ширине, кликните и все увидите)

Все основано на PIC18F2550 (недавно автор создал еще одну версию программатора основанную на PIC18F14k50, можете попробовать собрать его). На схеме ничего сложного нет. СМД компоненты типоразмера 1206. На выходе стоят резисторные делители для согласования уровней до 3.3 В, конечно лучше поставить микросхему, к примеру SN74LVC2T45.

Программатор для PIC

С ПИКами я раньше не возился, и у меня возникли проблемы при прошивке контроллера. Здесь надо высоковольтный программатор. После долгих поисков подходящего простого и работающего программатора я где-то наткнулся на такое чудо

Транзистор любой n-p-n, у меня кт315.

Прошиваться через WinPic800 с немного измененными настройками одного программатора

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

Еще надо блок питания на 12 В, я подключался к компьютерному, куда плюс питания на схеме видно, главное про землю не забыть. Во время прошивки будет питаться от USB.

Установка драйвера

После прошивки отпаиваем лишние провода, подключаем наш USB-Blaster. Компьютер находит новое устройство и просит драйвер. Установка немного отличается от традиционной, но ничего сложного нет. Немного забыл, для программирования ПЛИС надо установить IDE, у Альтеры это Quartus II. Заходите на https://www.altera.com/download/dnl-index.jsp вам нужно Quartus II Web Edition (он бесплатен). За новыми версиями гнаться не стоит, они больше весят и мало чем отличаются (у меня 8 версия), а в 10 нет симуляции и поддержку старых чипов отключили. Про Квартус писать не буду, это сделали уже за меня http://marsohod.org/index.php/aquartus2.

После установки Квартуса можно приступать к установке драйверов (они в папке с программой).

Так об этом написано на сайте Альтеры
Driver Installation
1. Plug the USB-Blaster download cable into the PC. The Found New Hardware Wizard appears.
2. If you are prompted to answer a question about Windows XP Update, choose No, not this time and click Next.
3. Select Install from a list or specific location (Advanced) and click Next.
4. Select Don’t search. I will choose the driver to install and click Next.
5. If you are prompted to Select a hardware type, keep the default selection Show All Devices, and click Next.
6. Select Altera USB-Blaster from the wizard list of hardware devices, then click Have Disk… If the device is not available in the list, click Have Disk… without selecting any device from the wizard list.
7. Click Browse… and browse to the \drivers\usb-blaster directory.
8. Choose the appropriate location or file using the following steps:
o All versions of Quartus II software (except versions 6.1 to 7.2):
1. Select the file usbblst.inf.
2. Click Open.
o Quartus II software versions 6.1 to 7.2:
1. Browse to the \x32 directory (Windows 2000/XP standard 32-bit) or \x64 directory (Windows XP 64-bit).
2. Click Open. The wizard automatically chooses the required file.
9. If the hardware Altera USB-Blaster appears in the Model list, select the device.
10. Click Next in the wizard.
11. Click Continue Anyway in the warning dialog box.
12. Click Finish.
13. To complete your installation, set up programming hardware in the Quartus II software

По-русски это выглядит так:
Нет, не в этот раз -> Установка из указанного места -> Не выполнять поиск. Я сам выберу нужный драйвер -> (выбираете “Altera USB-Blaster”) Установить с диска -> Обзор (выбираете \drivers\usb-blaster в папке с установленным Квартусом) -> Готово.
На программаторе должен засветиться светодиод.

Читайте также:  Декор своими руками старых стенок

Прошивка контроллера, печатная плата и схема
USB-Blaster.rar

Ждите описание того для чего он вам надо 🙂

UPD, некоторые неучтенные моменты
Здесь выведено питание на JTAG разъем, мне показалось удобным питать отладочную плату от программатора через USB — я так и сделал. В других программаторах на пин питания в разъеме подключено питание выходного каскада буфера (которого здесь нет) для привидения уровня сигналов JTAG к уровням на плате а плата питается отдельно. Стоит добавить джампер для отключения питания через JTAG.

Когда я пытался прошить еще один программатор, ПИК не хотел прошиваться, доходило до 15-20% и все. После увеличения питания высоковольтной части (на схеме 12В) до 12.5-13В все прошло гладко и без запинок.

Источник

Аудио ЦАП DAC. Поделки начинающего цапостроителя. Часть 20. ПЛИС в ЦАП. Quartus II + Altera USB Blaster

Содержание / Contents

Мир цапостроя не заканчивается на РСМ63 или AD1862 , а новые форматы и поддерживающие их чипы уже доступны.
Это интересно. И не так уж сложно. Достаточно иметь нужный набор инструментов, который стал доступен практически каждому, и желание пробовать и экспериментировать.

↑ Небольшое вступление: CPLD она же ПЛИС

ПЛИС, что расшифровывается как Программируемая Логическая Интегральная Схема, по буржуйски — CPLD, что означает Complex Programmable Logic Device, в цапостроении применяется уже давно. А в мире цифровых устройств еще раньше.
Один из моих самосборных компьютеров «Орион-128» имел в стартовом комплекте печатную плату и прошитую ПЛИС, без которой плата бы никогда не запустилась бы. А это было… Ох, уже и не вспомню.
Но давно.

ПЛИС бывают разные. Основные производители на данный момент — это Xilinx и Altera, ну может кто-то еще — не вдавался. Бывают они разной структуры, назначения, ёмкости. Всего не перечислить. Технологии-то уже более 20 лет… Не беда, лампы вон до сих пор в цене:)

↑ Однако, приступим!

Когда я искал материал по ПЛИС, наткнулся на статью моего тёзки с ником Lexus. Называется она « Использование ПЛИС в DAC ». За статью автору огромное спасибо! Возможно это единственный материал, где подробно разжёвано всё от начала и почти до конца. Всёе остальное, включая документацию от производителей, довольно тяжело осваивать «в лоб». Вот на базе этого материала я и расскажу о своём опыте работы с ПЛИС. Я конечно постараюсь покороче, ну, а вы готовьте помидоры и изучайте.

Для начала нужно определиться, для чего и как будем использовать этот самый ПЛИС. Задача конвертации RJ в I2S, описанная в вышеуказанной статье — это просто, и как то меня она минула за ненадобностью, а вот коммутация входов, деление частоты на костыле из 3 корпусов 74НС74, переключение генераторов — вот минимальная задача, ради которой стоит начать знакомство с этой технологией.
Поэтому за основу был взят готовый ЦАП на AK4137, описанный в моей предыдущей статье.

Следующий шаг — обеспечить себя необходимым окружением. Для этого качаем из сети рекомендованный Лексусом Quartus II 9.1 SP 2. Я для интереса скачал самый новый. Не знаю, на любителя. Например, в новой версии отсутствует поддержка устаревших версий ПЛИС (а именно — нужной нам ЕРМ3064), обилие наворотов и обязательная регистрация перед скачиванием (и так спам девать некуда) мне не понравились.

Далее покупаем программатор. Или собираем на коленке.
Мне оказалось проще купить: USB Blaster (Altera CPLD/FPGA programmer)
Можно сначала купить — потом качать Quartus, не важно. У меня например было время немного освоить этот Quartus, пока мой программатор пинали ногами на транзитных пунктах китайской почты.

Ну и естественно — сам ПЛИС. Как же без него? Для своего проекта выбираем EPM3064ATC44-10N . Это ПЛИС с питанием 3,3 В, на 64 логических ячейки, с возможностью программирования через JTAG, в корпусе TQFP44 (аккурат как у АК4399, паять несложно) и с грейдом 10. Половина этой странной инфы нам не нужна. Важно лишь питание и рабочая частота.
Для этой микросхемы она равна 150 МГц, что в принципе хватит за глаза и выше. Другие подробности есть в даташите, там же есть масса инфы, которую я еще не переварил, да и, как выяснилось, эта инфа избыточна для наших задач.

Читайте также:  Как сделать бутылочку кормления своими руками

↑ Задача в подробностях

Художник из меня просто шедевральный, поэтому прокомментирую это чудо.
Самое интересное в красном квадрате в центре.
Сигнал со входов I2S или SPDIF/I2S в формате I2S через мультиплексор подается на вход ЦАП.
После мультиплексора выдергивается сигнал MCLK и идет на модуль CLOCK, в котором находится два генератора для сетки частот 44х и 48х и несколько буферных элементов.
Задача модуля — если ЦАП работает в режиме MASTER, поглядеть какая сетка частот используется и отдать ЦАП клок с нужного генератора, а также отдать этот клок источнику.
Если ЦАП в режиме SLAVE, то просто пропустить через себя тот клок, что пришел к нему от мультиплексора. Сигнал сетки просто игнорируется.
А еще выдать для измерения частоту LRCK для PCM или DSDCLK для DSD.
За всем этим бдительно следит контроллер.
Естественно все это мной уже реализованно на рассыпной логике.
Так вот задача в принципе проста — все функции красного квадрата возложить на ПЛИС, и адаптировать схему под работу с проверенным мной AK4137 .

↑ Теперь можно ставить софт и готовить проект

Но не спешите радоваться — нам нужна схема! Для этого идем далее в меню File→New.
Откроется это окно:

↑ Все готово. Теперь можно творить!

В поле «Name» набираем 74257. Это мультиплексор 2×4. Далее, обязательно нужно накидать входы и выходы. Для входа набираем input, для выхода — output.
По даташиту смотрим логику работы ног (например здесь для разрешения работы надо на OE (или GN) подать лог 0), и подключаем куда надо vcc или gnd. Все это также набирается в поле «Name».
Ну и рисуем соединения согласно выбранной схемы. Обязательно нужно дать уникальные имена входам и выходам, чтоб потом не запутаться. Я их назвал по имени сигнала с которым они работают.

Должно получиться примерно так:

Я сделал проще — я сначала нарисовал схему,

и по ней именовал ноги.
Так получилось более наглядно.

После этого нужно скомпилить проект. Для этого вверху в меню есть треугольный значок с названием «Start compilation».
Результат получается примерно такой:

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

После этого надо назначить ноги, точнее привязать ноги к конкретным пинам ПЛИС. Для этого лучше использовать рисунок платы:

Следует иметь в виду, что ноги для программатора нужно развести на разъем программатора, специальные и неиспользованные ноги нужно оставить висеть в воздухе. Во избежании казусов. В даташите на выбранный тип ПЛИС ноги описаны.

Для привязке физических ног к виртуальным используется функция Pin Planner. Это самое шикарное во всем процессе. Не надо думать как и куда развести ноги на плате, просто накидал при разводке платы и назначил в процессе!
Pin Planner находится левее кнопки компилятора (чип с карандашом и символом пина).
Вот такое окошко:

Возле входов и выходов появились номера физических ног микросхемы.
Тут я поигрался немного с разными типами делителей. И отдельно вывел выход мониторинга шины DATA или DSDL. По ней стоит делитель с нереальным коэффициентом деления аж 262144 на пяти счетчиках 7493. Теперь у меня весело мигает светодиод при передаче данных. Оно конечно нафиг не нужно, но получилось наглядно.

Все, готово. Еще раз компилим проект. Если все хорошо — можно пробовать шить, или прошивать нашу плис. Естественно она должна быть припаяна в схему.

Читайте также:  Головные уборы при химиотерапии своими руками

Сам программатор можно поставить в систему заранее, драйвера есть в папке с программой %\altera\91sp2\quartus\drivers\usb-blaster, но питание его выходного буфера производится от платы с ПЛИС, поэтому без питания работать он не будет.

Теперь, когда все готово, идем в меню с программатором. Оно тоже вверху.
Вот такое окно:

Кнопкой Hardware Setup выбираем USB Blaster, тип загрузки — JTAG.
Внизу наш проект. Галочками отмечаем нужные опции.
Включаем питание ПЛИС и дрожащей рукой нажимаем Start…

Процесс идет очень быстро, я даже испугаться не успел. Если что-то прошилось, то внизу в логе будет такое:

Можно выдохнуть.
Девайс умный. Сам читает тип ПЛИС, так что другой проект просто не зашьется.
Также в случае перепутанных/не припаяных ногах программатора будет грязная ругань, что девайс не опознан или проблема программатора.

Но это не значит что все заработало как надо. Возможно потребуются коррективы схемы, изменение логики и повторная прошивка.
Производителем заявлено 100 циклов перезаписи ПЛИС, мой личный рекорд в этом проекте — 6!
А все потому, что я считал например, что у буфера с именем btri, что я использовал как логический аналог 74lvc1g125, вход разрешения работы OE имеет активное состояние лог 1, а оказалось, что это полный аналог 125 го буфера, и OE у него активно при лог 0.
Прошивать можно в любой момент, даже в процессе работы ЦАП. Ничего страшного не происходит.

Возможное количество прошивок больше 100, но производитель не гарантирует работоспособность ПЛИС при превышении этого порога. Реально можно шить больше и чаще, специалисты проверяли.
Но о сотне всегда помнишь и много раз подумаешь, прежде жать кнопку «Старт».

При назначении выводов ПЛИС не предусмотрено подключение «подпорок», или подтягивающих резисторов на плюс или минус питания, как это сделано в микроконтроллерах.
Также не предусмотрены прочие «аналоговые» заморочки для подключения к стандартной логике. Поэтому все времязадающие конденсаторы, подтягивающие резисторы, и любые другие «аналоговые» компоненты в логике ПЛИС отсутствуют. Все это необходимо предусмотреть заранее — подключить внешние «подтяжки» на нужные ноги ПЛИС или вывести конденсаторы времязадающих цепей на внешние ноги.
Иначе никак.

Настоящие разработчики делают еще одну «фишку» — формирование SPI для управления ЦАП с помощью ПЛИС.
Я, как неспециалист, конечно попытался реализовать подобное на макетной плате на базе EPM240, но получилось немного не так, как хотелось. Точнее получилось г*, и я сразу потерял интерес к этому процессу.

Но оно и понятно, тут уже нужно использовать не логические элементы, а описание логики работы на hardware description language (HDL). Он чем то напоминает старый добрый Basic, но моих знаний пока недостаточно для его освоения. К тому же формировать SPI управление на том же STM32/Arduino оказалось проще с точки зрения количества задействованных ног у контроллера и количества проводов в связке ЦАП-МК.
То есть выигрыш в формировании SPI в ПЛИС оказался лично для меня пока сомнительным удовольствием. Может потом и освою, а пока по старинке используем контроллер.

Ну, а если, к примеру, наш проект окажется большего размера, и не хватит нам ног или ёмкости ПЛИС, можно использовать что-нибудь из серии MAX-II, например EPM240T100C5 .
Шаг ног там конечно поменьше, зато ног побольше и емкость уже 240 ячеек. Я их зачем-то заказал, но смог нагрузить только на 20%, поэтому, чтоб не валялись, пришлось применять. Вон она, слева от генераторов притаилась.

↑ Итого

Как вы понимаете, применение ПЛИС не ограничивается ЦАП. Наоборот, эту технологию активно применяют там, где нужно сэкономить место и заменить десятки корпусов обычной логики на один корпус ПЛИС.
Любой конечный автомат, вроде блока управления вертушкой, механикой, или какие-нибудь электронные часы — это само простое, что пришло в голову.

Думаю, данный материал будет полезен многим.
Ну, а у меня на сегодня все.
Продолжение следует!

С уважением, Алексей.

Камрад, рассмотри датагорские рекомендации

🌼 Полезные и проверенные железяки, можно брать

Опробовано в лаборатории редакции или читателями.

Источник

Adblock
detector