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

Вопросы от начинающих по МК


Рекомендуемые сообщения

10 минут назад, mail_robot сказал:

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

Я больше не из-за экономии времени ядра (т.к. у меня не та задача где впритык по частоте все происходит), а о ресурсе что-ли или как назвать. Т.е. по своему незнанию микроконтроллеров руководствуюсь следующим, зачем просто так гонять что-то (в данном случае процессор), когда все решается периферией через прерывания, которая, как я понимаю, как раз для этого в микрокотроллерах и существует. Зачем просто так гонять процессор, например, ради опроса кнопки, когда можно эту задачу возложить на внешние прерывания.

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

  • Ответов 8,9т
  • Создана
  • Последний ответ

Топ авторов темы

А Вам не пофиг ли, чем процессор занимается? Не вы же канаву копаете, высунув язык...

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

Ладно. Вот Вам еще один "костыль" для Вашего "костыля": подключите конденсатор последовательно с малоомным резистором не к общей шите, а к шине питания. Поскольку сопротивление источника питания стремится к нулю, такое подключение по функции эквивалентно соединению с общей шиной. А последовательный резистор - только чтобы через кнопку не шибко большой ток проходил при ее замыкании.

P.S. Мой сын, когда был маленьким, поражался, как это так - троллейбус возит столько людей, быстро, да еще и в гору - и не устает?..

Просят - не откажи. Не просят - не навязывайся!

Простота хуже воровства.

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

1 час назад, Falconist сказал:

А Вам не пофиг ли, чем процессор занимается? Не вы же канаву копаете, высунув язык...

У меня имеется контроллер STM32, правильно ли я понимаю Вашу мысль, будет ли процессор полностью загружен или нет, на его ресурс/отказоустойчивость/перегрев/и т.п. в дальнейшем это никак не повлияет? Т.е. что загружаю я его полностью, что нет ему все-равно? Своими внешними прерываниями и несколькими таймерами я как раз и стремился, чтобы, так сказать, облегчить (как я считаю) работу процессору.

1 час назад, Falconist сказал:

P.S. Мой сын, когда был маленьким, поражался, как это так - троллейбус возит столько людей, быстро, да еще и в гору - и не устает?..

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

Изменено пользователем Гость5
Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Для микросхем (к которым относится и МК) наиболее драматическими моментами являются включение и выключение, когда они нагреваются и охлаждаются. Вот тогда-то микроизменения линейных размеров дорожек и могут вызвать выход микросхемы из строя. А когда они работают и терморежим устоявшийся, то им всё как-то пофиг.

40 минут назад, Гость5 сказал:

очень как раз "устает"...

P.S. Для пятилетки подобные размышления допустимы. Но для взрослого (?) человека - ???

Усталость материалов - это тема, запредельная для пятилетки. Он всё сравнивает с собой, на физиологическом уровне. 

Просят - не откажи. Не просят - не навязывайся!

Простота хуже воровства.

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

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Только что, Falconist сказал:

P.S. Для пятилетки подобные размышления допустимы. Но для взрослого (?) человека - ???

Т.е. ресурс устройства от его нагрузки никак не изменяется???

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

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

В первом приближении - нет. Есть нюансы, но они не драматичны.

Важнее время нахождения на складе и время работы, безотносительно к нагрузке. Обусловлено это диффузией материалов микросхемы (если пояснять "на пальцах"), которая происходит тем быстрее, чем выше температура. 

Просят - не откажи. Не просят - не навязывайся!

Простота хуже воровства.

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

1 минуту назад, Falconist сказал:

В первом приближении - нет. Есть нюансы, но они не драматичны.

Вот это мне уже странно слышать от взрослого человека... Абстрактный пример, два одинаковых троллейбуса, один постоянно едет в гору забитый людьми, а второй пустой и спускается с горы. Какой троллейбус быстрее "устанет", разумно предположить, что 2-й работает в более щадящем режиме и возможно прослужит дольше.

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

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

Мне тоже странно это слышать. И именно от взрослого человека. Что, первый троллейбус никогда не спустится с горы пустым, а второй - никогда не поднимется на нее "забитый людьми"?

1200px-Impossible_staircase.svg.png

"Абстрактные примеры" имеют примерно такой же смысл, как и "сферический конь в вакууме".

Просят - не откажи. Не просят - не навязывайся!

Простота хуже воровства.

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

4 часа назад, Гость Гость сказал:

