Изучаем САПР Altera Quartus II / Intel Quartus Prime, язык описания аппаратуры Verilog HDL и кое-что про VHDL. Программируем FPGA Altera / Intel Cyclone III, Cyclone IV, MAX II, MAX10. Экспериментируем с платами разработчика FPGA серии Марсоход, Марсоход2, Марсоход3. А еще разбираемся с FPGA Gowin.
Мы поздравляем всех наших читателей и почитателей платы Марсоход с Новым Годом! Желаем в Новом Году счастья и творческих успехов!
Пока готовится салат оливье я побыстрому решил изготовить еще одну игрушку. Взял плату Марсоход с уже подключенными семи-сегментными индикаторами (это когда-то был пример "проект Частотомер") и придумал новый проект - бегущая строка с поздравлением!
Читатели спрашивают, как же все таки изготовить USB кабель к плате Марсоход и как его подключить к ней. Я думал, что из моих статей это будет понятно, но наверное не все я написал подробно. Поэтому возвращаюсь к этому вопросу.
Вот пришла мне такая мысль в голову. Хотелось бы сделать наш сайт интересным даже детям. хотелось бы заинтересовать их электроникой, программированием, робототехникой!
Конечно, программирование ПЛИС - не очень простая задача, но может это им и не нужно? Есть замечательная среда программирования для детей - это Scratch. Эта среда программирования может использоваться со специальными ScratchBoard платами и к ним можно подключить датчики и моторчик.
Я уже писал раньше про Scratch. Более того, у меня даже был проект для платы Марсоход - ее можно было подключить к компьютеру как ScratchBoard. Правда был у того проекта недостаток - плата подключалась через последовательный порт. Поэтому кроме платы Марсоход нужно было еше паять дополнительную платку преобразователь уровней для RS232 - ведь последовательный порт компьютера использует уровни сигналов +12В и -12В. Кроме того, сейчас уже не у каждого компьютера есть последовательный порт. Поэтому иногда нужен еще кабель USB-Serial. В общем не очень просто...
Вот поэтому я подумал - нужно сделать новый проект для платы Марсоход. Я сделал такую "прошивку", что теперь плата Марсоход работает как USB устройство, распознается компьютером как "последовательный порт" и посылает компьютеру данные в формате Scratch! Все стало гораздо проще! Четыре кнопочки платы Марсоход действуют как датчики сопротивление-А, сопротивление-B, сопротивление-C, сопротивление-D в программе Scratch. Значения эти датчики правда дают не аналоговые я только 0 и 100. Моторчик коллекторный, небольшой мощности (ведь у нас все питается от USB) подключается к пинам F3 и F4.
Вот посмотрите: на языке Scratch "пишем" вот такую простую программу:
Смысл этой программы очень простой - моторчик включается, когда срабатывает датчик света. К ноутбуку или компьютеру через USB подключаем нашу плату Марсоход (прошитую моим новым проектом), к плате моторчик и опто-транзистор - это датчик света. Смотрим как это работает:
Конечно это только простой пример использования. Ну а дальше я думаю ваша фантазия и фантазия ваших детей. Творите и программируйте!
Дальше я расскажу о самой "прошивке" для платы Марсоход. Проект довольно сложный, но в принципе, те кто заинтересуются могут просто, не разбираясь в тонкостях проекта ПЛИС, один раз зашить плату и использовать ее как ScratchBoard.
Хочу рассказать немного про симуляцию цифровых проектов. Да-да. Тема эта уже поднималась несколько раз, и, конечно – это неисчерпаемая тема. Я уже когда-то писал про симуляцию средствами Quartus II версии 9, но в последней версии Quartus II v10 этого «родного» альтеровского симулятора уже нет. Сказать по правде я расстроился. Для маленьких проектов этого симулятора вполне хватало. Потом я написал статью про симулятор iverilog – это простой open source симулятор – вполне приличная вещь. И вот теперь хочу кратко рассказать о программе ModelSim:
Мы уже делали USB устройство на плате Марсоход. Проект тот был вполне работоспособный, но был у него один существенный недостаток. Дело в том, что в этом проекте использовалась тактовая частота от встроенного генератора - примерно 5Мгц. В разных партиях микросхем EPM240T100C5, используемой в плате Марсоход частота этого генератора различается и иногда значительно. Вот это и печально. Это значит, что не на всех платах тот проект заработает сразу и без проблем. Я сделал ряд экспериментов и вижу, что проект работает очень хорошо, если частота внутреннего генератора около 4,880Мгц. Если больше 5Мгц, то начинаются проблемы - USB транзакции плохо принимаются моим устройством или то, что оно отправляет не принимает хост (компьютер). С этим нужно что-то делать...
Подробнее...