Программирование микроконтроллеров

Привет всем гребцам и веслярам! Давно хотелось задать вопрос всем знатокам нашего ит.

Стоит ли тратить свою енергию на изучение микроконтроллеров?

Avr, stm, pic. Так как область эта на данный момент не особо популярна, а мозговых затрат требует нехило, плюс должны быть минимум базовые знания электроники.

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Коментар порушує правила спільноти і видалений модераторами.

в цій країні не потрібно буде найближчі 50 років,
якщо цікавить все ж тема, то чому не подумати «про трактор»

Выгодней учить и зарабатывать на технологиях из мейнстрима.

Уже пробовали создавать мейнстрим?

У меня ВО в области электроники, а профессионально использовал только Delphi и .NET, так что периодические фантомные боли по потерянному раю с осциллографом, паяльником и программатором, меня таки иногда донимают... Как и мысли о том, что неплохо было бы туда дауншифтнуться, порешав перед тем всякие насущные финансовые вопросы...

Во! Ко мне)) Я застрял без программиста-электронщика с опытом. Я уже лет 15 дауншифтнутый.

Только если интересно как хобби, плюс есть желание развиваться в электронике, в невиртуальных вещах. В плане зарплат — они существенно ниже, однако удовольствие, «хакерская ценность» при работе с контроллерами может быть гораздо выше для энтузиастов. Потому что не так важен сам по себе контроллер как предмет изучения, как его аналоговая обвязка и схемотехника устройства. Бизнес-логика обычно выносится за пределы контроллера и ложится на какой-нибудь внешний сервис, прошивке контроллера остается работа с сигналами, их очистка и базовые преобразования. Получается, что изучение микроконтроллеров — это малая часть (изучение чуть глубже конкретного семейства или двух, и чуть шире — общих подходов к разработке, отличающихся от высокоуровневого программирования — таймеры/прерывания/регистры/ШИМ и т.д.). БОльшая часть — это изучение окружения.

Цим потрібно займатись тільки якщо Ви фанатієте від електроніки і всім що з нею пов’язано. В іншому разі не варто, вакансій справді на порядок менше ніж в інших напрямках.

AVR/PIC не варто, зараз чаc 32 бітних : PSoC, STM32, TivaC, MSP432

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

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

Я так и поступил. Но похоже денег нет вообще))

Другой вопрос, что в этой сфере мало корпоративных денег, это вечный удел стартапов

Cypress, Silego, SiTime, PDT продуктові компанії Львова, а є ше багато інших компаній не стартапів (PlVision, Global Logic) і зарплати в цих компаніх конкурентні із софтовими.

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

Можливо. Мій знайомий у них працює і не джуном, казав що задоволений.

зарплати в цих компаніх конкурентні із софтовими.

гагага

Ваше право вірити чи ні :)

Якщо це Principal engineer то цілком реальна цифра.

Не знаю про Львов, но в Киеве есть компании которые готовы платить от 4к.

Киеве есть компании которые готовы платить от 4к.

Так отож

Программировал Intel, PIC, AVR. Надоело, что изготовление и отладка занимает от дней до месяцев (когда нужно заказывать другой чип или обвес) в парах свинца и в вечно прожженном свитере. Выучил асп, и жизнь наладилась. За 20 лет после того назад не тянуло ни разу. Нет в железячничестве никакой романтики. То же самое программирование, только почему-то в древних IDE, вместо рефреша — возня с прожигом и с паяльником в руках вместо чашки кофе.
Верю, что корпорации, устанавливающие микроконтроллеры в свои устройства, побеспокоились и о том, чтобы заказать новую среду разработки, и о распределении обязанностей по программированию и глупой возне около него, но что-то мне подсказывает, что такие проекты не аутсорсятся. Как максимум — готовые стенды, которые нужно только оживить. Смысл? Нравится такты считать? Или хотите видеть Вашу работу во всех французских авто мира?

Как уже писали, если есть интерес — пробуйте. Единственное замечание: не стоит много времени уделять AVR, разве что для ознакомления. Многие работодатели при упоминании этого семейства кривятся и говорят, что AVR давно устарели. Причём, так говорят даже те, кто эти микроконтроллеры вовсю использует :)

Вакансий мало, денег тоже.
Где нужно программировать голые микроконтроллеры нужно уметь делать все: идея, схема, плата, чертежи, изготовление, испытание. Еще и какой-то бэкграунд: математика, электропривод, электротехника или СВЧ.
Если работать не человеком-оркестром, то электроника нужна хотя бы доказать, что проблема в железе, а не программе, уметь пользоваться осцилографом или логический анализаторм, понимать как подключенный осцилограф может вляить на измеренения и куча других нюансов.
Часто отладка ограничена в виду электрических ограничений, в моих устройствах нет терминала, по-этому часто отладка делается светодиодами на свободных выводах.
Учить с нуля, если паяльник не был увлечением ранее — будет мучение.
А для тех, у кого есть идея, но не знаком с программированием придумали ардуино.
P.S. Сам пишу программы для микроконтроллеров последние 10 лет, уже устал от примитивизма, хочется перелезть на что-то линуксовое. Пока подключаю к Orange-pi Zero дисплей по spi.

