Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Режим standby в Cyclone III
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
en-valb
Пытаюсь решить задачу включения изделия по Ethernet. Реализую на Cyclone III EP3C16F484C6, имеется TFT 640x480 RGB 18 bit, Ethernet, клавиатура, несколько SPI для управления других узлов изделия. В проекте используется NIOS II. Идея такая по сигналу LINK от микросхемы KSZ8001 пробуждаю ПЛИС или NIOS II в ПЛИС или что то еще. Далее то что проснулось мониторит команду включения питания. Как только команда пришла все запускается на полную катушку. В контроллерах режим standby реализован аппаратно, а вот в ПЛИС может есть IP ядро какое нибудь. Возникали мысли грузить разные конфигурации в разных режимах, но мне кажется это как то чересчур, должно быть какое то тривиальное решение.
vadimp61
Цитата(en-valb @ Jun 11 2014, 14:16) *
Пытаюсь решить задачу включения изделия по Ethernet. Реализую на Cyclone III EP3C16F484C6, имеется TFT 640x480 RGB 18 bit, Ethernet, клавиатура, несколько SPI для управления других узлов изделия. В проекте используется NIOS II. Идея такая по сигналу LINK от микросхемы KSZ8001 пробуждаю ПЛИС или NIOS II в ПЛИС или что то еще. Далее то что проснулось мониторит команду включения питания. Как только команда пришла все запускается на полную катушку. В контроллерах режим standby реализован аппаратно, а вот в ПЛИС может есть IP ядро какое нибудь. Возникали мысли грузить разные конфигурации в разных режимах, но мне кажется это как то чересчур, должно быть какое то тривиальное решение.

Какую цель приследуете?
Сделайте питание Сыклона от управляемого ножкой енабля ШИМ контроллера питания. И питайте ядро и VCCIO от него.
en-valb
Цель:
1. Изделие должно включаться и отключаться по кнопке. Кнопка должна быть без фиксации.
2. Изделие должно включаться и отключаться дистанционно по команде от Ethernet.
3. Включать и отключать изделие можно в любой последовательности т.е. включил от кнопки, могу отключить и от кнопки и от Ethernet. Включил от Ethernet, могу отключить так же и от того и от другого.
И все тоже самое если в пункте 3 поменять местами слова "включать" и "отключать".

Есть источник дежурного питания 12 В 250 мА. Изделие не должно потреблять мощность в дежурном режиме более приведенного значения. В хендбуке на Цыклон в режиме standby потребление по всем источникам не превышает 50 мА, но я не могу понять что это за режим такой в ПЛИС. Гугл говорит что это статичный режим. В моем понимании статичный режим когда все стоит нет ни каких тактовых частот, но если нет тактовых частот как следить за командами поступающими из Ethernet.

Serhiy_UA
Цитата(en-valb @ Jun 11 2014, 19:14) *
В моем понимании статичный режим когда все стоит нет ни каких тактовых частот, но если нет тактовых частот как следить за командами поступающими из Ethernet.

Попробуйте еще изменять тактовую частоту NiosII и еще чего-то другого. В режиме ожидания совсем малая, а при поступлении запроса - такая как требуется. Возможно, нужно будет ввести дополнительную FSM над всем устройством (как-бы супервизор), чтобы контролировать запрос и эту тактовую частоту обеспечивать.
Что понимать под запросом: наверное, активность на линии Ethernet, но здесь возможны варианты....
en-valb
Про снижение тактовой частоты в дежурном режиме я как то не подумал, очень интересная мысль, так и сделаю! Запрос контролировать по сигналу LINK буду.
На http://www.marsohod.org/index.php/projects...d2/263-rtl-recv нашел пример, думаю в качестве FSM можно прикрутить. Тогда тактовую частоту от NIOS II и от всего остального проекта наверно можно вообще отключить ну кроме FSM конечно же. В дежурном режиме мониторить команду включения с помощью FSM. Как только команда пришла подать тактовую частоту на весь проект и мультиплексорами переключить MII на полноценный Ethernet.
WEBENCH Power Architect от ti.com говорит, что для моего камня максимальный ток на один банк 0,25 А при максимальном напряжении 3,3 В даже если я поставлю линейный стабилизатор все равно укладываюсь в 250 мА. Думаю что MII и кнопке на много меньше надо.
От сюда мысль если к примеру я MII интерфейс и кнопку включения питания подведу к выводам одного банка, могу ли я в дежурном режиме запитать только этот банк от дежурного источника а остальные банки запитать позже по команде включения от другого источника?
Что касается питания ядра, а оно при максимальной нагрузке по данным WEBENCH Power Architect 1,2В 2А удается подобрать источник который обеспечит эти параметры при 12В 195 мА, что вроде бы укладывается, но уже на пределе с учетом нагрузки на банк, в таком случае линейный стабилизатор на банк уже возможно не пойдет. Опять же возможно ядро потреблять столько не будет. PowerPlay Power Analyzer показывает потребление по VccINT на текущей стадии проекта всего 9,25 мА занято 5506 логических элемента. К проекту добавиться еще SRAM интерфейс, Ethernet, SPI 3 шт., UART 2 шт., FSM который выше по тексту, еще планирую разместить преобразователь RGB 18 bit to LVDS пока внешняя микруха. Не знаю сколько все это займет возможно уложусь в 15k LE, а может придется взять EP3C40F484C6 в результате потребление может подрасти и тогда все будет либо на грани либо не хватит мощности дежурного ИП вообще, а может я все преувеличиваю, и 12В 250 мА за глаза хватит при описанном выше подключении. Опыт использования ПЛИС первый вот и сомневаюсь. Нужна оценка изложенного как поступить. Подпитывать ядро от второго источника питания при переходе в штатный режим мудрить не хочется.
Serhiy_UA
Цитата(en-valb @ Jun 12 2014, 15:34) *
От сюда мысль если к примеру я MII интерфейс и кнопку включения питания подведу к выводам одного банка, могу ли я в дежурном режиме запитать только этот банк от дежурного источника а остальные банки запитать позже по команде включения от другого источника?

Похоже, что так и надо поступать, для этого, в частности, и создавались банки. Хотя, сам так не делал.
По поводу предварительной оценки потребления: у меня в реальности оказалось ниже, чем предполагалось.
Потом, для экономного питания лучше не использовать линейные стабилизаторы.
А марсоходцы продолжают радовать своими проектами...
en-valb
Нашел в Cyclone III Device Handbook, Volume 1 страница 1-1 > "Cyclone III devices support hot-socketing operation; therefore, unused I/O banks can be powered down when the devices to which they are connected are turned off."
Т.е. при выходе из дежурного режима я должен сначала подать питание на остальные банки а потом на все что к ним подключено, или можно разом все включить и так же все выключить одним источником?
iosifk
Цитата(en-valb @ Jun 12 2014, 15:34) *
... укладываюсь в 250 мА. Думаю что MII и кнопке на много меньше надо.

Старый трансивер 8001 будет жрать примерно 100 мА (примерно, точнее не помню)... Посмотрите, есть и более новые у Микрела, они и потребляют меньше, что-то помню цифру 80 мА... Да и деталей им меньше нужно. Но тоже не точно...
en-valb
Цитата
Похоже, что так и надо поступать

Serhiy_UA, спасибо! Буду пробовать реализовывать.

Цитата
Старый трансивер 8001 будет жрать примерно 100 мА

iosifk, просто по этому трансиверу есть уже наработки взял готовое, а 20 мА лишних не так страшно если из 12 В в 3,3 В при КПД преобразователя 90% то эти 20 мА обернуться в 6 мА от 12 В, но все равно посмотрю, спасибо!
iosifk
Цитата(en-valb @ Jun 12 2014, 18:22) *
iosifk, просто по этому трансиверу есть уже наработки взял готовое,

Возьмите KSZ8031 или есть и более новые, на 1,8В...
К ним тоже есть схема стартового набора и герберы - на сайте микрела. А по MII разницы никакой нет. Правда, если хотите сэкономить провода, то можно взять режим RMII...
И вообще, все это я понимаю, но только если по сети поток данных большой. А если нет, то лучше брать не трансивер, а контроллер KSZ8831SNL.. У него вход SPI и внутри есть МАС и память.
А уж если глобально, то почему берете ПЛИС, а не микроконтроллер с МАС? Дешевле будет точно...
en-valb
Цитата
А уж если глобально, то почему берете ПЛИС, а не микроконтроллер с МАС? Дешевле будет точно...

В основном из-за цветного TFT 640х480 RGB 18bit fps 30 Hz в дальнейшем возможно разрешение подрастет, а Ethernet в проекте не на первом месте, пока скорее как дополнение, заказчик пока сам толком не знает где будет его применять и еще привлекает возможность конфигурировать систему любым количеством периферии, распараллеливание задач, можно засунуть в ПЛИС столько ядер NIOS II сколько позволит логическая емкость, то же самое по поводу другой периферии. А сейчас рисую схему и надо все по максимуму учесть. На счет KSZ8031 и KSZ8831SNL сэкономить провода это наверно надо т.к. печатная плата уж очень маленькая, особенно интересно с SPI. У меня на примете есть одна, называется ENC28J60, но у неё 10 Mb/s, а нам еще кроме управления гнать поток из ЦОСа надо, прикинули по скорости как то совсем без запаса. А без запаса брать опасно кто знает какие камни подводные попадутся. А вот на счет KSZ8831SNL не знал.

KSZ8831SNL не нашел такой, есть KSZ8851SNL возможно опечатка.
adnega
Цитата(en-valb @ Jun 12 2014, 21:02) *
В основном из-за цветного TFT 640х480 RGB 18bit fps 30 Hz в дальнейшем возможно разрешение подрастет

Обратите внимание на STM32F429. LCD-TFT до 800x600 с неплохим ускорителем 2D (аппаратная полупрозрачность, перекодировка форматов пикселей, заливка областей и т.п.). Есть возможность подключить SDRAM. Ethernet, SPI, UART и еще много всякого добра (типа Cortex-M4 и FPU).
iosifk
Цитата(en-valb @ Jun 12 2014, 21:02) *
В основном из-за цветного TFT 640х480 RGB 18bit fps 30 Hz в дальнейшем возможно разрешение подрастет, а Ethernet в проекте не на первом месте, пока скорее как дополнение, заказчик пока сам толком не знает где будет его применять и еще привлекает возможность конфигурировать систему любым количеством периферии, распараллеливание задач, можно засунуть в ПЛИС столько ядер NIOS II сколько позволит логическая емкость, то же самое по поводу другой периферии. А сейчас рисую схему и надо все по максимуму учесть. На счет KSZ8031 и KSZ8831SNL сэкономить провода это наверно надо т.к. печатная плата уж очень маленькая, особенно интересно с SPI. У меня на примете есть одна, называется ENC28J60, но у неё 10 Mb/s, а нам еще кроме управления гнать поток из ЦОСа надо, прикинули по скорости как то совсем без запаса. А без запаса брать опасно кто знает какие камни подводные попадутся. А вот на счет KSZ8831SNL не знал.

KSZ8831SNL не нашел такой, есть KSZ8851SNL возможно опечатка.

"все так, но только трошечки не так", как говорил один мой сослуживец.
Ну TFT. А память будет стоять для него снаружи кристалла. И еще память нужна для памяти программ софт-процессора. И еще память нужна, чтобы складывать пакеты из/в сеть. Как приходящие, так и исходящие... Так? И все эти потребители полезут в одну внешнюю память. Сколько времени процессор будет добираться к памяти??? И что останется от производительности этого Ниоса? Считали?
А дальше самодельный видео-контроллер. Без всяких наворотов, типа слоев графики и пр. т.к. их надо делать в ПЛИС вручную... А потом так же вручную делать примитивы для рисования графики. Так?
И в то-же время сейчас у микроконтроллеров прорва периферии, которую можно коммутировать на разные выводы. И готовые ОСРВ, в которых уже сделана и графика и сеть...
Так все-же, почему именно ПЛИС?
en-valb
Цитата
Ну TFT. А память будет стоять для него снаружи кристалла. И еще память нужна для памяти программ софт-процессора. И еще память нужна, чтобы складывать пакеты из/в сеть. Как приходящие, так и исходящие... Так? И все эти потребители полезут в одну внешнюю память.


Да Вы правы, но где же Вы столько памяти напасетесь для всего этого, да еще и внутри микроконтроллера, на него тоже придется снаружи навешивать.
В ПЛИС можно и память программ и память данных все в одну микросхему залить.

Цитата
Сколько времени процессор будет добираться к памяти???


Можно поставить SDRAM, DDR, DDR II, DDR III и т.д. FIFO, DMA или еще что то к этому делу, да без проблем, открываем QSYS выберем добавляем.

Цитата
И что останется от производительности этого Ниоса? Считали?


А Ниосов сколько надо столько и поставлю, на шине в QSYS арбитраж легко можно выставить между ними, сейчас в проекте между NIOS и SGDMA арбитраж тоже выставлен, память SDRAM используется и все работает память програм как и память данных все в ней же располагается.

Цитата
А дальше самодельный видео-контроллер. Без всяких наворотов, типа слоев графики и пр. т.к. их надо делать в ПЛИС вручную...


Все это есть и в QSYS и http://opencores.org/projects бери и используй. Причем если есть баги их можно подправить, а вот на контроллере выкручиваться или код наворачивать как у нас было с STR912 с UARTом или если это не возможно ревизию ждать другую.

Цитата
А потом так же вручную делать примитивы для рисования графики. Так?


А зачем их в ручную то делать, для NIOS так же есть GUI мы в частности прикрутили на халяву бесплатную от PIC не помню названия программист сейчас рисует интерфейс с помощью неё.

Цитата
Так все-же, почему именно ПЛИС?


А так конечно взял микроконтроллер все готово вся периферия есть рису схему, разводи плату, заказывай и вперед. Но вот был у нас случай. Есть изделие разработанное в начале 2000-х. Сняли с производства контроллер, но тут повезло китайцы молодцы клона оказывается не так давно запустили, мы на него перешли без какого либо вмешательства в софт, повезло. И еще был случай изделие давно уже выпускалось и тут заказчику взбрело добавить несколько режимов работы расширить так сказать функционал. Начали добавлять и уперлись в память. Конечно разработчику укор не позаботился о будущем, но тем не менее. Что по поводу ПЛИС, если сняли с производства семейство взял новое залил туда конфигурацию и у тебя все то же самое и ни чего лишнего. Нужен новый функционал да все просто хоть на аппаратном уровне добавляй хоть на программном без проблем вообще. Да нам в этом проекте нужен 64-х битный SPI, еще один плюс в уникальность периферии. А так погуглите, на ПЛИС можно много чего интересного сделать, что контроллерам и не снилось.


Цитата
Обратите внимание на STM32F429


Очень заманчивый вариант, прочитал про нее очень захотелось ее использовать вместо ПЛИС. Но тут уже столько сделано что все бросать уже не хочется. А так на начальном этапе когда выбирали купили плату с STM32F407 они тогда только появились. Поигрались показалась недостаточной и пал выбор на ПЛИС.
iosifk
Цитата(en-valb @ Jun 13 2014, 13:53) *
Да Вы правы, но где же Вы столько памяти напасетесь для всего этого, да еще и внутри микроконтроллера, на него тоже придется снаружи навешивать.
В ПЛИС можно и память программ и память данных все в одну микросхему залить.

...
А Ниосов сколько надо столько и поставлю, на шине в QSYS арбитраж легко можно выставить между ними, сейчас в проекте между NIOS и SGDMA арбитраж тоже выставлен, память SDRAM используется и все работает память програм как и память данных все в ней же располагается.

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

Нужен новый функционал да все просто хоть на аппаратном уровне добавляй хоть на программном без проблем вообще. Да нам в этом проекте нужен 64-х битный SPI, еще один плюс в уникальность периферии. А так погуглите, на ПЛИС можно много чего интересного сделать, что контроллерам и не снилось.


"В ПЛИС можно и память программ и память данных все в одну микросхему залить." - будет очень-очень дорого... А для средних ПЛИС - не влезет...
"Сняли с производства контроллер" - посмотрите Реннесас. У них программа жизни по 10 лет и более. А вы берете STM, т.е. самый ширпотреб и потом мучаетесь. Кстати и памяти у них внутри много, гораздо больше, чем в ПЛИС...
"на ПЛИС можно много чего интересного сделать" - у меня на сайте есть статьи "Микроконтроллер своими руками". Так что это я знаю.
А вот то, что "Ниосов сколько надо столько и поставлю" - тут конечно можно поставить много медленных Ниосов. Не спорю. Но! Сам по себе он медленнее раза в 2-3, чем микроконтроллер на 400-800 Мгц, потом еще часть времени отожрут дисплей и сеть и периферия. А потом это надо разделить на число контроллеров. И вычесть время на арбитраж... Что останется?
А Вы рассматривали вариант где АРМ внутри ПЛИС?
en-valb
"В ПЛИС можно и память программ и память данных все в одну микросхему залить." Здесь я имел ввиду не в саму ПЛИС, а в проекте с ПЛИС все засунуть во внешнюю SDRAM к примеру. Ну а так флешку еще добавить можно.

Цитата
А Вы рассматривали вариант где АРМ внутри ПЛИС?


Да рассматривали, но уже после того как взяли направление.

Для освоения ARM купили плату SoCKit. Пока реализуем на NIOS потом планируется модификация изделия 4-х канальная вот там хотим Cortex-A9 на Cyclone V попробовать прикрутить, там уже операционку надо будет наверное.

iosifk
Цитата(en-valb @ Jun 13 2014, 16:19) *
там уже операционку надо будет наверное.

Теперь понятно стало. Но вот сеть без ОС - это плохо и головоломно.
И кстати, могу сказать, что если Вам надо иметь несколько простых контроллеров, то можно сделать и самодельные. При этом ресурса будет затрачено меньше, а работать будет быстрее. Т.е. Ниос "сверху", а контроллеры ввода-вывода под его управлением, как периферия...
en-valb
У меня кстати осталась одна не решенная задача. Нужен был интерфейс скорость передачи данных 50 Мбайт в секунду подключенный на шину Avalon. Попытался реализовать свой на Verilog, получилось простое GPIO. Пока отложил на потом. Может порекомендуете примеры или литературу.
iosifk
Цитата(en-valb @ Jun 13 2014, 17:03) *
.... Нужен был интерфейс скорость передачи данных 50 Мбайт в секунду подключенный на шину Avalon. ...

Ну так DMA + еще что-то которое "периферия"...
Либо двухпортовка. С одной стороны к ней DMA и Авалон, с другой Ваша периферия...
В данном случае все зависит от того, нужно ли делать пакеты или только гнать данные...
en-valb
iosifk, извините, вначале не признал читал Ваши статьи очень понравились, буду изучать.
iosifk
Цитата(en-valb @ Jun 14 2014, 10:54) *
iosifk, извините, вначале не признал читал Ваши статьи очень понравились, буду изучать.

Хорошо! Будут вопросы - пишите или по скайпу.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.