МАРСОХОД

Open Source Hardware Project

Проекты Altera Quartus II для платы Марсоход

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

    Странно...

    Для чего может понадобиться «пустой проект»?
    Ну, во-первых, не «пустой», а «почти пустой». Это значит, что в нем уже кое что есть. А во-вторых, с чего-то же нужно начинать?
    Среда разработки компании 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

Комментарии  

0 #50 hedemay 29.05.2016 05:17
Что из себя представляют выходы
"Выходы f0[9..0], f1[9..0], f2[9..0] и f3[9 ..0], f4[9..0], f5[9..0]"?
1. Они дискретные (только 0 \ 1);
или
2. Каждый из них - аналоговый (например 8-ми битный)
?
То же самое интересно по входам.
0 #49 nckm 15.09.2015 14:00
Цитирую denturner1:
"Кроме того, на эти четыре входа мы уже назначили «weak pull-up resistors». Это слабые подтягивающие к напряжению питания резисторы. Таким образом на входе не нажатой кнопки будет логическая единица, а на входе нажатой кнопки – логический ноль." как это реализовать в quartus II v.15? про триггер шмитта я нашел, а про weak pull-up resistors все не пойму

да вроде бы в 15м квартусе это делается так же, как и в предыдущих версиях, из Assignment Editor. В новой строке столбца "To" пишите имя входа, в этой же строке столбца "Assignment Name" пишите Weak Pull-up - он выбирается из списка..
0 #48 denturner1 11.09.2015 08:02
"Кроме того, на эти четыре входа мы уже назначили «weak pull-up resistors». Это слабые подтягивающие к напряжению питания резисторы. Таким образом на входе не нажатой кнопки будет логическая единица, а на входе нажатой кнопки – логический ноль." как это реализовать в quartus II v.15? про триггер шмитта я нашел, а про weak pull-up resistors все не пойму
0 #47 Tuan 16.06.2015 21:05
у нас есть задание : критическая частота слияния(световы х) мелькаций..Кто знает ? можно помагать мне?
0 #46 nckm 21.03.2015 13:33
Цитирую TepMex:
Здравствуйте!
Подскажите пожалуйста, хранит ли ПЛИС последнюю прошивку при выключенном питании? С виду похоже что нет (плата Марсоход2). Может я чего-то не знаю, и для сохранения прошивки нужно что-то сделать?

CPLD на плате Марсоход сохраняет прошивку. FPGA платы Марсоход2 не сохраняет прошивку. Ее можно грузить из внешней шлеш памяти на шилде.
0 #45 TepMex 19.03.2015 19:05
Здравствуйте!
Подскажите пожалуйста, хранит ли ПЛИС последнюю прошивку при выключенном питании? С виду похоже что нет (плата Марсоход2). Может я чего-то не знаю, и для сохранения прошивки нужно что-то сделать?
0 #44 umarsohod 19.03.2015 12:39
Цитирую ujin:
Спасибо за быстрый ответ.
Пояснения про "части микросхемы":
В вашем тексте сказано:
Компонент с именем ALTUFM_NONE. Это довольно сложная часть микросхемы Altera EPM240T100С5 (второй от конча списка описания проекта пункт). Как его вставить в проект?

На свободном поле нажимаете два раза левую кнопку мыши. Должно появиться меню "Symbol". В строке"Name" набираете "altufm_none"
0 #43 ujin 19.03.2015 12:27
Спасибо за быстрый ответ.
Пояснения про "части микросхемы":
В вашем тексте сказано:
Компонент с именем ALTUFM_NONE. Это довольно сложная часть микросхемы Altera EPM240T100С5 (второй от конча списка описания проекта пункт). Как его вставить в проект?
0 #42 umarsohod 19.03.2015 12:11
Цитирую ujin:
Ну никак не получается вставлять в свой проект части микросхемы (ALTUFM_NONE в вашем проекте) и таблички с назначенными сигналам номерами выводов кристалла.
Как это делается?

Сами назначения делаются в "Assignment Editor"
а их отображение включается в "View/Show Location Assignment".
про"вставлять в свой проект части микросхемы " непонял.
0 #41 ujin 19.03.2015 11:48
Ну никак не получается вставлять в свой проект части микросхемы (ALTUFM_NONE в вашем проекте) и таблички с назначенными сигналам номерами выводов кристалла.
Как это делается?
0 #40 nckm 04.11.2014 17:18
Цитирую Александрр:
Добрый день. Объясните пожалуйста, что значит параметр OSC_FREQUЕNCE у блока ALTUFM_NONE, и почему он равен 180000?

