Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Прошу помощи по схемотехнике
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Георгий 2
Доброго времени суток!

Я собственно не так давно начал разбиратся с ПЛИСами, чуть больше полгода назад. Первоначальной задачей было научится писать на VHDL. Но чем дальше тем больше. И пришла пора сделать первую плату с ПЛИСкой. Для первой итерации была поставлена задача попробовать скопировать стенд, дабы выяснить возможные подводные камни проектирования подобных устройств. Частично известно какие элементы и микросхемы использовались при разработке, но из того что есть имеется картинка стенда:
Нажмите для просмотра прикрепленного файла
а также схема:
Нажмите для просмотра прикрепленного файла
Ну и даташиты на пару микросхем.
Собственно из всего материала никоим образом нельзя просто сделать разводку и накидать элементов (по крайней мере мне с отсутствием чутья и опыта). Собственно известно, что для загрузки программы ипользуется D1 - FT2232C и ее обвязка выяснена по даташиту. Резисторы R22-R26 как я понимаю подтягивающие, и выбраны из даташита на ПЛИС и равны 10 кОм. ПЛИС FPGA EP1C3T144 (Altera).
Микросхемы питания D2 и D3 я выбрал L4931ABV33 и L4931ABV15. Думаю они должны подойти.
Собственно вопрос такого плана. Использвана схема генератора тактовых импульсов на элементах И-НЕ, обязательно ли использовать именно эту схему? и если да то подскажите методику расчета элементов (кварц 6 МГц). А если нет то подскажите пожалуйста варианты.

Также есть вопрос такого плана. Есть ли у кого-нибудь книги, ссылки, какие-нибудь статьи, которые помогут человеку разобратся в аспектах проектирования реальных устройств? Прошу названия, ссылки, что угодно. Заранее прошу прощения если мой вопрос слишком глуп, вроде искал но ничего что могло бы мне помочь не нашел. Спасибо всем.

ЗЫ прошу поправить если я где-то ошибся в рассуждениях
ViKo
Можете обойтись одним генератором от FT2232C, соедините цепь XTOut FT2232C с CLK0 ПЛИС.
Георгий 2
Цитата(ViKo @ May 18 2010, 17:02) *
Можете обойтись одним генератором от FT2232C, соедините цепь XTOut FT2232C с CLK0 ПЛИС.

Если все так просто на на кой фиг на схеме так замудрено? и зачем там два И-НЕ в схеме генератора?
ViKo
Цитата(Георгий 2 @ May 18 2010, 13:13) *
Если все так просто на на кой фиг на схеме так замудрено? и зачем там два И-НЕ в схеме генератора?

По 35 проводу можно было бы его выключить. Но после этого ПЛИС зависнет навсегда.
Можно и на одном инверторе. Что было, то и использовали. Второй инвертор - чтобы нагрузка от ПЛИС не мешала. Резисторы R37 1 MOhm, R38 100 Ohm. Конденсаторы C11, C12 по 22 pF. Будет работать при любых номиналах порядка приведеных.
"Пурга это все" (с) фильм "24 часа".
P.S. Вам нужно начать с "Искусства схемотехники" Хоровица и Хилла. Классика.
Георгий 2
Цитата(ViKo @ May 18 2010, 17:22) *
По 35 проводу можно было бы его выключить. Но после этого ПЛИС зависнет навсегда.


что Вы хотели этим сказать?


Цитата(ViKo @ May 18 2010, 17:22) *
P.S. Вам нужно начать с "Искусства схемотехники" Хоровица и Хилла. Классика.


Спасибо эт я в курсе, хороша книга, да видно плохо я по ней учился, не помню там таких схем...
Буду вспоминать...

Еще вопрос. Как мне определить ток i/o выходов? чтобы рассчитать R29-R36
Kuzmi4
2 Георгий 2
ток выходов констрейнами задают
ViKo
Цитата(Георгий 2 @ May 18 2010, 13:54) *
что Вы хотели этим сказать?

Что этот провод - лишний.
Цитата
не помню там таких схем...
Буду вспоминать...