Я больше не из-за экономии времени ядра (т.к. у меня не та задача где впритык по частоте все происходит), а о ресурсе что-ли или как назвать. Т.е. по своему незнанию микроконтроллеров руководствуюсь следующим, зачем просто так гонять что-то (в данном случае процессор), когда все решается периферией через прерывания, которая, как я понимаю, как раз для этого в микрокотроллерах и существует. Зачем просто так гонять процессор, например, ради опроса кнопки, когда можно эту задачу возложить на внешние прерывания.

А что у вас делает процессор, когда "отдыхает"? Вы уводите МК в sleep? Если нет, тогда МК работает ВСЕГДА. Причем всегда ОДИНАКОВО. Нет никакой разницы для АЛУ, флеша, ОЗУ и прочих блоков ядра какие инструкции исполняются.

Основной метод реализации ЛЮБЫХ задач на МК - псевдомногозадачность. То есть никакая задача не должна блокировать остальные задачи. А если остальных нет, то занимать минимальное время основного цикла. Тогда любое масштабирование программы будет чрезвычайно простым.

Работа с кнопками очень проста. Выделяете один таймер для системных клоков (очень полезно для реализации всех медленных процессов типа индикации, кнопок, генерации звуковых сигналов и пр.) и в его обработчике с минимальным интервалом устраивающим все подобные задачи (обычно 10...30 мс) ведете всю эту кучу медленных процессов, включая опрос кнопок. Такой обработчик очень быстр и имеет огромную скважность в своем цикле, поэтому вообще никем не виден. Можно ему назначить низший приоритет, если у Вас разрешены nested interrupts.

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

Изменено пользователем my504

戦う前に相手のベルトの色に注目

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

1 час назад, Гость5 сказал:

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

и в твоем процессоре есть шестеренки, которые крутятся и изнашиваются?

и как ты будешь останавливать эти шестеренки, чтобы они не изнашивались?

а в своем компьютере ты как управляешь шестеренками в процессоре, чтобы они не изнашивались, пока ты ходишь, например, в туалет?

Мудрость приходит вместе с импотенцией...

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

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

@Starichok нет желания продолжать дальнейший флуд, кто понял что я хотел сказать (а именно, что у всего есть ресурс и т.к. я пока мало знаком с МК мне сложно делать какие-либо выводы), тот понял.

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

да, все тебя поняли, и уже не по одному разу тебе объяснили, что МК - это не пустой или полный троллейбус.

и когда МК крутится в пустом цикле while(1), он делает точно такую же работу, как и в прерывании по нажатию кнопки.

и именно поэтому не бывает такого, чтобы процессор ничего не делал. процессор работает без ОТДЫХА!

Мудрость приходит вместе с импотенцией...

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

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

24 минуты назад, Starichok сказал:

не бывает такого, чтобы процессор ничего не делал. процессор работает без ОТДЫХА!

Ну, вообще говоря, бывает - есть режимы сна, например...

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

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

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

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

Особенно удобно сие делать, если периферия не зависит от ядра.

Что касается обсуждения, то уточнение ARV совершенно справедливое. Я тоже определил это исключение в комментарии выше.

戦う前に相手のベルトの色に注目

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

@my504 а насколько данный спящий режим вреден для процессора в плане частых входов и выходов из него? Ведь если я правильно понимаю, то мы постоянно будем снимать/подавать питание с процессора, а зачастую разные устройства не любят работу в режиме старт/стоп. 

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

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

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

5 часов назад, mail_robot сказал:

И долго он там спит? Часто пользуетесь?

Пользуюсь не часто, т.к. почему-то совсем не озабочен экономией микроамперов. Но в некоторых случаях, например, в самодельном пульте дистанционного управления, МК спит примерно 99.999999999999999999999% всего времени существования проекта.

current.jpg

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

Обычно речь идет совсем не об "экономии микроамперов". Какой нибудь не самый младший кортекс на предельной скорости жрет полсотни и более МИЛЛИампер.

Если питание схемы 12 вольт, то на стабилизаторе 3,3 вольта для МК падает 8,7 Вольт, что при токе 50 мА даст вполне ощутимые 0,435 Вт, которые перегреют корпус стабилизатора (если он SOT223) на 110град/Ватт*0,435Вт=43,5 градуса относительно окружающей температуры Примем окружающую за установившуюся 30, тогда температура корпуса будет очень ощутимые 73,5 градуса. 

И сразу возникнет непреодолимое желание ввести МК в сон при каждом удобном случае.

戦う前に相手のベルトの色に注目

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

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

Насколько это будет критично - решайте сами.

Просят - не откажи. Не просят - не навязывайся!

Простота хуже воровства.

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

В 03.02.2018 в 07:46, Гость Гость сказал:

Вешал ради интереса 33нФ, все равно происходило ложное срабатывание.

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

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

Это актуально для пульта, когда он часами "спит" и кнопку могут нажать только через месяц. Но и там прерывание используется только для того чтобы пробудить контроллер и он запустит цикл сканирования клавиатуры(в пультах она матричная, простым опросом всеравно не обойтись) несколько раз и 1) убедится что ни одна кнопка не нажата - уйдет обратно в сон, 2) найдет нажатую кнопку выполнит соотвесттвующую функцию и опять уснёт.

т.е. в итоге... даже в таком случае обычный опрос с фиксированным интервалом работает на 100% надёжно, его просто остановить надо на время сна.

Изменено пользователем Alexeyslav

Учение - изучение правил. Опыт - изучение исключений.

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

1 час назад, Falconist сказал:

И при этом нагрев и охлаждение чипа будут происходить часто-часто

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

А то Вы еще расскажите о том, как деградирует выходной драйвер МК при выводе ШИМа.... :) 

31 минуту назад, Alexeyslav сказал:

Но и там прерывание используется только для того чтобы пробудить контроллер

Не во всех архитектурах внешнее прерывание может вывести из сна. Все зависит от способа тактирования. А вот прерывание по изменению состояния пинов обычно способно. Заодно и не нормирует количество кнопок висящих на этой функции.

戦う前に相手のベルトの色に注目

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

4 часа назад, Гость5 сказал:

Ведь если я правильно понимаю, то мы постоянно будем снимать/подавать питание с процессора, а зачастую разные устройства не любят работу в режиме старт/стоп. 

Контроллер конечно такое не любит... но пожалуй это его добъёт лет через 100. Выходу из строя при частом включении-выключении обычно подвержены силовые устройства - система питания, например там где имеюются существенные стартовые токи. А контроллеру что... у него стартовый ток равен рабочему - включай-выключай сколько хочешь без последствий. Единственное что ему вредно - так это постоянно работать, диффузия полупроводников-с... но эта проблема оценивается в 30-50 лет непрерывной работы в наихудших условиях. Ну соответственно +- знаменитой зависимости вероятности выхода из строя от времени работы.

25 минут назад, my504 сказал:

Не во всех архитектурах внешнее прерывание может вывести из сна.

Это странная архитектура... внешнее прерывание ВСЕГДА выводит контроллер из сна, ибо иначе это было бы весьма странным. А вот прерывание по изменению состояния пинов напротив, зависимо от тактирования т.к. работает уже ПОСЛЕ защелки порта и без тактирования контроллеру просто не с чем сравнивать "предыдущее" состояние порта.

 

 

Учение - изучение правил. Опыт - изучение исключений.

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

1 час назад, Alexeyslav сказал:

Это странная архитектура... внешнее прерывание ВСЕГДА выводит контроллер из сна, ибо иначе это было бы весьма странным. А вот прерывание по изменению состояния пинов напротив, зависимо от тактирования т.к. работает уже ПОСЛЕ защелки порта и без тактирования контроллеру просто не с чем сравнивать "предыдущее" состояние порта.

Странная аргументация: "иначе это было бы весьма странным"... :)

Дело в том, что ВХОДНЫЕ события, как правило, синхронизируются с тактированием МК. В том числе и внешние прерывания. То есть в КАЖДОМ определенном такте ядра происходит защелкивание/чтение СОСТОЯНИЯ пина и сравнение его с предыдущим защелкнутым состоянием (двухстадийный конвейер на регистре сдвига с логикой сравнения разрядов).

А в случае изменения состояния пина ничего никуда защелкивать не требуется. Предыдущее состояние было модифицировано ЧТЕНИЕМ ПОРТА в активном режиме (и при этом защелкнуто как базовое), а во время сна нужна лишь АСИНХРОННАЯ логика XOR пина и предыдущего состояния. Никакого тактирования не требуется. Именно поэтому для сброса флага этого прерывания потребуется сначала прочесть порт.

АВР не является единственной и уж тем более референсной архитектурой, как бы Вы эту платформу не любили....

Изменено пользователем my504

戦う前に相手のベルトの色に注目

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

4 hours ago, my504 said:

Если питание схемы 12 вольт, то на стабилизаторе 3,3 вольта для МК падает 8,7 Вольт

а если представить что питание схемы всего 5 вольт? Ведь стабилизаторы 3.3 вольта обычно переживают максимум 7,5 на входе. Потому как обычно это серия 1117, реже 6203 и так далее, но в основном они все до 7,5. Так что в 12 вольтах смысла никакого. А если мозг еще не совсем кисель, то если уж пригодится на плате +12, то он легко и просто получается из 5 вольт той же 34063 без особых потерь. Дальше я думаю не стоит?

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

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

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

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

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

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