Оглавление:

Система разработки программируемой логики гетто (CPLD): 13 шагов
Система разработки программируемой логики гетто (CPLD): 13 шагов

Видео: Система разработки программируемой логики гетто (CPLD): 13 шагов

Видео: Система разработки программируемой логики гетто (CPLD): 13 шагов
Видео: FPGA (ПЛИС) - подключаем LCD-дисплей Часть 1/2 2024, Июль
Anonim
Система разработки программируемой логики гетто (CPLD)
Система разработки программируемой логики гетто (CPLD)

Последние несколько месяцев я наслаждался системой разработки Ghetto для процессоров AVR. Фактически, этот инструмент почти за нулевые деньги оказался настолько увлекательным и полезным, что у меня возник вопрос, можно ли распространить эту концепцию на разработку FPGA / CPLD. (FPGA: программируемая вентильная матрица. CPLD: сложное программируемое логическое устройство.) Итак, я немного покопался в сети и придумал систему разработки для CPLD Atmel. Сравнение с устройствами Altera показывает, что их распиновка одинакова (в рамках ограничений, которые я подробно описываю ниже), поэтому они также будут работать. Собрав плату разработки и интерфейсный кабель, которые я представлю, а затем загрузив инструменты, вы сможете разрабатывать свои собственные приложения CPLD. Обратите внимание на следующие ограничения и ограничения. Я попытался сбалансировать возможности и простоту, чтобы вы могли создать что-то, что вам понравится и чему вы научитесь, только на устройствах 5V. Расширение системы для покрытия дополнительных напряжений (3,3 В, 2,5 В, 1,8 В поддерживаются устройствами Atmel из того же семейства) несложно, но усложняет как плату разработки, так и кабель для программирования. Давайте пока пропустим это. Обратите внимание, что вам необходимо подать на плату питание 5 В. Только 44-контактный PLCC. В частности, я запрограммировал Atmel ATF1504AS. Концепция Ghetto CPLD может быть легко распространена на другие устройства Atmel, но это устройство казалось хорошим компромиссом между ценой, простотой использования и возможностями. Концепция должна также распространяться на другие устройства, такие как Altera, Xilinx, Actel и т. Д. Фактически, EPM7032 и EPM7064 семейства Max7000 будут работать с одним и тем же разъемом, пока вы используете 44-контактные версии PLCC. До сих пор я использовал только программный кабель Atmel, но Altera Byte-Blaster поддерживается программным обеспечением Atmel и также должен работать нормально. На самом деле это немного проще, чем у кабеля Atmel. (Я создал версию для Atmel, и она работает, поэтому я не пробовал версию Altera.) SparkFun предлагает версию кабеля Altera за 15 долларов. Так как это будет работать как для Atmel, так и для Altera, я рекомендую это. Если вы собираетесь разрабатывать детали Altera, вам также может понадобиться программное обеспечение Altera. Я на самом деле не пробовал это, но я не думаю, что это не сработает. Скорость ограничена. Поскольку система разработки Ghetto CPLD построена с ручной проводкой и не имеет заземляющего слоя, не ожидайте надежной работы на скоростях более нескольких мегагерц. Даже это не гарантирует, что ваш пробег может отличаться! Конечно, если вы создаете прототип оборудования с заземляющим слоем, ваш CPLD может отлично работать на более высоких скоростях. Только не ожидайте, что он будет быстро установлен в Системе развития гетто.

Шаг 1. Закажите детали

Перейти Заказать запчасти
Перейти Заказать запчасти

Вам понадобится 44-контактный разъем PLCC, некоторые развязывающие крышки, несколько незапрограммированных CPLD, разъемы для подключения макетных плат, подтягивающий резистор и, возможно, какая-то перфокарта для его сборки. Если у вас есть что-то из этого в своем ящике для мусора, вы можете сэкономить несколько долларов. Для вашего удобства вот номера деталей Digikey: CONN PLCC SOCKET 44POS TIN PN: 1-822473-4-ND SOCKET IC OPEN FRAME 14POS.3 PN: 3M5462-ND Кол-во: 2 ГНЕЗДА IC ОТКРЫТАЯ РАМА 18ПОЗ. 3 дюйма, номер: 3M5464-ND Кол-во: 2CAP ELECT 10 мкФ, 50 В, SU, BI-POLAR, номер: P1280-ND, количество: 1, C1CAP CER, 10 мкФ, 50 В, 20%, ДИСК, номер: 478 -4275-1-ND Кол-во: 4, C2-C5RES МЕТАЛЛИЧЕСКАЯ ПЛЕНКА 5,10 кОм 1/4 Вт 1% Номер детали: P5.10KCACT-ND ПЛАТА ПК FR4 1-СТОРОННИЙ PPH 4.0X4.0 Номер детали: V2010-ND IC CPLD 64 MACROCELL 10NS 44PLCC PN: ATF1504AS-10JC44-ND Некоторые детали могут иметь минимальное количество, но все равно должны быть довольно дешевыми. Если вы хотите построить несколько мигалок (шаг 8) или сделать набор переключателей (шаг 9), вы можете заказать это тоже. Имейте в виду, что Digikey имеет минимум 25 долларов, чтобы избежать платы за обслуживание, поэтому вы можете получить пару дополнительных незапрограммированных CPLD или один или два процессора AVR просто для удовольствия. Я рекомендую вам купить кабель программирования Altera в SparkFun. Вот номера деталей. Также достаньте кабель и разъем. (В противном случае заказывайте детали для кабеля в Digikey, если вы собираете свои собственные.) Программатор, совместимый с Altera FPGA, номер детали: PGM-087052x5, ленточный кабель IDC с контактами, номер детали: PRT-085352x5, закрытый заголовок с контактами PN: PRT-08506