Попробуйте node.js & tesel для разнообразия

Реалії роботи з мікроконтролерами: старі компілятори, танці з бубном, щоб вистачило пам’яті або процесора, складність в тестуванні та дебагі, часто нижче зарплатня.

Ну все компиляторы вроде бы поддерживают и С11 и С++11

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

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

Возможно. Просто у IAR заявленно С11/C++14. У keil тоже есть С++11, насчет Си ненашел инфы. Но возможно это все, не для всех платформ реализованно.

Так можливо було кілька років тому, тепер gcc-7 (c++17, c++2a) доступний для усіх більш-менш популярних платформ.

Доступный != качественный. Почему-то даже avr-gcc до хорошего состояния довести не могут

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

а мозговых затрат требует нехило

Мозк жалко?

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

не популярна на топивих галерах. Правда, бувають проекти повязані з таким.
Колись кодив на stm32, зараз іноді цікавлюсь з RPi,. Якщо цікаво — дєрзай.
Знань електроніки там потрібні мінімальні.

RPi

RPI — не эмбеддед

ну ок. але з GPIO можна працювати

По духу. Если нет никакой разницы между десктопом и RPi, то на RPi — десктопный софт. Даже платформа одна и та же, дебиянобразная

Десктоп без кулерів і радіаторів мабуть гріється не менше.

По духу.

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

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

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

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

Это ты по мотивам украинского опыта?

нарасии по другому?

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

Майк, зачем тогда возится с малинкой, если можно просто крутить образ в виртуалке?

Из виртуалки нет доступа к железу. :)

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

Нет, это не тру эмбеддед. Просто посуди сам, любой микроконтроллер в 10-30 раз проще любого SoC, вот поэтому и въезд проще и зарплаты меньше. По поводу тех же роботов — разработка узлов против разработки модуля управления самим роботом и всеми его узлами — сравни сложность разработки.

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

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

В виртуалке, основанной на аппаратном VT-d можно, но зачем этот изврат?

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

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

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

Можно подумать у микроконтроллеров этого нет, вон STM поставляет всё готовое, чтобы разработчики не напрягались, тоже выкинем из эмбеддеда?

Т.е. QNX — это не эмбеддед ОС? %)

А лялекс и виндавс — это эмбеддед ОС?

эмбеддед, это то, шо в столе. все, что НА столе или ПОД столом — галимый десктоп(боттом)

Ну так никто не ставит их в десктопном виде. Есть чёткое разделение хоста и таргета.

Нет никакого разделения кроме как у тебя в голове. Скоро смартфоны с возможностями современных суперкомпьютеров будут в карманах таскать.

Нет никакого разделения кроме как у тебя в голове.

Миша, если не понимаешь сути разговора — не лезь, потом же пищать будешь, что тебя обижают.

Опять я не понимаю сути:) Повторяешься.. Может стареешь?

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

Сори. Постарайся не отвечать. Я все равно до твоего уровня не дотянусь..

Да ну. Тот же дебиян ставят на десктопы, сервера, мобилки, в RPi тоже дебиян

Мы раньше тоже поддерживали селф-хостед инсталляцию в QNX, это то, что ты описываешь. Потому что целевая аудитория — это те, кто пытаются поиграться с системой, поэтому туда ставят всё, включая пакетный менеджер. В реалии оказалось, что селф-хостед пользовалось меньше 0.5% разработчиков. А в продакшен систему идёт только то, что нужно, там уже нет рюшек, свистелок и т.п.. Да, софт по большей части тот же, но кто сказал что он сырой или нестабильный? Сейчас базовый софт в ОС вылизан настолько, что то, что мы видем в микроконтроллерах — это соддом и гоморра. Софт ОС — это просто окружение твое процесса, который будет делать всю работу.

Ну т.е. не эмбеддед. Я же не говорю, что эмбеддед это круто, а неэмбеддед — это уныние. Наоборот. Эмбеддед — это проклятие, это когда есть человек и есть МК и пустота. И можно для МК педалить хоть на асме, никто твой код разбирать не будет, не сможет, не захочет; а профессиональный рост возможен только в команде

Ну т.е. не эмбеддед.

У тебя какое-то извращенное понятие об эмбеддеде тогда. Эмбеддед — это то, что встраиваемое.

Эмбеддед — это проклятие, это когда есть человек и есть МК и пустота.

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

Плохое определение, в банкоматы вон например встраивают обычный ПК (если подглядывать за тем, как их ремонтируют после очередного BSoD’а). А обычный ПК к эмбеддеду не относят

Это не определение, а перевод с английского %)

Я в курсе как переводится слово «embedded», но это бесполезное определение всё равно.

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

И только после этого — ограниченность ресурсов и реалтаймовость, хотя они очень хорошо коррелируют с предыдущими пунктами.

