Плата Марсоход2 предназначена для изучения технологии ПЛИС и построения устройств средней сложности.
На плате установлены:
а) Логических элементов — 10320;
б) Память — 414Кбит;
с) Встроенных умножителей — 23 (18×18) или 46 (9×9)
д) Количество PLL — 2.
Подробная документация на микросхему:
Питание платы +5В, производится из разъема USB, установленного на плату.
Полную схему платы можно взять вот здесь:
Для первоначального знакомства с платой можно взять наш самый простой «первый» проект, выполненный в среде Altera Quartus II для платы Марсоход2.
marsohod.org
Плата Марсоход3 предназначена для изучения технологии ПЛИС и создания устройств средней сложности.
Эта плата визуально похожа на свою предшественницу, плату Марсоход2, но имеет несколько принципиальных отличий.
Главное отличие — используется не Cyclone III, а микросхемы ПЛИС компании Altera серии MAX10.
Плата Марсоход3 существует в двух вариантах исполнения. На плате Марсоход3bis стоит ПЛИС меньшей емкости — 8 тыс. логических элементов. На плате Марсоход3 стоит ПЛИС большей емкости — примерно 50 тыс. логических элементов. Это наша первая плата в серии «марсоход» с ПЛИС такой большой емкости.
10M08SAE144C8GES | 10M50SAE144C8GES | |
Логических элементов |
8064 | 49760 |
Встроенная память, бит |
387072 | 1677312 |
Встроенных 9-ти битных умножителей |
48 | 288 |
Количество PLL |
1 | 1 |
UFM (User Flash Memory) блок |
1 | 1 |
Аналогово-Цифровой Преобразователь, ADC блок |
1 | 1 |
Обзор и описание микросхемы на английском языке на сайте компании Альтера: https://www.altera.com/products/fpga/max-series/max-10/overview.html
Подробная документация на микросхему: https://www.altera.com/en_US/pdfs/literature/hb/max-10/m10_datasheet.pdf
Кажется, что микросхема 10M08SAE серии MAX10, установленная на плате Марсоход3bis, уступает по параметрам микросхеме EP3C10E серии Cyclone III, установленной на плате Марсоход2: здесь чуть меньше логических элементов, меньше встроенной памяти и всего один PLL. Однако, нужно учитывать, что микросхемы серии MAX10 реализуют некоторые уникальные функции недоступные в Cyclone III. Например, MAX10 имеет встроенный блок ADC, аналого-цифрового преобразователя (работает на частоте 1МГц) — АЦП это уникальная для цифровой микросхемы функция. Кроме этого, MAX10 имеет встроенную память для инициализации ПЛИС и еще ряд других функций.
Марсоход3 с чипом 10M50SAE, как сказано выше — примерно 50 тысяч логических элементов.
На плате имеется микросхема FTDI FT2232H. Она реализует связь платы Марсоход3 / Марсоход3bis и ПЛИС с компьютером через HighSpeed USB 2.0. Микросхема предоставляет 2 независимых интерфейса А и В. Интерфейс А используется для реализации встроенного JTAG программатора MBFTDI. Кроме этого, интерфейс А (JTAG) используется для внутрисхемного захвата и анализа сигналов пользовательских проектов с помощью программы Altera SignalTap. Интерфейс В может использоваться для как виртуальный последовательный порт, скорость передачи 12Мбит/сек.
В отличие от платы Марсоход2, на платах Марсоход3 и Марсоход3bis возможно использование интерфейса FTDI в режиме синхронного FIFO. Переключить микросхему FTDI в режим синхронного FIFO можно путем программирования микросхемы последовательной флэш памяти конфигурации (чип 93C46) для FTDI FT2232H. Использование режима синхронного FIFO позволит добится высокоскоростной (более 40Мбайт/сек) передачи данных через USB2 в плату или из платы.
Если требуется использовать режим синхронного FIFO микросхемы FTDI FT2232H плат Марсоход3, Марсоход3bis, то использование JTAG интерфейса этой же микросхемы FTDI для программирования ПЛИС становится невозможным. Однако, с помощью блока перемычек (Jumpers) можно переключить плату для использования совместно с внешним программатором (например MBFTDI).
Еще на плате стоят:
Четыре банка по 1,048,576 шестнадцатиразрядных слова. Итого, 64Мбита (или 8Мбайт, что то же самое).
Плата подключается к компьютеру USB2 кабелем.
Питание платы +5В, производится из разъема USB, установленного на плату.
Полную схему платы Марсоход3bis можно взять вот здесь:
Пожалуйста обратите внимание, что микросхемы 10M50SAE и 10M08SAE не полностью совместимы по выводам. К сожалению, компания Альтера, производитель микросхем, не сделала и совместимыми. Публикуемые на нашем сайте проекты скорее всего будут содержать разные ревизии проектов для разных микросхем.
marsohod.org
Астротрекер | 18 Август 2018 | 3196 |
Новогодняя елка 2017! | 29 Декабрь 2016 | 5521 |
Фотографирование: пульт дистанционного управления к Canon EOS 650D | 28 Сентябрь 2015 | 11307 |
Использование скриптов TCL для управления проектами Quartus II | 17 Май 2015 | 17431 |
Посох Деда Мороза | 28 Декабрь 2012 | 27073 |
Управлять Марсоходом из браузера | 17 Июнь 2012 | 27020 |
Подключение платы Марсоход к телефону с ОС Android | 09 Июнь 2012 | 24127 |
Апгрейд =Подмосковных вечеров= | 01 Март 2012 | 11060 |
Снеговик | 24 Январь 2012 | 11566 |
Зажигаем ёлку! | 27 Декабрь 2011 | 11432 |
Процедурная музыка для Марсохода | 20 Декабрь 2011 | 18304 |
Управление платой Марсоход через JTAG | 28 Октябрь 2011 | 23011 |
Фоторамка. Часть3. Фреймбуффер. | 14 Сентябрь 2011 | 27230 |
Фоторамка. Часть2. TFT-панели с LVDS интерфейсом. | 11 Сентябрь 2011 | 41607 |
Фоторамка. Часть1. Подключение TFT-панелей. | 06 Сентябрь 2011 | 40790 |
Техническое зрение | 03 Июль 2011 | 31077 |
ПЛИС внутри ПЛИС | 19 Июнь 2011 | 32298 |
Хексовый видеоадаптер | 02 Июнь 2011 | 20489 |
Использование ультразвукового дальномера | 02 Май 2011 | 27698 |
14 Апрель 2011 | 23788 | |
Видеоигра Питон | 04 Апрель 2011 | 17246 |
Умный дом | 21 Март 2011 | 22992 |
Пять в кубе | 07 Март 2011 | 15189 |
Видео игра теннис для двоих | 27 Февраль 2011 | 14119 |
Марсоходы: Начало Клонирования. | 22 Февраль 2011 | 58739 |
Работа над ошибками. Теннис. | 20 Февраль 2011 | 15784 |
ИК пульт к компьютеру | 09 Февраль 2011 | 19891 |
Машинка, управляемая с компьютера через Bluetooth | 22 Январь 2011 | 43341 |
Улучшенный проект «Частотомер» | 12 Январь 2011 | 21838 |
С Новым Годом! 2011! | 31 Декабрь 2010 | 12552 |
USB устройство как последовательный порт (и USB ScratchBoard) | 25 Декабрь 2010 | 26717 |
Как улучшить проект USB | 13 Декабрь 2010 | 18363 |
Скоро Новый Год! | 11 Декабрь 2010 | 10695 |
Часики | 30 Ноябрь 2010 | 22917 |
Лазерный проектор | 10 Ноябрь 2010 | 50525 |
Плата Марсоход для Scratch | 05 Ноябрь 2010 | 21460 |
Частотомер | 21 Октябрь 2010 | 28452 |
USB устройство из платы Марсоход | 18 Октябрь 2010 | 35660 |
Последовательный порт | 12 Октябрь 2010 | 29554 |
Передаем Ethernet-пакет | 22 Сентябрь 2010 | 58663 |
Катамаран | 25 Август 2010 | 14816 |
Продуваем форсунки. | 24 Август 2010 | 21953 |
Индикатор температуры | 21 Июль 2010 | 23026 |
Летающая тарелка | 24 Июнь 2010 | 22384 |
Сделаем игру Волк-Коза-Капуста | 14 Июнь 2010 | 26521 |
(C) Котокормушка | 12 Июнь 2010 | 15409 |
Тестер обжимного коннектора UTP | 04 Июнь 2010 | 19913 |
Сделаем простой AVR микроконтроллер | 26 Май 2010 | 58580 |
Игрушка для кошки | 19 Май 2010 | 18354 |
Еще один инерциоид | 12 Май 2010 | 31161 |
Сделаем PS/2 клавиатуру! | 22 Апрель 2010 | 26148 |
Сделаем САМИ простое (непростое) USB устройство | 09 Апрель 2010 | 39210 |
Марсополз или Ползун? | 31 Март 2010 |
marsohod.org
Этот проект возможно будет самым простым для нашей платы Марсоход2.
Он реализует несколько несложных функций, с которыми каждый разработчик, даже начинающий, сможет легко разобраться.
Для чего нужен этот проект (проект выполнен в среде Altera Quartus II).
Во-первых, он будет служить базой для всех последующих проектов. Важно то, что в нем уже сделаны все назначения входных и выходных контактов согласно схеме платы. Названия входов и выходов этого проекта соответствуют названиям пинов в схеме платы.
Схему можно скачать здесь:
Пожалуйста обратите внимание, что некоторые пины в чипе Cyclone III имеют двойное назначение. Чтобы их можно было использовать как обычные I/O нужно поставить соответствующие опции в диалоге Device and Pin Options.
Наоборот — если понадобится специальное применение этих пинов, то нужно менять эти опции.
Например, контакт DCLK может использоваться для конфигурирования ПЛИС из внешней конфигурирующей флеш памяти, или может использоваться, как обычный пин I/O.
Это диалоговое окно можно увидеть через команды меню Assignments => Device. Далее в диалоговом окне — кнопка Device and Pin Options.
Итак, все важные назначения уже сделаны (они хранятся в файле cyclone.qsf). Когда будем создавать новые проекты, будем просто копировать проект этот в новую папку и модифицировать его.
Во-вторых, для начала работы всегда нужен самый простой проект.
Нужно что-то вроде традиционного для языка C проекта «Hello, World!». У нас здесь, конечно не язык C, но первый пример, конечно, должен быть простой.
Так вот, этот проект содержит три весьма простых составных части.
Первая часть — счетчик.
Входной сигнал тактовой частоты CLK100MHZ подается на 32-х битный двоичный счетчик LPM_COUNTER, где происходит деление тактовой частоты. Входные сигналы от двух кнопочек платы KEY0 и KEY1 подаются соответственно на асинхронный сброс aclr и разрешение счета cnt_en счетчика LPM_COUNTER. Только четыре выхода счетчика q[25..22] подаются на выходы LED[3..0] проекта и соответственно на светодиоды платы.
Таким образом, после загрузки проекта в ПЛИС, светодиоды платы начинают мигать согласно счету.
При этом, плата реагирует на нажатие кнопочек: счет обнуляется или останавливается, в зависимости какую кнопку нажмешь.
Вторая часть проекта — loopback последовательного порта.
На плате Марсоход2 установлен программатор MBFTDI, построенный на микросхеме FTDI FT2232H. Микросхема имеет 2 канала: интерфейс А и интерфейс В. Интерфейс А используется под JTAG, через него идет программирование платы, загрузка проекта в ПЛИС и отладка. Интерфейс В может использоваться различными способами (в зависимости как запрограммирована микросхема FTDI).
Самый простой способ использования — как последовательный порт (виртуальый последовательный порт через USB). В этом случае контакты в нашем проекте FTDI_BD0 и FTDI_BD1 служат сигналами последовательного порта RX и TX. Так вот, в этом простом проекте я просто соединяю их проводом и это все. Все принятые данные тут же отправляются назад.
Когда плата Марсоход2 подключена к компьютеру и драйвера FTDI установлены в диспетчере устройств видны 2 COM порта. Второй COM порт можно открыть с помощью какого нибудь терминала, вроде PUTTY и пробовать набирать к консоли символы. Они будут отправляться в плату и возвращаться из нее назад, появляясь напечатанными уже в консоли терминала.
Это — основа всех проектов, которым нужны связь с компьютером, через последовательный порт.
Третья часть — видео синхрогенератор.
Я написал на Verilog простой модуль hvsync, который выдает сигналы синхронизации VGA_HSYNC, VGA_VSYNC для VGA и собственно видео сигналы красный VGA_R, зеленый VGA_G, синий VGA_B, которые рисуют вертикальные цветные полосы на экране.
Параметры видеосигнала соответствуют стандартному видеорежиму 1440×900 60Hz.
Для этого видеорежима нужна специальная тактовая частота 106,5Mhz, которой изначально на плате нет — есть только генератор 100Мгц. К счастью, в FPGA Cyclone III есть специальные встроенные компоненты — PLL (Phase Lock Loop). Их в нашей микросхеме два.
PLL — это управляемый настраиваемый генератор. Он позволяет нам задать для исходной частоты два коэффициента: умножитель и делитель. Так вот, я создал для своего проекта компонент PLL с коэффициентами умножения 213 и деления 200!!! Получилась заветная 106,5Mhz частота, нужная для режима монитора 1440×900 60Hz.
Конечно, такой возможности у нас не было в первой плате Марсоход.
На новой плате возможностей гораздо больше: PLL, встроенные блоки памяти, умножители.
Вот так выглядят полосы на экране монитора:
Преобразование из цифры в аналоговый сигнал делается установленными на плате R2R преобразователями. Для небольшой разрядности преобразователей аналоговый сигнал получается достаточно качественный. Об этом можно судить по плавным переходам вертикальных полос на экране монитора.
Итак, для загрузки откомпилированного проекта в плату ничего на не нужно, кроме самой платы, подключенной к ПК. Программатор MBFTDI у нее уже на борту.
Откомпилированная программа занимает почти ничего в ПЛИС (меньше одного процента!):
Значит у нас еще много осталось места в чипе для творчества.
Весь проект Quartus II для платы Марсоход2 можно скачать:
marsohod.org
Наша новая экспериментальная плата Марсоход2bis на базе плис Altera Cyclone IV.
Фактически эта та же самая плата Марсоход2, на той же самой PCB. Печатная плата с самого начала проектировалась для возможного использования с четвертым циклоном.
Плата с несколькими отличиями: используется другой, менее емкий чип FPGA, 3 светодиода, вместо четырех и одна кнопочка вместо двух. У четвертого циклона на два пользовательских пина меньше, чем у 3-го циклона. Из-за этого теряется светодиод и кнопочка.
Возможно, покажется странным, зачем делать такую плату, но резон здесь исключительно один — это цена. К сожалению последние события показывают, что комплектующие, микросхемы сильно подорожали. Это вынужденная мера — поднять цены на платы и, к сожалению, придется это сделать. Чтобы удержать цену на плату Марсоход2 мы выпускаем вот такую несколько «усеченную версию».
Ниже представлена сравнительная таблица:
Плата Марсоход2 | Плата Марсоход2bis | |
Чип Altera FPGA | Cyclone III | Cyclone IV |
EP3C10E144C8N | EP4CE6E22C8N | |
Логических элементов | 10320 | 6272 |
Встроенная память | 414Кбит | 270Кбит |
Умножителей | 23 (18×18) или 46 (9×9) | 15 (18×18) или 30 (9×9) |
PLL | 2 | 2 |
Поддержка Quartus II | v13 | v14 |
Проект Amber ARM | Да | Нет |
У этой платы Марсоход2bis будет по крайней мере два преимущества:
К сожалению, некоторые наши проекты для платы Марсоход2 не будут работать в новой плате Марсоход2bis. Например, проект Amber ARM SoC не помещается в ПЛИС меньшей емкости. Пожалуйста учтите этот факт при выборе плат.
Тем не менее, мы надеемся, что этот вариант платы Марсоход2bis найдет своего покупателя.
marsohod.org