Шаг 2. Получите и установите программное обеспечение

Получить и установить программное обеспечение
Получить и установить программное обеспечение

В настоящее время я использую набор инструментов Atmel Prochip Designer 5.0. Этот инструмент требует, чтобы вы зарегистрировались в Atmel и заполнили официальную форму запроса. Я сказал им, что я инженер-конструктор, в настоящее время безработный, и моей основной целью было изучить их устройства и VHDL (все верно, кстати). Они одобрили запрос на лицензию. Единственная загвоздка в том, что лицензия действует всего 6 месяцев. Я надеюсь найти общедоступную цепочку инструментов к тому времени, когда срок ее действия истечет. У Altera также есть цепочка инструментов, которую я могу проверить. Любые предложения будут оценены. См. Комментарии и ссылки на последнем шаге. Atmel Prochip Designer 5.0 находится здесь. Если вы его получили, не забудьте также получить для него Service Pack 1.

Шаг 3: Сделайте кабель для программирования

Сделать кабель для программирования
Сделать кабель для программирования

Самый простой способ здесь - купить Altera Byte-Blaster аналогичный у Sparkfun (см. Шаг 1). Если 15 долларов - это больше, чем вы хотите потратить, вы можете использовать схему SparkFun Altera Cable или использовать схему Atmel Cable и построить ее с нуля. (Если есть большой интерес к сборке кабеля с нуля, я могу предложить несколько предложений, но комплект Sparkfun кажется мне правильным ответом.)

Шаг 4: сделайте подставку для программиста

Сделать колыбель программиста
Сделать колыбель программиста
Сделать колыбель программиста
Сделать колыбель программиста
Сделать колыбель программиста
Сделать колыбель программиста

Взгляните на программатор Atmel. Это очень гибкий вариант и отличный вариант, если у вас есть деньги и вы планируете много заниматься разработкой CPLD. Думаю, что-то подобное предлагает Altera. Но я выбрал более дешевый подход - вот в чем все дело! На фотографиях показаны виды колыбели, которую я построил, спереди и сзади. Обратите внимание на разъемы DIP, используемые в качестве разъемов на макетной плате. Все контакты на одной стороне каждого разъема заземлены; Контакты на другой стороне подключаются к сигнальным контактам на CPLD. Я также включил несколько разъемов питания; положите их туда, где они подходят. Диаграммы представляют собой своего рода графические схемы; не показаны только подключения дополнительного питания. Посмотрите на картинки, чтобы узнать об этом.

Шаг 5: создание колыбели - часть 1

Построение колыбели - Часть 1
Построение колыбели - Часть 1
Построение колыбели - Часть 1
Построение колыбели - Часть 1

Начните сборку люльки, вставив розетки в те места, где вы хотите. Оставьте один или два свободных ряда, чтобы было место для развязывающих крышек. Это также упрощает подключение к сигнальным контактам CPLD. Закрепите разъемы небольшим количеством припоя или эпоксидной смолы, в зависимости от типа используемой перфорированной платы. Оставьте немного места наверху (над контактом 1 разъема CPLD) для разъема JTAG и разъема питания. См. Изображения того, что я построил. Проложите оголенный провод (калибр 20 или около того) вокруг розеток с внешней стороны для шины заземления. Также проложите маршрутную шину. (Красный провод на рисунках.) Обратитесь к рисункам для некоторых рекомендаций, но ваша плата, вероятно, будет немного другой - и это нормально. Припаяйте внешние контакты разъемов к шине заземления. Это поможет закрепить провод шины.

Шаг 6: создание колыбели - часть 2

Построение колыбели - часть 2
Построение колыбели - часть 2
Построение колыбели - часть 2
Построение колыбели - часть 2

Установите развязывающие крышки и подключите их к контактам заземления и питания с каждой стороны гнезда CPLD. Я предлагаю провести провода вверх и над внешними рядами контактов, чтобы добраться до внутренних рядов. Обратитесь к диаграмме номеров контактов, чтобы найти правильные контакты - распиновка разъема CPLD далеко не очевидна. Оставьте достаточно места для подключения к любым контактам, через которые вы проводите провода. После подключения крышки подключите шину питания и заземления. Все красные контакты на схемах имеют Vcc и должны быть подключены. Черные контакты заземлены и также должны быть подключены. Опять же, трассировка по воздуху - хороший подход. Посмотрите на картинки для идей.

