Как выбирать микроконтроллер. Основная периферия. Основные параметры. Небольшой, но полезный обзор.

myowndevice
Offline
Зарегистрирован: 18.09.2017

Написал небольшую статью про основные особенности микроконтроллеров. Обзор общий, по всем видам МК.

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

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

Собственно статья тут

b707
Offline
Зарегистрирован: 26.05.2017

myowndevice пишет:

Если есть какие то дополнения по статье, могу добавить

там явно не хватает ссылки на первоисточник и настоящего автора :)

myowndevice
Offline
Зарегистрирован: 18.09.2017

первоисточник и автор я... статья авторская. написана с 0-я. Сочту за комплимент.

kost82
Offline
Зарегистрирован: 30.11.2015

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

В статье написано "Мы будем осваивать все возможности МК сразу на приборах, начиная с простых и постепенно переходя к более сложным схемам." - это как я понял в планах?

myowndevice
Offline
Зарегистрирован: 18.09.2017

да - в планах. Сейчас готовлю первый прибор. Велокомпьютер. Уже почти готов. Будет очень не простая программа, всякие спящие режимы, прерывания, UART, и т.д.. На stm8. Все разобрано максимально подробно. Оказалось не быстро все это описать. Приборы уже давно сделал и пользуюсь, но писать много, объемно. Русский язык тоже в планах..

myowndevice
Offline
Зарегистрирован: 18.09.2017

В принципе все приборы описаны в полном списке приборов на сайте. Они все будут. Цель - построение прибора с 0-я. Схемотехника и тд. И статей еще много будет. Как питание выбирать LDO, DC\DC и т.д. Как корпус подбирать. Индикация - LCD экраны и другие средства, как программировать МК поподробнее.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

myowndevice пишет:

 Сейчас готовлю первый прибор. Велокомпьютер. Уже почти готов.

Немного  критики :) Велокомпьютер, GPS трекер, квадрокоптер - вы не находите, что все ваши самоделки можно купить готовые? Тем более что промышленные изделия крайне трудно обойти в компакности/экономичности. Велокомпьтер например на специальном ЖК дисплее работает месяцами, и данные в любой момент доступны, не нужно доставать смартфон, коннетить, итд итп.   А GPS Трекер, -если его нужно коннектить по блютуз к самартфону, то на кой он нужен? Его функции выполнит сам смартфон. Я сам заядлый турист, и считаю, что  никакая автономная коробка не может конкурировать с тем-же Garmin etrex30 по удобству, возможностям и надёжности.   Если у вас руки растут из нужного места, то неужели не хватает идей сделать что-то реально эксклюзивное?

b707
Offline
Зарегистрирован: 26.05.2017

ИМХО, вызывает вопросы выбор контроллера. На мой взгляд, stm8 уже мало кому интересн сейчас - "порог входа" довольно высок, а характерстики примерно аналогичны распространенным атмегам. Нет стимула забивать голову новой для себя архитектурой, если преимуществ над старой нет.

myowndevice
Offline
Зарегистрирован: 18.09.2017

Ну вы неправы. GPS трекер полностью автономный - положил в рюкзак и забыл. Работает он не хуже, чем то, что продается. Стоить будет в 2-3 раза дешевле. Смартфон его не заменит никак, gps модуль там совсем никакой и расход батареи тоже. А наличие экрана только все усложнит для новичков. Цель здесь не сделать что-то эксклюзивное, что можно собрать только на заводе, на BGA чипах и 4-х слойных платах, а показать, что в домашних условиях можно делать хорошие приборы. Да не эксклюзив, но не хуже того, что есть на рынке. Какой GPS трекер за 2тыс рублей сможет замерить максимальную скорость, периметр участка, записывать трек непрерывано в течение более 20часов. А смотреть на экране там нечего, это же не карта, положил в рюкзак и достал по приходу домой.

Например, велокомпьютер - работает от одного заряда больше 3 месяцев, может не год, но батареек не надо - зарядил и все. Хватает на 20 поездок. При этом, найдите мне хоть одну продаваемую модель, которая может выдавать не среднюю скорость, а ту на которой вы ехали большую часть времени, или чтобы звуком оповещала, что у вас каденс стал меньше 80, это основной критерий выбор скорости на велосипеде. Я уже не говорю про расчет калорий, который доступен только в топовых моделях, и точно не за 600рублей. Также не видел моделей, чтобы помнили данные за 3-5 последних поездок, время акивной поездки (когда именно педали куртили) и то нету нигде, а какой смысл ехать и на скорость смотреть, экран тут не нужен. Тем более нет вообще ниодного велокомпьютера, который может определить и разделить данные по поездкам! Так что даже в таком простом устройстве много нюансов.

Ну а потом, неужели вы считаете, что учиться надо на отладочных платах - надо делать реальные приборы - цель сайта, научить делать приборы самостоятельно. Если сразу вам дать супер пупер прибор - он у вас просто не выйдет, вы в прошивке запутаетесь, и опять будете ПОЛЬЗОВАТЕЛЕМ, а не разработчиком.

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

Приведу пример дальше - например есть такой прибор  на рынке  Кситал GSM - система управления оборудованием и сигналация GSM - стоит больше 8тыс. У меня будет такая же разработка - за 2тыс руб или меньше, еще не до конца посчитал. При этом функционал вы можете сами написать или оптимизировать под свои нужды.

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

myowndevice
Offline
Зарегистрирован: 18.09.2017

stm8 самый не дорогой - 1штука 20руб. Порог входа очень простой - тот же STlink и все! Есть отладчик, симулятор, куча периферии (А какой отладчик есть у ATMEGA8??) Сделать на нем очень многое можно. И писать просто, среда простая, примеров много. А по поводу забивать голову, как раз и надо понять, что никакой новой архитектуры нет, они все одинаковые, меняются названия регистров и все! Если пишите сами программу с нуля - то вообще разницы нет. А Атмега - между тем, тоже 8-ми битный МК, еще и хуже по параметрам цена/качество, чем stm8. И вот забивать голову Arduino, точно не нужно, язык очень далекий от архитектуры МК. Arduino очень хороша для тестирования и макетирования, и для новичков - много готовых библиотек. Но программировать надо учиться на Си сразу, тогда все МК будут одинаковые.

Потом, это первые приборы на stm8, хотя мне он нравится, а дальше будут другие МК - stm32, nuvoton. И ATMEGA8 будет тоже. А вот голова - там место много - советую не бояться ее забить чем то полезным.

sadman41
Offline
Зарегистрирован: 19.10.2016

myowndevice пишет:

Приведу пример дальше - например есть такой прибор  на рынке  Кситал GSM - система управления оборудованием и сигналация GSM - стоит больше 8тыс. У меня будет такая же разработка - за 2тыс руб или меньше, еще не до конца посчитал. При этом функционал вы можете сами написать или оптимизировать под свои нужды.

Написать, оптимизировать и отладить - это как раз те недостающие 6 тыщ. Как минимум.

Ну это так, в качестве ремарки.

myowndevice
Offline
Зарегистрирован: 18.09.2017

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

b707
Offline
Зарегистрирован: 26.05.2017

myowndevice пишет:

Но программировать надо учиться на Си сразу, тогда все МК будут одинаковые.

простите, а вы думаете в ардуино свой язык программирования? Не Си? :)

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Я не со стороны производителя выступаю. Просто констатирую факт, что обычный человек потратит дополнительно >6 тыщ на получение такого же устройства, что стоит 8. Только, конечно, если кто-то за него эту прошивку не напишет и не отдаст за просто так.

myowndevice
Offline
Зарегистрирован: 18.09.2017

посмотрел Garmin etrex 30x, 16тыс рублей. Очень хорошее сравнение, GPS навигатор и т.д. А вот например, ГдеМои S5 Портативный GPS-даталоггер (офлайн) - 6300руб., функции и размер как у моего прибора. При этом работает 20ч, а мой до 70ч.

myowndevice
Offline
Зарегистрирован: 18.09.2017

b707 пишет:

myowndevice пишет:

Но программировать надо учиться на Си сразу, тогда все МК будут одинаковые.

простите, а вы думаете в ардуино свой язык программирования? Не Си? :)

 

В ардуино свой язык - Wiring на базе Си++. Только вот сам МК там спрятан глубоко и далеко. Посмотрите скетчи на ардуино, много там увидите регистров и работы с таймерами, например. 

myowndevice
Offline
Зарегистрирован: 18.09.2017

sadman41 пишет:

Я не со стороны производителя выступаю. Просто констатирую факт, что обычный человек потратит дополнительно >6 тыщ на получение такого же устройства, что стоит 8. Только, конечно, если кто-то за него эту прошивку не напишет и не отдаст за просто так.

Ну обычный человек зачем вообще паять будет. Он пойдет и купит за 100-500 тыс и все. Ну мы же тут не обычные собрались. Если все только и будем покупать и ждать когда дядя прошивку напишет, то скоро в России вообще никто и Си знать не будет. Итак отстаем в микроэлектронике на 70 лет. МК своих нет (хотя один выпустили не давно). Надо оттачивать программирование. Хоть тут будем сильны. Посмотрите на github - много там отечественных разработок и прошивок.

И учиться надо на реальный приборах, пользоваться ими. Тогда толк будет. Я вот велокомпьютер 4-е раза переделывал, чтобы нормально схему  и плату отработать - то одно, то другое, где кнопку разместить, а вы говорите. А регулятор двигателя BLDC делал 2 месяца, свою прошивку писал, и то не с нуля.

b707
Offline
Зарегистрирован: 26.05.2017

myowndevice пишет:

В ардуино свой язык - Wiring на базе Си++. Только вот сам МК там спрятан глубоко и далеко. Посмотрите скетчи на ардуино, много там увидите регистров и работы с таймерами, например. 

Wiring не более чем библиотека. Или вы сторонник "честного Си"? На компе работу с файловой системой тоже через низкоуровневый доступ к контроллеру пишете?

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

myowndevice
Offline
Зарегистрирован: 18.09.2017

Ну я тоже с Arduino начинал, и сейчас на нем пишу. Конечно все есть, и можно писать напрямую. Но спросите много понимает, что стоит за AnalogRead? или AnalogWrite...

sadman41
Offline
Зарегистрирован: 19.10.2016

myowndevice пишет:

Ну обычный человек зачем вообще паять будет. 

Чтобы придти на ардуино.ру и начать спрашивать, как одной командой принять смс и стереть его. Потом собрать говнокод и будить соседей сиреной каждые 49 дней ))

 

myowndevice пишет:

Посмотрите на github - много там отечественных разработок и прошивок.

Я в курсе, сам пишу в гитхаб этот ваш. На лживом Си, правда.
 
Но собирать мультиметр или трекер я действительно не буду и с димаксом в этом солидарен. К тамим устройствам еще и экосистема приложена. И поддержка с гарантией.
myowndevice
Offline
Зарегистрирован: 18.09.2017

ну а я вот сделал gps логер, и мне понравился опыт работы с gps модулем. Очень интересно и не все так просто. А гарантия в России все равно не работает.. больше на словах.. И вот квадрокоптер сделал - вообще офигенный опыт, очень понравился проект - Paparazzu UAV - на их мозге делал - посмотрите. Очень хороший софт. Про него обязательно напишу.

b707
Offline
Зарегистрирован: 26.05.2017

myowndevice пишет:

 Про него обязательно напишу.

Да и про другое пишите, раз получается. Пишите вы хорошо.

Жалко только не о том :)

myowndevice
Offline
Зарегистрирован: 18.09.2017

А о чем надо писать? Чтобы о том? Какой прибор было вам интересно сделать.

sadman41
Offline
Зарегистрирован: 19.10.2016

Миелофон

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

