Перейти к содержанию
    

Скажите пожалуйста, а зачем в одном контроллере комбинируют два ядра M4 и M0? В общих чертах, в каких областях это применимо?

Просто. M0 обрабатывает панель управления - кнопки, энкодеры, или принимает/передает, в-общем, выполняет монотонную рутину, а M4 - обрабатывает, творит.

Скажем, устранение дребезга кнопок - работа не очень тяжелая, но тратить время на регулярные прерывания (особенно вход и выход из прерывания) - жалко.

 

В PC в клавиатуре тоже стоит свой микроконтроллер. А в ZX Spectrum - нет. Что лучше? :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скажем, устранение дребезга кнопок - работа не очень тяжелая, но тратить время на регулярные прерывания (особенно вход и выход из прерывания) - жалко.

 

Да ну, это мелочь. Да и никто (т.е. Я :laughing: ) дребезг по прерываниям не отрабатывает.

А то так можно любой процессор завалить.

Дребезг может длиться десятки миллисекунд с полным заполнением микросекундными импульсами.

 

А вот в Kinetis от Freescale на всех GPIO линиях есть специальные настраиваемые аппаратные фильтры против дребезга.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да ну, это мелочь. Да и никто (т.е. Я :laughing: ) дребезг по прерываниям не отрабатывает.

А то так можно любой процессор завалить.

Дребезг может длиться десятки миллисекунд с полным заполнением микросекундными импульсами.

 

А вот в Kinetis от Freescale на всех GPIO линиях есть специальные настраиваемые аппаратные фильтры против дребезга.

А я отрабатываю. Первый раз поймал кнопку на прерывании, запретил, завел переменную для таймера.

Таймер отщелкал по прерыванию, установил флажок, поймал его - кнопка нажата. Или не установил.

 

А правильные пацаны как? В лупе крутятся 20 миллисекунд?

 

Просто. M0 обрабатывает панель управления - кнопки, энкодеры, или принимает/передает, в-общем, выполняет монотонную рутину, а M4 - обрабатывает, творит.

Скажем, устранение дребезга кнопок - работа не очень тяжелая, но тратить время на регулярные прерывания (особенно вход и выход из прерывания) - жалко.

 

В PC в клавиатуре тоже стоит свой микроконтроллер. А в ZX Spectrum - нет. Что лучше? :-)

Вы кстати, с ним чего нибудь запустили? Я в итоге отказался от LPC1143.

Не понравился он мне.

Поддержка у NXP на форуме никакая.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да ну, это мелочь. Да и никто (т.е. Я :laughing: ) дребезг по прерываниям не отрабатывает.

Конечно. Все (например, Я :rolleyes: ) опрашивают кнопки по прерыванию от таймера. Но частота опроса должна быть достаточной для отработки вращения энкодера, например, и решение о нажатой кнопке должно приниматься по истечению времени дребезга. Т.е. хватает чем бестолковым занять процессор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как будто боятся того, что демо-плата будет использована не по назначению - т.е. не как демо, а как готовое устройство. А может быть и так, что в демо-варианте они стремятся до предела уменьшить себестоимость, экономя на спичках. В результате чего, в большинстве случаев, имеем пустые платы с контактами на краях, которые на глаз выглядят как сделанные для смеха огромные переходники от мелкой микросхемы, распятой в центре, до размера здоровенной вентиляционной трубы :). И это касается не только демоплат для МК, но и демоплат для АЦП, выпускаемых TI.

Демоплаты они для демонстрации, зачем им мелкий размер?

На STM3210C-EVAL чего только нет, например..

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы кстати, с ним чего нибудь запустили? Я в итоге отказался от LPC1143.

Не понравился он мне.

Я и не хотел. Я STM фанат. У меня обработкой панели управления занимается PIC, но он мне уже надоел, будет другой простой STM32.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скажите пожалуйста, а зачем в одном контроллере комбинируют два ядра M4 и M0? В общих чертах, в каких областях это применимо?

Я, например, хотел разделить Ethernet и 802.15.4, Ethernet загружал проц левыми данными по самые помидоры. Данные приходилось выбрасывать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А я отрабатываю. Первый раз поймал кнопку на прерывании, запретил, завел переменную для таймера.

Таймер отщелкал по прерыванию, установил флажок, поймал его - кнопка нажата. Или не установил.

 

А правильные пацаны как? В лупе крутятся 20 миллисекунд?

 

Да как то небезопасно.

Прерывания могут и от глитчей проскочить и просто от программных глюков.

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

 

Нее... пацаны тратят пару тактов в цикле задачи обработки кнопок. Все равно это одна из задач в контексте RTOS и она еще кучу других дел делает и всегда крутится с определенным приоритетом.

Стандартный loop RTOS - 10 мс

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Демоплаты они для демонстрации, зачем им мелкий размер?

На STM3210C-EVAL чего только нет, например..

Чего нет, чего нет.... Цены там маленькой нет. 328 долларов "для демонстрации"-это деньги. Я у китайцев за 180 побольше функционала прикупил. И все отдельными модульками. Когда нулевую плату делали для прототипа - так эти же модули и использовал для штатных функций (езернет, SD-диск, RS-232, RS-485, кнопочки), они ж все на разъемчиках к китайскому киту стыкуются. И сейчас иногда что-то пользую из модулей.