Шаг 7. Построение колыбели - заключение

Построение колыбели - Заключение
Построение колыбели - Заключение
Построение колыбели - Заключение
Построение колыбели - Заключение
Построение колыбели - Заключение
Построение колыбели - Заключение

Подключите JTAG-соединения к правильным контактам. Посмотрите на свой кабель для программирования, чтобы убедиться, что разъем правильно сориентирован. Не забудьте подтянуть штифт TDO. Это показано только на рисунке и проходит между выводом TDO и Vcc. Последний шаг - подключить каждый вывод ввода / вывода CPLD к выводу на разъемах. Используйте числа на схемах для соединений. На это уходит больше всего времени! Если вы следуете моей схеме нумерации, то можете использовать диаграмму вида сверху в качестве руководства при подключении цепей. Вам действительно не обязательно подключать все это изначально, вы можете подождать, пока они вам не понадобятся для схем, которые вы разрабатываете. Внимательно проверяйте свою работу. Убедитесь, что питание и земля не закорочены!

Шаг 8: Сделайте мигалки (версия TTL)

Сделать мигалки (версия TTL)
Сделать мигалки (версия TTL)

Конечно, вы захотите увидеть, как работают ваши схемы. Так что вам понадобятся мигалки (прославленные «Настоящим Эллиотом»). Единственная загвоздка в том, что CPLD не имеют мощных выходов, которые есть у процессоров AVR. Используйте светодиоды с номиналом 10 мА и резисторы серии 1 кОм. Это даст вам четкие выходные сигналы, не перегружая выходы CPLD.

Шаг 9: сделайте переключатели

Сделать переключатели
Сделать переключатели
Сделать переключатели
Сделать переключатели

Чтобы стимулировать электрические цепи, вам понадобятся переключатели. Здесь у вас есть несколько вариантов, но требования другие, чем для процессоров AVR. Выходы CPLD не имеют встроенных подтягиваний, и отладить их программно не так-то просто. (Это возможно, но требует ресурсов, которые вы, вероятно, захотите использовать в своих схемах.) Показанные DIP-переключатели представляют собой несколько переключателей в удобной упаковке, но их необходимо поднять. Я использовал подтягивания 1K. Кнопки можно сделать, используя схему, которую Atmel рекомендует для своей демонстрационной платы. Схемы приведены на странице 36 или около того. Другой вариант - подключить процессор AVR, чтобы выдавать стимулы и даже проверять ответы. Но это упражнение оставлено на усмотрение ученика.

Шаг 10: Создайте свою первую схему

Создайте свою первую схему
Создайте свою первую схему
Создайте свою первую схему
Создайте свою первую схему

К этому времени вы должны получить и установить программное обеспечение. Следуйте тщательному и подробному руководству, чтобы создать свою первую простую схему CPLD (логический элемент И с двумя входами; не намного проще). Обязательно выберите правильное устройство (44-контактный PLCC, 5V, 1504AS [подробности]) и выберите номера контактов ввода / вывода, которые доступны (я использовал 14 и 16 как входы; 28 как выход). Эти детали немного отличаются от руководства, но не должны вызывать у вас никаких проблем.

Шаг 11: запрограммируйте свой первый CPLD

Запрограммируйте свой первый CPLD
Запрограммируйте свой первый CPLD
Запрограммируйте свой первый CPLD
Запрограммируйте свой первый CPLD

Подключите кабель для программирования к параллельному порту вашего ПК, подключите его к подставке для программатора, подключите 5 В к разъему питания и следуйте инструкциям по программированию вашего самого первого CPLD. Выберите правильную версию кабеля. Обратите внимание, что Altera Byte-Blaster - один из вариантов.

Шаг 12: Проверьте запрограммированную деталь

Проверьте свою запрограммированную часть!
Проверьте свою запрограммированную часть!
Проверьте свою запрограммированную часть!
Проверьте свою запрограммированную часть!

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

Шаг 13: конец и некоторые веб-ресурсы

Конец и некоторые веб-ресурсы
Конец и некоторые веб-ресурсы

Целью данного руководства не является научить вас использовать VHDL. (Я только начинаю понимать, почему я создал программатор, помните?) Тем не менее, я нашел несколько очень полезных руководств и несколько полезных ресурсов, на которые я могу вам указать. Мы очень благодарны за отзывы и другие предложения. Обратите внимание, что вы также можете использовать систему разработки Ghetto CPLD для изучения Verilog и других методов программирования CPLD, которые аппаратное обеспечение не волнует. Ресурсы VHDL в Интернете: основы и некоторые ссылки здесь и здесь. бесплатные инструменты. Учебники, которые мне нравятся, находятся здесь и здесь, но вы найдете много других. Наконец (пока), вы захотите проверить группу обсуждения. Наслаждайтесь, узнавайте много и делитесь тем, что знаете.

Рекомендуемые: