МАРСОХОД

Open Source Hardware Project

Осторожненько

На нашем форуме прозвучал один интересный вопрос, ответить на который на самом деле оказалось не так и просто. Вопрос заключался в следующем: "Какие меры предосторожности следует предпринять перед прошивкой проекта в чип CPLD? Нужно ли опасаться испортить чип?".

Я не буду сейчас обращать внимание на правильность подачи напряжения питания. Это и так ясно. Полярность питания нужно не перепутать. Подавать больше +4.6В нельзя. Но я не об этом.
 
Я хотел бы особенно обратить внимание на пару моментов. Они в основном касаются назначений сигналов конкретным выводам микросхемы ПЛИС и свойствам выводов. Проблема в том, что у ПЛИС очень много пользовательских выводов и каждый из них может быть запрограммирован как вывод или как вход. Это с одной стороны очень приятная функция, но, с другой стороны, ее использование требует особой внимательности.

Первая рекомендация.
В проекте Altera Quartus II зайдите в меню Assignments->Device. Появится диалоговое окно Device и на нем будет кнопка Device and Pin Options. Нажмите ее и увидите следующее диалоговое окно:

Altera Quartus Device and Pin Options

В этом диалоге есть одна довольно важная опция: Unused pins. Эта опция позволяет сказать программе Quartus, что делать с неиспользуемыми контактами микросхемы. При создании нового проекта, по умолчанию, Quartus устанавливает эту опцию в "As output driving zero". Я же настоятельно рекомендую в ваших экспериментах установить ее в "As input tristated". Попробую объяснить.

Предположим, что ваш проект использует только один входной и один выходной сигнал, а всего в ПЛИС EPM240T100C5 имеется кажется около 80 пользовательских пинов. Наш проект для платы Марсоход может, например, выглядеть вот так:

Простой проект для ПЛИС

Здесь видно вход key от кнопочки платы, один инвертор и выход на светодиод led. Ничего особенно мудреного. При нажатии на кнопочку должен загореться светодиод.

Плата у нас есть готовая, по ее схеме видно какой контакт куда подключен на плате. Назначения я сделал в Quartus Assignment Editor вот так:

Назначения свойств контактов ПЛИС

Вроде все верно. Можно компилировать и пробовать. Так?

Так да не совсем так...
В последней версии платы Марсоход 1.3 установлен кварцевый генератор. Его выход подключен к контакту чипа ПЛИС, который на схеме называется pt_right.

Если не обратить внимание на опцию Unused pins в диалоге Device and Pin Options, то компилятор Quartus все неиспользуемые пины изнутри микросхемы подключит к ЗЕМЛЕ (As output driving zero). Это значит, что выход генератора фактически оказывается закороченным на землю, а это уже не хорошо. Совсем другое дело, если я установлю опцию Unused pin в значение As input tristated. Тогда все неиспользуемые мною пины будут находиться в высокоомном состоянии, как будто это входы. Ток в эти пины не потечет. Значит будет не важно, что там снаружи подключено к ним и я могу делать какие-то свои простые эксперименты с небольшим количеством пинов на нашей конкретной плате.

Должен сказать, я недавно и сам "прокололся" на этой фишке. Я взял для своих экспериментов один из имеющихся у нас PCIexpress Developer Kit - это довольно сложная плата с FPGA CycloneII, DDR2, Ethernet PHY, Flash и прочими прибамбасами. Сделал быстренько новый проект для всего нескольких пинов. Загрузил проект в чип и вроде бы он заработал - светодиодики заморгали как нужно. Однако когда я случайно коснулся пальцем микросхемы FPGA, то чуть не обжегся - настолько она была горячая. Тут же я выключил питание и вспомнил про опцию Unused pins - конечно она стояла "не правильно" в положении "As output driving zero". Пины, не использованные в моем проекте тянули на землю выходные сигналы внешних микросхем Ethernet и DDR.

После того, как поставил эту опцию в правильные "As input tristated", перекомпилировал и заново загрузил проект в микросхему - она стала почти холодная.

Вот кстати и вторая рекомендация.
При загрузке проекта в микросхему придерживайте ее корпус пальцем. Если после загрузки микросхема начинает сильно греться - немедленно выключайте и думайте, что сделано не так.

На самом деле, не нужно пугаться. Во всех опубликованных наших проектах Quartus II для платы Марсоход скорее всего опция Unused Pins стоит в As Input Tristate. Кроме того, скорее всего в наших проектах нет неиспользованных контактов.
Так что самый безопасный путь - брать какой-то готовый наш проект и исправлять его. Однако помните то, что я вам порекомендовал. Smile

Третья рекомендация.
Читайте сообщения Quartus II при компиляции проекта. Некоторые сообщения очень важны.
Окно сообщений легко найти - выберите пункт меню View->Utility Windows->Messages.
Я понимаю, что сообщения на английском языке и может быть не все понятно - привыкнете.
Вот пример важного сообщения:

Простой проект для ПЛИС и светодиода

Я добавил в проект еще один вывод, но "забыл" назначить ему номер контакта микросхемы. В этом случае Quartus выведет мой сигнал на ту ножку микросхемы, которая покажется ему самому удобнее и выдаст сообщение Critical Warning.
Не забывайте, что микросхема припаяна на вашу (нашу) плату. Куда попадет этот вывод? Если я не назначу номер контакта микросхемы своему выводу, то Quartus может вывести его куда угодно на незанятые ножки микросхемы. А если на те ножки микросхемы которые уже объединены на плате для подключения моторчиков? Не будет ли там конфликта сигналов?

Ну вот пожалуй все советы...  Будьте внимательны!


 

  

Комментарии  

-1 #7 Вика 26.05.2016 09:12
При использовании signal_tap в список пинов в PinPlanner добавляются сигналы "altera_reserved_tck",
"altera_reserved_tdi", "altera_reserve d_tdo", "altera_reserve d_tms". Какое напряжение им нужно задавать в столбце "I/O standart"?
0 #6 Wonk 10.07.2012 06:40
У меня довольно сложный проект состоящий из нескольких листов, многие листы свернуты в макросы и используются, как составные части других, для обозначения входов и выходов для этих под схем были вставлены пины, не будут ли они выведены на ножки(вообще это внутренние связи)?
0 #5 Ю р и й 26.07.2011 11:05
Цитирую A.P.:
можно ли на вход микросхемы(i/o pin) подавать напряжение 5в? В даташите написано про скромные 4.1в, а как на практике?

Ни на питание, ни на любые входы больше +4.6В подавать нельзя.
0 #4 A.P. 26.07.2011 10:19
можно ли на вход микросхемы(i/o pin) подавать напряжение 5в? В даташите написано про скромные 4.1в, а как на практике?
0 #3 Александр 08.04.2011 10:22
Спасибо! Довольно познавательно.
У меня также были проблемки с выводами. Две ноги микросхемы (подразумевалис ь входами) не использовались в проекте (не было таких пинов в нем). А реально они были связаны с CYPRESS. В итоге потребление резко возросло. После добавления входных пинов в проект все стало на свои места.
0 #2 ю р и й 07.04.2011 18:18
Цитирую dm.urievich:
У меня при прошивке мигают светодиоды, ничего плохого не случится если некоторые пины посажены на землю?

Вообщето мигать они не должны, должны слабенько
светиться , поскольку в момент прошивки все пины переходят в "Z" состояние со слабой подтяжкой к питанию.
Насчет пинов на землю, зависит от ситуации,например
выход кварцевого генератора коротить на землю не стоит.
0 #1 dm.urievich 07.04.2011 18:11
У меня при прошивке мигают светодиоды, ничего плохого не случится если некоторые пины посажены на землю?

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



facebook  GitHub  YouTube  Twitter
Вы здесь: Начало Статьи о разном Осторожненько