вообще-то частота встроенного генератора у UFM блока у разных микросхем может быть разная (в среднем около 5МГц) по технологическим причинам. А OSC_FREQUENCY влияет только на результат симуляции в ModelSim.
0 #39 Александрр 02.11.2014 00:02
Добрый день. Объясните пожалуйста, что значит параметр OSC_FREQUЕNCE у блока ALTUFM_NONE, и почему он равен 180000?
+1 #38 Владимир Хлуденьков 17.03.2014 11:12
Здравствуйте. Подскажите.

Запускаю "Почти пустой проект" в симуляторе квартуса.
Выдаётся куча предупреждений, что пины не подключены. И на выходе никакого движения.

Сигнал клок есть.

Или этот проект не предназначен для симулирования?
0 #37 Ю р и й 11.03.2014 12:58
Цитирую Владимир Хлуденьков:
Спасибо большое. И ещё один простой вопрос. Про подключение программатора к плате "марсоход". Там, как я понимаю, всего один возможный вариант соединения. Но, если можно, фотографию платы с подключенным к ней программатором.

В этой статье есть пара фото, но , к сожалению, видно не очень хорошо :sad:
http://marsohod.org/index.php/projects/plata1/174-phframe3
+1 #36 Владимир Хлуденьков 11.03.2014 12:47
Спасибо большое. И ещё один простой вопрос. Про подключение программатора к плате "марсоход". Там, как я понимаю, всего один возможный вариант соединения. Но, если можно, фотографию платы с подключенным к ней программатором.
0 #35 umarsohod 11.03.2014 12:38
Цитирую Владимир Хлуденьков:
Я правильно понял что можно постоянно подключить такой USB-кабель (уже спаял) и в то же время заливать программу через MBFTDI? А отдельный разъём питания не использовать?

P.S. Вопрос был как раз про отдельный разъём питания. Там стоит 0 Ом чип. Вот я и думал по подобию разъёма USB туда тоже диод впаять. Но если можно через USB постоянно питать то так лучше.


Вот еще -http://marsoho d.org/index.php /forum/7----mbf tdi/2502---qq-- -mbftdi#2502
0 #34 Владимир Хлуденьков 11.03.2014 12:28
Я правильно понял что можно постоянно подключить такой USB-кабель (уже спаял) и в то же время заливать программу через MBFTDI? А отдельный разъём питания не использовать?

P.S. Вопрос был как раз про отдельный разъём питания. Там стоит 0 Ом чип. Вот я и думал по подобию разъёма USB туда тоже диод впаять. Но если можно через USB постоянно питать то так лучше.
+1 #33 Ю р и й 11.03.2014 12:21
Цитирую Владимир Хлуденьков:
Здравствуйте. Может не к этой ветке вопрос но спрошу. У вас от разъёма +VCC есть чип резистор 0 Ом. Можно ли впять вместо него диод LL4148 для понижения напряжения и подать +5В от USB компьютера?

Диод уже есть - http://marsohod.org/11-blog/120-usbcable
0 #32 Владимир Хлуденьков 11.03.2014 10:27
Здравствуйте. Может не к этой ветке вопрос но спрошу. У вас от разъёма +VCC есть чип резистор 0 Ом. Можно ли впять вместо него диод LL4148 для понижения напряжения и подать +5В от USB компьютера?
0 #31 Ю р и й 19.05.2013 09:54
Цитирую Иван:
Подскажите пожалуйста, вот есть у плис вход для тактирования (аж 4 штуки).
Обязательно ли на него нужно подавать тактовый сигнал? Если подавать то на все 4 пина или можно/нужно только на какой то один? На вашей плате я так понял тактовый сигнал вообще подается на простой i/o pin.

Если у Вас MAXII, о тактовую можно подавать на любой пин :-)
0 #30 Иван 18.05.2013 16:02
Подскажите пожалуйста, вот есть у плис вход для тактирования (аж 4 штуки).
Обязательно ли на него нужно подавать тактовый сигнал? Если подавать то на все 4 пина или можно/нужно только на какой то один? На вашей плате я так понял тактовый сигнал вообще подается на простой i/o pin.
0 #29 Ю р и й 14.05.2013 08:50
Цитирую ВладС:
Подскажите плз какой ресурс перепрогаммирования ПЛИС от Марсохода 1 ?
В доках Альтеры я наткнулся на цифру 100
:o
Это и вправду так ?

