на каком выводе mcu будет такой сигнал при его работе

Содержание
  1. Теоретическая подготовка радиолюбителя.
  2. Русские Блоги
  3. Режим вывода универсального входного порта (GPIO) MCU
  4. Для обычных микроконтроллеров универсальный ввод и вывод (GPIO) является его самой основной и широко используемой функцией, используемой для достижения самого основного цифрового ввода и вывода.
  5. Разница между выходом с открытым стоком и двухтактным выходом на внешних каналах
  6. Интеллектуальная рекомендация
  7. совместный запрос mysql с тремя таблицами (таблица сотрудников, таблица отделов, таблица зарплат)
  8. [Загрузчик классов обучения JVM] Третий день пользовательского контента, связанного с загрузчиком классов
  9. IP, сеанс и cookie
  10. [List.toarray () позволяет избежать ошибки принудительного применения] Список универсальных используемых.
  11. Магнитола. Прошивка. CAN BUS. MCU. Часть 3
  12. Peugeot 301 2013, двигатель дизельный 1.6 л., 92 л. с., передний привод, механическая коробка передач — автозвук
  13. Машины в продаже
  14. Комментарии 26
  15. Разработка электроники. О микроконтроллерах на пальцах
  16. Краткое содержание статьи:
  17. Защита кода, возможность его обновления и многообразие помогли микроконтроллерам завоевать мир
  18. Архитектура ARM — сегодняшний лидер рынка микроконтроллеров
  19. Конкуренция с младшими братьями
  20. Об укладке асфальта, пользе сна и его разновидностях
  21. Совсем коротко о технологии изготовления и о том, как появляются серии микроконтроллеров
  22. Периферия простейшего ARM микроконтроллера за пол бакса
  23. Переход на Cortex-M0+. Самый дешёвый способ получить дополнительные функции
  24. А что добавит переход на Cortex-M4, кроме возросшей в пару раз цены?
  25. Cortex-M7 — когда хочется большего.

Теоретическая подготовка радиолюбителя.

Link: В чём прикол то?
Доступ гостевой, с какими-то ограничениями(группа «Заглянувшие»). Чтобы стать полноценным участником, надо пройти тест (станет группа «Участники»).

Понятно. Не нашёл я где тест проходить, ну и ладно.

Link: Не нашёл я где тест проходить, ну и ладно.
так ссылка в первом посту fun

jimmy: «тёплый» звук
А это тут при чём?

Ещё при попытке скачать файл предлагают пройти два теста, в первом 5 из 6, во втором 3 из 6, хотя на мой взгляд во втором вопросы были очевидные, тем не менее: «зайдите завтра и попробуйте ответить на другие 2 теста.» Наверно всё дело в этом: «Если Вы не в силах пройти Тест, то можете купить данный файл по SMS без прохождения тестов.»

Арс: А это тут при чём? Это о крутизне сайта, который даже возраст оговаривает для допуска к «нетленному телу».

Арс: так ссылка в первом посту

Беглое просматривания сайта показало что сайт довольно много напичкан инфой по современной электронике. Не о каком «тёплом звуке» там речи нет.

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

Почти интеллект рулетка или интеллект тир, попал не попал. Это же развлекалово, ещё до полного захода на сайт.

Я там был зарегистрирован с 2009 года. Теперь моего логина нет. Че за нах?

Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем.

Источник

Русские Блоги

Режим вывода универсального входного порта (GPIO) MCU

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

В общем, GPIO может реализовывать два режима вывода:

Чаще всего используется двухтактный режим вывода.

Принципиальная схема выглядит следующим образом:

0d6ed11ec9cae4d0a86626cb805dea04

Разница между выходом с открытым стоком и двухтактным выходом на внешних каналах

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

Вот несколько примеров ситуаций, когда требуется выход с открытым стоком:

Двухтактная выходная цепь

Давайте посмотрим на типичную двухтактную выходную цепь:
10a180e9f7bff564f15db56429266f99

Когда напряжение Vin равно V +, верхняя клемма управления транзистора N-типа имеет токовый вход, Q3 включается, поэтому ток проходит сверху вниз, обеспечивая ток для нагрузки.

f8d196ba123adcd3087c596d72282945

Ток подается на нагрузку (Rload) через вышеуказанный транзистор N-типа, который называется «толчок».

Когда напряжение Vin равно V-, ток вытекает из нижнего транзистора, включается Q4 и ток течет сверху вниз.
8c28e5f7c1258e909591e47be083774f

Следующий транзистор P-типа подает ток на нагрузку (Rload), который называется «тяговым».

Выше приведена двухтактная схема.

Некоторое резюме

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

2) Сопротивление подтягиванию выхода с открытым стоком не может быть слишком маленьким. Если оно слишком мало, при включении токоотвода выхода с открытым стоком напряжение от источника питания к земле вызовет большой расход энергии на сопротивлении, поэтому это сопротивление обычно Выше 10k скорость выхода с открытым стоком очень медленная при переключении с низкого уровня на выходе на высокий уровень.

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

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

Интеллектуальная рекомендация

совместный запрос mysql с тремя таблицами (таблица сотрудников, таблица отделов, таблица зарплат)

1. Краткое изложение проблемы: (внизу есть инструкция по созданию таблицы, копирование можно непосредственно практиковать с помощью (mysql)) Найдите отделы, в которых есть хотя бы один сотрудник. Отоб.

3bf4437e5d6789ef52bbf432ce051df6

[Загрузчик классов обучения JVM] Третий день пользовательского контента, связанного с загрузчиком классов

92269444d0d203c0339b011dd20a84d6

IP, сеанс и cookie IP IP заблокирован Почему заблокирован IP Как решить проблему блокировки IP Как получить IP-адрес прокси Используй прокси Подтвердите действительность IP-адреса прокси О прокси http.

ad868cc5571aa10e925e4dcbb0fca51e

[List.toarray () позволяет избежать ошибки принудительного применения] Список универсальных используемых.

Источник

Магнитола. Прошивка. CAN BUS. MCU. Часть 3

FEAAAgH0 uA 100

После установки магнитолы, а точнее ее подключению, начал поиски как же заставить работать все кнопки, получать температуру потому что сразу ее не показывало, ну и включение БК (который у меня находиться не между спидометром и тахометром, а в штатной магнитоле). Догадывался что изначально что то не так в CAN BUS, что он или MCU настроен на другую машину.

yAAAAgGLseA 960

Первым делом начал искать хоть какое то инфо по магнитоле, как оказалось на 4pda совсем не та версия Allwiner T3-T8. Начал гуглить по модели, и попал на блог (cobaltr4.ru/).

Вычитал как зайти в сервис, для этого нужно на рабочем столе зайти в «Настройки«, далее нажать «Об Устройстве«

7cAAAgJLseA 960

goAAAgBLseA 960

Появилось секретное меню или по другому инженерное.

H4AAAgFLseA 960

В разделе Other я нашел настройку CAN BUS и настойку MCU под марку авто.

hSAAAgFLseA 960

В комплекте китаец прислал CAN BUS фирмы Raise, тут было все верно, в разделе CAN Type стоял я так понимаю концерн PSA, но это не давало никакого эффекта.
Не долго думая решил прошить магнитолу, на том же блоге (cobaltr4.ru/) человек слил со своей магнитолы прошивку, так как модели идентичны по железу решил рискнуть.
Моя версия ОС — XWQC01D1-O55-1.0.4.3.1 — 20190603
Версия с сайта — XWQC01D1-O55-1.0.4.3.1_20190715
По последним цифрам понял что моя родная на месяц старее.
Моя версия MCU — STM32-20190514-11-KC1-24
Версия MCU с сайта — STM32-201907121001KC1-1022
Тут дела обстояли хуже моя версия была на два месяца старее. А MCU это как раз та плата которая понимает авто.
!ПЕРЕД ПРОШИВКОЙ ПРОЧИТАЙТЕ ДО КОНЦА! (есть шанс что собьются настройки инженерного меню, поэтому предварительно советую по заходить во все вкладки и переписать параметры, хотя у меня все сохранилось)
Скачав прошивку и распаковав ее на выходе получил два файла mcu-201907121001KC1-1022.upd и os_update_XWQC01D1-O55-1.0.4.3.1_20190715_204335_b1.zip закинул на флешку (флешка в файловой системе FAT32). Вставляем в любой USB порт магнитолы флешку и система автоматически распознает файлы обновления.
Появиться меню прошивальщика.

hSAAAgHLseA 960

Прошиваем с начало MCU для этого в верхнем меню выбираем MCU и жмем стрелку. После этого появиться шкала процесса обновления, по ее окончанию магнитола перезапуститься.
После перезапуска, еще раз вставляешь флешку и в этот раз в верхнем меню выбирает ОТА и жмем стрелку на этом этапе пойдет прошивка уже самой платы андроид. После прошивки еще раз перезагрузка, вытаскиваем флешку и проверяем.

Сразу после прошивки я полез в сервисное меню посмотреть что поменялось в MCU и когда я зашел в CAN Type был приятно удивлен, появилось в выборе авто Peugeot 307 408 3008

FgAAAgArseA 960

После выбора MCU плата начала прошиваться под авто, и магнитола ушла в перезагрузку.
При включении обнаружил маленькую победу, кнопки заработали (хоть кнопки следующий трек и предыдущий работали наоборот) Появилась в статус баре температура (как в штатной магнитоле), и заработало приложение БК с расходои топлива и остатком пробега.

EyAAAgIrseA 960

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

Peugeot 301 2013, двигатель дизельный 1.6 л., 92 л. с., передний привод, механическая коробка передач — автозвук

Машины в продаже

Комментарии 26

60

Вы ещё пользуетесь данной магнитолой?

48f1645s 60

Скиньте пожалуйста приложение для Canbus на андроид. На моей корявое установлено

7cb2ddes 60

FEAAAgH0 uA 60

С проводами ничего не напутано? Правильно выбрано в магнитоле в разделе can bus авто?

sKAAAgH1J A 60

Привет, что у тебя пишет, там где can версия? На скрине не влезло. Это там где версия ос и т.п

FEAAAgH0 uA 60

К сожалению уже не подскажу, допаялся)) выкинул магнитолу)))

sKAAAgH1J A 60

d6218s 60

FEAAAgH0 uA 60

Опечатка наверное, не понял о чем Вы

89f9e62s 60

Я нашел магнитолу раза в 2 дешевле, по характеристикам все тоже самое вроде как. Ну это ладно. Прошло 3 месяца или больше, как себя ведет магнитола? Стоит брать? Глючит?

FEAAAgH0 uA 60

89f9e62s 60

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

FEAAAgH0 uA 60

Где то читал там можно сделать поменяв провода

89f9e62s 60

BIAAAgNBkeA 60

Ребят. у меня киа просид JD 2013г.в. автомат. Голова такая же. Покупал не я, досталась от прежнего владельца. В комплекте шла без кан-баса. При обращении к китайцу-продавану — он морозится и не говорит ничего толкового.
Версия ОС у меня такая же как у товарища с кобальта
XWQC01D1-O55-1.0.4.3.1_20190715
версия MCU — STM32-20190712-11-KC1-28
В CAN-версии- прочерки.
У меня работает прием звонков и отклонения с рулевых кнопок. Реагирует подстветка меню в зависимости от режима освещения фар, но полностью отсутствует меню как у товарища с кобальт.ру, по совету автора заходил в инженерные настройки, там мой авто КИА СИД отсутствует. пытался выставить хендай-киа — магнитола перегрузилась но никаких изменений не произошло. Делаю вывод что моя голова работает в урезанных общих настройках и параметры машины как в приложенном фото не видит. Вопрос: сталвивался кто-либо из сидоводов с такой же проблемой и если да — то как ее решал? поможет ли покупка канбаса Райз и установка в голову для того, чтобы работало как у вас, и в графе Can Type появилась моя машина Киа Сид? и появились ниже указанные настройки? кто что посоветует други?
Может быть поможет другая прошивка? В том числе и решить проблему с режимом сна? При включении голова уходит в длинный перезагруз. При этом в настройках можно выставить чтобы после выключения играла 2.10 мин. или пол часа. Но при включении зажигания уходит в длинный перезагруз.

OgAAAgOC8eA 240

60

Обновить прошивку, только точно убедиться что она подходит!
При выборе другой машины, приложение под машину тоже меняется, поэтому так выглядит оно не будет. У меня оно вообще не работает.
Если кнопки работают, то или они подключены на прямую, или скорее всего уже есть Cab Bus адаптер.
У меня тоже уходит в перезгруз, хотя длинным я бы его не назвал, так секунд 20-30.
Не смотря что у меня машина Peugeot приложение у меня тоже не работает.

BIAAAgNBkeA 60

Кан-адаптера как я уже говорил нет. И не было его и в комплекте поставки. 20-30 секунд это и есть полная загрузка. Люди тут читаю. за счет замены прошивки получают режим сна. Т.е. при включении зажигания у тебя мага активируется секунд за 5.

60

У меня режим сна есть. Только она после него у меня пару раз зависла и я его выключил.
От подключения CanBus машина в списке не появиться, только если обновлением.
Приложение если и будет работать, то может выглядит по другому. Например тут у человека оно выглядит по другому и функционала почти нет.

60

Вот тут уже интересно. Т.к машину у меня 3008 и стоит в mcu 3008 а программа CarInfo не отрывается, она сразу закрывается. Что-то китайцы намудрили в моей магнитоле. MCU у меня стояла новее изначально, потом обновлял и всё равно не помогло.

Ещё интересный факт что в App Info у меня весь софт версии 1.0 а у Cobalt4 там разные версии.

У вас после обновления до mcu-201908281001KC1-0933.upd осталось всё работать?

Жду следующею запись. Задний ход интересен и цвет кнопок.

FEAAAgH0 uA 60

Carinfo до сих пор нет возможности проверить.
Последнюю версию ещё не ставил, восстанавливают магнитолу))

Источник

Разработка электроники. О микроконтроллерах на пальцах

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

Краткое содержание статьи:

Защита кода, возможность его обновления и многообразие помогли микроконтроллерам завоевать мир

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

4m8ur5ebaj5ss5wk1u06ibyqcoeМикроконтроллеры — мастера на все руки. Один микроконтроллер способен заменить десятки специализированных микросхем, которые были бы необходимы для выполнения требуемых функций в случае, если бы роль вычислителя занимал микропроцессор.

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

Что нельзя взломать — то можно скопировать. Зачем пытаться считать код, встроенной в микроконтроллер программы, с помощью дорогостоящих хитроумных приспособлений, если проще и дешевле найти профессионала, который может написать его заново? Возможно результат будет даже лучше, а функционал богаче чем у прототипа. Да это стоит денег, но содержание FLASH памяти сегодняшних микроконтроллеров настолько хорошо защищено, что попытки грубого “взлома” обойдутся ещё дороже. Кроме того, решается проблема интеллектуальной собственности, а вы, вместе с исходными кодами программы, получаете возможность развивать и совершенствовать своё устройство.

Память программ, в современных универсальных микроконтроллерах, является перезаписываемой, причём процесс перезаписи можно повторять не один десяток тысяч раз. Напрашивается использование этого факта для обновления программного обеспечения с целью устранения найденных в нём ошибок или расширения функций уже работающего устройства. Это достаточно просто реализовать — добавив в программу специальный участок кода под названием “бутлоадер”, вы получаете возможность обновлять программное обеспечение вашего прибора различными способами: в пункте сервисного обслуживания (если устройство имеет специальный, скрытый внутри корпуса от посторонних глаз, разъём), подключив к компьютеру по USB, через сетевой или даже беспроводной интерфейс. Главное, предусмотреть в приборе необходимую для этого периферию. Предоставляя возможность обновления ПО, всегда следует думать о безопасности, если этот процесс недостаточно защищён, мало того, что злоумышленники могут похитить ваш код, они могут модифицировать его и использовать в своих не исключено, что коварных целях. Например, взять под контроль вещи вашего “умного дома” или шпионить с помощью, установленной вами же у себя дома, WEB камеры.

Архитектура ARM — сегодняшний лидер рынка микроконтроллеров