myowndevice,   Вы не обижатесь пожалуйста, я совершенно не имел цели охаять ваши самоделки. Они хорошие. Просто я рассматриваю с  точки зрения как потребителя. Вот я турист, и в том числе велосипедист. Раз в месяц стабильно хожу в походы. Зачем мне такой трекер и велокомпьютер? На ходу всем этим пользоваться неудобно, следовательно остаётся только функция логгера, но мне например это не нужно. Велокомпьютер по моему мнению должен быть с ЖК-дисплеем и находится на руле -что бы сразу было видно сколько км я проехал за текущий день, и скорость важна в основном средняя, что бы оценить через какое время я доеду за пункта "Б". Ну может ещё часы.. Всё остальное уже не так важно. Этим требованиям удовлетворяет абсолютно любой прибор из любого магазина. Ну и трекер тоже.. зачем он туристу? Туристу нужен навигатор, в котором уже есть функция трекера. Когда вы всё это собирали, то вами двигала идея, вы получали удовольствие от самого процесса  написания программы и воплощения идеи в железе. А тот, кто будет всё это повторять -уже не сможет получить такое удовольствие, ему остаётся только удовольствие от использования, а удовольствия (в моём случае) не получить т.к. нужно много всего, чего эти штуки не могут.

myowndevice
Offline
Зарегистрирован: 18.09.2017

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

kost82
Offline
Зарегистрирован: 30.11.2015

myowndevice пишет:

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

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

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

 

myowndevice
Offline
Зарегистрирован: 18.09.2017

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

 А вообще для начала платы надо научится делать и паять.Страх побороть перед маленькими деталями.

kost82
Offline
Зарегистрирован: 30.11.2015

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

Лично мне статья про микроконтроллеры понравилась, поэтому я отписываться от этой темы не буду (если только тут не разведут холивар на 20 страниц). Как только будет статья - постараюсь ее прочитать.

b707
Offline
Зарегистрирован: 26.05.2017

myowndevice пишет:

А о чем надо писать? Чтобы о том?

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

А велокомпьютер собирать или GPS-трекер... согласен с dimax - у меня не так много свободного времени, чтобы тратить его на повторение поделок, которые китайцы делают лучше.

kost82
Offline
Зарегистрирован: 30.11.2015

b707 пишет:

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

Ну почему несбыточно? Я травил платы в растворе перекиси водорода с лимонной кислотой + немного поваренной соли в качестве катализатора. Рецепт раствора прочитал на радиокоте воде бы. Довольно неплохо травит, особенно если раствор чуть подогреть. Плюс нет пятен от хлорного железа, а инградиенты продаются в любой аптеке и продовольственном магазине и стоят реально копейки: перикись - рублей 10 за флакон, лимонка - рублей 5 за пачку, ну а соль и так всегда на кухне есть.

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

bwn
Offline
Зарегистрирован: 25.08.2014

b707 пишет:

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

А велокомпьютер собирать или GPS-трекер... согласен с dimax - у меня не так много свободного времени, чтобы тратить его на повторение поделок, которые китайцы делают лучше.

Про перекись выше уже написали, утюг заменяем двумя досками, резинкой, струбцинами и смесью растворителя со спиритом. Результат для поганого, тугоплавкого, бразера, супер.
   А так, что на человека накинулись. Все, кто здесь сидят, ваяют что то для себя и в меру своих фантазии и знаний (благо они имеются). У основной, оставшейся за кадром, массы их нет в принципе и они кушают, что дадут. Сотворил по готовым лекалам что то и уже Данилой-мастером себя почуял. Загляните в тему "Комнатная метеостанция", четыре года регулярно поднимается вверх просьбами скинуть схему и скетч, хотя за пару вечеров, не напрягаясь, можно самому наколхозить. 
Все таки ТС пытается донести разумное, доброе, вечное, пусть и из того, что самому интересно. ИМХО.
 

Deamon
Offline
Зарегистрирован: 21.09.2017

отличная статья, прочитал с удовольствием!

goodwin
Offline
Зарегистрирован: 13.10.2017

bwn пишет:

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

... 

Все таки ТС пытается донести разумное, доброе, вечное, пусть и из того, что самому интересно. ИМХО.
 

Полностью солгасен. Сам, например, с интересном почитаю

myowndevice
Offline
Зарегистрирован: 18.09.2017

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

mnashe
Offline
Зарегистрирован: 29.08.2016

Статья понравилась, очень хорошо написана, системное изложение, простой язык.

Несколько замеченных описок:

«registr»

«GPIO (generak port input output)»

«ODR — output data registr — управление состояние вывода — 0 или 1 имеем на выводе»

«Мы записываем нужную цифру в регистр DAC в программе МК»

«Точно также» /* в двух местах */

«также как к компьютеру»

«счётчик вверх и в низ»

«управлять яркостью светодиода, скорость мотора»

«для этого ненужен отдельный периферийный модуль»

«Шина постоянно разливается»

«очень много операций копирования информация»

«При этом МК будет занять выполнением этой программы»

«есть МК, которые имею цифровой видео интерфейс HDMI»

Чем ближе к концу статьи, тем больше описок. Автор явно устал :)

Есть ещё множество пунктуационных ошибок (с десяток недостающих запятых и несколько десятков лишних), я поленился их копировать.

Неудачные формулировки:

1. «Например, если разрядность ADC равна 10, напряжение питания МК равно 3В, то ADC может выдать числа от 0 до 9»
В следующем абзаце уточняется, что разрядность — это таки число бит, а не числовой диапазон, но и после этого написано «3-х битный ADC имеет разрядность 2³ = 8».

2. «Для почти всех наших проектов частоты в 16Мгц более чем достаточно. На текущий момент практически все МК могут работать на такой частоте»
На мой взгляд, неправильно сбрасывать со счетов всё семейство PIC16, включая современные (enhanced mid-range). Макс. тактовая частота у них вроде как даже больше, но ведь статья говорит о частоте выполнения операций (MIPS), а не о тактовой частоте, а она у них всего 8 (а у старых, mid-range, и вовсе 5). Даже у PIC18 далеко не у всех есть 16 MIPS, а только у самого современного ядра (с буквой K в названии); у предыдущего ядра (J) — 12, у ранних 8.

3. «погрешность измеряется в процентах на 1 000 000 тактов (ppm)»
pulse per million

4. Там же: «Их точность не падает с нагревом или охлаждением»
Вообще-то падает, так что в особо точных приборах либо вводят компенсацию (например, DS3231), либо вообще постоянно подогревают кристалл до заданной температуры. Лучше написать «их частота гораздо меньше зависит от температуры».

5. «В данном разделе коротко рассмотрим эти модули, что они могут, что дают, как ими пользоваться»
В чём разница?

6. «если вам в проекте необходим обмен по данным интерфейсам, необходимо выбирать МК»

7. «I²C - Inter-Integrated Circuit — интегрированная шина»
— межмикросхемная, вообще-то

8. «Частоту интерфейса принято обозначать в виде скорости отправленных байт, например 9600 байт в секунду»
Наверно, лучше так: «Скорость интерфейса принято обозначать в виде частоты передачи в байтах».

9. «передачи данных между компьютером (например прибор USB\UART)»
либо «передачи данных между компьютером и устойством», либо «обмена данными с компьютером».

10. «Если у нас одно устройство, то вывод CS все равно нужен, так как он определяет начало и конец обмена данными, сэкономить тут не получится»
Разрешено не использовать вывод CS, но это снижает надёжность.

11. «так как это позволяет расширять набор датчиков за счёт одной шины»
обходясь одной шиной
А лучше: «подключать сразу несколько датчиков к одной и той же шине».

12. «Сам протокол описывать смысла не имеет»
— «нет смысла». А то звучит почти как «сам протокол смысла не имеет».

myowndevice
Offline
Зарегистрирован: 18.09.2017

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

myowndevice
Offline
Зарегистрирован: 18.09.2017

Всем кому интересно попрограммировать. Написал статью про велокомпьютер. Создам отдельную тему, но в этой ветке тоже напишу.

mnashe
Offline
Зарегистрирован: 29.08.2016

mnashe пишет:
«GPIO (generak port input output)»
Ой, не обратил внимания. Взгяд уткнулся в описку, и я не заметил неправильную расшифровку.

general purpose input/output ([порт] ввода/вывода общего назначения).

Гриша
Offline
Зарегистрирован: 27.04.2014

ОФФ.ТОП. в очередной раз жалею о малой гибкости функционала данного ресурса - издержки отсутствия рекламмы и спонсоров :(((

Статья выглядит как "хорошый вводный курс в МК" - шпора для ленивого студента технаря :))) , спасибо за труд! Может и мне где сгодится - кому показать...