Jump to content

    

Новые STM32H7 - два ядра (M7+M4), 480 МГц

Ну в принципе можно и зависимый, с конфигом в RAM. Входа этой fpga отмапить на GPIO и она сама должна предоставлять виртуальные GPIO.

Share this post


Link to post
Share on other sites
21 minutes ago, haker_fox said:

Всегда говорил, и буду говорить: не хватает маленькой cpld на этом же кристалле, абсолютно независимой от МК.

у Atmel'а есть, но что-то не получилось. IMHO

Share this post


Link to post
Share on other sites
16 minutes ago, Михась said:

Ну в принципе можно и зависимый, с конфигом в RAM

Ну тоже можно.

11 minutes ago, DmitryM said:

у Atmel'а есть, но что-то не получилось. IMHO

Атмел и сам уже не получился)))

Share this post


Link to post
Share on other sites
1 час назад, DmitryM сказал:

у Atmel'а есть, но что-то не получилось. IMHO

Потому, что не нужно никому. Вот зачем там эта плиса, которая маленькая? Сделать очередную собаку для сброса, или счетчик энкодера? Что на ней такого можно сделать, чего ет в современных МК? Разве, что какая-то уж очень экзотика, но ради 1% применений запиливать целую линейку МК в производстве? Они будут стоить как отечественные с 5й приемкой и кому они нужны будут, когда проще за копейку купить эту плису и поставить рядом??

 

ЗЫ. ИМХО, считаю, что как-раз сейчас нужны МК с встроенной памятью большого объема (>64МБайт). Это реально упрощает систему, ее габариты, сложность разводки, многослойность и пр... 

Edited by mantech

Share this post


Link to post
Share on other sites
5 минут назад, mantech сказал:

Потому, что не нужно никому. Вот зачем там эта плиса, которая маленькая? Сделать очередную собаку для сброса, или счетчик энкодера? Что на ней такого можно сделать, чего ет в современных МК?

Такие ПЛИС-ы (или типа них) имеются в других МК. А значит - нужны.

Что нужно? Бывает нужно совершенно элементарное: по N входным сигналам сгенерить один единый сигнал и подать его на вход какой-то периферии. На XMC4xxx я такое делал элементарно встроенными средствами, а на STM32 придётся ставить внешнюю логику.

Это простейший случай. А если нужно скомбинировать таким образом несколько внутренних сигналов МК? Или внешний и внутренний? Тут уже внешняя логика не поможет.

Share this post


Link to post
Share on other sites
2 минуты назад, jcxz сказал:

Такие ПЛИС-ы (или типа них) имеются в других МК. А значит - нужны.

И много таких "других"??

Share this post


Link to post
Share on other sites
8 минут назад, jcxz сказал:

Это простейший случай. А если нужно скомбинировать таким образом несколько внутренних сигналов МК? Или внешний и внутренний? Тут уже внешняя логика не поможет.

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

Edited by mantech

Share this post


Link to post
Share on other sites
4 minutes ago, mantech said:

то можно еще много чего нафантазировать и добавить кучу хотелок..

Ну, так а в чём проблема-то?) Я могу позволить себе фантазировать. У меня бывали случаи, когда мне такой плис не доставало. Уверен, я не уникален. Тут самое главно не бояться признаться хотя бы себе.

17 minutes ago, mantech said:

или счетчик энкодера?

Кстати, в точку! 6 каналов. Упаковка данных в хитрый пакет, и отправка в память.

Share this post


Link to post
Share on other sites
8 минут назад, mantech сказал:

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

Да кто-ж спорит-то? Можно и интерфейсы все ногодрыгом делать. Но зачем-то в современных МК напихали кучу периферии.

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

Share this post


Link to post
Share on other sites
15 минут назад, haker_fox сказал:

Кстати, в точку! 6 каналов. Упаковка данных в хитрый пакет, и отправка в память.

Там далеко не 1 таймер позволяет это сделать, да, все 6 не получится, можно 4, остальные 2 программно на прерываниях, в чем не решение??

9 минут назад, jcxz сказал:

Можно и интерфейсы все ногодрыгом делать. Но зачем-то в современных МК напихали кучу периферии.

Так ведь очевидно почему - стараются сложные в программной реализации интерфейсы перенести в аппаратную корку, например, УАРТЫ. Только не всегда понимаю, что все I2C пихают кучу, когда мастер прекрасно реализуется программно, да и глюков у такой реализации меньше...

Edited by mantech

Share this post


Link to post
Share on other sites
22 минуты назад, mantech сказал:

Но на практике, да если еще подумать хорошенько, то многие хотелки можно реализовать на уже имеющихся возможностях, может чуть изменив условия, а другие - более хитрым использованием устройств не совсем по назначению и с небольшим добавлением внешних МС...

