1. Главная страница » Компьютеры » Altera max ii epm240t100c5n

Altera max ii epm240t100c5n

Автор: | 16.12.2019

ПЛИС семейства MAX II являются энергонезависимым (конфигурация хранится в блоке конфигурационной Flash-памяти) и готовы к работе сразу после включения питания. Микросхемы этого семейства поддерживают режим внутрисхемного программирования по JTAG-интерфейсу.

Энергопотребление ПЛИС MAX II снижено в 10 раз по сравнению с ПЛИС предыдущих поколений.

Архитектура семейства MAX II объединяющая различные узлы (массив программируемой логики, пользовательскую Flash-память, встроенный RC-генератор, встроенный линейный регулятор напряжения) позволяет снизить общую стоимость разрабатываемой системы.

Семейство MAX II включает в себя два подсемейства, отличительной особенностью которых является отсутствие встроенного линейного регулятора напряжения:

  • MAXIIG — напряжение питания ядра 1.8 В.
  • MAX IIZ — напряжение питания ядра 1.8 В, ультранизкое статическое энергопотребление, расширенная номенклатура типов корпусов.
  • Ресурсы ПЛИС MAX II
  • Типы корпусов и количество линий ввода-вывода ПЛИС MAX II
  • Описание семейства MAX II

Ресурсы ПЛИС MAX II

MAX II (напряжения питания ядра 3.3 В, 2.5 В, 1.8 В)
EPM240/G/Z EPM570/G/Z EPM1270/G EPM2210/G
Ресурсы Кол-во логических элементов 240 570 1270 2210
Кол-во эквивалентных макроячеек (1) 192 440 980 1700
Объем Flash-памяти пользователя (кбит) 8
Максимальная задержка распространения сигнала от входа до выхода (нс) 4.7 (MAX II/G)
7.5 (MAX II Z)
5.4 (MAX II/G)
9.0 (MAX II Z)
6.2 7
Архитектурные особенности Встроенный осциллятор Есть
Цепи граничного сканирования Есть
Внутрисхемное программирование Есть
Высокоскоростные входные регистры Есть
Программируемое состояние регистров по включению питания Есть
Доступ к регистрам по JTAG-интерфейсу Есть
Режим программирования конфигурационного Flash-ПЗУ без изменения текущей конфигурации Есть
Подсистема ввода-вывода Поддерживаемые уровни напряжения ввода-вывода (В) 1.5, 1.8, 2.5, 3.3 1.5, 1.8, 2.5, 3.3 1.5, 1.8, 2.5, 3.3, 5.0 (2) 1.5, 1.8, 2.5, 3.3, 5.0 (2)
Кол-во банков ввода-вывода 2 2 4 4
Кол-во цепей разрешения выходов (OE) 80 160 212 272
Поддержка стандартов ввода-вывода LVTTL/LVCMOS Есть
Поддержка стандарта ввода-вывода PCI 32-бит, 66-МГц Нет Нет Есть (2) Есть (2)
Триггеры Шмитта в элементах ввода-вывода Есть
Программируемая скорость нарастания выходного сигнала Есть
Программируемые встроенные подтягивающие резисторы Есть
Выводы с режимом "программируемой земли" Есть
Режим выходов с открытым стоком Есть
Режим удержания состояния шины Есть

(1) ПЛИС семейства MAX II имеют архитектуру на основе логических элементов. Для сравнения с другими семействами ПЛИС логическая емкость MAX II пересчитывается в эквивалентные макроячейки (одна эквивалентная макроячейка примерно соответствует 1,3 логического элемента).
назад
(2)
Для совместимости с пятивольтовыми сигналами требуются внешние подтягивающие резисторы.
назад

Типы корпусов и количество линий ввода-вывода ПЛИС MAX II

Тип корпуса TQFP (T) FBGA (F) MBGA (M) (1)
Кол-во выводов 100 144 100 256 324 68 100 144 256
Габариты корпуса (мм) 16 x 16 22 x 22 11 x 11 17 x 17 16 x 16 5 x 5 6 x 6 7 x 7 11 x 11
Расстояние между соседними выводами (мм) 0.5 0.5 1.0 1.0 1.0 0.5 0.5 0.5 0.5
EPM240Z 54 80
EPM570Z 76 116 160
EPM240/G 80 80 80
EPM570/G 76 116 76 160 76 160
EPM1270/G 116 212 212
EPM2210/G 204 272

(1) Корпус Micro FineLine BGA.
назад
— Возможность вертикальной миграции

Блог о электронике


Линейка процессорных модулей для PB2 неспешно пополняется новыми персонажами. После STM8 и PICа с езернетом к ней добавился модуль с ПЛИС.

Для тех, кто эти четыре буквы видит впервые — ПЛИС это программируемая микросхема, поведение которой можно задавать на уровне отдельных логических элементов (И, ИЛИ…). Как если бы мы рисовали схему на логике. Внутри она состоит из однотипных блоков (logic blocks), соединенных между собой. Функцию каждого блока и соединения между ними можно программировать, задавая ту логику работы, которая тебе нужна. В итоге мы имеем устройство, которое делает именно то что необходимо, не совершая никаких лишних действий. И делает это очень быстро. Во первых за счет того, что даже простые ПЛИС (как наша) могут работать с высокими тактовыми частотами (на модуле установлен генератор на 100Мгц, например). Во-вторых, в ПЛИС (в отличие от МК) нету ядра, конвеера, памяти с командами. Алгоритм работы, который мы описываем на специальном языке HDL — Hardware definition language, синтезируется в готовую логическую схему, а не последовательность команд.

Для модуля на PINBOARD2 я взял ПЛИС от Altera — EPM240T100C5 из семейства MAX II. Она (в сравнении с другими ПЛИС) не очень большая по объему — 240 логических блоков.

Попутно, пользуясь поводом, мы пропиарим отличный проект Marsohod.org как раз активно описывающий работу с ПЛИС. Рекомендую зайти к ним в гости и пошариться там. Найдете много интересного. Там есть и всякие пищалки музыкальные, USB устройства, разные протоколы и даже создание упрощенного AVR ядра в недрах ПЛИС, с компиляцией кода под него в AVR Studio 🙂 И это при том, что ПЛИС EPM240T100C5 реально небольшая. На больших и мощных плисинах синтезируют целые ARM-микропроцессоры, а на сайте opencores лежит куча проектов разнообразных ядер, криптопроцессоров, контроллеров памяти и прочей прикольной фигни. И что самое приятное, при переходе с малой плис на супермеагаздоровенную не нужно переучиваться и вникать в новую архитектуру и переучиваться.

▌Описание микросхемы
T100 в маркировке ПЛИС не имеет никакого отношения к SkyNet и вселенной Терминатора вообще — это корпус. TQFP с сотней выводов. Из них 81 можно использовать как пины GPIO. На каждом GPIO можно включить внутренний подтягивающий резистор, номиналом около 50к.

Каждый вывод может отдавать ток до 20мА. А несколько выводов можно объединить вместе, тем самым увеличив мощность (естественно ими нужно будет рулить синхронно, не допуская конфликтов уровней). Так например на marsohod.org делали свой танк — моторы управлялись напрямую от ПЛИС, а на чип пришлось прилепить радиатор, чтобы не перегревался. А в нашем модуле можно перемычками сливать выводы в огромный суперпин.

Читайте также:  Bios не видит usb флешку

Еще одна прикольная фича ПЛИСки, относящаяся к пинам — банки GPIO. Наш чип имеет два банка — I/O BANK0 и BANK1. У них различные группы питания. Это значит, что один банк мы можем запитать, например от 1.5V, а другой от 3.3, получив конвертер уровней забесплатно. У меня на модуле линии питания от всех банков заведены на общее питание (3.3V)