И какое устройство подходит под эти критерии, например?

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

Вообще-то отладку сейчас по JTAG’у делают, для этого ноутбука с девайсом достаточно.

А в сервисный центр отвозят чтобы никто над душой не стоял и неотвлекал.

по JTAG’у делают

Спасибо, кэп:) тем не менее это сильно больше возни и особенно профильных умений, чем без оного.

А в сервисный центр отвозят чтобы никто над душой не стоял и неотвлекал.

Часто к тому JTAG’у ещё припаяться надо, постоянные выводы не сделаны.

Із мінімальними знаннями електроніки роблять таку ахінею...наприклад пілкючають двигун до піна МК і дивуються що нічого не працює. Ні, все таки це напрям де базові знання елетроніки необхідний мінімум.

Если нравится — занимайся. Продать эти умения можно, но не в аутсоорсе.

Особенность галер. Лабораторию с паяльником в опенспейсе не поставишь и распределенную работу организовать очень трудно.

Девборду/ардуино могут и прислать

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

Серьезно? С эмуляторами АБС и или высоковольтных линий?
(борду с мигающими лампочками я за лаб не считаю)

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

А баги-то как репродьюсить? Особенно когда речь касается обработки аналоговых сигналов (а в них-то собственно процентов 80 ноу-хау).

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

Наверное возможно, но на практике никогда не видел.

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

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

Готов прийти на экскурсию, так сказать зайти к соседям в гости на чай

Заходьте до нас, маємо такі лабораторії із професійним обладнанням.

Якщо цікаво як відбувається верифікація, на рівні топ-левел можу розповісти

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

Ересь ваша Ардуина. Попривыкнут к хорошему, потом на Step 7 смотреть не хотят.

ну так логично же)) Хочешь посмотреть на новую тему — го самым трудным путём, где ты ничегошеньки не шариш, и танцы с бубном — это за щастье.
Да, это WP в мире микроконтроллеров, но тут хотя бы думать надо, что куда, и как, хоть и не так много, как на чистом контроллере

мозговых затрат требует нехило

Да нифига подобного. Любой джаваскриптер осилит. Собственно джаваскриптеры в эмбеддед и лезут

Лезут, лезут, а потом на их поделки смотреть грустно.

Микроконтроллеры уже не те

Они никогда не были тортом

Хочу побачити джаваскріптера який розрахує правильну частоту PWM для керування двигуном, зробить debounce кнопок, розрахує резисторний дільник для вимірювання напруги, розрахує правильний опір резистора світлодіода, зробить схему підсилення та фільтрації сигналу на операційному підсилювачі для подачі на вхід ADC, напише програму для комунікації по 1-wire на С, без ардуіно ліб.

Проблема в том, что я видел все это сделанное джаваскриптером и мой мир уже никогда не будет прежним.

Думаю це одиничний випадок :) можливо цей джаваскріптер не завжди ним був, а має певні знання в електроніці.

Нет :(

має певні знання в електроніці

Ну закон Ома наверное он знал, остальное нагуглил

Ну а что тут такого? Я ещё будучи студентом с помощью справочников радиолюбителя и чуть-чуть с помощью отца сам наколхозил плату сопряжения 8 битного компьютера и телефонной сети (очень хотел АОН, а денег на готовый не было, надеялся запилить своими силами). Там была и гальваническая развязка через трансформаторы, и транзисторные ключи для управления реле поднятия трубки / импульсного набора, и аналоговые усилительные каскады для аудиосигнала из линии.

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

все що Ви описали це фанатизм в хорошому значенні цього слова.

а чому я дивувався? тому що зараз описаного Вами дуже мало, все зводиться до того що купили готовий Ардуіно шилд, і накопіпастити шматків коду в Ардуіновське «IDE», все це збілдити зашили, і воно так само працює, причому розуміння в більшості випадків відсутнє....

А я видел это же, сделанное PHPшником

А можно представить на что способен математик вайтишник!

примат? Знаю на что. На остановке КПИ до сих пор говорят про выход к зоопарку.

Хочу побачити джаваскріптера

ну тогда ваше желание сбылось, можете вычеркнуть с TODO list :)

Клас, але усього описаного бачу тільки розроблену плату :)

Так все те сакральные знания, ну кроме однопроводного велосипеда, это 2-3 курс колледжа, и 8 класс курса физики- как бы хоть один делитель напряжения и интегратор на оу на платах должен найтись :)

Ви розробили плату, і досить класну. Думаю з іншими питаннями точно проблем нема.

Що робить ця плата?

Хм...Ну в горстке там датчик газа с плавным разогревом на импульснике, простой активный микшер с селектором каналов, симисторный силовой блок для скважинного насоса с обратной связью по току и ttl входом и к нему контроллер заполнения буферных емкостей, ну и классическая 19 канальная FFT мигалка под музыку, куда же без нее. Там некоторым поделкам уже лет 7 :)

Підписатись на коментарі