А тут- вещь в себе, ни отпилить ни допаять. Демо из европы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Очень хорошо, но зачем советовать остальным быть точно таким же, как вы? Даже при том, что вы обрисовали свои знания, вы не упомянули, какие на практике вы получаете выгоды от их использования. Вот я, к примеру, до сих пор наизусть помню цоколевку советских германиевых транзисторов, всяких МП13 и иже с ним, в молодости мне это было нужно. А сейчас какой с этого прок? Никакого.

 

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

Это не аргумент. Наспех написанный самопальный код тоже не будет обладать качеством. А при равных затратах времени, где качество будет выше? У кулибиных, заново изобретающих велосипед, или у тех, кто изучит доку и применит отлаженные либы и операционную систему?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чего нет, чего нет.... Цены там маленькой нет. 328 долларов "для демонстрации"-это деньги. Я у китайцев за 180 побольше функционала прикупил. И все отдельными модульками. Когда нулевую плату делали для прототипа - так эти же модули и использовал для штатных функций (езернет, SD-диск, RS-232, RS-485, кнопочки), они ж все на разъемчиках к китайскому киту стыкуются. И сейчас иногда что-то пользую из модулей.

А тут- вещь в себе, ни отпилить ни допаять. Демо из европы.

Я не впечатлен китайскими. Поделки/самоделки. И дисковери 3 штуки валящтся, даром достались.

Вот СТМовские платы и библиотеки имеют и мануаль и куча периферии.

Мне бесплатно 2 штуки досталось, когда компания развалилась. Очень я зауважал дорогие платы.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не впечатлен китайскими. Поделки/самоделки. И дисковери 3 штуки валящтся, даром достались.

Вот СТМовские платы и библиотеки имеют и мануаль и куча периферии.

Мне бесплатно 2 штуки досталось, когда компания развалилась. Очень я зауважал дорогие платы.

А что именно из продукции WaveShare Вы использовали, какое семейство CPU/PLD ? И чем оно не понравилось?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да ну, это мелочь. Да и никто (т.е. Я :laughing: ) дребезг по прерываниям не отрабатывает.

А то так можно любой процессор завалить.

Дребезг может длиться десятки миллисекунд с полным заполнением микросекундными импульсами.

Дребезг по уму подавляют не по прерываниям от источника дребезга, а по таймерным прерываниям.

Запускаете периодическое прерывание ~50Гц и в нём опрашиваете кнопы.Тогда даже самый дохый AVR не завалите.

 

Вы кстати, с ним чего нибудь запустили? Я в итоге отказался от LPC1143.

Не понравился он мне.

Поддержка у NXP на форуме никакая.

LPC хорош тем, что поддержка не нужна - как в доках написано так всё и работает :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что именно из продукции WaveShare Вы использовали, какое семейство CPU/PLD ? И чем оно не понравилось?

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

Open4337-C. У них в пакете нет примеров для двойных ядер. Только на уровне мигнуть светодиодом.

Я попробовал сходить на lpcware, сдаунлодил примеры, но запустить для своих целей не смог.

Примеры только для определенных плат, как описать свою плату, неясно, документации нет - "download and build it".

 

Во первых, примеры для Keil, не IAR.

Как работать с 2мя корами тоже не совсем понятно. Скомпилил я для М0, загрузил через JLink,

М0 сам по себе не стартует, его должен стартануть M4, значит я должен скомпилить для М4,

загрузить его, как теперь мне дебагить M0, если я соединен с М4?

Я пробовал детачнутся от М4и после ресета аттачнутся к М0. Jlink не может соединится.

Както ненадежно и непонятно.

Остановился на варианте:

стереть все FlashMagicом, загрузить им же M0, потом можно дебагить M4.

Но как дебагить второй кор, М0, так и не понял.

Мрак, в общем..

Чашу переполнила невозможность аттачмента JLinkом..

Начальство на это не решилось.

 

Мой вопрос на их форуме висит неотвеченным с октября прошлого года.

 

 

 

LPC хорош тем, что поддержка не нужна - как в доках написано так всё и работает :laughing:

Читал. На lpcware.com:

"download, install, and it will build"

Угу.. :crying:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Open4337-C. У них в пакете нет примеров для двойных ядер. Только на уровне мигнуть светодиодом.

...

Мой вопрос на их форуме висит неотвеченным с октября прошлого года.

....

Жестко, сочувствую. У меня с STM32F407 с ними наоборот все срослось: и кейл до этого был выбран как среда проектирования (Еще когда Стеларис пробовали). И кит просто штатно обеспечивал подключение всего, что только возможно (разумеется, в пределах возможностей которые втыкаемая плата F4Discovery дает). Ну и соответственно библиотеки и аппноуты просто подходят, схемы соответствовали купленному реальному железу. Что-то переопределял по мелочи (не так как в примерах на сайте ST), не более того. То есть к киту претензий было ноль.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...