Вот пример: Работает 3-фазный ШИМ, с deadtime-ами. Управляет мощной индуктивной нагрузкой. Одновременно - работает встроенный АЦП, на большой скорости (несколько MSPS, несколько параллельных каналов). На входы АЦП попадают помехи из-за коммутации мощной нагрузки. И хорошо бы сделать мёртвое время (заданное число нсек) вокруг моментов переключения ключей ШИМа - останавливать работу АЦП на это время. С точностью хотя-бы - до десятков нс. Параллельно по всем каналам АЦП и по всем 6 сигналам управления ключами ШИМ.

На XMC4xxx это можно сделать - связать выходные сигналы ШИМ с запретом работы АЦП. А как такое сделать "более хитрым использованием устройств не совсем по назначению и с небольшим добавлением внешних МС"?  :wink:

Share this post


Link to post
Share on other sites
6 минут назад, jcxz сказал:

А как такое сделать "более хитрым использованием устройств не совсем по назначению и с небольшим добавлением внешних МС"?

Так-то такие вещи делаются на специализированных МК, а не на общего применения, ИМХО, разумеется.

Share this post


Link to post
Share on other sites
3 минуты назад, mantech сказал:

Так-то такие вещи делаются на специализированных МК, а не на общего применения, ИМХО, разумеется.

XMC4xxx - это вполне себе "общего применения".

Да и не нужно чего-то очень навороченного, как в полноценной ПЛИС. Достаточно если бы было можно в этой встроенной ПЛИС брать внутренние сигналы МК (различного рода и от разной периферии), и внешние сигналы с ног GPIO, комбинировать их между собой логическими выражениями, и выводить из ПЛИС полученные сигналы, заводя их на сигналы управления/данных внутренних периферийных блоков и вводя на ноги GPIO. Ну можно ещё внутренние триггеры добавить. Сделать несколько (может 4-8 шт) таких отдельных блоков ПЛИС, на входе каждого - N входов, для каждого входа - мультиплексор выбирающих и M внутренних/внешних сигналов, и 1 выход из блока тоже с мультиплексором (ну или мультиплексоры на входах внутренних сигналов периферии, позволяющие выбирать откуда получать данный сигнал).

Вот ещё одно применение, которое сейчас использую в XMC4700: Для целей синхронизации нескольких МК по некоторому UART передаётся короткий пакет данных. В пакете - полезные данные. А синхронизация (точная) выполняется по фронту начала старт-бита пакета. Синхронизировать нужно работу ШИМ-ов (т.е. - таймеров МК). На XMC4700 подал сигнал UPDATE с таймера ведущего МК, на вход старта передачи UART (в FIFO UART заранее записан передаваемый пакет с данными) с помощью как раз схемы коммутации внутренних сигналов МК. И получил синхронизацию фронта старт-бита UART-пакета с работой таймера с точностью до 1-го такта работы периферии. Таким образом - по одному каналу (UART) передаются и данные и точный синхро-сигнал.

Share this post


Link to post
Share on other sites
10 минут назад, jcxz сказал:

Достаточно если бы было можно в этой встроенной ПЛИС брать внутренние сигналы МК (различного рода и от разной периферии), и внешние сигналы с ног GPIO, комбинировать их между собой логическими выражениями, и выводить из ПЛИС полученные сигналы, заводя их на сигналы управления/данных внутренних периферийных блоков и вводя на ноги GPIO

А представляете, насколь тогда усложнится конфигурирование этих блоков? Я почему иногда еще использую АВРки, да потому, что там наизусть все помню, как сконфигурить их периферию... А тут и так в АРМах все намного сложнее, так еще и плисы нужно конфигурить с таким подходом... Не вижу никакого смысла в этом...

Share this post


Link to post
Share on other sites
43 minutes ago, mantech said:

Там далеко не 1 таймер позволяет это сделать, да, все 6 не получится, можно 4, остальные 2 программно на прерываниях, в чем не решение??

Ну не каждый таймер может работать с квадратурным сигналом. А самое главное: я написал "хитрая упаковка", и не зря. Но я нашёл другой способ это сделать, да, отчасти программно. Но на доводку и оптимизацию алгоритма ушло слишком много времени. Хотя опыт был получен. Просто если подобная задача возникнет снова. придётся решать её индивидуально, но с использованием типовых блоков. А хотелось бы и индивидуально, и с использованием индивидуальных блоков, приготовленных на HDL.

6 minutes ago, mantech said:

Не вижу никакого смысла в этом...

Ну, чтож. Останемся при своих мнениях)))

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now