Содержание
Урок 1. Первый проект
Урок 2. Управление кнопками
Урок 3. Подключение LCD
Урок 4. Использование ШИМ
Урок 5. Таймеры
Урок 6.1. Статическая индикация
Урок 6.2. Динамическая индикация
Урок 7.1. Генерация звука
Урок 7.2. Генерация звука. Продолжение
Урок 8.1. Передача данных через UART
Урок 8.2. Передача данных через UART. Продолжение»
Урок 9. Передача данных через SPI
Урок 10. Изучение АЦП. Простой вольтметр
Урок 11. Получение синуса при помощи ШИМ
Урок 12. Измерение температуры
Урок 13. Внешние прерывания.
Урок 14. Использование отладчика
Урок 15.1. Управление инкрементальным энкодером
Урок 15.2. Управление громкостью, при помощи энкодера
Урок 16. Управление RGB светодиодом
Урок 17. Использование ИК
Урок 18.1. Знакомство с графическим дисплеем
Урок 18.2 Вывод изображения на графический дисплей
Урок 18.3 Вывод русскоязычного текста
Урок 19. Формирование сигнала, при помощи ЦАП (R2R)
Урок 20. Опрос матричной клавиатуры
Урок 21. Сторожевой таймер
Урок 22.1 Воспроизведение wav. Введение.
Урок 22.2 Воспроизведение wav. Продолжение.
Урок 23.1 Работа с внешней памятью
Урок 23.2 Работа с файловой системой Fat

Работа с ПЛИС начинается с программы для работы с ней. Я использую камни фирмы ALTERA и ее программу Quartus на домашнем ПК работаю с 12.0(сразу оговорюсь работает она коряво, возможно криво установилась, на недели думаю руки дойдут и поставлю нормальную версию) версией на работе с 14.1( она только 64бит). Ну что приступим

quartus_1

Вот мы запустили Quartus II WEB Edition, нажимаем File / New Project.
quartus_2

Это окошко можно отключить, кто хочет. Нажимаем сразу же кнопку NEXT.
quartus_3

Как вы все видите путь к папке с проектом некорректно отображается( да Quartus не любит Кириллицу , пишем на Латинскими)

quartus_4

Вот сейчас отображается все хорошо. нажимаем NEXT
quartus_5

В этом окне вы можете добавить файл к проекту , если он у вас есть лично у меня его нету. Вы можете создать не проект а просто файл и в нем что либо сделать , а потом включить в проект , к примеру создать отдельные модуль.
quartus_6

Тут мы выбираем наш камень. Я использую камни Max7000s EPM7128STC100-15 и Cyclone IV E EP4CE6E22C8N(обратите внимание на питания ядра 1.2В) даже если вы не знаете какой камень купить, вы можете тут в Quartus посмотреть характеристики и определится.

quartus_7

Обычно на этом шаге я ничего не меняю. В глубь тут не вникал.

quartus_8

Вот и все мы закончили создавать проект. В котором мы видим какой у нас камень, его питание, название проекта и отладочник ModelSim. После создание в Левом верхнем углу у нас появится вот такая штука.
quartus_10

Дальше нажимаем кнопку NEW и там выбираем , где мы хотим и что мы хотим создать. Я Выбираю Block Diagram(Schematic) и нажимаем OK ,
quartus_11

далее на верху примерно по центру есть такой значок нажимаем его,
quartus_12

quartus_13

Вот у нас появилось окошко в котором мы можем выбрать элемент который хотим вставить в проект, там и логика есть , в папке Primitives в Other есть практически вся библиотека 74 логики. Как пользоваться той или иной микросхемой открываем даташит в интернете. Либо можем собрать элемент под свои нужды. Но это будет рассмотрено в следующей статье.

quartus_14

Я для этого урока выбрал элемент 2И-НЕ теперь нажимаем ОК ставим его
quartus_15

потом рядом с ним нажимаем на вот такую кнопку в которой мы устанавливаем входы, выходы и Bidir(двунаправленный)

На вход элемента мы ставим 2 входа и на выход соответственно Output

quartus_16

Потом мы переименовываем порты(вход и выход) для того, чтоб нам было легче ориентироваться в проекте

quartus_17

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

quartus_18

Так в окне будет видно, сколько ресурсов камня вы заняли.
quartus_19

Далее мы нажимаем на кнопку Pin Planner у нас появляется наш камушек, с входами где сразу видно где у нас питание , а где корпус. А также ноги для генератора, и т.д. сразу обратите внимание внизу где указаны наши вход/выход программа выдает нам питание на ноге и ток, т.к. у меня ноги запитаны от 3.3В и мне нужны TTL сигналы я устанавливаю 3.3В и ток максимальный который она может выдать. На практике скажу так когда плата сильно нагружена на выходы ПЛИС лучше ставить подтягивающий резистор на ток 4-6мА чтобы ПЛИС работала как нужно и не сгорела. Встроенными преобразователями ПЛИС лучше не пользоваться, а использовать то питание которое подключено к питанию ног. ПЛИС не микроконтроллер очень капризная в этом плане. По поводу разводки платы для ПЛИС будет тоже все описано в следующей статье
quartus_20

Вот я установил наши вход и выход они помечены темными кругляшками.
Далее просто закрываем это окно .Нажимаем еще раз на Compiler для того , чтобы программа проверила правильно ли мы установили ножки. И не заняты ли они другими делами. Также в том окне где мы устанавливаем ножки можно поставить один режим в котором неиспользуемые ноги отключаются, бывает нужно

