USB-Blaster / ПЛИС / Сообщество EasyElectronics.ru
Здесь уже начали разбирать ПЛИС, так что принимайте мой вклад.Простенькую платку уже описали, я расскажу про программатор.
Есть 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.
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В все прошло гладко и без запинок.
Домой |
Мучаем 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 – модуль передатчика МКО
Часть ‘h20 – передатчик сообщений МКО
Часть ‘h30 – работа с АЦП ADC124s051
Часть ‘h31 – преобразование двоичного кода в двоично-десятичный (BCD)
Часть ‘h32 – Bin2Bcd с последовательной выдачей данных
Часть ‘h33 – перемножитель беззнаковых чисел с округлением
Часть ‘h34 – перемножитель беззнаковых чисел, реализация
Часть ‘h35 – передаём показания АЦП на компьютер
Часть ‘h36 – работа над ошибками (быстрый UART)
Часть ‘h37 – PNG и коды коррекции ошибок CRC32
Часть ‘h38 – передатчик изображения PNG
Часть ‘h39 – принимаем с ПЛИС изображение PNG
Часть ‘h3A – ZLIB и коды коррекции ошибок Adler32
Часть ‘h3B – ускоряем Adler32
Часть ‘h3C – формирователь потока Zlib
Часть ‘h3D – передаём сгенерированное PNG-изображение
Часть ‘h3E – делим отрезок на равные части
Часть ‘h3F – знаковые умножители, тысячи их!
Часть ‘h40 – вычислитель множества Мандельброта
Часть ‘h41 – ускоренные сумматоры
Часть ‘h42 – ускоренные счётчики (делаем часы)
Часть ‘h43 – ускоряем ВСЁ
Часть ‘h44 – ускоренные перемножители
Часть ‘h45 – умножители совсем просто
Часть ‘h46 – уравновешенный четверичный умножитель
Расскажем, что это за зверь такой, отечественная ПЛИС 5576ХС4Т, и как сделать первые шаги в её освоении.
Самое сложное – раздобыть к ней отладочную плату. Одну разновидность выпускает сам ВЗПП-С, но в розницу и вообще физическим лицам, похоже, не продаёт. Другую делают LDM-Systems из Зеленограда, вот её я и купил. На тот момент они были готовы продавать её физическим лицам (сейчас, по кр. мере если верить сайту – только юридическим), да и цена была чуть менее кусачей.
Также у них продаётся отладочная плата на более слабенькую ПЛИС 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/90
Устанавливаем 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-конфигуратора.
Теперь у нас всё готово для работы!
Адаптеры JTAG с поддержкой SWD | arm
Технология JTAG широко применяется для тестирования электронных устройств, чаще всего основанные на микроконтроллерах, CPU, CPLD и/или FPGA. JTAG также позволяет аппаратную отладку, чтение/запись памяти, управление ножками I/O, анализ на производительность работающего кода (здесь приведен перевод статьи [1]).
Технология SWD (расшифровывается как Serial Wire Debug) это более современная версия JTAG, требующая для работы только 2 сигнальных выводов вместо как минимум 4 у стандартного JTAG (иногда добавляется еще один сигнал, что доводит количество сигнальных проводников до 5). SWJ это комбинация SWD и традиционного JTAG. Однако на высшем уровне оба этих интерфейса предоставляют аналогичные функции с разными вариациями, зависящими от управляющего ПО и от аппаратного обеспечения.
С одной стороны эта функциональность должна поддерживаться в целевом устройстве (target device). Порт отладки (Debug Port) часто называют JTAG-DP для JTAG и SW-DP для SWD. Устройство с поддержкой SWJ часто комбинирует в себе оба этих стандарта, при этом SWD-сигналы SWDIO и SWCLK повторно используются как JTAG-сигналы JTMS и JTCK (таким образом, SWJ обеспечивает обратную совместимость с традиционным JTAG). Большинство 32-битых микроконтроллеров и чипов SoC имеют на борту один из таких интерфейсов (или оба).
С другой стороны Вам нужен SWJ-адаптер, который может обмениваться данными с устройством по протоколу JTAG и/или SWD. SWJ могут стоить недорого (< 5$) и очень дорого (> 1000$), в зависимости от качества аппаратуры и ПО (и от бренда производителя). Ниже перечислены несколько описаний SWJ-адаптеров.
[ST-Link v2]
ST-LINK/V2 это адаптер от STMicroelectronics, очень удобный для прошивки микроконтроллеров STM8 и STM32 этой компании, таких как серия STM32 F1. Адаптер поддерживает интерфейсы JTAG, SWD и SWIM (последний применяется для STM8).
Эти SWJ-адаптеры основаны на микроконтроллерах STM32F1xx ARM Cortex M3. Любопытно, что адаптер на основе микроконтроллера STM32F1xx применяется для программирования и отладки таких же микроконтроллеров STM32F1xx.
Использование ST-LINK/V2 на Linux. Для нормального использования сначала добавьте правила для обычного пользователя, чтобы можно было получить доступ к этому устройству (правило udev, основанное на идентификаторах VID и PID адаптера, показываемых lsusb). Это делается только один раз перед тем, как адаптер подключается для непосредственного использования:
echo -n 'ST-Link V2 SWJ adapter' | sudo tee -a /etc/udev/rules.d/60-st-linkv2.rules echo -n 'ATTR{idVendor}=="0483", ATTR{idProduct}=="3748", MODE="0666"' | sudo tee -a /etc/udev/rules.d/60-st-linkv2.rules sudo udevadm control --reload-rules
Для подключения к микроконтроллерам STM32F1xx ARM Cortex M3 используется OpenOCD [9]:
openocd --file interface/stlink-v2.cfg --file target/stm32f1x.cfg Open On-Chip Debugger 0.10.0-dev-00189-g554313b (2016-01-12-10:52) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html Info : auto-selecting first available session transport "hla_swd". To override use 'transport select < transport >'. Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD adapter speed: 1000 kHz adapter_nsrst_delay: 100 none separate Info : Unable to match requested speed 1000 kHz, using 950 kHz Info : Unable to match requested speed 1000 kHz, using 950 kHz Info : clock speed 950 kHz Info : STLINK v2 JTAG v17 API v2 SWIM v4 VID 0x0483 PID 0x3748 Info : using stlink api v2 Info : Target voltage: 3.534945 Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints
[Клон ST-LINK/V2]
Это полностью содранный с оригинала ST-LINK/V2. Он поставляется в таком же корпусе, с такими же кабелями, выглядит так же, сохранено даже название печатной платы (MB936). Но сама плата не такая же, список деталей (BOM) не совпадает с оригинальным.
Оригинальный адаптер снабжен дополнительной защитой от статического электричества, защитными резисторами и трансивером, позволяющим работать с уровнями сигнала от 1.65V до 5.5V. В клоне это полностью отсутствует, поскольку сигналы интерфейса напрямую подключены к микроконтроллеру. Таким образом, поддерживаются только уровни сигналов 3.3V на отлаживаемой/программируемой системе, и иногда 5V, потому что выводы микроконтроллера допускают по входу уровни 5V (5V tolerant).
Этот адаптер стоит $9, что довольно много. Если не нужен JTAG, то есть более дешевый адаптер, описанный ниже.
[ST-LINK V2 aluminium]
Эти адаптеры поставляются в маленьком алюминиевом корпусе, стоит порядка $2.5. Они поддерживают SWD и SWIM (для STM8), но не поддерживают JTAG. Это вероятно самый дешевый клон, который можно найти. Вероятно, такая низкая цена обусловлена тем, что в адаптере используются STM32F101. В сравнении с STM32F103 возможности у STM32F101 меньше, но все-таки это адаптер USB! Вероятно, что у STM32F101 тот же самый кристалл, что и STM32F103, и тот же самый корпус, просто STM32F101 получают в результате отбраковки STM32F103. Подобным образом декларируется, что у STM32F103C8 только 64 килобайта памяти flash, потому что полный тест они не прошли, в сравнении с 128 килобайтами STM32F103CB, но на борту STM32F103C8 часто есть больше памяти (Вы можете проверить эту память на ошибки путем чтения/записи).
Существует несколько версий плат этого варианта адаптера, и может также отличаться цоколевка.
2014-06-22 ST-LINK V2. Ниже показана схема и внешний вид этих адаптеров.
В адаптере используется интересный трюк для подключения двух светодиодов (LED) на одной ножке порта (PA9):
• Когда ножка выхода порта установлена в лог. 1, зажигается один светодиод
• Когда эта же ножка переводится в лог. 0, зажигается другой светодиод
• Когда ножка переводится в состояние висящего входа, оба светодиода выключается
• Когда выход работает в режиме ШИМ (PWM), Вы можете смешивать эти 2 цвета светодиодов (красный и синий). Это происходит потому, что глаз не замечает быстрых мерцаний, светодиоды находятся рядом и светят в маленькую дырку по центру.
Тот же самый адаптер, но с другой цоколевкой. Выглядит очень похоже на вышеописанный адаптер, но цоколевка сигналов разъема сильно отличается (кроме питания), и используется только один светодиод. На плате нет никакой маркировки сигналов.
2016-01-18 MX-LINK V2. У этого адаптера логотип “M” вместо логотипа ST, что возможно соответствует маркировке “MX-LINK V2” на плате.
[Baite]
Это аналог ST-Link V2 с поддержкой JTAG, SWD и SWIM (для STM8) [2].
Автор статьи [1] сделал для этого адаптера стикер с цоколевкой сигналов.
Автор также перерисовал по плате схему. Все выводы коннектора защищены резисторами 220 ом.
Baite-V2A. Более новая версия промаркирована “V2A” (под кварцем), но схема почти такая же, со следующими изменениями:
• Присутствуют все ножки микроконтроллера (есть даже маска пайки между ними).
• Добавлен порт SWD.
• STM32F103C8 заменен на STM32F101CB, но используется как STM32F103 (так же, как в других дешевых адаптерах).
• Используются пассивные элементы меньшего размера.
• Некачественная разводка платы.
[Black Magic Probe]
Адаптер Black Magic Probe [3] (известный как BMP) очень интересный SWJ-адаптер, потому что в него встроен сервер GDB. Таким образом, не нужно запускать сервер OpenOCD, чтобы управлять адаптером SWJ. Вы можете напрямую подключить GDB к этому адаптеру (через драйвер USB CDC ACM).
В этом адаптере также есть порт UART (через второй канал USB CDC ACM). Это очень полезно для отладки в реальном времени, без точек останова (для обмена сообщениями printf).
Поставляемая аппаратура имеет следующие недостатки:
• Используется не очень удобный коннектор ARM Cortex SWJ с маленьким шагом.
• Отдельный UART используется не всегда (UART также доступен на коннекторе SWJ).
• Дорогой (> $50), но эта цена относительно разумная, поскольку есть поддержка проекта.
Из-за того, что firmware этого адаптера открыто (open source), его можно портировать на другую аппаратуру, и народ реально этим пользуется [4]. Проект был портирован [5] на blue pill [6]. Также он был портирован и на клон ST-Link V2 [7], но на нем больше нет дополнительного UART. Автор решил сделать порт на baite [2]. На коннекторе используется меньше выводов питания, но зато получается достаточно функциональных выводов для добавления UART (и SRST).
Сборка firmware (ожидается интегрирование патча):
git clone https://github.com/tsaitgaist/blackmagic.git cd blackmagic git submodule init git submodule update git checkout baite-platform # if you are usgin GCC >= 7 git cherry-pick 2ebcffa2a4911090b43c36594dae6b58d4bb2f27 make cd src make clean make PROBE_HOST=baite
После получения двоичного кода нужно перепрошить им адаптер Baite. Как Вы можете видеть по схеме, выводы JTAG и SWD микроконтроллера не подключены (на плате нет контактных площадок, куда эти выводы припаяны). Но на обратной стороне платы можно найти контрольные точки, чтобы запрограммировать микроконтроллер через serial bootloader:
Вывод | Сигнал |
1 (квадратный) | RX |
2 | TX |
3 | BOOT0 |
4 | +5V |
5 | GND |
Для подключения используйте любой конвертер USB – TTL UART, и подключите соответствующие выводы к этому порту. Не подавайте питание на адаптер Baite через USB, потому что это может привести к его загрузке в нормальном режиме (не в режиме serial bootloader). Вместо этого подайте питание через конвертер USB – UART. Для запуска serial bootloader в момент подачи питания на адаптер нужно перевести сигнал BOOT0 в лог. 1 путем подключения его к +3.3V или к DTR (или к любому другому сигналу, который находится в лог. 1 на конвертере USB – UART).
Чтобы прошить Black Magic firmware автор использовал stm32flash. Поскольку flash защищена от чтения/записи, сначала нужно очистить эти биты опций.
# disable flash read protection stm32flash -k /dev/ttyUSB0 # disable flash write protection stm32flash -u /dev/ttyUSB0 # erase flash stm32flash -o /dev/ttyUSB0 # flash the DFU bootloader stm32flash -w src/blackmagic_dfu.bin -v /dev/ttyUSB0 # flash the main firmware stm32flash -w src/blackmagic.bin -v -S 0x08002000 /dev/ttyUSB0
Поскольку этот адаптер основан на микроконтроллере STM32F103C8 с 64 килобайтами flash, DFU bootloader дает возможность использовать только 56 килобайт памяти flash для основного приложения. Blackmagic firmware превышает этот размер, поэтому его нельзя прошить, если программное обеспечение DFU не игнорирует это ограничение. У микроконтроллера STM32F103C8 часто есть 128 килобайт flash, так что все еще можно прошить blackmagic firmware, используя serial bootloader (по адресу 0x08002000). Проверка во время прошивки (verification) гарантирует, что весь код firmware был успешно записан.
Отключите Baite, и снова подключите его через USB. В нем должно запуститься основное программное обеспечение, и операционная система хоста должна обнаружить два порта USB CDC ACM.
Вы можете перепрошить устройство из основного приложения, используя dfu-util (если Вы сможете перевести dfu-util в состояние игнорирования ограничения по размеру памяти):
dfu-util -d 1d50:6018 -s 0x08002000:leave -D blackmagic.bin
Цоколевка нового “BMP Baite”:
Сигнал | Вывод | Вывод | Сигнал |
SRTST | 1 | 2 | +3.3V |
+5V | 3 | 4 | JTCK/SWCLK |
RX | 5 (ключ) | 6 | JTMS/SWDIO |
GND | 7 | 8 | JTDO/TRACESWO |
TX | 9 | 10 | JTDI |
Примечание: вывод RX подтягивается к лог. 1 с помощью резистора 620 ом. Таким образом TX, подключенный к BMP Baite, должен иметь достаточную нагрузочную способность, чтобы подтянуть сигнал к лог. 0 (скорее всего, USB – UART адаптер наподобие Ch440 это сделать не сможет).
Если Вы подключите SRST к сигналу NRST целевой отлаживаемой системы, то можно будет подавать на неё сброс без нажатия кнопки сброса на плате отлаживаемой системы (если конечно такая кнопка есть). Сигнал сброса генерируется следующей командой:
gdb --eval-command="target extended-remote /dev/ttyACM0" --eval-command="monitor hard_srst" --eval-command="quit"
[Altera USB-Blaster]
USB-Blaster это адаптер от компании Altera. Он часто используется для прошивки FPGA, но по сути это обычный адаптер JTAG.
Внимание: вывод VCC{TARGET} подключается к опорному напряжению, используемому для обмена JTAG, обычно предоставляемому печатной платой целевого отлаживаемого устройства (часто это напряжение 3.3V или 1.8V). Иначе сигналы не смогут определиться адаптером JTAG.
Сначала добавьте правила для обычного пользователя, чтобы он мог получить доступ к устройству (правило udev на основе идентификаторов VID и PID, показываемых lsusb). Это делается только один раз, перед тем как устройство подключается для непосредственного использования:
echo -n 'Altera USB-Blaster JTAG adatper' | sudo tee -a /etc/udev/rules.d/60-altera-usb-blaster.rules echo -n 'ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="666"' | sudo tee -a /etc/udev/rules.d/60-altera-usb-blaster.rules sudo udevadm control --reload-rules
Чтобы можно было использовать этот адаптер, нужно перекомпилировать OpenOCD для USB-Blaster, чтобы использовалась библиотека libftdi (наверное потому что это клон).
git clone http://git.code.sf.net/p/openocd/code openocd-code cd openocd-code ./bootstrap ./configure --enable-usb_blaster_libftdi make sudo make install cd ..
Иначе OpenOCD зависает, загружая на 100% CPU, и его нужно прибить используя -KILL.
openocd --file interface/altera-usb-blaster.cfg Open On-Chip Debugger 0.10.0-dev-00189-g554313b (2016-01-12-11:26) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html Warn : Adapter driver 'usb_blaster' did not declare which transports it allows; assuming legacy JTAG-only Info : only one transport option; autoselect 'jtag' adapter speed: 1000 kHz adapter_nsrst_delay: 100 jtag_ntrst_delay: 100 none separate cortex_m reset_config sysresetreq Info : No lowlevel driver configured, will try them all Info : Altera USB-Blaster II found (Firm. rev. = 6??) Info : This adapter doesn't support configurable speed
openocd --debug 3 --file interface/altera-usb-blaster.cfg ... Debug: 385 845 tcl.c:497 handle_nand_init_command(): Initializing NAND devices... Debug: 386 845 command.c:145 script_debug(): command - ocd_command ocd_command type ocd_pld init Debug: 387 845 command.c:145 script_debug(): command - ocd_pld ocd_pld init Debug: 389 846 pld.c:207 handle_pld_init_command(): Initializing PLDs...
Теперь Вы можете использовать адаптер, пример с микроконтроллером STM32F1:
openocd --file interface/altera-usb-blaster.cfg --file target/stm32f1x.cfg Open On-Chip Debugger 0.10.0-dev-00189-g554313b (2016-01-12-16:26) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html Warn : Adapter driver 'usb_blaster' did not declare which transports it allows; assuming legacy JTAG-only Info : only one transport option; autoselect 'jtag' adapter speed: 1000 kHz adapter_nsrst_delay: 100 jtag_ntrst_delay: 100 none separate cortex_m reset_config sysresetreq Info : No lowlevel driver configured, will try them all Info : usb blaster interface using libftdi Error: unable to get latency timer Info : This adapter doesn't support configurable speed Info : JTAG tap: stm32f1x.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3) Info : JTAG tap: stm32f1x.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1) Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints
Оригинальный адаптер Altera USB-Blaster использует чипы FTDI FT245 и MAX CPLD. Имеется множество его клонов разного качества и разной поддержкой диапазонов напряжения.
[SiLabs USB-Blaster]
Здесь используется микроконтроллер C8051F321 от Silicon Labs и 4-канальный буфер 74LVC125 (для преобразования уровней сигналов в пределах от 1.65V до 3.6V).
[PIC USB-Blaster]
Этот адаптер использует микроконтроллер PIC18F14 компании Microchip, без каких-либо буферов (поддерживаются только сигналы с уровнями 5V).
[ARMJISHU USB-Blaster]
Здесь используется STM32F101 от ST (как STM32F103 с поддержкой USB) и 8-канальный буфер 74HC244 (для преобразования уровней от 2.0V до 6.0V).
На схеме видно, что аппаратура может также управлять сигналами (на 3.3V) в случае, когда Vcc_target не подключен, и Вы можете добавить слот карт uSD или память SPI flash. Не известно, поддерживается ли этот функционал в программном обеспечении.
[SEGGER J-Link]
O-Link-ARM V8 [8], клон SEGGER J-Link.
Поддерживает JTAG, SWD, SWO, RTCK и опорное напряжение для регулировки уровней, что делает этот JTAG-адаптер наиболее полным.
[Цепочка сканирования JTAG]
Микросхемы с поддержкой JTAG имеют точки тестирования, которые называются Test Access Points (TAP). Один микроконтроллер может иметь несколько TAP, соединяемых в цепочку (scan chain). Несколько микросхем с TAP-ми также могут быть соединены (сигналами на печатной плате) в цепочку, это позволяет опрашивать все устройства на плате через одно подключение JTAG. Каждый TAP имеет идентификатор (IDCODE) и он может быть выбран индивидуально.
Иногда полезно перечислить все доступные TAP-ы на цепочке, чтобы узнать, какие есть устройства в системе. Это можно просто осуществить с помощью ПО urJTAG [10]. Пример с USB Blaster:
jtag UrJTAG 0.10 #2007 Copyright (C) 2002, 2003 ETC s.r.o. Copyright (C) 2007, 2008, 2009 Kolja Waschk and the respective authors UrJTAG is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. There is absolutely no warranty for UrJTAG. warning: UrJTAG may damage your hardware! Type "quit" to exit, "help" for help. jtag> cable UsbBlaster Connected to libftdi driver. jtag> detect IR length: 9 Chain length: 2 Device Id: 00111011101000000000010001110111 (0x3BA00477) Unknown manufacturer! (01000111011) (/usr/share/urjtag/MANUFACTURERS) Device Id: 00010110010000010000000001000001 (0x16410041) Unknown manufacturer! (00000100000) (/usr/share/urjtag/MANUFACTURERS)
OpenOCD также сканирует цепочку, если нет предоставленных target (какой используется адаптер, все-таки определить нужно):
openocd --file interface/altera-usb-blaster.cfg Open On-Chip Debugger 0.10.0-dev-00189-g554313b (2016-01-12-16:26) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html Warn : Adapter driver 'usb_blaster' did not declare which transports it allows; assuming legacy JTAG-only Info : only one transport option; autoselect 'jtag' Info : No lowlevel driver configured, will try them all Info : usb blaster interface using libftdi Error: unable to get latency timer Info : This adapter doesn't support configurable speed Warn : There are no enabled taps. AUTO PROBING MIGHT NOT WORK!! Info : JTAG tap: auto0.tap tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3) Info : JTAG tap: auto1.tap tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1) Warn : AUTO auto0.tap - use "jtag newtap auto0 tap -irlen 4 -expected-id 0x3ba00477" Warn : AUTO auto1.tap - use "jtag newtap auto1 tap -irlen 5 -expected-id 0x16410041" Warn : gdb services need one or more targets defined
0x3ba00477 соответствует Cortex-M3 TAP, и 0x16410041 boundary scan TAP, как указано в документации на STM32F1xx.
Хотя ST-Link v2 с микроконтроллерами ST главным образом используется как адаптер SWD, он также поддерживает обычный JTAG. Оба этих протокола реализованы драйвером High Level Adapter (HLA). Но все выглядит так, как будто scan chain не поддерживается драйвером HLA.
openocd --file interface/stlink-v2.cfg -c "transport select hla_jtag" -c "adapter_khz 100" Open On-Chip Debugger 0.10.0-dev-00189-g554313b (2016-01-12-16:26) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html hla_jtag adapter speed: 100 kHz Info : clock speed 100 kHz Error: BUG: current_target out of bounds
[Ссылки]
1. SWJ adapters site:wiki.cuvoodoo.info.
2. Best Quality~ST-Link stlink V2 for STM8S STM8L STM32 Cortex-M0 Cortex-M3 SWIM JTAG SWD interface Programmer site:aliexpress.com.
3. blacksphere/blackmagic site:github.com.
4. blacksphere/blackmagic Supported Hardware site:github.com.
5. Converting an STM32F103 board to a Black Magic Probe site:medium.com.
6. blue pill site:wiki.cuvoodoo.info.
7. Cheap Chinese ST-Link v.2 Programmer converted to Black Magic Probe Debugger site:blog.linuxbits.io.
8. FREE SHIPPING V8 ARM Emulator,supports ARM7,ARM9,ARM11,Cortex-M3 core,ADS,IAR,STM32 Emulator + Adapter converter site:aliexpress.com.
9. OpenOCD: руководство пользователя, начало.
10. UrJTAG: бесплатный инструментарий JTAG.
11. Цоколевка интерфейсов JTAG.
🛍 Программатор ALTERA Cyclone IV EP4CE10 FPGA, макетная плата Altera EP4CE NIOSII FPGA Board и программатор USB Blaster 2504.89₽
Бесплатная доставка Altera FPGA макетная плата ALTERA Cyclone IV EP4CE10 печатная плата FPGA интерфейсная плата с USB Blaster
Характеристики:
Основной чип использует пакет QFP чип, по сравнению с BGA пакет, легче научиться, легче отлаживать.
Основной чип шпильки все нарисованы до 2,54 мм pitch pins, масштабируемость отличается прочностью.
Каждый совет по разработке был тщательно протестирован перед отправкой, качество гарантировано.
Макетная плата оснащена прозрачной защитной пластиной, антистатической пылью
Продукт содержит usb-блок Altera, который может использоваться для загрузки программ для FPGA.
Продукт содержит usb-кабель, который может использоваться для питания платы разработки.
Если вам нужен БесплатныйИнфракрасный термометрПульт дистанционного управления, пожалуйста, оставьте сообщение. Есть батарея на пульте дистанционного управления, если вам нужен аккумулятор, пожалуйста, выберитеAliExpress Standard Shipping (стандартная отправка AliExpress).Другие методы логистики не могут отправить аккумулятор, поэтому, если вы выберете другие методы логистики, мы не отправим аккумулятор.
Мы предоставляем спецификации, схемы, образцы программ и программного обеспечения. Мы отправим вам ссылку OneDrive для загрузки этих файлов.
Параметры:
1.Основной чип:ALTERA Cyclone IV EP4CE10E22C8N.
2.Память конфигурации:
1) плата с 16 Мбит EPCS16N конфигурация чип, пользователь может загрузить и отладки программы товара через интерфейс JTAG или как интерфейс.
2) плата с 64 Мбит SDRAM, поддержка SOPC, NIOSII development.
3.Чип регулятора напряжения:
1) с помощью 1117-3,3 V регулятор напряжения чип, для того чтобы обеспечить 3,3 V напряжение на выходе.
2) Используйте чип регулятора напряжения 1117-1,2 в для обеспечения напряжения сердечника FPGA.
3) с помощью 1117-2,5 V регулятор напряжения чип, для того чтобы обеспечить PLL напряжение на выходе.
4.Напряжение на входе: постоянный токDC 5V. Плата также может питаться через usb-интерфейс.
5.Интерфейс отладки и загрузки программы:
1) интерфейс JTAG: загрузка. SOF файл, скорость быстрая. Отсутствие потери данных после отключения питания.
2) как интерфейс: загрузка. POF файл. Отсутствие потери данных после отключения питания.
6.Интерфейс расширения:Приводит к все колышки для основной чип, 2,54 мм шаг.
7.Размер:136 мм * 106 мм
Периферийные интерфейсы и ресурсы:
1. 1 кнопка выключателя питания, 1 кнопка сброса, 4 клавиши пользователя.
2. 4 светодиодных диода.
3. 4-разрядный трубки.
4. 4-значный DIP-переключатель.
5. 1 зуммер.
6. Интерфейс PS2.
7. Последовательный порт RS232
8. 1*20 контактный ЖК-разъем, поддержка LCD1602, LCD12864, TFT LCD.
9. Точное Регулируемое сопротивление, регулируемая ЖК-подсветка.
10. Чип датчика температуры LM754A.
11. Интерфейс VGA.
12. I2C серийный EEPROMAT24C08, для IIC bus experiment
13. Инфракрасный приемный модуль.
14. RS232 последовательный порт.
15. Приводит к все колышки для основной чип, 2,54 мм шаг.
PIN напылением Упаковочный лист:
Другие соответствующие соединительные платы и периферийные модули:
Коммутационная панель:
OV7670 Модуль камеры:
Модуль VGA:
16 бит истинного цвета, поддержка 65536 цветов
Модуль VGA с разъемом для sd-карты
2,4 дюймов TFT ЖК-модуль:
С сенсорным экраном IC
С разъемом для sd-карты
Модуля локальной сети “Ethernet:
Модуль USB:
Ch476S USB модуль, для USB и ПК связи, USB флэш-диск чтения и записи, SD карты чтения и записи.
Список доставки в комплекте 1:
1 * ALTERA EP4CE10 FPGA development board
1 * USB Blaster (используется для загрузки программ на FPGA)
1 * USB кабель (используется для источника питания)
Список доставки в комплекте 2:
1 * ALTERA EP4CE10 FPGA development board
1 * высокоскоростной usb-блок Altera (используется для загрузки программ на FPGA)
1 * USB кабель (используется для источника питания)
Список доставки в комплекте 3:
1 * ALTERA EP4CE10 FPGA development board
1 * USB Blaster (используется для загрузки программ на FPGA)
1 * USB кабель (используется для источника питания)
1 * коммутационная панель
1 * VGA модуль
1 * OV7670 камера
Список доставки в комплекте 4:
1 * ALTERA EP4CE10 FPGA development board
1 * USB Blaster (используется для загрузки программ на FPGA)
1 * USB кабель (используется для источника питания)
1 * коммутационная панель
1*2,4 дюймовый TFT Модуль
1 * OV7670 камера
Список доставки в комплекте 5:
1 * ALTERA EP4CE10 FPGA development board
1 * USB Blaster (используется для загрузки программ на FPGA)
1 * USB кабель (используется для источника питания)
1 * коммутационная панель
1 * модуль Ethernet
Список доставки в комплекте 6:
1 * ALTERA EP4CE10 FPGA development board
1 * USB Blaster (используется для загрузки программ на FPGA)
1 * USB кабель (используется для источника питания)
1 * коммутационная панель
1 * USB модуль
Файлы макетной платы: включают схемы, руководства, код программы (обратитесь в службу поддержки клиентов по ссылке для скачивания)
В комплект входит:
Антистатический мешок + пузырчатая пленка + прочная картонная коробка
Дополнительные платы разработки FPGA:
Altera
Автор: admin3 Июл
Недорогая макетная плата Mercury Code Cyclone V промышленного назначения
DBC5CEFA7 — четвёртое поколение промышленных макетных плат на основе недорогой ПЛИС FPGA 5CEFA7F27C7N семейства Cyclone V компании Altera . Два банка памяти DDR3 поддерживают 16-битную шину аппаратного контроллера памяти (HMCIP) ПЛИС и 8-битную шину программного контроллера памяти и используют единый банк ввода/вывода данных.
На плате реализован ряд периферийных устройств промышленного назначения. Это 2-канальный контроллер 10/100 Мбит/с Ethernet, сдвоенный приёмопередатчик CAN, четырёхканальный приемопередатчик RS-485 и одноканальный RS-232, низковольтный дифференциальный интерфейс LVDS для подключения TFT ЖКИ, 8 пользовательских светодиодов, 4 кнопки и клавиши навигации. В качестве интерфейса расширения плата оснащена 32-я линиями ввода/вывода общего назначения (GPIO) с уровнем сигнала 3.3 В, 16-ю линиями ввода/вывода общего назначения с уровнем сигнала определяемым пользователем, а также 16-ю линиями с уровнем сигнала 24 В для прямого соединения с программируемыми логическими контролерами (PLC).
Читать далее »
- Комментарии отключены
- Рубрика: Altera
15 Май
Недорогое функциональное инструментальное средство обеспечивает разработку и отладку приложений на базе ПЛИС типа Система-на-Кристалле семейства Cyclone V компании Altera.
Плата выполнена на основе ПЛИС FPGA сеиейства Cyclone V SoC с аппаратной процессорной подсистемой (Hard Processor Subsystem — HPS) на базе двухъядерного процессора ARM Cortex-A9 и оснащенной широким набором периферийных модулей, включая контроллеры Ethernet, USB, SPI, I2C, UART интерфейсов, microSD карт памяти и линии ввода/вывода общего назначения. Конфигурация ПЛИС осуществляется посредством последовательной FLASH памяти по QSPI интерфейсу. Порты ввода/вывода ПЛИС подключены к нескольким разъемам, обеспечивая поддержку как однополярных 3.3-вольтовых сигналов, так и дифференциальных LVDS сигналов. Специализированный разъем LVDS интерфейса позволяет подключить модуль Trisendo CMOS датчика изображения от компании EBV. Дополнительный разъем на нижней стороне платы SoCrates обеспечивает подключение TFT индикатора с LVDS интерфейсом.
Читать далее »
- Комментарии отключены
- Рубрика: Altera
15 Май
Демонстрационная плата выполнена на базе ПЛИС FPGA серии Cyclone V GX компании Altera и поддерживает интерфейс PCIe, оснащена отсеком для подключения оптических SFP (сменных с малым форм-фактором) модулей, 32-битной DDR3 памятью и конфигурационной памятью с последовательным интерфейсом QSPI.
Коммуникационные возможности обеспечены двумя контроллерами 100 Мбит/с Ethernet с физическим уровнем (PHY) и одним Gigabit Ethernet с физическим уровнем, а также двумя приемопередатчиками CAN и двумя RS-485. Для отладки приложений на плате установлены разъём, на который выведены сигналы с 43 линий ввода/вывода общего назначения, 4 кнопки, DIP-переключатели и 8 светодиодов. Хост-соединение может быть выполнено посредством встроенного модуля USB-Blaster II или через стандартный разъём JTAG.
Читать далее »
- Комментарии отключены
- Рубрика: Altera
11 Авг
Программная среда Quartus II от компании Altera занимает первое место в отрасли по уровню исполнения и производительности среди ПО для разработок приложений на базе программируемой логики CLPD и FPGA и масочных заказных интегральных схем (HardCopy ASIC). Новая версии 11.0 уже доступна для пользователей
Основные обновления и расширения в Quartus II версии 11.0
- Инструмент интеграции системного уровня Qsys
- Ускоренное проектирование схемы с расширенными функциями отладки
- Расширенная поддержка FPGA семейства Stratix V
- Добавлена поддержка новых устройств
- Дополнительные расширения
Читать далее »
- Комментарии отключены
- Рубрика: Altera
27 Май
Стартовый набор DB4CGX15 выполнен на базе новых недорогих FPGA семейства Cyclone® IV компании Altera®. Новые программируемые вентильные матрицы Cyclone IV объединяют в себе архитектуру предыдущего семейства Cyclone® III и высокоскоростные последовательные приемопередатчики, поддерживающие обмен данными на скорости до 3.125 Мбит/с.
Плата DB4CGX15 идеальна для начала разработок недорогих массовых FPGA-приложений использующих интерфейс PCIexpress. В этой плате применена FPGA EP4CGX15BF14C6N Cyclone IV, что обеспечивает наличие 2х последовательных трансиверов и аппаратную поддержку PCIexpress.
Читать далее »
- Комментарии отключены
- Рубрика: Altera
27 Апр
Ощутите преимущества малопотребляющих ПЛИС с точки зрения применения их во многих проектах!
Микросхем программируемой логики (CPLD, Complex Programmable Logic Device) семейства MAX V отлично подходит для применения в схемах управления, в которых важными параметрами является низкая стоимость и малое энергопотребление – в таких сегментах рынка как связь, бытовая электроника, вычислительная техника, промышленное оборудование, а также военная электронная техника. Обладая уникальной энергонезависимой архитектурой и будучи одним из лидеров в классе CPLD по плотности вентилей, микросхемы семейства MAX V демонстрируют новые характеристики надежности, отличаясь при этом до 50 % более низким потребление, чем ближайшие конкурентные аналоги.
Читать далее »
- Комментарии отключены
- Рубрика: Altera
13 Янв
Представляет собой платформу для проектирования и испытаний, выполненную на основе ARM-микропроцессора OMAP L138 / AM1808 и аналоговых интерфейсов Texas Instruments, а также программируемой логики FPGA компании Altera.
Плата Caribou — платформа для проектирования и испытаний систем промышленной связи. Выполнена на основе ARM микропроцессора OMAP L138/AM1808 компании Texas Instruments, микросхемы FPGA Cyclone-3 компании Altera, а также нескольких аналоговых интерфейсов.
Читать далее »
9 Авг
FPGA серии Cyclone IV GX компании Altera является первым недорогим массовым семейством с интегрированными интеллектуальными аппаратными блоками PCIe
Комплект DB4CGX15 идеально подходит в качестве отправной точки при разработке недорогих массовых FPGA-приложений, нуждающихся в наличии интерфейса PCIe. В состав платы входит чип EP4CGX15BF14C6N от компании Altera, являющейся первой в семействе Cyclone® IV GX микросхемой, поддерживающей отладку в среде SOPC Builder.
Читать далее »
- Комментарии отключены
- Рубрика: Altera
30 Мар
Данный набор делает аудио/видео разработки проще чем когда-либо. Минимизируйте время разработки, воспользовавшись преимуществами полноценного и готового к работе решения. AV_DEV_A2GX полностью предоставляет аппаратное и программное обеспечение, необходимое для применения в видео/аудио приложениях, а также организации профессиональных платформ с реализацией потокового обмена по стандартам PCIe, SDI, AES3, DMA.
Читать далее »
- Комментарии отключены
- Рубрика: Altera
24 Фев
Набор DB_START_3C10 выполнен на основе FPGA Cyclone® III компании Altera®
Стартовый набор для проектирования поддерживает микросхемы FPGA Cyclone III и представляет собой завершенное и готовое к использованию решение как для новичков, так и для профессионалов.
Стартовый набор DB_Start_3C10 – плата, которая идеальна для приобретения первого опыта работы с микросхемами FPGA Cyclone III компании Altera. Благодаря интегрированию USB-Blaster и разъема расширения, она чрезвычайно проста в использовании. Питание платы предусмотрено через порт USB. Таким образом, она начинает работать сразу после подключению USB-кабеля к компьютеру.
Читать далее »
- Комментарии отключены
- Рубрика: Altera
Быстрый старт с DE10-Lite FPGA
Занимаюсь разработкой под микроконтроллеры я уже очень давно, и некоторое время назад обнаружил очень большой пробел в своих умениях — FPGA! А тема-то интересная и полезная, и вообще хочется очень разобраться. И вот я собрался и начал разбираться в этой теме, и по мере изучения буду публиковать статьи о том, как работать с FPGA и делиться своим опытом с вами. В данной же статье я предлагаю рассмотреть начальную настройку и тестирование отладочной платы DE10-Lite + Quartus lite в Linux.
Наверное рассказывать о том, что такое FPGA (или ПЛИС — программируемая логическая интегральная схема) не нужно, инфы об этом в интернете очень много, поэтому перейдем к делу. Для начала нам понадобится сама плата — немного погуглив и посмотреть варианты на Aliexpress, я остановился на DE10-Lite, так как она самая дешевая из тех, которые есть в списке плат в Quartus`е. Итак, допустим, у вас в руках оказалась эта отладочная плата от Altera. Для начала посмотрим что есть на самой плате:
С помощью данной платы можно изучить работу с 7-сегментными индикаторами, кнопками, диодами, а также VGA, SDRAM и инерционными датчиками.
Установка Quartus
Для начала необходимо установить среду для разработки Quartus. Для этого её нужно скачать с официального сайта. К сожалению там нужно регистрироваться, но работает это. Для скачивания необходимо выбрать следующее:
Для уствновки делаем следующее:
tar -xvf Quartus-lite-*-linux.tar
./setup.sh
# Тыкаем нужные кнопки
# Софт необходимо установить в директорию вашего юзера, это поможет избежать проблем с обновлением, например: /home/zen/intelFPGA_lite/20.1
rm -r setup.sh readme.txt components/ Quartus-lite-20.1.1.720-linux.tar
Обратите внимание что не стоит бездумно копировать команды отсюда т.к. они для МОЕГО пользователя и МОЕЙ версии quartus.
Для того чтобы иметь возможность запускать квартус из консоли, необходимо сделать следующее:
echo "export PATH=\"\$HOME/intelFPGA_lite/20.1/quartus/bin/:\$PATH\"" >> ~/.bashrc
Это сделает достумными для текущего юзера все программы входящие в пакет Quartus из консоли.
Так же мы ставили программу не от рута, а значит скрипт установки не смог прописать udev rules, а значит это нужно сделать в ручную. Для этого в UBUNTU создаем файл /etc/udev/rules.d/51-usbblaster.rules
и заполняем его:
# USB Blaster
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6002", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6003", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
# USB Blaster II
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6010", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6810", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
После чего отключаем и снова подключаем blaster к usb. Подробнее тут.
Если вдруг (мало-ли) вы ставите Quartus на винду обратите внимание на следующее – в диспетчере устройств usb-blaster помечен как не работающий. Это можно решить следующим образом:
- Найти в деспечере устройств
Altera USB-Blaster
- Выбрать в меню
Обновить драйвер
Выполнить поиск драйвера на этом компьютере
- Указать путь
C:\путь к quartus\quartus\drivers
- Закрыть
Тестирование платы и софта
Далее скачаем документацию на данную плату. Лучше всего сделать это с помощью фирменного CD диска, доступного по ссылке. На этом диске куча полезных штук, таких как схема, даташиты, примеры и мануалы.
wget http://download.terasic.com/downloads/cd-rom/de10-lite/DE10-Lite_v.2.1.0_SystemCD.zip
unzip DE10-Lite_v.2.1.0_SystemCD.zip -d DE10-Lite
rm DE10-Lite_v.2.1.0_SystemCD.zip
cd DE10-Lite
Там будет следующее:
drwxrwxr-x 6 zen zen 4096 июн 8 2020 Datasheet
drwxrwxr-x 10 zen zen 4096 июн 8 2020 Demonstrations
drwxrwxr-x 2 zen zen 4096 июн 8 2020 Manual
drwxrwxr-x 2 zen zen 4096 июн 8 2020 Mechanical
drwxrwxr-x 2 zen zen 4096 июн 8 2020 Schematic
drwxrwxr-x 4 zen zen 4096 июн 8 2020 Tools
-r--r--r-- 1 zen zen 131647 июн 8 2020 Verify.md5
-r--r--r-- 1 zen zen 117372 июн 8 2020 Verify.sfv
Потом подключаем плату к компьютеру через usb коннектор от usb-blaster. При подключении запустится зашитая по дефолту тестовая программа:
Далее необходимо сделать следующее (находясь в папке DE10-Lite):
quartus_pgm -m jtag -o "p;Demonstrations/GSensor/output_files/DE10_LITE_GSensor.sof"
Если вывод зеленого цвета то все круто, если есть красные строки то что-то не работает, в этом случаем можно попробовать установить софт заново. Если все сработало то вы увидите что 7-сегментные индикаторы потухли, но если наклонить плату вправо и влево, то степень наклона отобразится на диодах LEDR.
Если вы вдруг на винде (ну малоли) можно сделать следующее:
На диске, который мы скачали, есть приложение для тестирования платы. Для того чтобы его запустить необходимо добавить 32битный jtag отладчик в папку с установленной программой. Для этого скачиваем архив и достаем из него папку bin32
потом кидаем в папку с установленным quartus, например C:\intelFPGA\16.0\quartus
.
Далее остаётся только запустить тестовую программу, находящуюся на диске в Tools\ControlPanel\DE10_Lite_ControlPanel.exe
. Программа зашивает тестовую прошивку, которая позволяет протестировать работу всех модулей на данной плате дабы убедится в их работоспособности (вы просто выбираете нужный пункт и ControlPanel и меняете состояние элемента на плате), но после перезагрузки запустится опять дефолтная прошивка.
Стартуем в Quartus
После того как мы поковыряли содержимое диска и протестировали плату с программатором, создадим простенький проект. Для этого запустим Quartus Lite Edition.
Увидим менеджер создания проекта. Скипаем первое окно (можно поставить галочку чтобы больше не смотреть на него). На втором окне вводим название проекта. Обратите внимание на то, что IDE не создает отдельную папку для проекта, так что надо создать ее самому.
В следующем окне выберем Empty progect
так как у нас нет заготовленных шаблонов. В третьем окне ничего вводить и менять не надо, так как у нас нет подготовленных библиотек. В четвертом окне нужно найти и выбрать нашу плату. При выборе квартус может сказать что этот шаблон слишком стар для такой версии квартуса, но не обращяем внимание, он все равно его применит.
В пятом окне тоже ничего не меняем, а в последнем смотрим что мы сконфигурирована:
Попробуем создать максимально простой проект который позволить убедится в работе системы. По сути мы просто соединим кнопку со светодиодом. При переключении тумблера будет загораться и гаснуть красный диод. Создадим новый лист с принципиальной схемой, для чего нажмем ctrl+n
и выберем Block Diagram/Schematic File
. Добавим туда вход и выход и соединим их.
В левом окне мы видим что в проекте есть уже один файл.
Это определение пинов FPGA, то есть нам не нужно смотреть на каком пину висит диод и кнопка, достаточно просто ввести их название с платы (номер в квадратных скобках).
Далее необходимо выбрать наш созданный файл как заглавный.
После компилим и зашиваем проект.
Слева в окне Tasks
можно следить за ходом компиляции. В окне Programmer необходимо выбрать наш программатор, а потом нажать Start
и ПЛИС прошьется.
Однако после перезапуска запустится дефолтная прошивка. Чтобы этого не произошло необходимо выбрать файл с расширением .pof (после нажатия на Add File), а не .sof.
В итоге получим:
Диоды, кстати, мерцают потому что в схеме их не подтянули ни к питанию, ни к земле.
Проблемы с Quartus
У меня возникла следующая проблема (эта ошибка высветится если запускать в терминале):
Gtk-Message: 12:28:39.404: Failed to load module "canberra-gtk-module"
Решается очень просто:
sudo apt install libcanberra-gtk-module
Icarus Verilog и GTKWave
К сожелению квартус очень тяжолая сафтина, а 95% времени при разработки приходится работать с верификацией а не железом. Поэтому я предлогаю использовать более легкий набор утилит это Icarus Verilog и GTKWave. Для начала разберется с первым. Для начала нужно чекнуть какая версия в репе, и если это версия ниже чем релиз то собрать из исходников. Рассмотрим второй вариант т.к. первый это просто sudo apt install iverilog
. Для сборки нужно:
git clone git://github.com/steveicarus/iverilog.git
cd iverilog/
sh autoconf.sh
./configure
# Для 2х последних команд нужно доустановить пакеты которые он просит
make -j 9
sudo make install
Проверяем:
iverilog -v
Должно отоброзить последнюю версию. С GTKWave все попроще, т.к. версия программы для просмотря диограм не так важна:
sudo apt install gtkwave
В итоге, мы научились создавать проект Quartus и написали первую прошивку. В следующих статьях я рассмотрю более подробно работу с IDE и более сложные программы.
Ссылки:
Next Post Previous Post
% PDF-1.3 % 1 0 объект > эндобдж 2 0 obj > 2> 4> 10> 14>] >> / PageMode / UseOutlines / Pages 5 0 R / Type / Catalog >> эндобдж 3 0 obj > эндобдж 4 0 объект > эндобдж 5 0 obj > эндобдж 6 0 объект > эндобдж 7 0 объект > / MediaBox [0 0 612 792] / Родительский 6 0 R / Ресурсы > / ProcSet [/ PDF / Text / ImageC] >> / Транс> / Тип / Страница >> эндобдж 8 0 объект > / MediaBox [0 0 612 792] / Родительский 6 0 R / Ресурсы > / ProcSet [/ PDF / Text / ImageC] >> / Транс> / Тип / Страница >> эндобдж 9 0 объект > / MediaBox [0 0 612 792] / Родительский 6 0 R / Ресурсы > / ProcSet [/ PDF / Text / ImageC] >> / Транс> / Тип / Страница >> эндобдж 10 0 объект > / MediaBox [0 0 612 792] / Родительский 6 0 R / Ресурсы > / ProcSet [/ PDF / Text / ImageC] >> / Транс> / Тип / Страница >> эндобдж 11 0 объект > / MediaBox [0 0 612 792] / Родительский 6 0 R / Ресурсы > / ProcSet [/ PDF / Text / ImageC] / XObject >>> / Транс> / Тип / Страница >> эндобдж 12 0 объект > / MediaBox [0 0 612 792] / Родительский 6 0 R / Ресурсы > / ProcSet [/ PDF / Text / ImageC] >> / Транс> / Тип / Страница >> эндобдж 13 0 объект > / MediaBox [0 0 612 792] / Родительский 6 0 R / Ресурсы > / ProcSet [/ PDF / Text / ImageC] >> / Транс> / Тип / Страница >> эндобдж 14 0 объект > / MediaBox [0 0 612 792] / Родительский 6 0 R / Ресурсы > / ProcSet [/ PDF / Text / ImageC] >> / Транс> / Тип / Страница >> эндобдж 15 0 объект > / MediaBox [0 0 612 792] / Родительский 6 0 R / Ресурсы > / ProcSet [/ PDF / Text / ImageC] >> / Транс> / Тип / Страница >> эндобдж 16 0 объект > / MediaBox [0 0 612 792] / Родительский 6 0 R / Ресурсы > / ProcSet [/ PDF / Text / ImageC] >> / Транс> / Тип / Страница >> эндобдж 17 0 объект > / MediaBox [0 0 612 792] / Родительский 6 0 R / Ресурсы > / ProcSet [/ PDF / Text / ImageC] >> / Транс> / Тип / Страница >> эндобдж 18 0 объект > / MediaBox [0 0 612 792] / Родительский 6 0 R / Ресурсы > / ProcSet [/ PDF / Text / ImageC] >> / Транс> / Тип / Страница >> эндобдж 19 0 объект > / MediaBox [0 0 612 792] / Родительский 6 0 R / Ресурсы > / ProcSet [/ PDF / Text / ImageC] / XObject >>> / Транс> / Тип / Страница >> эндобдж 20 0 объект > / MediaBox [0 0 612 792] / Родительский 6 0 R / Ресурсы > / ProcSet [/ PDF / Text / ImageC] >> / Транс> / Тип / Страница >> эндобдж 21 0 объект > / MediaBox [0 0 612 792] / Родительский 6 0 R / Ресурсы > / ProcSet [/ PDF / Text / ImageC] >> / Транс> / Тип / Страница >> эндобдж 22 0 объект > / MediaBox [0 0 612 792] / Родительский 6 0 R / Ресурсы > / ProcSet [/ PDF / Text / ImageC] >> / Транс> / Тип / Страница >> эндобдж 23 0 объект > / Граница [0 0 0] / M (D: 20150820013015-08’00 ‘) / Rect [466.T9g ({y3 #; $ 9eU..I%
USB Blaster ALTERA FPGA CPLD загрузить кабельный программатор отладчик
USB Blaster Download Cable предназначен для ALTERA FPGA, CPLD, устройств активной последовательной конфигурации и устройств расширенной конфигурации, подключения USB 2.0 к ПК и JTAG, AS, PS к целевому устройству.
Описание
Кабель для загрузки USB Blaster служит для соединения порта USB на главном компьютере с ПЛИС Altera®, установленной на печатной плате. Кабель отправляет данные конфигурации с ПК на стандартный 10-контактный разъем, подключенный к ПЛИС.Вы можете использовать кабель USB Blaster для итеративной загрузки данных конфигурации в систему во время создания прототипа или для программирования данных в системе во время производства.
Он превосходит большинство устройств ALTERA FPGA / CPLD, устройств активной последовательной конфигурации, устройств расширенной конфигурации и поддерживает три режима загрузки AS, PS, JTAG.
Основные характеристики
- Аппаратное решение
- Высокоскоростное решение FT245 + CPLD + 244 , скорость загрузки такая же, как у оригинального ALTERA USB Blaster, с той же операцией.
- Скорость загрузки в 1-3 раза выше, чем у других схем, например 68013 или C8051F.
- Производительность
- Поддерживает большинство устройств ALTERA FPGA / CPLD, устройств активной последовательной конфигурации и устройств расширенной конфигурации.
- Поддерживает три режима загрузки AS, PS, JTAG.
- Высокоскоростной, стабильный и встроенный FT245R + CPLD.
- Поддерживает 1.Напряжение программирования 2-5 В.
- Поддерживает встроенный логический анализатор SignalTap II.
- Поддерживает Nios II для связи и отладки встроенного процессора.
- Поддерживаемое программное обеспечение
- Интегрированная среда разработки Quartus II.
- NIOS II IDE интегрированная среда разработки.
- NIOS II EDS интегрированная среда разработки.
- Поддерживаемые устройства
Протестированные устройства перечислены ниже, в том числе, но не ограничиваясь:- CPLD: MAX3000, MAX7000A / B / S, MAX9000 и MAX II и т. Д.
- FPGA: Stratix, Stratix II, Cyclone, Cyclone II, CycloneIII, ACEX 1K, APEX 20K и FLEX 10K и т. Д.
- Активные устройства последовательной конфигурации, включая EPCS1, EPCS4, EPCS16 и т. Д.
- Устройства расширенной конфигурации, включая: EPC1, EPC4 и т. Д.
- Подключается к ПК
- Подключение к компьютеру через интерфейс USB 2.0.
- Подключается к целевой плате
- Подключение целевой платы через интерфейсы JTAG, AS, PS.На рисунках 1, 2 и 3 ниже показаны выводы заголовков различных интерфейсов.
Рисунок 2. Распиновка заголовка AS
Рисунок 3. Распиновка заголовка PS - Красный светодиод: индикатор питания
- Зеленый светодиод: индикатор сигнала, светодиод горит во время загрузки / программирования
Состояние светодиода
Загрузки
Ресурсы для разработчиков: руководство пользователя, программное обеспечение и т. Д.
Вики: www.waveshare.com/wiki/USB_Blaster
Кабели Intel Altera USB Blaster для экономии места на плате и стоимости
Семейство USB-бластеров Intel Altera, клонов и аналогичных продуктов имеет одинаковую 10-контактную распиновку для подключения целевой платы. К ним относятся Altera USB Blaster, Altera USB Blaster II, Terasic USB Blaster и Altera Ethernet Blaster. Требуемое решение Tag-Connect ™ зависит от того, можно ли отсоединить кабель подключения целевой платы, поставляемый с устройством, или он жестко припаян к внутренней печатной плате.Возможно, вам придется открыть корпус USB Blaster, чтобы проверить это. Terasic USB Blaster – это пример того, как можно открыть корпус и заменить существующий кабель на кабель Tag-Connect ™. Некоторые устройства, такие как EthernetBlaster II, имеют разъем на внешней стороне корпуса, поэтому замена еще проще.
Если существующий кабель можно отсоединить и заменить кабелем Tag-Connect ™, это всегда является предпочтительным решением. Если это невозможно, существующий кабель необходимо удлинить с помощью нашей версии «M» требуемого кабеля, который имеет штекерный разъем, который подключается к гнезду разъема USB Blaster.
Мы предлагаем 6-контактные или 10-контактные целевые платы. 6-контактное решение предлагает поддержку Altera JTAG на крошечной печатной плате, размером примерно с резистор SMT 0805 для версии без ножек. Единственная 10-контактная версия немного большего размера будет подключать все 10 контактов USB Blaster к целевой плате.
Технические характеристики (только для деталей разъемов TC2030 / 2050 и посадочных мест)
Решения, в которых можно заменить кабель USB Blaster
Если кабель подключен внутри, вам придется открыть корпус, чтобы проверить, можно ли его отсоединить и заменить.Если это возможно, воспользуйтесь этими решениями. Если это невозможно, воспользуйтесь альтернативными решениями, приведенными ниже.
Решения с 6-контактным целевым разъемом – где можно заменить существующий кабель
Они предоставляют самые компактные решения для программирования / отладки Altera JTAG.
Решения
Решения с 10-контактным целевым разъемом – где можно заменить существующий кабель
Они соединяют все 10 контактов USB Blaster с целевой платой.
Solutions
Разъем для печатной платы | Разъем для отладки | Предметы (щелкните элементы для получения подробной информации) | Цена | Кол-во | Купить |
---|---|---|---|---|---|
Intel / 10 Pin USB Blaster Nails ™ – с ножками | |||||
Конец печатной платы: 10-контактный разъем Plug-of-Nails ™ с ножками | Конец отладки: 10-контактный IDC 0.1 “розетка | Tag-Connect’s TC2050-IDC” Legged “Plug-of-Nails ™ кабель для программирования Plug-of-Nails ™ представляет собой 10-жильный кабель, снабженный пружинным штыревым разъемом Tag-Connector, который удобно подключается непосредственно к вашей печатной плате и заканчивается 0,1-дюймовым кабелем. ленточный соединитель.
Лист данных1 x TC2050-IDC – Tag-Connect 2050 IDC | Цена: $ 39,00 | Кол-во: | Купить |
Intel / Altera USB Blaster на 10-контактный разъем Plug-of-Nails ™ – без ножек | |||||
Конец печатной платы: 10-контактный разъем Plug-of-Nails ™ без ножек | Конец отладки: 10-контактный IDC 0.1 “розетка | Tag-Connect’s TC2050-IDC-NL” без ножек “кабель для программирования Plug-of-Nails ™ представляет собой 10-жильный кабель, снабженный пружинным штыревым разъемом Tag-Connector, который удобно подключается непосредственно к вашей печатной плате и заканчивается ленточный соединитель 0,1 дюйма.
Лист данных1 x TC2050-IDC-NL 10-контактный кабель без ножек с ленточным разъемом. | Цена: $ 57.00 | Кол-во: | Купить |
Решения, в которых кабель USB Blaster нельзя заменить
Если кабель подключен внутри, вам придется открыть корпус, чтобы проверить, можно ли его отсоединить и заменить. Эти решения следует использовать только в том случае, если существующий кабель нельзя заменить. Если это возможно, воспользуйтесь стандартными решениями, указанными выше.
Решения с 6-контактным целевым разъемом – если существующий кабель не подлежит замене
Они предоставляют самые компактные решения для программирования / отладки Altera JTAG.
Решения
Решения с 10-контактным целевым разъемом – если существующий кабель не подлежит замене
Они соединяют все 10 контактов USB Blaster с целевой платой.
Решения
Аппаратное обеспечение по конструкции: TUSB Blaster
Проектов /
Исходная дата публикации: 31.07.2014
Это старый хак, который я сделал много лет назад. В наши дни вы можете купить клоны Altera USB Blaster менее чем за 3 доллара.
Я хочу начать играть с программным обеспечением Altera FPGA, но мой старый ключ параллельного порта Byte Blaster не устанавливается под Windows x64.Я стряхиваю пыль со своего старого проекта и делаю клон USB Blaster. Это медленно, но не через пару недель в ожидании медленного прибытия клона за 6 долларов из Китая. Так что это будет мой резервный план, если ключ DOA или придет с опозданием. Он разработан на базе микросхемы TI TUSB3410 USB to Serial, которую TI использует в своих ключах программирования для серии MSP430. Это также было популярно в более ранних ключах последовательного интерфейса мобильных телефонов, пока на рынок не наводнили более дешевые микросхемы, такие как клоны PL2303. У него неулучшенное ядро 8052, работающее со скоростью 2 мегацикла в секунду (24 МГц / 12) и требующее нескольких циклов на инструкцию.Это была демонстрация стека TUSB. Он настолько убогий, насколько это возможно, и он очень хорошо показывает мощь открытого исходного кода. Исходный код:
Мика Даути написал чистый USB-код опроса, который я изменил на прерывание + опрос, используя 3-4 примечания к приложению TI, и использовал файл заголовка из libusb для структуры данных. Я отбрасываю большинство функций обратного вызова TI, которые трудно понять. Полученный код работает как V-USB и хорошо работает под SDCC.
USB_JTAG:
Код высокого уровня получен от ixo.de: http://ixo-jtag.sourceforge.net/#usb_jtag
Проект usb_jtag, в котором используется Cypress FX2, современный чип 8051 с частотой 48 МГц. Код был хорошо оптимизирован и содержал машинный код для 8051. Я изменил битовый код GPIO низкого уровня и привил код высокого уровня к моему стеку USB.
USB Blaster:
Код USB_JTAG был перенесен на Microchip на этой японской странице: http://sa89a.net/mp.cgi/ele/ub.htm для создания клона Altera USB Blaster.
Я перенес код EEPROM и код дескриптора USB, которые имеют решающее значение для клонирования Altera USB Blaster обратно.
Аппаратное обеспечение:
Подключение TUSB3410 – питание от шины
Блок питания и EEPROM (на самом деле не используются)
Перевод уровня:
Преобразование уровня:
VIO – это напряжение ввода / вывода цели. Он подается через последовательный резистор R20 для питания схем преобразования уровня. Q5 – шунтирующий регулятор. Он зажимает шину ввода-вывода, чтобы ограничить напряжение примерно до 3,4 В, если вы подключаете VIO, например, систему 5 В.
Примечание: U1 имеет абсолютное максимальное напряжение питания 6.5 В, только до 3,6 В для нормальной работы.
Сигналы, выходящие из печатной платы, проходят через U1, который действует как преобразователь уровня. Если моя цель работает от 1,8 В, U1 будет работать от источника питания 1,8 В, а его выход будет от 0 до 1,8 В. Серия 74LVC отлично подходит для этого, поскольку ее логический вход может превышать напряжение источника питания. На выходе есть последовательные согласующие резисторы для уменьшения отражения сигнала, поскольку дингл обычно подключается к цели с помощью незакрепленных проводов.
Примечание: деталь 74LVC очень быстрая и требует оконечных резисторов, если длина дорожки превышает 0,5 дюйма!
А как насчет лишних битов схем транзисторов?
Q4 (в топологии Cascode) – это схема преобразования уровней, которая преобразует входящий TDO обратно в 3,3 В для TUSB3410. Конденсатор C7 предназначен для компенсации емкости Миллера, которая в противном случае замедлила бы цепь.
Q2 & Q3 формирует двунаправленную трансляцию уровня для TMS / SDWIO.(SWDIO и SWDCLK предназначены для отладки ARM и не требуются для USB Blaster Clone)
Джим Хагерман написал статью «Двунаправленный преобразователь уровня с двумя транзисторами»
www.hagtech.com/pdf/translator.pdf
«Тесты показывают, что схема легко работает до 300 кГц. Основным препятствием для быстрой работы является задержка, которая возникает, когда Q1 выходит из насыщения на переднем фронте “.
Я поигрался со схемой в LTSpice и выяснил, как улучшить производительность, добавив пару конденсаторов, которые ускоряют разряд емкости Миллера, вызвавшей замедление.
(Схема My LTSpice слева)
График LTSpice: синий: вход 1,8 В, зеленый: выход 3,3 В.
Я поигрался со значениями подтягивания, чтобы улучшить время нарастания. Обратите внимание, что задержка исчезла, поскольку конденсатор C1 разряжает емкость Миллера. Кстати, моя симуляция рассчитана на 10 МГц!
Вот как это выглядит при переводе с 3,3 В на 1,8 В
Чем это полезно по сравнению с обычными, построенными на MOSFET, циркулирующими в Интернете?
например 2N7002 имеет порог Vgs: 0.8 В (мин.), 2,1 В (тип.) И 3 В (макс.).
У вас возникнут некоторые проблемы с использованием этой части с таким широким разбросом диапазона пороговых значений для преобразования уровня. Биполярные транзисторы имеют входной порог около 0,7 В с гораздо меньшим разбросом, поэтому они могут легко работать в диапазоне напряжений до 1 вольт и не ограничены 3,3 В. Напряжения ввода-вывода в наши дни снижаются, и 3,3 В – это только первая остановка.
Это просто здесь, чтобы показать, что дискретное двунаправленное преобразование уровня может быть выполнено с использованием дискретных частей, которые у меня валяются.Для любого логического преобразования я бы не рекомендовал эту схему, поскольку она имеет очень высокую входную емкость, которая нагружает вашу схему на высокой частоте. В наши дни есть гораздо лучшие микросхемы двустороннего перевода.
Я также не рекомендовал бы это для трансляции I2C, так как эта схема не работает с сигналами с открытым стоком, так как мое напряжение слишком мало для этого, а дополнительная емкость ухудшит внешний вид сигналов. В дизайне Джима Хагермана используется подтягивание 10K, и, вероятно, это учитывается.
Новый дизайн (см. Эпилог):
Вот схема трансляции уровней, которую я использовал в более поздней разработке. Я расшифровал маркировку деталей и нашел некоторые детали 74CBT1G125, которые можно утилизировать.
Обычно эти 74CBT серии предназначены для преобразования уровней 5V в 3.3V, но есть способ взломать это. В одном из примечаний к приложению, «Таблица 3. Возможные комбинации преобразования напряжения с использованием устройства TVC», TI оставила в скобке немного крошек печенья.
Так что же внутри одного из этих ТВЦ? Это просто массив полевых МОП-транзисторов, затвор которых соединен вместе.Что такого особенного в этом по сравнению с дискретными деталями? Поскольку эти транзисторы находятся на одной микросхеме, их свойства очень близки и они имеют одинаковую температуру.
Один из транзисторов (A1 / B1) используется как шунтирующий стабилизатор для установки опорного напряжения на «GATE» на Vt + VREF. Если есть какие-либо изменения в процессе, эта схема нейтрализует различия, поскольку напряжение GATE отслеживает Vt.
Что я могу сделать для своего? Если я соединю / OE с землей, инвертор подключит GATE к шине питания, сделав доступными три соединения.Поскольку сигнал / OE не меняется, я могу предположить, что, пока мое напряжение питания выше, чем Vt, инвертор будет работать статически, как и должно быть.
Я сделал некоторые предположения, что пороговые напряжения этих компонентов, вероятно, ниже 1 В (см. Совет 2) и могут иметь разброс до 20% из-за изменений процесса / температуры.
Для моего приложения я установил GATE примерно на 1,1 В выше VIO, и если я увижу, что лишние несколько сотен мВ не будут сильно беспокоить мой TUSB3410.
Я постараюсь разместить файлы где-нибудь, как только пойму, как это сделать, и исправлю код.
Теперь, почему меня интересовал двунаправленный перевод? Я заранее планировал отладку ARM SWD, когда изначально проектировал схему. Это другая история.
Эпилог
Недавно построил новую изм. используя ATMega8 с чипом перевода надлежащего уровня для CMSIS DAP и надеемся использовать V-USB. К сожалению, код CMSIS DAP настаивает на использовании большой передачи прерывания фиксированного размера для HID, и именно здесь V-USB ломается. Во-первых, стандарты USB увеличили интервалы прерывания с 1 мс до 10 мс и допускают только 8-байтовые пакеты для передачи прерываний.Другого способа отправить больше не было.Я переписал часть стека TI USB для обработки прерывания, необходимого для HID, и заставил его частично взаимодействовать с отладчиком. Было забавно видеть, что очень медленный чип TUSB бросается в глаза, поскольку он имеет USB-оборудование и не ограничивается этим. Материал нижнего уровня был в основном написан для ARM, поэтому портирование шло не очень хорошо. Также я не хочу на самом деле отлаживать это. Я откладываю это в долгий ящик, пока не найду какой-нибудь чип ARM за 1 доллар. Теперь это для другого проекта.
OpenOCD переборщили со своим кодом, позволяющим принимать только устройства FTDI, поэтому меня больше не интересует ни это, ни их кодовая база.
Мой код на гитхабе: здесь
USB Blaster Программаторы и отладчики ALTERA
Кабель для загрузки USB Blaster служит для соединения порта USB на главном компьютере с ПЛИС Altera®, установленной на печатной плате. Кабель отправляет данные конфигурации с ПК на стандартный 10-контактный разъем, подключенный к ПЛИС. Вы можете использовать кабель USB Blaster для итеративной загрузки данных конфигурации в систему во время создания прототипа или для программирования данных в системе во время производства.
Он превосходит устройства FPGA / CPLD общей серии ALTERA, устройства активной последовательной конфигурации, устройства расширенной конфигурации и поддерживает три режима загрузки AS, PS, JTAG.
Основные характеристики
- Производительность
- Поддерживает устройства FPGA / CPLD серии ALTERA total.
- Поддерживает устройства активной последовательной конфигурации ALTERA total series.
- Поддерживает устройства расширенной конфигурации ALTERA total series.
- Поддерживает три режима загрузки AS, PS, JTAG.
- Высокоскоростной, стабильный и встроенный FT245R + CPLD.
- Поддерживает программирование напряжения 1,2-5 В.
- Поддерживает встроенный логический анализатор SignalTap II.
- Поддерживает Nios II для связи и отладки встроенного процессора.
- Поддерживаемое программное обеспечение
- Интегрированная среда разработки Quartus II.
- NIOS II IDE интегрированная среда разработки.
- NIOS II EDS интегрированная среда разработки.
- Поддерживаемые устройства
- CPLD: MAX3000, MAX7000A / B / S, MAX9000 и MAX II и т. Д.
- FPGA: Stratix, Stratix II, Cyclone, Cyclone II, CycloneIII, ACEX 1K, APEX 20K и FLEX 10K и т. Д.
- Активные устройства последовательной конфигурации, включая EPCS1, EPCS4, EPCS16 и т. Д.
- Устройства расширенной конфигурации, включая: EPC1, EPC4 и т. Д.
- Другие функции
- Высокая скорость загрузки: FT245 + CPLD + 244, близкая к оригинальной ALTERA USB Blaster.
- Скорость загрузки в 1-3 раза выше, чем у других схем, например 68013 или C8051F.
- Подключается к ПК
- Подключение к компьютеру через интерфейс USB 2.0.
- Подключается к целевой плате
Подключение целевой платы через интерфейсы JTAG, AS, PS. На рисунках 1, 2 и 3 ниже показаны выводы заголовков различных интерфейсов.
Состояние светодиода
- Красный светодиод: индикатор питания
- Зеленый светодиод: индикатор сигнала, светодиод горит во время загрузки / программирования
Загрузки
Ресурсы для разработчиков: руководство пользователя, программное обеспечение и т. Д.
Вики: www.waveshare.com/wiki/USB_Blaster
Содержимое упаковки
- USB-бластер × 1
- Кабель USB × 1
- 10-контактный кабель × 1
altera Mini Usb Blaster кабель для CPLD FPGA NIOS JTAG Altera Programmer
Другие интегральные схемы Полупроводники и активные компоненты altera Mini Usb Blaster Cable For CPLD FPGA NIOS JTAG Altera Programmer Business, Office & Industrialaltera Mini Usb Blaster Cable для CPLD FPGA NIOS JTAG Altera Programmer, altera Mini Usb Blaster Cable для CPLD FPGA NIOS JTAG Altera Programmer, FPGA : Stratix 、 Stratix II 、 Stratix GX 、 Cyclone 、 Cyclone II 、 Cyclone III 、 APEX II 1K 、 APEX 20K 、 APEX 20KE 、 APEX 20KC 、 FLEX 10K 、 FLEX 10KE 、 FLEX 10KA 、 FLEX 6000 、 FLEX 8000 、 EPCS1 、 EPCS4 、 EPCS16 、 EPCS64EPC1 、 EPC4 、 EPC000 CPAD MAX EPC 716, MAX 7000S, MAX 9000, MAX 9000A и MAX II, безопасная и удобная оплата, дает вам больший выбор, наслаждайтесь возвратом в течение 365 дней, бесплатной доставкой и возвратом, найдите последние стили от великих брендов., NIOS JTAG Altera Programmer altera Mini Usb Blaster Cable для CPLD FPGA.
- Дом
- Бизнес, офис и промышленность
- Товары для бизнеса, офиса и промышленности
- Электрооборудование и принадлежности
- Электронные компоненты и полупроводники
- Полупроводники и активные компоненты
- Интегральные схемы (ИС)
- Интегральная схема
- Другое Интегрированное Схемы
- altera Mini Usb Blaster Cable для CPLD FPGA NIOS JTAG Altera Programmer
неиспользованный, altera Mini Usb Blaster Cable для CPLD FPGA NIOS JTAG Altera Programmer 728943077919.CPLD, MAX 3000A, MAX 7000A, MAX 7000B, MAX 7000S, MAX 9000, MAX 9000A и MAX II. FPGA, Stratix, Stratix II, Stratix GX, Cyclone, Cyclone II, Cyclone III, ACEX 1K, APEX II, APEX 20K, APEX 20KE, APEX 20KC, FLEX 10K, FLEX 10KE, FLEX 10KA, FLEX1, 6000, FLEX1000 EPCS4, EPCS16, EPCS64EPC1, EPC4, EPC8, EPC16 .. Состояние: Новое: Совершенно новый, такой как обычная или без печати коробка или пластиковый пакет. См. Список продавца для получения полной информации. См. Все определения условий : Торговая марка: : NG , Тип: : электронный модуль : Страна / регион производства: : Китай , MPN: : Не применяется ,, он может быть доставлен не в розничной упаковке, в неоткрытой и неповрежденной упаковке в оригинальной рознице. упаковка (если применима упаковка).Если товар идет напрямую от производителя.
altera Mini Usb Blaster кабель для CPLD FPGA NIOS JTAG Altera Programmer
altera Mini Usb Blaster кабель для CPLD FPGA NIOS JTAG Altera Programmer
для CPLD FPGA NIOS JTAG Altera Programmer altera Mini Usb Blaster Cable, FPGA NIOS JTAG Altera Programmer altera Mini Usb Blaster Cable для CPLD, altera Mini Usb Blaster Cable для CPLD FPGA NIOS JTAG Altera Programmer.
Tiny CPU | Большой беспорядок в проводах
Я решил сделать более простой прототип платы, прежде чем переходить к финальным системным платам Tiny CPU.Это даст мне возможность ближе познакомиться с использованием Eagle, создать печатную плату, произвести ее изготовление и убедиться, что она работает. Я уверен, что наделаю много ошибок, и прототип платы может вообще не работать, но если начать с некритичного прототипа, стоимость отказа сведена к минимуму.
С этой целью я провел некоторое время с Eagle на выходных, создав плату размером девять квадратных дюймов с одним Altera Max 7128S (в разъеме PLCC), заголовком JTAG, разъемом клавиатуры, заголовком ЖК-дисплея и некоторыми переключателями и ЖК-дисплеями.Это многое из того, что я ожидал увидеть в последних системных платах Tiny CPU, но в нем отсутствует второй 7128S, необходимый для взаимодействия с устройствами, а также RAM и ROM.
Щелкните изображения ниже, чтобы увидеть полноразмерные версии или получить файлы схемы и платы Eagle.
Дизайн платы
Чтобы сэкономить место и немного усложнить, на плате нет регулятора напряжения. Я планирую использовать тот же регулируемый источник питания 5 В, что и для BMOW. VCC и GND изолированы от разъема постоянного тока перемычками, поэтому я могу легко измерить ток, потребляемый платой, или обойти разъем постоянного тока для подключения отдельного регулируемого источника питания.
На плате 13 конденсаторов. Ой! Я последовал рекомендациям Altera и установил конденсатор 0,01 мкФ между каждой парой контактов питания / заземления на CPLD, всего восемь. Затем для хорошей меры я также добавил два конденсатора более высокого номинала, 1 мкФ и 47 мкФ, а также конденсатор фильтра мощности 470 мкФ. Порты клавиатуры и JTAG также имеют конденсаторы емкостью 0,1 мкФ на выводах питания / заземления. Я не уверен, действительно ли необходимо такое количество конденсаторов. Было немного больно разобраться со всеми ними, и они съели немного места на доске.
Маршрутизация платы была забавным занятием, по крайней мере, какое-то время. Я никогда раньше не делал ничего подобного. Я начал с размещения компонентов на плате так, чтобы связанные компоненты были рядом друг с другом, минимизируя длину воздушных проводов, как показывает Eagle. Затем я вручную проложил шины питания и заземления, используя широкие дорожки шириной 50 мил. Шина питания находится на верхнем слое, а земля – на нижнем. Я проложил линию часов, используя трассу в 24 мил. Остальные сигнальные дорожки составляют 10 мил. Многие из них я проложил вручную, но в конце концов мне стало скучно, и я нажал кнопку автоматического маршрута.
Мне нужно было угадать, насколько плотно расположить компоненты, когда я их разместил, и я думаю, что догадался. Возможно, удастся упаковать все немного плотнее, но не намного.
Наземный самолет
После того, как я закончил, я добавил наземную плоскость к нижнему слою. Любая пустая область, примыкающая к дорожке заземления, была полностью заполнена медью. Как видите, по краям есть много точек, до которых не доходила плоскость заземления. Я не уверен, стоит ли добавить несколько переходных отверстий, чтобы улучшить эти области, или это не имеет большого значения.Я мог бы добавить плоскость заземления к пустым областям на верхнем слое, но опять же я не знаю, поможет ли это чему-нибудь.
Боль в TQFP
Первоначальная конструкция платы была существенно более сложной и включала в себя второй Max 7128S в корпусе TQFP с шагом выводов 0,5 мм. Если бы я мог успешно использовать этот пакет вместо пакета PLCC, это сэкономило бы тонну места на плате. Я все время слышу, что эти SMD-корпуса с мелким шагом можно припаять вручную, поэтому я спроектировал плату так, чтобы второй 7128S можно было добавить или удалить из цепи JTAG с помощью нескольких перемычек.Если я полностью испортил его и разрушил микросхему или закоротил некоторые следы, я ожидал, что смогу установить перемычки, чтобы отключить его, и по-прежнему использовать первый 7128S.
Все прошло не очень хорошо. При использовании посадочного места Altera 7128S TQFP100, входящего в комплект Eagle, посадочное место не прошло проверку правил проектирования. Расстояние между контактными площадками составляет всего около 6 мил, а минимальное расстояние для BatchPCB составляет 8 мил. Я потратил довольно много времени на ознакомление с редактором посадочных мест и разработал новый посадочный материал TQFP с меньшими площадками и более широким интервалом, который прошел DRC.К сожалению, проложить этот маршрут оказалось непросто. С такими мелко расположенными контактами невозможно пропустить дорожку сигнала между контактами. А поскольку это SMD-деталь и сквозное отверстие, все сигнальные дорожки должны встречаться со штырьком в верхнем слое, вместо того, чтобы иметь возможность выбирать между верхом или нижним. Это начинало выглядеть так, как будто мне понадобится место на плате, эквивалентное пакету PLCC, просто чтобы уместить лабиринт извилистых дорожек и переходных отверстий, необходимых для пакета TQFP. В конце концов я попробовал на нем автоматический роутер, но он оказался не лучше, чем мои ручные усилия: мы оба потерпели неудачу.В конце концов, я сдался и удалил второй 7128S из конструкции.
Отзыв?
Поскольку я никогда раньше этого не делал, я с радостью приму предложения и советы о том, как можно улучшить этот дизайн и макет платы. Оставьте комментарий или напишите мне по электронной почте. Видите какие-то недостатки, потенциальные проблемы или просто не очень хорошие методы? Я слушаю.
Я загрузил эту плату в BatchPCB, и она прошла проверку правил проектирования. Стоимость изготовления составляет 21 доллар, плюс 10 долларов за обработку заказа и, возможно, 5 долларов за доставку, или около 36 долларов за все услуги.Если в ближайшие пару дней никто не укажет на какие-либо серьезные недостатки платы, я, вероятно, изготовлю ее с помощью BatchPCB, а готовую плату я получу через несколько недель.