Последняя цифра в маркировке — это класс скорости. От него зависит максимальная частота переключения триггеров в ПЛИС. Чем меньше цифра, тем на большей частоте они могут переключаться. Вот для примера картинка на которой показана максимальная скорость работы 16и разрядного счетчика в зависимости от класса скорости:

У нас он может тикать с частотой до 201 Мгц.

Еще в ПЛИС есть 1кб пользовательской флеш-памяти, в которой можно схоронить всякие настройки и прочую фигню. Но самое интересное ждет нас дальше — модуль с памятью оснащен собственным тактовым генератором (на RC цепочке) который тикает на частоте 3-5 Мгц. Этот же генератор можно использовать для тактирования всей остальной части ПЛИС. Поэтому при необходимости можно жить вообще без внешнего тактового генератора. Т.е. как микроконтроллер. Питание подал и поехали.

Описание модуля
На модуле стоит тактовый генератор на 100Мгц, который заведен на PIN26. У ПЛИС нет особых входов тактирования, как в МК — такты можно подавать на любой вывод. Причем никто не запрещает заюзать несколько разных генераторов, либо привязать тактирование какого-нибудь интерфейсного модуля к внешнему сигналу. Генератор, правда, должен быть независимым. Вот эта серебристая штука он и есть. Подаешь на нее 3.3 вольта, а с выхода имеешь 100МГц меандр. Одно плохо, дорогой он, зараза 🙁

Программируется плиска через JTAG. На нижней части модуля установлен разъем, куда выведены все сигналы жтага + земля и питание. А в комплекте с модулем идет шлейф и мелкая плашка на FTDI модуль. Мозгов в нет от слова совсем. Просто проводки с FTDI выведены в нужном порядке под шлейф. Так что шлейфик будет в комплекте.

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

Некоторым пинам все-равно места не хватило. Можно было-бы забить на них и просто не разводить, но я решил собрать эти выводы в группы (соединив прямо на плате) и получил суперпины 🙂 Можно дергать реле без драйверов, зажигать мощные светодиоды или крутить моторы. На это благое дело мы пустили 12 выводов в группах по 6шт.

Суперпины (изначально их 2) выведены на верхнюю сторону модуля рядом с другими пинами. Их можно объединять джамперами, собирая вместе больше выводов:

Обычные пины, которые заведены наверх, тоже можно присоединять к суперпинам при помощи джамперов. В итоге, накинув все джамперы, мы соберем на один вывод адову кучу ножек. Максимальный ток каждого пина 25мА, то есть пачка из 10 уже потянет 1W светодиод.

На суперпин HI 1 заведены пины 82,83,84,85,86,87 — то есть суммарно он может выдать ток 120мА. Этого вполне хватит для переключения реле или питания небольшого мотора. Если нужно больше, можно прицепить к HI 1 другие пины из верхнего ряда.

На HI 2 заведены 67,68,69,70,71 — он может отдать до 100мА. Но его так же можно усилить, подключив джамперами дополнительные пины.

А если хочется совсем адскую мощь, то HI1, HI2 и все пины верхнего ряда можно собрать вместе. Тогда отдаваемый ток достигнет 400мА. Но не помешает налепить сверху на чип радиатор.

▌Быстрый старт
Для начала, надо установить Quartus II Web Edition. Это бесплатная (с некоторыми ограничениями, которые нас совершенно не касаются) версия среды разработки Quartus II от Altera. Качается либо с офсайта, либо с рутрекера, если вы как и я забыли логин от altera.com.

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

Запускаем квартус. Он спросит у нас про настройки внешнего вида, оставляем как есть. Далее он спросит, не хотим ли мы купить лицензию на расширенную версию — ответ очевиден. После этого вылезет окошко getting started, где мы тыкаем Create a new project.

Нас спросят про расположение проекта и его название. Я гордо обозвал проект blink.

Потом предложат добавить к проекту уже существующие файлы. Пропускаем это — добавлять нам пока решительно нечего.