quartus_21

И вот у нас прошла компиляцию и нажимаем на кнопку programmer в котором мы выбираем наш программатор нажав на кнопку Hardware setup(у меня он не подключен) далее выбираем режим прошивания. Я использую JTAG и на этом все нажимаем кнопку Start и можно работать. На плате с камнем должно быть питание, чтобы ПК увидел нашу плату.

19 комментариев: ПЛИС. Начало

  • Kaboo:

    Про плиски — это хорошо, это одобрям =)

  • Nick:

    Ждем продолжения!
    Какие планы дальше?

  • Олег:

    Я вот уже перелопатил кучу статей, кучу всего и не могу пока понять. В чем прикол этих ПЛИС. Для себя лишь понял одно, если надо что-то анализировать на частотах выше 75-100 МГц, какие-либо фильтры, обмен данными и т.д. Но в остальном-то куда проще все это написать на той же AVR. И мигнуть, и ШИМ, и счетчики и черт знает что.
    В чем прикол ПЛИС для домашних самоделок ?

  • Braimik:

    Олег. прикол в ПЛИС, самый главный , она все делает параллельно. не последовательно. то есть ты можешь на ней в одном проекте создать 2 схемы независимых друг от друга, и они у тебя будут работать параллельно. ты на ПЛИС можешь сделать тоже самое , что на АВР. на ПЛИС ты можешь и монитор к ней подключить, и Марио запустить(если камень хороший, как у меня) с USB работать на раз два. когда ты к примеру захочешь сделать робота или , что то похожее , то на ПЛИС это лучше сделать. Я до сих пор пользуюсь АВР и СТМ32. на АВР я простые действия делаю и все. а уже масштабное на ПЛИС. найди в инете статью «ПЛИС VS AVR» там более менее описано. все что ты можешь сделать на АВР . тоже ты можешь и на ПЛИС сделать

  • OYBEK:

    как скачать можна на офицаллни сайт у мне не поличилса

  • OYBEK:

    я там не понял там мне закирвали офицаллни сайт

  • admin:

    Переходишь на оф сайт альтеры, а там в раздел загрузки. Скачать можно с помощью их проги AKAMAI, которая умеет докачивать и походу скорость побыстрее или качаешь по прямой ссылке, как мы обычно привыкли
    q

  • Braimik:

    только лучше выбрать DVD-files и его скачать.

  • Андрей:

    Здравствуйте уважаемый admin, начинаю изучение ПЛИС, в процессе повторения DDS генератора, по следам вашей публикации возникла проблема, можно обратиться к Вам за помощью?

  • admin:

    можно

  • Андрей:

    Добрый вечер, я немного изменил код сделал параллельную загрузку сумматора 32-бит, добавил обратную пилу,прямоугольник, но все сигналы на ЦАП есть, а синуса нет. Файл таблицы синуса состоит из столбца шестнадцатиричных чисел подряд, адреса не указывал. Пробовал сделать таблицу синуса через CASE в синхронном и асинхронном режимах, тот же результат — сигнал на выходе ЦАП стоит в среднем значении и не меняется, в обоих вариантах пила появляется после модификации кода, может дело в настройках Quartus_а?Проекты создавал Wizardom для EPM240T100C5N, добавлял файлы Verilog HDL. Я не знаю куда выложить опробованные варианты кода.

  • admin:

    посмотрите идею http://avr-start.ru/?p=2848 сделайте какой нибудь фиксированный вывод одной частоты, а потом уже придумывайте как будете менять.

  • Андрей:

    Идея мне абсолютно понятна, частота меняется, проблема этого проекта — нет синуса.

  • admin:

    как то не вяжется ваше утверждение с вопросом, 1. выводите на ноги число — смотри осциллом, меняется ли напряжение на выходе. 2. пробуете менять это число опять смотрите осциллом, 3. добавляете изменение этих чисел со временем, например меандр, опять смотрите осциллом. Думаю дальше понятно?

  • Андрей:

    Похоже мы друг друга не понимаем, я взял упрощенное ядро вашего проекта ( без загрузки сумматора по SPI , фиксированная частота ). После загрузки прошивки в CPLD синуса нет, если упростить код пила есть, не выводится именно синус ( табличные значения ).

  • admin:

    а собственно файл data.txt с табличными значениями то создан?

  • Андрей:

    Файл создан и включен в проект, данные идут подряд, без указания адресов (пробовал и с указанием через @ ) в 16-ричном виде (80828488…), пробовал бинарные (огромные), количество соответствует массиву sinLUT — синуса нет, пила есть. По-этому и решил попробовать через конструкцию с CASE. У меня вопрос- нужно как то менять настройки Quartus_а при создании проекта или каклибо дополнительно инициализировать элемент ROM, у меня не работает (нет синуса, а пила есть) даже проект в виде Schematic design. Не знаю куда копать, хотя точно знаю что подобные проекты работают и подобные ( на epm240) и с меньшей разрядностью на более мелких CPLD.

  • admin:

    Андрей, мне сложно что то посоветовать, без кода и схемы. Можете закинуть на какой нить файлообменник а сюда ссылку.

  • Андрей:

    Хорошо, только завтра, пришел поздно. Спасибо за внимание.

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

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

Счетчик
Яндекс.Метрика