Почти "пустой проект"

    Странно...

    Для чего может понадобиться «пустой проект»?
    Ну, во-первых, не «пустой», а «почти пустой». Это значит, что в нем уже кое что есть. А во-вторых, с чего-то же нужно начинать?
    Среда разработки компании Altera QuartusII позволяет создавать проекты совершенно разной сложности и основываясь на разных микросхемах и FPGA и CPLD. Про FPGA (Field Programmable Gate Array) можно прочитать здесь https://ru.wikipedia.org/wiki/FPGA.  А про CPLD (Complex Programmable Logic Device) можно прочитать здесь https://ru.wikipedia.org/wiki/ПЛИС. Микросхемы обоих типов производят несколько компаний, но мы сделали свой выбор в пользу Altera.
    Проблема начинающих разработчиков состоит в том, что для того, чтобы начать что-то делать нужно провести очень много подготовительной работы. Нужно развести и изготовить плату, поставить, припаять на нее микросхему, создать проект для среды программирования QuartusII. Все это требует и знаний и умений и времени. Мы же предлагаем простой путь для начинающих разработчиков, студентов и даже школьников. Мы предлагаем очень простую готовую плату «Марсоход». И мы предлагаем уже готовую «заготовку» для Вашего проекта.

    Итак откроем «почти пустой проект» программой Quatrus II. Вот что мы увидим:

prj_s

    Только не пугайтесь!
    Наш «почти пустой проект» оказался совсем не пустым и кажется ничего не понятно здесь.
    Сделаем необходимые пояснения. На нашей плате стоит микросхема компании Altera EPM240T100C5. Ее ножки уже разведены специальным образом на плате и подключены к четырем кнопкам, восьми светодиодам и еще всяким дополнительным разъемчикам. В нашем проекте для микросхемы CPLD мы уже сделали соответствующие назначения и это, пожалуй, самое важное. От каждого входа или выхода тянется линия-указатель к прямоугольной табличке, в которой написаны соответствующие им номера контактов микросхемы.
    Вот что у нас здесь есть:

  • Четыре входа key[3..0] – к ним подлючены четыре кнопки на плате. Специальные назначения в «проекте-заготовке» делают эти входы триггерами Шмидта. Это позволяет уменьшить «дребезг» контактов при нажатии на кнопки. Кроме того, на эти четыре входа мы уже назначили «weak pull-up resistors». Это слабые подтягивающие к напряжению питания резисторы. Таким образом на входе не нажатой кнопки будет логическая единица, а на входе нажатой кнопки – логический ноль.
  • Входы pt_left и pt_right сейчас у нас не используются в «проекте-заготовке». Мы планировали в будущем подключать к ним опто-транзисторы. Если мы надумаем когда нибудь делать робота с глазами – это нам поможет.
  • Двунаправленные входы (BIDIR) dp и dn сейчас тоже не используются. Они тоже зарезервированы. Надеюсь мы сможем сделать в будущем USB подключение нашей платы к компьютеру.
  • Восемь выходов led[7..0] – к ним на плате подключены светодиоды. На них можно делать какую нибудь простую индикацию.
  • Выходы f0[9..0], f1[9..0], f2[9..0] и f3[9..0], f4[9..0], f5[9..0]. На самом деле это шесть групп по 10 выходов. В каждой группе десять выходов соединены вместе, чтобы сделать шесть «сильных» выходов. Сильные выходы нам могут понадобиться в самых разных проектах. Например, мы будем подключать моторчики или шаговые двигатели роботов или машинок.
  • Компонент с именем ALTUFM_NONE. Это довольно сложная часть микросхемы Altera EPM240T100С5. Она уже содержит в себе и ПЗУ (Постоянное Запоминающее Устройство) и простейший тактовый генератор. В нашем «пустом» проекте этот генератор дает нам частоту 5МГц.
  • Компонент counter. Этот компонент мы создали сами в среде программы QuartusII (Вы и сами скоро сможете делать это). Это счетчик импульсов со входом разрешения тактовых импульсов и входом сброса. Мы поставили этот компонент в проект, чтобы он (проект) хоть что нибудь делал, чтобы была какая нибудь польза от него. Вход разрешения тактовых импульсов мы подключили к кнопке key[3], а вход сброса счетчика мы подключили к кнопке key[2]. Сам счетчик здесь 32-х разрядный, а светодиодов у нас всего восемь. Поэтому светодиоды подключены у нас к линиям счетчика с 20-й по 27-ю включительно. Если подключить к самым младшим линиям счетчика, то светодиоды будут моргать слишком часто. Если подключить их к самым старшим линиям счетчика, то слишком медленно. Так что мы выбрали где-то примерно в середине.

    Теперь откомпилируем этот проект в среде QuartusII и прошьем плату. Вот что у нас получилось:


    На видео видно, что счетчик обнуляется (светодиоды не горят) в момент сброса, и что счетчик не работает, когда нажимаем кнопку подключенную к clk_en модуля counter.

    Скачать этот проект можно здесь:

    Теперь Вы можете брать этот проект и исправлять его по своему усмотрению! Это, пожалуй, самый простой способ начать что-то проектировать самому.
    Удачи! Smile


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