Третьим шагом надо выбрать камень, с которым мы будем работать. На модуле стоит EPM240T100C5. Чтобы не листать километровый список — выставляем семейство: MAX II.

Четвертым пунктом идет выбор внешних утилит для компиляции, симуляции и анализа таймингов. Этот шаг тоже пропускаем.

После создания проекта нас ждет серое пустое окно. Никакого шаблона или намека на него.

Жмем ctrl+n и выбираем Verilog HDL, чтобы создать новый файл на языке verilog.

Читайте также:  Gmail вопросы и ответы

Теперь пишем туда простенький код-мигалку:

module blink(clk, led); input clk; output led; reg [26:0] longcnt; reg led; parameter delay_max = 50_000_000; always @(posedge clk) begin if (longcnt==delay_max) begin longcnt Device. Там жмем кнопу Device and Pins options. И в появившемся окошке, на вкладке Unused pins ставим «As input Tri-Stated«

Перед тем как начать компиляцию (на самом деле, тут это называется синтез — так звучит круче) проекта, мы должны заставить quartus генерировать svf файл. В этом файле содержится последовательность JTAG команд необходимая для загрузки нашей прошивки в ПЛИС. Команды из svf файла нужно просто забрасывать в JTAG порт ПЛИС. Сделает это FTDI в режиме MPSSE и программка «SVF player».

Но для начала надо заставить Quartus выдавать svf файл после сборки проекта. Опять лезем в меню Assigments -> Device, Там выбираем Device and Pin Options.

Находим вкладку Programming Files и устанавливаем галку напротив «Serial Vector File».

Теперь после синтеза в папке с проектом будет валяться .svf файл. Можно проверить — синтез запускается сочетанием Ctrl+L или вот этой кнопой:

Для прошивки ПЛИС товарищи с marsohod.org написали простенькую консольную утилитку, которая подходит для PINBOARD2 (и вообще любого огрызка текстолита с FT2232D/FT4232 на борту). Все что она делает — транслирует битбангом в JTAG порт *.svf файл. Для того чтобы она прошила модуль, нужно надеть плашку с JTAG разъемом на FTDI, бросить шлейф и запустить утилиту, указав ей в качестве единственного параметра путь к svf файлу.

Командная строка при этом выглядит так:

Прошивалка автоматически выбирает первое FTDI-устройство и пытается прошить через него.

В случае успешной прошивки выдает что-то вроде этого:

Для прошивки удобно юзать bat файл типа такого:

mbftdi blink.svf pause

А пусть к mbftdi можно прописать в переменную окружения PATH. Тогда батник можно будет закидывать в папку с проектом, а сама утилита валяться где-нибудь отдельно.

После прошивки светодиод на плате начинает неспешно мигать (переключение при достижении счетчиком значения 50М, а тактирование у нас 100Мгц, значит переключаться будет 2 раза в секунду).

Автор модуля и документации к нему dcoder. Все вопросы к нему 🙂

45 thoughts on “Модуль ПЛИС Altera MAX II EPM240T100C5 для Pinboard II”

Долгожданный модуль!
Ценник вот только кусается как взбесившися верблюд…
На глаз кажется, что если заказать плату в seedstudio и купить компоненты локально(в той же Меге),
то получится дешевле, даже если делать в единственном экземпляре.
Была выпущена очень маленькая серия?

Ну если в розницу брать примерно то же и выйдет. Считай альтерка эта в розницу от 250 до 350р обычно. Генератор 150..300 если вообще найдешь где в розницу. Редкая штука. Мелочевки там еще рублей на 50 если розницу считать. И печатка три четыре бакса в сидстудио. Ну получится то же самое, а то и дороже. Только ждать печатку придется месяц-два.

Альтерка EPM240T100C5N 150
Генератор KXO-V97 100.0 MHz 200
Мелочевка 50
Печатка пусть 150

Итого 550
Первые три пункта в Питере через три дня привезут, но вот
печатку ждать действительно долго .

Ну вот о чем и речь, а у меня она 700 выложена. Т.е. разница в 150р, как литр хорошего пива. В регионах же ценник умножай в полтора-три раза. Т.к. там в лучшем случае один-два магазина на всю область где есть что то отличное от запчастей для мобил.

Причем ее еще спаять надо, TQFP100 без опыта сразу посадить довольно сложно. Я, например, когда первый раз припаивал LPC1751 так дорожки поотрывал нахер, хотя до того насадил не одну сотню FT232RL

Кстати, а сидстудио бесплатно уже шлет?

>EPM240T100C5 — 240 логических блоков.

1. Вот для ксилинксов есть довольно вкусное очень маленькое ядро picoblaze. ядро в разы мельче и быстрее синтезированных пиков и авр-ок. Есть ли что-то подобное пикоблейзу но для EPM240T100C5?

2. если есть, то сколько примерно их влезет в этот кристалл? У ксилинксов(спартанов), если упихивать руками и ногами, то влезает примерно столько микроядер, сколько блоков памяти в кристалле.

Привет, отличный старт по ПЛИСам!!

DI HALT, поправь пожалуйста: HDL— Hardware Description Language. описываем, не определяем 🙂

nicka78, пикоблейз всё-таки софт-проц хилых, создан под слайсы виртекса либо спартана (менее 30 слайсов для минимальной сборки в определённых семействах). под макс его не собрать оптимизированно, тем более под младший. гораздо проще, написать небольшой FSM под конкретную задачу. пикоНиосов, на сколько я знаю, у Альтеры нет.

по плате замечание — клоки лучше подавать на выделенные ноги GCLK0-3 они особым образом разведены в кристалле чтобы обеспечить одновременный приход клока ко всем ячейкам.

Ой какая офигенная разметочка вокруг чипа. Че я до такой не допетрил. Надо тоже футпринты такие сделать.

Клок завели так из соображения максимальной совместимости с марсоходом

марсоход уже на fpga перешел ведь? ресурсов в этой pld мало было

Они да, но и старая платформа поддерживается. А их переход мне, например, не особо понравился. Если первоначальная платка была оригинальным подходом, этакой ардуино на плис, то марсоход2 это еще одна унылая плисборда из 100500 похожих как две капли воды отладочных плат. Сделали бы они из нее встраиваемый модуль было бы куда больше драйва.

я думаю что «всё уже украдено до нас» 😉

Ну, а толку то? Сила не в железке, а в ее поддержке. Ну купит нуб ее и что о ней будет делать? А профи она не особо нужна, он сразу железку проектирует.

Спасибо за великолепную статью, однако есть вопрос, в даташите на данную ПЛИС написано что количество циклов перепрограммирования не более 100. Тоже самое для семейства MAX7000,или я что-то не так понял, не понятно…

Читайте также:  Lg f1022ndr ремонт своими руками

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

Я как-то давно поднимал это вопрос на сайте марсохода — они сделали опыт — прошивали в цыкле платку несколько дней… было без проблем… Я думаю что в даташите забыли дописать несколько нулей…

Выкачал Квартус 13 SP1 и залил на рутрэкер.
http://rutracker.org/forum/viewtopic.php?t=4490017
Качайте на здоровье.

А если хочется совсем адскую мощь, то HI1, HI2 и все пины верхнего ряда можно собрать вместе. Тогда отдаваемый ток достигнет 400мА. Но не помешает налепить сверху на чип радиатор.
На самом деле не совсем так, то есть 400 мА эти пины может и потянут, но так делать не правильно. В дополнение к ограничению на ток каждого пина есть ограничение на суммарный ток пинов, которые питаются от одного VCCIO/GNDIO. Всего в чипе 6 групп, каждая из которых может выдать 170 мА вытекающего тока или 130 втекающего. Так как пины HI1, HI2 и все пины верхнего ряда принадлежат к двум VCCIO, то максимальный ток будет 170*2 = 340 мА.
https://dl.dropboxusercontent.com/u/46560046/MAXII.png