Со времён Царя Гороха микроконтроллеры принято разделять по разрядности данных, над которыми они проводят операции. В подавляющем большинстве случаев, сегодня, в новых разработках, стоит останавливать свой выбор на 32 битных микроконтроллерах с ядром АRM. Существует огромное количество их модификаций и всегда можно подобрать экземпляр, наилучшим образом подходящий для решения вашей задачи. В зависимости от набора функций и производительности, цена чипа может составлять от десятков центов до десятков долларов.
Микроконтроллеры(MCU), в зависимости от архитектуры вычислительного ядра, принято разделять на крупные семейства. На сегодняшний день, для разработок устройств малой и средней сложности, наиболее популярны микроконтроллеры c ядрами от Cortex-M0 до Cortex-M7. Чем больше цифра, тем больше вычислительные (и не только) возможности, цена и максимальное энергопотребление. Не последнюю роль в популярности ARM сыграла преемственность архитектуры. Разработчик может с минимальными издержками модифицировать программный код своих предыдущих наработок, переходя от микроконтроллеров одного производителя к чипам другого и мигрируя между ядрами с разной производительностью.

d

Конкуренция с младшими братьями

Однако ARMы «рулили» не всегда. Я хорошо помню времена, когда абсолютными лидерами рынка были 8 битные микроконтроллеры и, с занятых позиций, их безуспешно пытались оттеснить 16 битные коллеги, но, по иронии судьбы, удалось сделать это только 32 битным старшим братьям. Так сложилось, что к моменту их появления, технологии изготовления чипов сильно удешевили интеграцию в них больших объёмов FLASH памяти. Воспользовавшись удобным случаем, программисты стали переходить с ассемблера на язык более высокого уровня — Си, структура которого отлично ложилась на 32 битную архитектуру. В результате 32 битные микроконтроллеры выполняли вычисления гораздо быстрее своих 8 и 16 битных коллег, но была одна проблема — у них был выше ток потребления.

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

Известно, что средний ток потребления вычислительного ядра микроконтроллера существенно увеличивается с поднятием его тактовой частоты. Поначалу 8 битные модели микроконтроллеров отличались заметно меньшим потреблением при сходной частоте и, кроме того, были способны работать от низкой тактовой частоты, вплоть до 32 кГц.

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

На короткое время сложился паритет — 32 битные MCU захватили нишу топовых приложений, а 8 битные уверенно удерживали позиции в устройствах, для которых было важно низкое энергопотребление. Он сохранялся до тех пор, пока 32 битные MCU не освоили в совершенстве «импульсный» режим работы.

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

roz1jikhroyuoh 0whgbgiwusai

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

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

Понаблюдайте за строительными рабочими которые кладут асфальт. Они резко активизируют свою работу, когда пришёл грузовик с новой порцией асфальта, а после его укладки снижают темп. Так и микроконтроллеры умеют повышать и снижать частоту тактирования ядра. Однако, им это даётся не так просто, как рабочим — одновременно изменится и частота работы всей внутренней периферии, поэтому, чувствительные к этому её части придётся перенастраивать.
Не проще ли, выполнив быстро всю работу, немного поспать. Зачастую, да. Причём виды сна микроконтроллеров отличаются ещё более драматично, чем у человека.

Можно просто вздремнуть. В этом случае наш чип всегда наготове и как только зазвенел будильник таймера или его потревожило внешнее прерывание, он просыпается практически мгновенно. Как человек во время дремоты может снять напряжение, но не выспаться толком, когда тебя постоянно дёргают, так и микроконтроллер может снизить своё энергопотребление в этом режиме “всего” раз в 10, называют этот режим SLEEP.

Лучший способ хорошо выспаться — раздеться, лечь в постель, задёрнуть шторы на окне и включить будильник. Однако, после такого сна, уже моментально в работу не включишься. Придётся, как минимум, предварительно ополоснуться холодной водой и одеться. Есть такой режим и у микроконтроллера, когда он ограничивает количество внешних раздражителей и выключает основной тактовый генератор. Это режим STOP. В нём можно уменьшить потребление в 1000 раз, но и на выход из него уже потребуется существенное время.

Теперь, представьте себе, что вы перед сном выпили изрядную дозу снотворного, отключили будильник и телефон, закрыли все окна и двери. Это будет режим STAND BY. Вывести из такого режима микроконтроллер можно только с помощью особых выводов и большая часть памяти о том, чем он занимался перед таким сном будет потеряна навсегда, придётся начинать работу заново. Зато находясь в таком режиме MCU потребляет ещё в два раза меньше.

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

Выбирая режим экономии энергопотребления необходимо помнить о последствиях применения:

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

Совсем коротко о технологии изготовления и о том, как появляются серии микроконтроллеров

Физически активная часть микроконтроллера, как и подавляющее количество других микросхем, обычно сформирована на пластине монокремния (назовём его, в данном контексте, ЧИП). Чипы занимают очень маленькую площадь, технологически же выгодно производить пластины большого диаметра, поэтому, обычно большое количество чипов, как соты, размещают на одной большой пластине и формируют, в ходе одного технологического процесса. В последствии пластины нарезают на кусочки, получая уже отдельные чипы, которые и помещают в корпуса. Разработка топологии и отладка технологических процессов нового чипа стоит очень дорого, а занимаемое на пластине одним чипом место, как правило, не велико. Производителям выгодно выпускать чипы крупными партиями, но пользователям требуются микроконтроллеры в разных корпусах — кому то важно получить корпус поменьше и подешевле, другому наоборот требуется побольше выводов, чтобы управлять LCD или внешней памятью с параллельным интерфейсом. Производителям выгодно перекрывать все ниши, чтобы клиенты не перебегали к конкурентам, не найдя оптимальной для себя модели.

Очень часто бывает выгодней выпустить крупной партией один универсальный чип и помещать его в разные корпуса, чем запускать десяток различных. У чипов, помещённых в корпуса с малым количеством выводов, часть портов (в данном контексте, под портами будем понимать контактные площадки на поверхности чипа, служащие для общения с внешним миром) просто останутся неподсоединёнными. Часто производители идут дальше — чтобы поднять спрос и цену на микроконтроллеры с большим количеством ножек, они искусственно обрезают функциональность тех, у которых их меньше — отключают некоторые функции, ограничивают объём доступной памяти и т. п.

Так на основе одного чипа формируют серии микроконтроллеров, существенно отличающиеся по объёму памяти и набору периферийных модулей, иной раз и в разы по цене. При этом чипы, в них установленные, могут нарезаться из одних и тех же пластин. Поскольку площадь, на которой размещается один чип, невелика, вклад её в себестоимость конечного изделия также мал и им можно пожертвовать. Становится выгодным отключение дополнительной памяти и других функций, например, на этапе тестирования — либо с помощью однократно программируемых битов конфигурации, либо пережиганием перемычек лазером. Лишь для наиболее массовых изделий имеет смысл для этого создавать слегка изменённый фотошаблон. Причём, совсем не обязательно там будет физически отсутствовать неиспользуемая память, её, опять же, можно просто отключить, удалив перемычки в шаблоне.

Так из одного стандартного дизайна чипа формируется целая серия микросхем.

Периферия простейшего ARM микроконтроллера за пол бакса

Процессорное ядро — это мозг, но, чтобы он не был подобен “сферическому коню в вакууме”, требуются аналоги органов чувств и конечностей.

В микроконтроллере их роль играют выводы на корпусе, к которым внутри корпуса могут подключаются порты(контактные площадки) чипа. В свою очередь, через внутренние коммутаторы, к одному и тому же порту могут подключаться различные периферийные модули.
Для начала рассмотрим периферию одной из простейших серий от ST на основе ядра Cortex-M0 — stm32F03.

WatchDog — сторожевая собака мешающая микроконтроллеру заснуть навсегда, например, свалившись в бесконечный цикл или перейдя по несуществующему адресу. Его принцип работы прост. Программист настраивает таймер защиты от “зависания” на определённый период времени, допустим на секунду, и запускает его. Затем он расставляет, в выбранных им местах программы, короткие участки кода, которые перезапускают таймер с нулевого значения. Если за секунду не произошло ни одного сброса таймера, WatchDog считает, что с программой что-то не так и устраивает микроконтроллеру перезапуск. Программа начинает работать с начала, причём существует возможность определить являлся ли инициатором ресета WatchDog и учесть этот факт при запуске.

Универсальные цифровые входы-выходы (General Purpose Input-Output GPIO) — это самая распространённая функция, которую поддерживают большинство выводов микроконтроллера. Они могут конфигурироваться либо как входы, либо как выходы.

Рассмотрим работу в качестве входа. Если напряжение на входе микроконтроллера меньше некоего порога (как правило близкого к половине питания), то оно воспринимается как логический ноль, в противном случае как 1. Цифровые входы обычно имеют очень высокое входное сопротивление, поэтому, если их оставить не подключенными, их состояние может скакать из нуля в единицу и обратно, под действием наводок электромагнитных полей. Для того, чтобы этого не происходило, существуют специальные режимы, когда внутри чипа вход соединяется через сопротивление 20 — 50 КОм с плюсом питания микроконтроллера (pull-up) или с минусом (pull-down).

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

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

a406xzrlqas

На рисунке выше изображён участок схемы, спроектированного мной устройства (спутникового модема), с элементами простейшей защиты портов микроконтроллера. X4 — разъём для внешних коммуникаций. Нас интересуют контакты 5-7, к которым присоединяются тревожные кнопки. Сигналом тревоги служит замыкание на землю, поэтому, в нормальном состоянии, на портах должно присутствовать напряжение питания микроконтроллера, что и обеспечивают резисторы R24-R26, номиналом 1 КОм. Супрессоры VD4-VD6 ограничивают напряжение на уровне 5 вольт, это допустимо потому, что применяемый мной микроконтроллер, хотя и питается напряжением 3,3 вольта, но имеет порты толерантные к напряжению 5 вольт. Резисторы R29-R31 на 100 Ом.
Подобная защита спасёт порты вашего микроконтроллера от внешних перенапряжений. У некоторых микроконтроллеров отдельные порты не боятся напряжений, превышающих их напряжение питания. Так у многих микроконтроллеров STM32Fxx почти все порты будучи сконфигурированными как цифровые могут работать с 5 вольтовыми цепями, но если они работают в аналоговом режиме, например в качестве входа АЦП, теряют эту способность и это необходимо учитывать при разработке схемы.

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

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

Используя порты микроконтроллеров в качестве выходов, также стоит свериться с даташитом. Отдельные порты могут иметь разное ограничение по максимальному току, который от них можно получить не опасаясь выхода их строя — нагрузочную способность. Кроме этого, сам чип имеет максимальную нагрузочную способность всех выходов в сумме, которую не следует превышать.
Последнее, о чём хочется упомянуть, выходные порты ARM микроконтроллеров не реагируют на программные инструкции мгновенно, как у 8-битных микроконтроллеров. Они управляются через шину, и их быстродействие зависит от частоты тактирования соответствующего узла, которую можно менять программно. Если вы хотите быстрой реакции, позаботьтесь об увеличении этой частоты, если важнее уменьшить энергопотребление, наоборот выберите менее скоростной режим.

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

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

Интерфейсы обмена данными Различные микроконтроллеры данной серии могут иметь по нескольку наиболее распространённых интерфейсов, сильно облегчающих общение с другими чипами и внешним миром:

Аналого-цифровой преобразователь АЦП или ADС на котором придётся остановиться подробнее.

Чрезвычайно полезный модуль, который способен измерять напряжение аналоговых сигналов. Оценивает он их в долях от величины опорного источника сигнала, в нашем случае это напряжения питания аналогового модуля микроконтроллера, которое может быть равным или немного ниже основного напряжения питания чипа. Теоретическая точность работы АЦП зависит от его разрядности. В современных микроконтроллерах чаще всего применяется 12 разрядный АЦП последовательного приближения, реже 10 и как экзотика встречается 16.

При питании 3 вольта 12 разрядный АЦП микроконтроллера будет иметь разрешающую способность 3/4096=0.00073 Вольта — лучше одного милливольта.

Но на практике достичь этого идеала бывает не просто.

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

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

От цепи VBUT питается вся цифровая часть микроконтроллера. На всякий случай привожу номиналы элементов: R5-10 Ом, С10 0.1 мкФ, без индуктивностей L1 и L2 BLM18PG471SN1D в большинстве случаев можно обойтись.

Ещё один любопытный пример из моей практики. В плате, на которой размещалось большое количество высокопотребляющих чипов ASIC, необходимо было измерять их температуру. Самый простой и дешёвый способ — использование высокоомных термисторов. В качестве фильтров я применил конденсаторы достаточно большой ёмкости, воспользовавшись тем фактом, что температура меняется сравнительно медленно. Для оцифровки звука такой фокус однозначно бы «не прокатил».

Осталось упомянуть ещё одну важную особенность АЦП, характерную для микроконтроллеров. Собственно, модулей АЦП в нём, как правило, один или два, а вот входов может быть много. В описываемой серии модуль 1, а входов может быть до 16. Как же так? Очень просто, входы подсоединены к нему через коммутатор. Если вы собираетесь измерять напряжение с 10 входов, то должны организовать цикл — последовательно переключить коммутатор к каждому из 10 входов и сделать измерение. Это необходимо учитывать, рассчитывая времена измерения. В данной серии АЦП, теоретически, способно сделать измерение за 1 микросекунду. Получается, что полный цикл 10 измерений у вас займёт точно больше 10 микросекунд!

Система прямого доступа в память ПДП или DMA — ещё одна архиважная вещь. Этот модуль позволяет пересылать данные от периферии в память или наоборот.

Например, с его помощью вы можете выделить участок памяти для хранения данных, приходящих из АЦП и сделать из него кольцевой буфер. Далее запускается АЦП в режиме считывания данных через равные промежутки времени. Используя механизмы DMA, считанные данные будут, без участия ядра, самостоятельно, байт за байтом, помещаться в выделенный буфер. Когда буфер будет полностью заполнен, ядро получит сигнал и приступит к их программной обработке, а система DMA начнёт процесс загрузки сначала. Поскольку DMA имеет несколько каналов, то никто не мешает реализовать для нашего случая автоматический вывод на USART данных из буфера. В результате мы получим, работающий без использования ядра процесс передачи считанных с АЦП в USART, и не простая работа программиста по конфигурации DMA окупится сторицей.

Что можно получить, добавив 30 центов?

Переход на Cortex-M0+. Самый дешёвый способ получить дополнительные функции

А какие дополнительные плюшки предлагает микроконтроллер новейшей серии с ядром чуть посовременнее Cortex-M0+, при стоимости на 20-50 центов дороже аналогов в рассмотренной выше серии по корпусу и количеству выводов?

Таблица отличий между сериями

А что добавит переход на Cortex-M4, кроме возросшей в пару раз цены?

image loader

Cortex-M7 — когда хочется большего.

image loader

В подавляющем количестве проектов возможностей предоставляемых вышеописанными ядрами достаточно, но случаются и исключения. Лично со мной такое случалось всего пару раз, причём лишь один раз по действительно уважительной причине — требовалась высокая производительность для подготовки данных для ASIC, контроллер Ethernet и шина CAN-FD c повышенной скоростью обмена.

Если на уровне универсальных микроконтроллеров с ядрами Cortex 4 и ниже, на мой субъективный взгляд, по параметру цена/функциональность сейчас лидирует фирма ST, то в области более высокопроизводительных чипов она уступает лидерство ATMEL, вернее, теперь уже недавно поглотившему его MICROCHIP. Поэтому я остановил свой выбор на серии ATSAMV71, стоимостью от 6 долларов.

Помимо вышеописанного (контроллер Ethernet и шина CAN-FD), по большому счёту, мы получаем, существенно увеличивающее производительность ядро с ускорителем операций, работающее на тактовой частоте до 300 МГц, интерфейсы для подключения видеоматрицы и поддержку динамической памяти.

В заключении попрошу имеющих опыт общения с микроконтроллерами попрошу выбрать подходящий ответ на вопрос.

Источник

Adblock
detector