Никто правды не знает - http://marsohod.org/11-blog/91-killmax
+1 #28 ВладС 14.05.2013 07:24
Подскажите плз какой ресурс перепрогаммиров ания ПЛИС от Марсохода 1 ?
В доках Альтеры я наткнулся на цифру 100
:o
Это и вправду так ?
0 #27 Владимир Ходукин 17.02.2013 17:50
Скажите, пожалуйста, по чем можно будет покупать эти микросхемы для серийных изделий (та что в М и d М2)?
И кроме того, сколько будет стоить микросхемка совсем малой степени интеграции (пара счетчиков, пара регистров на 32 разряда, канал их загрузки), но на тактовую частоту ~1 ГГц?
0 #26 foxitt 15.01.2013 10:11
Здравствуйте
У меня вот такой вопрос
Хочу повторить проект часов habrahabr.ru/post/125364/
Проект выложен в статье.
Данной платы у меня нет, но есть другая www.ebay.com/itm/Altera-CycloneII-EP2C5T...d-E081-/261070617141

Вопрос в следующем, что лучше
Нарисовать схему под свою плату с нуля используя за основу текущий проект или изменить текущий проект под свою плату?
0 #25 nckma 17.10.2012 07:04
Цитирую AlexSkv:
Здравствуйте! Поясните, пожалуйста, смысл элементов в виде треугольничков, подписанные (WIRE/inst)? Для чего они нужны?

я иногда использую элемент WIRE для переименования сигнала. С одной стороны провод имеет одно имя а с другой стороны - другое. Причем они просто соединены друг с другом.
0 #24 AlexSkv 14.10.2012 18:28
Здравствуйте! Поясните, пожалуйста, смысл элементов в виде треугольничков, подписанные (WIRE/inst)? Для чего они нужны?
0 #23 Pasha 09.09.2012 12:36
для программировани я CPLD дополнительного генератора не нужно. Тактирование идет из программатора через JTAG.

Что касается платы Марсоход, то на ней установлен генератор 100Мгц и сигнал тактовой частоты с него подается на пин 75 CPLD (это видно на схеме платы).
В "почти пустом проекте" есть вход pt_right который назначен на этот пин 75. В самых первых платах генератора не было, поэтаму несколько странное название для пина. В своих проектах для Платы Марсоход используйте pt_right как сигнал тактовой частоты.
Еще в MAX II есть встроенный RC генератор около 5Мгц. его сигнал можно взять из компонента ALTUFM.

Спасибо!! :-)
Не делал ли кто этот usb Blaster? http://www.mcu-cpld.narod.ru/Altera/USB-blaster.html и какие мысли насчет его работоспособнос ти?
0 #22 nckm 09.09.2012 09:36
Цитирую Pasha:
Расскажите мне, на какие ноги подавать тактирование их вроде там несколько (GCLK1,GCLRn,GCLK2) в чем разница? и будет ли работать программатор если нет тактирования на CPLD?


для программировани я CPLD дополнительного генератора не нужно. Тактирование идет из программатора через JTAG.

Что касается платы Марсоход, то на ней установлен генератор 100Мгц и сигнал тактовой частоты с него подается на пин 75 CPLD (это видно на схеме платы).
В "почти пустом проекте" есть вход pt_right который назначен на этот пин 75. В самых первых платах генератора не было, поэтаму несколько странное название для пина. В своих проектах для Платы Марсоход используйте pt_right как сигнал тактовой частоты.
Еще в MAX II есть встроенный RC генератор около 5Мгц. его сигнал можно взять из компонента ALTUFM.
0 #21 Pasha 08.09.2012 12:17
Расскажите мне, на какие ноги подавать тактирование их вроде там несколько (GCLK1,GCLRn,GC LK2) в чем разница? и будет ли работать программатор если нет тактирования на CPLD?
0 #20 Pasha 01.09.2012 20:38
Цитирую Pasha:
возможно я не в тему, но все же ответьте на мой вопрос:
в семействе MAX3000 в доке (http://www.altera.com/literature/dp/max3k/epm3032a.pdf) есть пины VCCIO и VCCINT тоже и с GND. В физическом смысле (на плате) их соединять вместе и в чем между ними разница ?

все я понял, спасибо.
0 #19 Pasha 01.09.2012 20:10
возможно я не в тему, но все же ответьте на мой вопрос:
в семействе MAX3000 в доке (http://www.altera.com/literature/dp/max3k/epm3032a.pdf) есть пины VCCIO и VCCINT тоже и с GND. В физическом смысле (на плате) их соединять вместе и в чем между ними разница ?
0 #18 dcoder 21.01.2012 15:57
Quartus II v7.1 web edition жалуется что не может открыть проект (qpf файл), хотя отдельно схему (bdf) открывает. Версия не та, или просто день не удачный? :)
0 #17 Andrey 29.10.2011 14:00
Цитирую nckma_:
Возможно это проблема браузера. Если качаете с помощью IE то выкачанный файл получается странный. Разархивируйте, потом переименуйте в *.zip и еще раз разархивируйте.

:-)
Никогда бы не подумал, спасибо. Скачал Оперой - все отлично открывается.
0 #16 nckma_ 29.10.2011 06:19
Цитирую Andrey:
В "почти пустом проекте" лежит один файл без разширения. Добавляю .qpf - открывается в Квартусе, но ничего там нету... :-|

Возможно это проблема браузера. Если качаете с помощью IE то выкачанный файл получается странный. Разархивируйте, потом переименуйте в *.zip и еще раз разархивируйте.
0 #15 Andrey 28.10.2011 21:01
В "почти пустом проекте" лежит один файл без разширения. Добавляю .qpf - открывается в Квартусе, но ничего там нету... :-|
0 #14 сергей 21.07.2011 16:40
в каких .телевизорах.мо жно выдрать EPM240T100C5
0 #13 nckm_ 31.03.2011 14:23
Цитирую pic_spb:
На этой странице не создаётся PDF Пишет: TCPDF ERROR: [Image] Unable to get image: images/smiley/msn/regular_smile.gif

исправил
0 #12 pic_spb 31.03.2011 13:48
На этой странице не создаётся PDF Пишет: TCPDF ERROR: [Image] Unable to get image: images/smiley/m sn/regular_smil e.gif
0 #11 nckm 02.01.2011 17:03
Цитирую dolkons:
При компиляции пишет вот такое: "Error (10228): Verilog HDL error at counter_bb.v(34): module "counter" cannot be declared more than once"

Что делать?

только что выкачал проект, открыл, откомпилировал - все нормально... попробуйте удалить сounter и снова вставить в схему
0 #10 dolkons 02.01.2011 14:30
При компиляции пишет вот такое: "Error (10228): Verilog HDL error at counter_bb.v(34 ): module "counter" cannot be declared more than once"

Что делать?
+1 #9 Ю р и й 03.12.2010 17:28
Не 60 а 12 , а плата действительно совместима с
EPM 570.
0 #8 maxx_ir 03.12.2010 17:14
60 выводов уже неплохо)) И насколько я понял
4 PIN'а заведены на программную землю - для совместимости с EPM570T100 ?
0 #7 Ю р и й 03.12.2010 16:15
В текущей версии платы можно паралельно моторным
пинам впаять еще ряд PLS и разрезать между ними
дорожки, как сделано в "Частотомере" - будет 12
групп по 5. А в будущем - будем думать.
0 #6 maxx_ir 03.12.2010 16:06
Смотрю на вашу плату и вызывает недоумение только одно: зачем жестко запараллели столько выходов?
Ну оно понятно управление движками и тд...
Однако многое на вашей плате уже не собереш,
схему сопряжения с винчестером, VGA цветной адаптер, интерфейс с SDRAM,
фрейм-грабер видео тоже.. - и тд. выводов маловато ((
Надо было поставить подобие мостов - перемычек на плате. Выпускайте 2 ревизию платы ;-)
0 #5 nckm 21.10.2010 06:46
Цитирую xintrea:
> Входы ot_left и ot_right сейчас у нас не используются

То есть, их вообще нет на рисунке схемы, или имеются в виду pt_left, pt_right?

да, Вы правы! ошибка в тексте была. Спасибо, Исправил.
0 #4 xintrea 20.10.2010 17:39
> Входы ot_left и ot_right сейчас у нас не используются

То есть, их вообще нет на рисунке схемы, или имеются в виду pt_left, pt_right?
0 #3 Николай 20.06.2010 17:30
Цитирую Кирилл:
Не помешал бы мануал по прошитию чипа, т.е. какую и в какой последовательности менюшку в КвартусеII открыть,какую кнопку нажать и тд. Плюс со скринами поясняющими процесс. Тогда вообще для новичков было бы супер. Отличный сайт. Проекты, в плане оригинальности, выше всяких похвал.


все это в планах есть, так что будем делать. И инструкции и уроки и новые проекты.
0 #2 Кирилл 20.06.2010 16:24
Не помешал бы мануал по прошитию чипа, т.е. какую и в какой последовательно сти менюшку в КвартусеII открыть,какую кнопку нажать и тд. Плюс со скринами поясняющими процесс. Тогда вообще для новичков было бы супер. Отличный сайт. Проекты, в плане оригинальности, выше всяких похвал.
+3 #1 Dan 18.03.2010 07:40
Молодцы.
PS Где же вы были, когда я учился на первом курсе? Эх..

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


Защитный код
Обновить


GitHub YouTube Twitter
Вы здесь: Начало Проекты Проект Марсоход Почти "пустой проект"