А я помню!
Цитата
Еще вопрос. Как мне определить ток i/o выходов? чтобы рассчитать R29-R36

По той же книге. ПЛИС в "1" выдает 3V, на светодиоде упадет 1.5V. Остается 1.5V. Зададим ток 10 mA. По закону Ома получаем 0.15 kOhm.
ViKo
Цитата(Kuzmi4 @ May 18 2010, 14:06) *
2 Георгий 2
ток выходов констрейнами задают

Максимальный. Если я его (ток) не возьму, то и выдавать не будет smile.gif
Георгий 2
Цитата(ViKo @ May 18 2010, 18:12) *
Что этот провод - лишний.

По той же книге. ПЛИС в "1" выдает 3V, на светодиоде упадет 1.5V. Остается 1.5V. Зададим ток 10 mA. По закону Ома получаем 0.15 kOhm.


Спасибо, тупому мне стало все более менее ясно сажусь ха Хоровица и Хилла.

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

Просто Вам все более менее понятно, Вы уже матерые спецы, круче чем вареные яйца a14.gif , но мне чтобы приблизится к Вашему уровню, в начале пути придется задавать тупые вопросы видимо?
ViKo
Цитата(Георгий 2 @ May 18 2010, 14:21) *
Но про провод непонятно, вы сказали что провод лишний, но в то же время что есди его выключить ПЛИС зависнет навсегда, то есть вы имеете ввиду что его или убрать его или включать всегда? так я понимаю?

Посадите ее на питание (надеюсь, это не TTL, а CMOS микросхема, если нет - то через резистор 1 kOhm советуют upd. Нет, это точно КМОП, на ТТЛ так генераторы не делали, да и нет уже их практически, ТТЛ. Так что смело цепь - на питание).
А первый мой ответ Вы категорически отвергаете?
andrewkrot
Не вижу на плате конфигурационного ПЗУ... и каким софтом она шьется? Лучше уберите FT232 а вместо ее конфигурационную ПЗУ поставьте. А то без подключенного компьютера ваше устройство так никогда и не заработает.
Dima_G
Советую посмотреть на киты от альтеры, терасика. Лучше взять фрагменты схемы там, чем копировать эту поделку.
ViKo
Цитата(Dima_G @ May 18 2010, 17:32) *
Советую посмотреть на киты от альтеры, терасика. Лучше взять фрагменты схемы там, чем копировать эту поделку.

Ну зачем Вы так! Вполне приличные схема и плата. С загрузкой по USB. Учебный стенд. Одобрям!
Dima_G
Цитата(ViKo @ May 19 2010, 00:24) *
Ну зачем Вы так! Вполне приличные схема и плата. С загрузкой по USB. Учебный стенд. Одобрям!

Даже я, хоть и дилетант в схемотехнике, вижу сходу несколько ошибок.
1) JTAG. Отсутствуют подтягивающие резисторы
2) Нет ferrite bead на питании PLL.

Думаю, гуру может найти еще несколько ошибок. Возможно для этой схемы это не критично, но ИМХО желательно сразу "учиться хорошему".

P.S. Не ошибка, а скорее всего - анахронизм: тактирование ФПГА. Насколько я знаю, сейчас применяются монокорпусные генераторы,а не на рассыпухе.
Георгий 2
Цитата(ViKo @ May 18 2010, 18:29) *
Посадите ее на питание (надеюсь, это не TTL, а CMOS микросхема, если нет - то через резистор 1 kOhm советуют upd. Нет, это точно КМОП, на ТТЛ так генераторы не делали, да и нет уже их практически, ТТЛ. Так что смело цепь - на питание).
А первый мой ответ Вы категорически отвергаете?

нет ни в коем случае не отвергаю, буду пробовать, просто если можно было та просто все сделать мне неясно для какой цели был сделан 2й генератор, только сли для рассмотрения в учебном процессе что будет при вкл и выкл этого провода

Цитата(andrewkrot @ May 18 2010, 19:11) *
Не вижу на плате конфигурационного ПЗУ... и каким софтом она шьется? Лучше уберите FT232 а вместо ее конфигурационную ПЗУ поставьте. А то без подключенного компьютера ваше устройство так никогда и не заработает.

это все таки учебный стенд для обучения навыкам работы с ПЛИС, а не какой-то крутой проект на производство, поэтому конфигурационной флешки не предвидится, по крайней мере пока....

Цитата(Dima_G @ May 19 2010, 10:11) *
Даже я, хоть и дилетант в схемотехнике, вижу сходу несколько ошибок.
1) JTAG. Отсутствуют подтягивающие резисторы
2) Нет ferrite bead на питании PLL.

Думаю, гуру может найти еще несколько ошибок. Возможно для этой схемы это не критично, но ИМХО желательно сразу "учиться хорошему".

P.S. Не ошибка, а скорее всего - анахронизм: тактирование ФПГА. Насколько я знаю, сейчас применяются монокорпусные генераторы,а не на рассыпухе.


Вполне с вами согласен про подтягивающие резисторы и про ferrite bead. Сам смотрел даташит, видимо это не критично для данной платы, но сделаю по даташиту и представлю в студию всю дополненную плату. Про тактирование я высказал мысль что это для учебного процесса, поэтому подумаю что лучше сделать в данном случае...


ЗЫ взял "Искусство схемотехники" буду повышать квалификацию biggrin.gif
ViKo
Про трубку ферритовую - не повредит, конечно. А что, если PLL там вообще не используется?
Аналогичный ответ про JTAG - у них есть загрузка от компьютера, нахрен им JTAG вообще?
А генератор - лучше взять готовый, и подать частоту и на FT2232, и на EP1C3. Только частоту выбрать ту, что нужна FT2232.
Dima_G
Цитата(ViKo @ May 19 2010, 15:11) *
Аналогичный ответ про JTAG - у них есть загрузка от компьютера, нахрен им JTAG вообще?

Например, SignalTAP использовать.
Да и вообще - если возможно подключения сделана (разведены соответствующие лапы у ФПГА, поставлен JTAG разъем), значит зачем-то нужен smile.gif
ViKo
Цитата(Dima_G @ May 19 2010, 12:12) *
Например, SignalTAP использовать.
Да и вообще - если возможно подключения сделана (разведены соответствующие лапы у ФПГА, поставлен JTAG разъем), значит зачем-то нужен smile.gif

Был нужен - В запас smile.gif
Согласен, пусть будет. И пусть резисторы будут нужные подключены.
Георгий 2
закинул я одно время стенд, но пришло время к нему вернутся, есть интересный вопрос. даиашит покурил пока не нашел ответ. вопрос такой мне надо на плиску завести +3,3В и +1,5В начальство требует по максимуму использовать имеющуюся элементную базу. +3,3 получаю с L4934ABV33, проблем нет особо то. +1,5 получаю с LM317 там 1,5 получается с помощью резистивного делителя, и там соответственно +1,5 менее стабильно, естественно буду использовать подстроечный резистор для плавной более точной регулировки. Подошел к вопросу собственно чтобы ПЛИС воспринимала +1,5 и +3,3 как высокий уровень (логическую "1") насколько велик может быть разброс от номинала(+- 0,05В это много?) этот вопрос мне несколько непонятен простите если это детский вопрос.
rezident
Цитата(Георгий 2 @ Jul 16 2010, 18:45) *
естественно буду использовать подстроечный резистор для плавной более точной регулировки.
Зачем там подстроечник? Вы разве неспособны рассчитать делитель из двух постоянных резисторов? Например, 1,2кОм и 240 Ом или 510 Ом и 100 Ом. Берите их не из 5%, а из 1% ряда и для "бытового" температурного диапазона (0°C...+70°C) разброс и изменение выходного напряжения +1,5В не превысит 3-3,5%, что для питания ПЛИС вполне допустимо.
Цитата(Георгий 2 @ Jul 16 2010, 18:45) *
Подошел к вопросу собственно чтобы ПЛИС воспринимала +1,5 и +3,3 как высокий уровень (логическую "1") насколько велик может быть разброс от номинала(+- 0,05В это много?) этот вопрос мне несколько непонятен простите если это детский вопрос.
А что там в даташите ПЛИС написано про гарантированный диапазон VIH и VIL?
Георгий 2
Цитата(rezident @ Jul 17 2010, 03:37) *
Зачем там подстроечник? Вы разве неспособны рассчитать делитель из двух постоянных резисторов? Например, 1,2кОм и 240 Ом или 510 Ом и 100 Ом. Берите их не из 5%, а из 1% ряда и для "бытового" температурного диапазона (0°C...+70°C) разброс и изменение выходного напряжения +1,5В не превысит 3-3,5%, что для питания ПЛИС вполне допустимо.

да вообще то способен и примерно насчитал несколько делителей даже из 5% ряда, просто не был уверен до конца какой разброс может быть, а неуверенность заключалась в том, что я не знал где курить даташит именно, а английского не знаю (учил немецкий, а тут такая работа да и специальность, вот и учу английский теперь), теперь понял:

Цитата(rezident @ Jul 17 2010, 03:37) *
А что там в даташите ПЛИС написано про гарантированный диапазон VIH и VIL?


собственно там написано
Нажмите для просмотра прикрепленного файла

из чего я понял Vccio - это напряжение на выходе микросхемы питания, которое должно быть от минимума до максимума... соответственно по формулам считается значение минимального и максимального высокого и низкого уровня. Я прав?
nckkm
вот тут еще типа "development kit", кстати open source и всякие примеры есть: http://www.marsohod.org
rezident
Цитата(Георгий 2 @ Jul 17 2010, 13:25) *
из чего я понял Vccio - это напряжение на выходе микросхемы питания, которое должно быть от минимума до максимума... соответственно по формулам считается значение минимального и максимального высокого и низкого уровня. Я прав?
VCCIO это напряжение питания на соответствующем выводе ПЛИС. Для нормальной ее работы входной сигнал должен быть в пределах, указанных в этой таблице. Входной сигнал уровня лог.0 ниже, чем VILmaximum, а лог.1 выше, чем VIHminimum.
Георгий 2
Цитата(nckkm @ Jul 18 2010, 00:30) *
вот тут еще типа "development kit", кстати open source и всякие примеры есть: http://www.marsohod.org


спасибо!

Цитата(rezident @ Jul 18 2010, 04:31) *
VCCIO это напряжение питания на соответствующем выводе ПЛИС. Для нормальной ее работы входной сигнал должен быть в пределах, указанных в этой таблице. Входной сигнал уровня лог.0 ниже, чем VILmaximum, а лог.1 выше, чем VIHminimum.

ну собственно я так и понял спасибо за подсказку!
Георгий 2
Вопрос следующий. Собрали плату, разводка верная, FT2232 определилась программа для заливки прошивки ее видит, но при попытке прошивки пишет о проблемах с файлом прошивки.
1. Возможно что ПЛИС тупо не тактируется от резонатора? я сделал как сказали выше соединил Xtin с 16 входом ПЛИС. Может не стоило так делать?
2. Где можно почитать подробнее о подобной схеме загрузки данных в ПЛИС?
PS Файл прошивки верен. Один взят демкой с сайта с этим стендом. Второй собран собственноручно по инструкции
VladimirB
Цитата(Георгий 2 @ Feb 10 2011, 09:34) *
Вопрос следующий. Собрали плату, разводка верная, FT2232 определилась программа для заливки прошивки ее видит, но при попытке прошивки пишет о проблемах с файлом прошивки.
1. Возможно что ПЛИС тупо не тактируется от резонатора? я сделал как сказали выше соединил Xtin с 16 входом ПЛИС. Может не стоило так делать?
2. Где можно почитать подробнее о подобной схеме загрузки данных в ПЛИС?
PS Файл прошивки верен. Один взят демкой с сайта с этим стендом. Второй собран собственноручно по инструкции

При прошивке не важно тактируется или нет ПЛИС, а вот Xtin я бы не трогал.
Кварц и так штука нежная, а вы его к ПЛИС напрямую законнектили - возможно в процессе прошивки у ПЛИС включаются какие-нибудь подтягивающие резисторы, генерация у FTDI срывается и возникают ошибки USB, на которые программа реагирует описанным вами образом.

ViKo
Цитата(Георгий 2 @ Feb 10 2011, 08:34) *
я сделал как сказали выше соединил Xtin с 16 входом ПЛИС. Может не стоило так делать?

Я вам советовал использовать XTOut, и резистор последовательно можно всунуть, Ом 100
Георгий 2
Цитата(VladimirB @ Feb 10 2011, 14:10) *
При прошивке не важно тактируется или нет ПЛИС, а вот Xtin я бы не трогал.
Кварц и так штука нежная, а вы его к ПЛИС напрямую законнектили - возможно в процессе прошивки у ПЛИС включаются какие-нибудь подтягивающие резисторы, генерация у FTDI срывается и возникают ошибки USB, на которые программа реагирует описанным вами образом.


Неверно написал. Конечно Xtout!!!
Вы советуете сделать отдельный генератор?


Цитата(ViKo @ Feb 10 2011, 14:44) *
Я вам советовал использовать XTOut, и резистор последовательно можно всунуть, Ом 100


естественно Xtout. А для какой цели резистор?
ViKo
Цитата(Георгий 2 @ Feb 10 2011, 10:53) *
естественно Xtout. А для какой цели резистор?

Почему "естественно"? Можно было и на XTin прицепить, но я думаю, что на выход лучше. А резистор - прямо с ножки микросхемы в цепь, которая к ПЛИС пошла. Чтобы не мешать резонатору, насколько возможно. Для проверки можно было бы разорвать цепь, выпаяв резистор.
Георгий 2
Цитата(ViKo @ Feb 10 2011, 16:23) *
Почему "естественно"?

хотябы потому, что в предидущей беседе мы про Xtout говорили biggrin.gif
zombi
Цитата(ViKo @ May 18 2010, 14:12) *
Цитата(Георгий 2 @ May 18 2010, 13:54) *

Цитата(ViKo @ May 18 2010, 13:22) *

По 35 проводу можно было бы его выключить. Но после этого ПЛИС зависнет навсегда.

что Вы хотели этим сказать?

Что этот провод - лишний.

А я думаю что не лишний вовсе.
Как Вы думаете зачем Button (clock) "S1" нужен?
Может для синхронной остановки тактирования плис?
ViKo
Цитата(zombi @ Feb 11 2011, 13:42) *
А я думаю что не лишний вовсе.
Как Вы думаете зачем Button (clock) "S1" нужен?
Может для синхронной остановки тактирования плис?

Можно и так, конечно. А можно и для чего-нибудь другого приспособить. Нажал кнопку - загорелись индикаторы, к примеру sm.gif
А для чего нужно останавливать ПЛИС таким "варварским" способом?
P.S. а где вы увидели, что S1 это "clock"?
А наиболее вероятно, эта кнопка задает временной интервал, в течение которого считает счетчик внутри ПЛИС.
P.P.S. Увидел на картинке. Ну так то внутри нужно делать - выбирать один такт из постоянно генерящих, приходящих на ПЛИС.
zombi
Цитата(ViKo @ Feb 11 2011, 16:13) *
P.P.S. Увидел на картинке. Ну так то внутри нужно делать - выбирать один такт из постоянно генерящих, приходящих на ПЛИС.

Ну, я так понимаю что альтера может вкл/выкл сама себе свою собственную тактовую. Но зачем?
А с другой стороны этож учебное пособие ну и пусть себе имеет такую возможность. Хош выключай а не нехош не выключай, красота! biggrin.gif
ViKo
Цитата(zombi @ Feb 12 2011, 01:28) *
Ну, я так понимаю что альтера может вкл/выкл сама себе свою собственную тактовую

Выключить может легко, а включить посложнее будет, придется создать внутри триггер, управляемый асинхронно, без тактов, переключаемый по кнопке снаружи. Потом, генератор при включении-выключении будет выдавать абы что.
Вместо этих страхов можно блокировать тактовую частоту внутри ПЛИС, и даже не блокировать, а не разрешать работу триггеров. Результат будет такой же, как если не подавать тактовую.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.