Оффтоп! А когда плашки JTAG для авр пойдут в серию?

Да давно уже как. Правда без процов. Но планирую продавать отдельно версию с процом. Скоро.

Ну проц самому можно допаять. А вот самопальная плашка на заводской мамке уж больше глаз режет. Вещь все таки коллекционная)) Скоро это в какие временные рамки? месяц два? хотел вместе с альтерой и еще одним Ethernet модулем заказать

По факту они уже сейчас есть в большом количестве. Если с альтерой будешь заказывать, то просто укажи в письме, что ее хочешь. 120р тебе будет стоить, без проца.

Решил посмотреть, как у квартуса с линуксом. Нашел непосредственно на сайте альтеры официальный пдф-ман по установке. О Харухи, я счастлив.

А правильно ли объединять выводы прямо на плате? Ведь если их все назначить как выходы и напутать с синхронным выводом и подать на какие-то «1», а на какие-то «0», можно спалить выводы. Я правильно понимаю?

Hi.
Создал проект, все как описано выше. Но при запуске mbftdi blink.svf получил Ашипку:
Checking for FTDI devices…
2 FTDI devices found — the count includes individual ports on a single chip
Assume first device has the MPSSE and open it…
Device: Dual RS232 A
Serial: A
Configuring port for MPSSE use…
Frequency is set to 6MHz (FTDI clk divider 0000), requred 10MHz
————————————
!CHECKING SILICON ID
compare TDO failed at 0
Expect buffer:
32 04 80 A2 54 00 82 94 00 2C 18 00 00 00 00
Compare buffer:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Mask buffer:
FF FE 80 FF FE 80 FF FE 80 FF FE 80 FF FE 80
error on check TDO answer

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

У меня кстати тоже такое было — но только после попытки прошивки usb blasterom (плашку кабеля подключил верх ногами). Решилось нормальной прошивкой через программатор.

а можно поподробнее пожалуйста

Спасибо огромное! Попалась на глаза эта статья — и как-то разом CPLD из «ужас-ужас-ужас, дайте мне готовый проект, в котором можно что-то менять» перешло в «блин, проект-то элементарно делается». Достал с полки китайскую платку, воткнул usb blaster — не обнаруживается и светодиод питания не горит. Прихреначил к ней питание (было сюрпризом, что usb blaster не умеет запитывать плату), прошил (ну, только понадобилось по плате определить, на какой ноге генератор) — мигает! И я более-менее понимаю, что и как устроено. И это в 4 часа ночи, в спешке, когда ничего не должно было заработать в принципе 🙂

Да, я правильно понимаю, что по первости можно ограничиться только verilog или vhdl, а графическое построение схем ничего особо не даёт сверх того (т.е. аналог любой «схемы» пишется на verilog/vhdl)?
(а то раньше думал, что надо осваивать последовательно, от схем к vhdl)

Доброго времени суток!

Я только приступил к изучению ПЛИС на примере вашего модуля и попытался прошить его с помощью usb blaster. Как и Вы, потерпел неудачу. Скажите, пожалуйста как Вы прихреначили к ней питание?:)
Спасибо!

Компания Mouser осуществляет отправку большинства заказов курьерскими службами UPS, FedEx и DHL в день размещения заказа. Отправка заказов курьерской службой Global Priority Mail осуществляется на следующий рабочий день.В процессе обработки заказов учитываются следующие особые условия. Большинство особых условий выясняются без промедления, однако некоторые из них могут повлечь за собой задержку отправки заказа на один день.

  • — В случаях, когда вы внесли какие-либо особые указания в ваш заказ.
  • — Заказы, размещенные новыми клиентами, требуют проверки параметров безопасности и адреса.
  • — Вопросы безопасности, связанные с кредитными картами.
  • — Клиенты с существующими учетными записями, имеющие кредитные обязательства.
  • — Ограничения по импорту, действующие в некоторых странах.
  • — Заказы, экспортируемые из США, в связи с положениями о контроле над экспортом.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *