Михась 4 10 июня, 2019 Опубликовано 10 июня, 2019 · Жалоба Ну в принципе можно и зависимый, с конфигом в RAM. Входа этой fpga отмапить на GPIO и она сама должна предоставлять виртуальные GPIO. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryM 0 10 июня, 2019 Опубликовано 10 июня, 2019 · Жалоба 21 minutes ago, haker_fox said: Всегда говорил, и буду говорить: не хватает маленькой cpld на этом же кристалле, абсолютно независимой от МК. у Atmel'а есть, но что-то не получилось. IMHO Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 10 июня, 2019 Опубликовано 10 июня, 2019 · Жалоба 16 minutes ago, Михась said: Ну в принципе можно и зависимый, с конфигом в RAM Ну тоже можно. 11 minutes ago, DmitryM said: у Atmel'а есть, но что-то не получилось. IMHO Атмел и сам уже не получился))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 10 июня, 2019 Опубликовано 10 июня, 2019 (изменено) · Жалоба 1 час назад, DmitryM сказал: у Atmel'а есть, но что-то не получилось. IMHO Потому, что не нужно никому. Вот зачем там эта плиса, которая маленькая? Сделать очередную собаку для сброса, или счетчик энкодера? Что на ней такого можно сделать, чего ет в современных МК? Разве, что какая-то уж очень экзотика, но ради 1% применений запиливать целую линейку МК в производстве? Они будут стоить как отечественные с 5й приемкой и кому они нужны будут, когда проще за копейку купить эту плису и поставить рядом?? ЗЫ. ИМХО, считаю, что как-раз сейчас нужны МК с встроенной памятью большого объема (>64МБайт). Это реально упрощает систему, ее габариты, сложность разводки, многослойность и пр... Изменено 10 июня, 2019 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 10 июня, 2019 Опубликовано 10 июня, 2019 · Жалоба 5 минут назад, mantech сказал: Потому, что не нужно никому. Вот зачем там эта плиса, которая маленькая? Сделать очередную собаку для сброса, или счетчик энкодера? Что на ней такого можно сделать, чего ет в современных МК? Такие ПЛИС-ы (или типа них) имеются в других МК. А значит - нужны. Что нужно? Бывает нужно совершенно элементарное: по N входным сигналам сгенерить один единый сигнал и подать его на вход какой-то периферии. На XMC4xxx я такое делал элементарно встроенными средствами, а на STM32 придётся ставить внешнюю логику. Это простейший случай. А если нужно скомбинировать таким образом несколько внутренних сигналов МК? Или внешний и внутренний? Тут уже внешняя логика не поможет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 10 июня, 2019 Опубликовано 10 июня, 2019 · Жалоба 2 минуты назад, jcxz сказал: Такие ПЛИС-ы (или типа них) имеются в других МК. А значит - нужны. И много таких "других"?? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 10 июня, 2019 Опубликовано 10 июня, 2019 (изменено) · Жалоба 8 минут назад, jcxz сказал: Это простейший случай. А если нужно скомбинировать таким образом несколько внутренних сигналов МК? Или внешний и внутренний? Тут уже внешняя логика не поможет. Если включить перфекционизм, то можно еще много чего нафантазировать и добавить кучу хотелок... Но на практике, да если еще подумать хорошенько, то многие хотелки можно реализовать на уже имеющихся возможностях, может чуть изменив условия, а другие - более хитрым использованием устройств не совсем по назначению и с небольшим добавлением внешних МС... Изменено 10 июня, 2019 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 10 июня, 2019 Опубликовано 10 июня, 2019 · Жалоба 4 minutes ago, mantech said: то можно еще много чего нафантазировать и добавить кучу хотелок.. Ну, так а в чём проблема-то?) Я могу позволить себе фантазировать. У меня бывали случаи, когда мне такой плис не доставало. Уверен, я не уникален. Тут самое главно не бояться признаться хотя бы себе. 17 minutes ago, mantech said: или счетчик энкодера? Кстати, в точку! 6 каналов. Упаковка данных в хитрый пакет, и отправка в память. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 10 июня, 2019 Опубликовано 10 июня, 2019 · Жалоба 8 минут назад, mantech сказал: Если включить перфекционизм, то можно еще много чего нафантазировать и добавить кучу хотелок... Но на практике, да если еще подумать хорошенько, то многие хотелки можно реализовать на уже имеющихся возможностях, может чуть изменив условия, а другие - более хитрым использованием устройств не совсем по назначению и с небольшим добавлением внешних МС... Да кто-ж спорит-то? Можно и интерфейсы все ногодрыгом делать. Но зачем-то в современных МК напихали кучу периферии. Почти всегда можно без чего-то обойтись, где-то урезать карася, ужаться по требованиям ТЗ, сделать проще. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 10 июня, 2019 Опубликовано 10 июня, 2019 (изменено) · Жалоба 15 минут назад, haker_fox сказал: Кстати, в точку! 6 каналов. Упаковка данных в хитрый пакет, и отправка в память. Там далеко не 1 таймер позволяет это сделать, да, все 6 не получится, можно 4, остальные 2 программно на прерываниях, в чем не решение?? 9 минут назад, jcxz сказал: Можно и интерфейсы все ногодрыгом делать. Но зачем-то в современных МК напихали кучу периферии. Так ведь очевидно почему - стараются сложные в программной реализации интерфейсы перенести в аппаратную корку, например, УАРТЫ. Только не всегда понимаю, что все I2C пихают кучу, когда мастер прекрасно реализуется программно, да и глюков у такой реализации меньше... Изменено 10 июня, 2019 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 10 июня, 2019 Опубликовано 10 июня, 2019 · Жалоба 22 минуты назад, mantech сказал: Но на практике, да если еще подумать хорошенько, то многие хотелки можно реализовать на уже имеющихся возможностях, может чуть изменив условия, а другие - более хитрым использованием устройств не совсем по назначению и с небольшим добавлением внешних МС... Вот пример: Работает 3-фазный ШИМ, с deadtime-ами. Управляет мощной индуктивной нагрузкой. Одновременно - работает встроенный АЦП, на большой скорости (несколько MSPS, несколько параллельных каналов). На входы АЦП попадают помехи из-за коммутации мощной нагрузки. И хорошо бы сделать мёртвое время (заданное число нсек) вокруг моментов переключения ключей ШИМа - останавливать работу АЦП на это время. С точностью хотя-бы - до десятков нс. Параллельно по всем каналам АЦП и по всем 6 сигналам управления ключами ШИМ. На XMC4xxx это можно сделать - связать выходные сигналы ШИМ с запретом работы АЦП. А как такое сделать "более хитрым использованием устройств не совсем по назначению и с небольшим добавлением внешних МС"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 10 июня, 2019 Опубликовано 10 июня, 2019 · Жалоба 6 минут назад, jcxz сказал: А как такое сделать "более хитрым использованием устройств не совсем по назначению и с небольшим добавлением внешних МС"? Так-то такие вещи делаются на специализированных МК, а не на общего применения, ИМХО, разумеется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 10 июня, 2019 Опубликовано 10 июня, 2019 · Жалоба 3 минуты назад, mantech сказал: Так-то такие вещи делаются на специализированных МК, а не на общего применения, ИМХО, разумеется. XMC4xxx - это вполне себе "общего применения". Да и не нужно чего-то очень навороченного, как в полноценной ПЛИС. Достаточно если бы было можно в этой встроенной ПЛИС брать внутренние сигналы МК (различного рода и от разной периферии), и внешние сигналы с ног GPIO, комбинировать их между собой логическими выражениями, и выводить из ПЛИС полученные сигналы, заводя их на сигналы управления/данных внутренних периферийных блоков и вводя на ноги GPIO. Ну можно ещё внутренние триггеры добавить. Сделать несколько (может 4-8 шт) таких отдельных блоков ПЛИС, на входе каждого - N входов, для каждого входа - мультиплексор выбирающих и M внутренних/внешних сигналов, и 1 выход из блока тоже с мультиплексором (ну или мультиплексоры на входах внутренних сигналов периферии, позволяющие выбирать откуда получать данный сигнал). Вот ещё одно применение, которое сейчас использую в XMC4700: Для целей синхронизации нескольких МК по некоторому UART передаётся короткий пакет данных. В пакете - полезные данные. А синхронизация (точная) выполняется по фронту начала старт-бита пакета. Синхронизировать нужно работу ШИМ-ов (т.е. - таймеров МК). На XMC4700 подал сигнал UPDATE с таймера ведущего МК, на вход старта передачи UART (в FIFO UART заранее записан передаваемый пакет с данными) с помощью как раз схемы коммутации внутренних сигналов МК. И получил синхронизацию фронта старт-бита UART-пакета с работой таймера с точностью до 1-го такта работы периферии. Таким образом - по одному каналу (UART) передаются и данные и точный синхро-сигнал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 10 июня, 2019 Опубликовано 10 июня, 2019 · Жалоба 10 минут назад, jcxz сказал: Достаточно если бы было можно в этой встроенной ПЛИС брать внутренние сигналы МК (различного рода и от разной периферии), и внешние сигналы с ног GPIO, комбинировать их между собой логическими выражениями, и выводить из ПЛИС полученные сигналы, заводя их на сигналы управления/данных внутренних периферийных блоков и вводя на ноги GPIO А представляете, насколь тогда усложнится конфигурирование этих блоков? Я почему иногда еще использую АВРки, да потому, что там наизусть все помню, как сконфигурить их периферию... А тут и так в АРМах все намного сложнее, так еще и плисы нужно конфигурить с таким подходом... Не вижу никакого смысла в этом... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 10 июня, 2019 Опубликовано 10 июня, 2019 · Жалоба 43 minutes ago, mantech said: Там далеко не 1 таймер позволяет это сделать, да, все 6 не получится, можно 4, остальные 2 программно на прерываниях, в чем не решение?? Ну не каждый таймер может работать с квадратурным сигналом. А самое главное: я написал "хитрая упаковка", и не зря. Но я нашёл другой способ это сделать, да, отчасти программно. Но на доводку и оптимизацию алгоритма ушло слишком много времени. Хотя опыт был получен. Просто если подобная задача возникнет снова. придётся решать её индивидуально, но с использованием типовых блоков. А хотелось бы и индивидуально, и с использованием индивидуальных блоков, приготовленных на HDL. 6 minutes ago, mantech said: Не вижу никакого смысла в этом... Ну, чтож. Останемся при своих мнениях))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться