Практическая электроника аналоговых устройств - Пиз Р.

Вы не знаете, чем плюс отличается от минуса? Не знаете, что такое напряжение, сила тока, трансформатор, резистор, транзистор? Желаете научиться понимать и читать электрические схемы? Вы хотите серьезно заняться электроникой и стать профи-электронщиком? Тогда эта книга для Вас, мой любимый читатель!

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

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

Издательство: Самиздат
Год выпуска: 2015
Страниц: 830
Формат: pdf
Размер: 186 Mb
Качество: отличное
Язык: русский
Скачать: Иван Акулов. Практическая электроника. version 2.0
В случае обнаружения "битых" ссылок - Вы можете оставить комментарий, и ссылки будут восстановлены в ближайшее время.

Название : Практическая электроника аналоговых устройств.

Данная книга написана специалистом фирмы National Semiconductor Робертом Пизом. Автор необычно подходит к проблеме поиска неисправностей.
Он делится с читателем своим многолетним опытом работы на высокотехнологическом производстве. Дает ценные советы, как необходимо вести работу: какие вопросы задавать, чтобы обнаружить неисправность, как нужно вести документацию и как организовать коллектив.


ВВЕДЕНИЕ
«Парень, твоя идея настолько хороша, что еще через двадцать минут я поверю -она изначально принадлежит мне». Я редко слышу подобную похвалу в свой адрес, но наверняка заслужил бы такой комплимент, предложив опубликовать в журнале EDN цикл статей Боба Пиза «Поиск неисправностей и отладка аналоговых схем», и это, конечно, повысило бы мой авторитет в редакции журнала. Однако на самом деле авторы этой идеи Йон Титус (Jon Titus), вице-президент, председатель редколлегии и главный редактор журнала EDN, и Тарлтон Флеминг (Tarlton Fleming), тогда первый помощник редактора EDN, а в настоящее время менеджер отдела практического применения микросхем в корпорации Maxim Integrated Products Corporation.

В начале 1988 года Джон с редакторами штаб-квартиры издательства EDN (а также издательской компании Cahners Publishing Company) в г. Ньютон (Массачусетс) провел мозговой штурм, обсуждая, какие статьи можно было бы заказать работникам промышленности. Учитывая, что читатели EDN обычно используют этот журнал как источник практических идей для более эффективной работы, а также поиска неисправностей и отладки техники, Джон предположил, что необходимы статьи, посвященные именно этим вопросам.

Тарлтон, редактор популярного раздела Design Ideas1 журнала EDN, постоянно сотрудничал с Бобом, который рецензировал присылаемые читателями схемы аналоговых устройств. Тарлтон вспомнил, что Боб рассказывал ему о книге, которую он собирался написать вместе с коллегами из компании National Semiconductor. Очевидно, Боб уже подготовил некоторый материал по вопросам поиска неисправностей. Нужно было выяснить, предоставит ли National Semiconductor издательству EDN права на публикацию фрагмента этой книги. Тарлтон начал переговоры.

Если вы не знаете о чем речь, то сначала рекомендую . Поломайте голову, не читайте комментарии, пишите свои. А потом возвращайтесь сюда.

Итак, девайс глючил. Причем глючил очень и очень характерно для срыва стека. Не зря первая половина поста была про поиск программной ошибки. Что такое срыв (он же переполнение) стека? Это когда стековая область памяти разрастается и начинает затирать область переменных. В результате может начаться полное веселье. Запороло переменные состояний автоматов? Получай наркоманскую логику. Запороло строковые данные — получи бред и кракозябры на экране (мой случай). Запороло видеопамять — здравствуй психоделичные картинки. Впрочем, тут и не в стеке может быть дело. Неправильно обращаясь с указателями можно навертеть такой же поебени. Суть одна — у нас каким то образом похерилась оперативная память. Не зря я полез первым делом проверять код. Но ничего не нашел.

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

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

Итак, делюсь:)

Есть девайс, довольно старый, вполне себе исправно работающий. Иногда зависавший, но это случалось редко и я про это даже не знал. Т.к. быстро поднятое упавшим не считается, потому никто не жаловался. Разрабатывал его не я. Я только взял на доработку и мелкосерийное производство.

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

Пока от заказчика не поступило очередное рацпредложение — избавиться от кабеля, который им приходилось крутить своими силами и перейти на что-то стандартное покупное. Выбор пал на обычный USB кабель. Ну, а чего? Дешевый, доступный, жил хватает, экранирован. Чего бы нет? А то, что по нему не USB сигнал пойдет, дак никого волновать не должно. Он все равно внутри будет. Старый разъем я убирать не стал, чуток раздвинул дорожки, чуток подвигал детальки на плате. Да уместил усбешник рядышком. Еще надо было еще пошаманить с алгоритмом отслеживания напряжения и его измерения амплитуды. Тоже все просто и элементарно. Дописать пару функций в код. Код там неплохой, так что это все было легко и просто.

MISRA — это Motor Industry Software Reliability Association группа разработавшая стандарт языка Си для ответственных встраиваемых систем. Для таких как автомобильная или авиационная техника, разных опасных производств. Где цена программной ошибки может быть очень высока. Это набор ужесточающих правил для языка Си. Есть версия и для С++, но не суть. Вся прелесть в том, что MISRA C поддерживается некоторыми компиляторами и если добавить соответствующие ключи, то они будут проверять код еще и на соответствие MISRA C, например IAR. Есть и отдельные анализаторы кода на соответствие стандарту.

Ну, а сама суть стандарта в том, чтобы осложнить жизнь разным быдлокодерам и любителям красиво повыебываться в коде:) Там, например, запрещено пихать в заголовок for все кроме стандартных опций жизнеобеспечения цикла. Запрещены стандартные типы вроде char или int которые зависят от архитектуры. Только жестко описанные типы вроде uint8_t. Запрещены switch без default , а case и if/else без заключения содержимого в { } блоки. Запрещена указательная арифметика и все в таком духе. Таких правил там штук под двести. Настоящий концлагерь для кодера, где ничего нельзя:) Зато сделать тупую ошибку становится сложней.

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

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

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

Также настоятельно рекомендуется на выходящие и входящие линии данных поставить по резистору, это не позволит внешней части платы жестко дергать за GPIO внутренний островок. Ставить надо в места где отмечено зеленым, например. У меня разводка еще не до конца завершена, поэтому ничего там нет, но это временно.

Это довольно эффективно подавит помеху.

Ну и как проще всего сделать такую землю в Eagle CAD (в других CAD должно быть аналогично).

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

▌Измерить толщину сиськи
Изначально в проекте было заложено вот такое решение:

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

Ну, а дальше все просто. У оптопары H11L1M внутри стоит триггер Шмитта, т.е. есть некоторый гистерезис на включение и выключение. Включается он при токе через его светодиод примерно в 1мА, а выключается на токе 0.8мА.

Если посмотреть осциллограмму тока на светодиоде, сняв ее с резистора R35, то увидим такую картину для 220 вольт:


Разрешение 50мВ на деление, триггер стоит на 80мВ по спаду.

Включаться он должен на 100мВ, а выключаться на 80мВ, что будет 1мА и 0.8мА соответственно. Курсорами выделены моменты включения и выключения. Разница по времени, dx = 8.38ms

Если снизить напряжение до 110 вольт, то:

dx уменьшится до 6.94ms т.е. А что такое миллисекунда для микроконтроллера тикающего на мегагерцовых частотах? Да колоссальная величина! Замерить ее точно таймером в режие захвата не составляет проблем. Дальше сунуть в память таблицу соответствия и, казалось бы, все круто? Да, но не совсем…

Решение дешевое, простое. Но не слишком точное. А в ряде случаев его вообще не получится применить.

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

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

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

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

С батарейным питанием все замечательно, кроме того, что оно кончается, а энергию надо тщательно экономить. Хорошо когда устройство состоит из одного микроконтроллера — отправил его в спячку и все. Собственное потребление в спящем режиме у современных МК ничтожное, сравнимое с саморазрядом батареи, так что о заряде можно не беспокоиться. Но вот засада, не одним контроллером живо устройство. Часто могут использоваться разные сторонние периферийные модули которые тоже любят кушать, а еще не желают спать. Прям как дети малые. Приходится всем прописывать успокоительное. О нем и поговорим.

▌Механическая кнопка
Что может быть проще и надежней сухого контакта, разомкнул и спи спокойно, дорогой друг. Вряд ли батарейку раскачает до того, чтобы пробить миллиметровый воздушный зазор. Урания в них для этого не докладывают. Какой нибудь PSW переключатель то что доктор прописал. Нажал-отжал.

Вот только беда, ток он маленький держит. По паспорту 100мА, а если запараллелить группы, то до 500-800мА без особой потери работоспособности, если конечно не клацать каждые пять секунд на реактивную нагрузку (катушки-кондеры). Но девайс может кушать и поболее и что тогда? Приматывать синей изолентой к своему хипстерскому поделию здоровенный тумблер? Нормальный метод, мой дед всю жизнь так делал и прожил до преклонных лет.

▌Кнопка плюс
Но есть способ лучше. Рубильник можно оставить слабеньким, но усилить его полевым транзистором. Например вот так.

Тут переключатель просто берет и поджимает затвор транзистора к земле. И он открывается. А пропускаемый ток у современных транзисторов очень высокий. Так, например, IRLML5203 имея корпус sot23 легко тащит через себя 3А и не потеет. А что-нибудь в DPACK корпусе может и десяток-два ампер рвануть и не вскипеть. Резистор на 100кОм подтягивает затвор к питанию, обеспечивая строго определенный уровень потенциала на нем, что позволяет держать транзистор закрытым и не давать ему открываться от всяких там наводок.

Когда то, лет так 7 назад (охренеть, как давно то) я снимал видяшку про аналоговый осциллограф , и все хотел после сделать то же самое, но с подробным разбором цифрового и его фич. И вот, в связи с наличием свободного времени (вы заметили, да), я это наконец сделал. Постарался все расписать с примерами, что и зачем нужно. Что, как и когда можно использовать. В качестве примера используется мой DS1042CD, но справедливо практически для любого ЦЗО, а в общих принципах и для аналоговых тоже.

▌Освоившим только кнопку AUTO посвящается:))))

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

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

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

▌Клапан
В двух словах, в нашей канализационной электрике для сантехников диод это клапан. Вот типа вот такого:

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

Для диода это справедливо в той же мере. Есть у диода такой параметр как . Оно для диодов Шоттки составляет около 0.2…0.4вольт, а для обычных диодов порядка 0.6…0.8 вольт.

Из этого знания следует три простых вывода.

1) Чтобы ток шел через диод напряжение на диоде должно быть выше его падения напряжения.

2) Какой бы ток через диод не шел, на нем всегда будет напряжение примерно равное его падению напряжения (собственно потому его таки зовут). Т.е. сопротивление диода нелинейно и падает с ростом тока.

3) Включая в цепь диод последовательно с нагрузкой, мы потеряем на нагрузке напряжение равное падению напряжения диода. Т.е. если вы в батарейное питание на 4.5 вольт для защиты от переполюсовки поставите диод, то потеряете от батареек 0.7 вольт, что довольно существенно. Ваше устройство перестанет работать гораздо раньше чем реально сядут батарейки. А батареи не будут высажены до конца. В этом случае лучше ставить диод Шоттки. У него падение ниже чем у простого (но есть свои приколы). А лучше .

Иногда нужен потенциал ниже нуля, т.е. отрицательное напряжение. Такое бывает нужно в аналоговой технике или, например, чтобы запустить LCD индикатор от низкого напряжения. Контроллер дисплея какого нибудь HD44780 часто отлично работает от 3.3 вольт, но на панели ничего не видно по причине низкого контраста, даже выкрутив потенциометр в землю не удается получить яркие символы. Нужно опустить Vss ниже нуля. На некоторых дисплеях даже стоит специальная схема, генерирующая минус. Но не везде. А тем не менее на простейшей конденсаторной схеме можно сделать такой генератор на ровном месте.

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

На вход ей надо подать прямоугольный сигнал, от нуля до Vcc, а с выхода снимется отрицательный потенциал. Зависящий от частоты, уже от нескольких сот герц там будет -1 вольт, а вообще можно и больше накачать.

В вебинарах «Linux разработка на языке си. Изучаем основное API.» Было кратко упомянуто о gdb-отладчике. Но за 40 минут осветить хотя бы основные моменты использования отладчика не представляется возможным. Поэтому было принято решение записать открытое видео по отладчику gdb. Полезна будет всем кто начинает разбираться в программировании встроенных систем на Linux.

Видеолекция включает в себя использование популярного отладчика *nix системах и разбираются основные темы:

1. Пример отладки простейшей программы.

  • Основные команды.
  • Точки останова (по переменным, по строкам).
  • Переменные, массивы.

2. Дизассемблирование. (в т.ч. и других архитектур).
3. Многопоточная отладка.
4. Отладка дочерних программ.
5. Подключение к работающему процессу.
6. Удалённая отладка. (в т.ч. и других архитектур)
7. Отладка с дампом ядра.

Программы, использованные в видео обитают тут:
Github

Если есть интерес освоить программирование в *nix системах или даже написание модулей ядра (драйверов), то вы можете следить за предстоящими событиями в блоге Сереги , либо написать ему по почте dlinyj(с)gmail.com и вы получите уведомление обо всех планируемых вебинарах. Также он продает записи прошлых вебинаров. А это многие часы видео плото набитых инфой пр программированию в linux.

А я тут начал потихоньку запиливать небольшой курс по моделированию в 3D. Дело я это очень люблю и вы полюбите:)))) В самом деле, 3D принтеры сейчас чуть ли не на каждом углу, ЧПУ фрезер найти не проблема. Для домашнего конструктора раздолье! Но большинство разве что готовую модельку распечатает. А могли бы свои корпуса проектировать, причем не примитив из серии кубик на кубике, а что то посложней. Пора эту тенденцию в корне менять. Для примера я взял Fusion 360, очень уж мне он понравился своей простотой и лаконичностью, в сочетании с возможностями. Но данные методики точно также работают и в Solid Works и в Компас 3D и в Autodesk Inventor (особенно в инвентор, ведь Fusion 360 это облегченный и упрощенный инвентор). Останется только разобраться в интерфейсе, а так все то же самое.

Вот вам плейлист этого курса. Пока тут только несколько видео (причем далеких от 3D ;)), но я буду пополнять.

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

Очень часто можно нарваться на перемаркировку, как, например, я в посте . Там я вместо NCP551SN30 купил перемаркированные под него LP2985-30 в результате получил веселые эффекты.

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

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

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

Потенциал. Ток. Падение напряжения

Вроде бы простое понятие, но я вижу по комментариям и вопросам, что вокруг него столько непонимания, что мне уже надоело. Надо с этим что то делать, буду теперь всех ссылать сюда, вместо того, чтобы каждый раз разжевывать одно и то же. Вообще это первейшее понятие теории цепей. Без его осознания на уровне спинного мозга во всей электротехнике делать просто нечего. Оно настолько основное, что его даже в школе на физике преподают, насколько я помню. Но видимо настолько невнятно, что не доходит. Пришла пора раскопать ржавую трубу канализационной электроники и бить ей по голове тем, кто до сих пор тупит в этих понятиях. :) Оригинальная тема в любом учебнике по ТОЭ, даже для СУЗов, занимает хорошо если страничку. У меня же получилась огроменная статья, такая что Капитан Очевидность просто щенок по сравнению со мной, бойтесь! А еще там полно повторений, ибо повторение мать учения.
Импульсные

При разработке девайса часто приходится колхозить к нему еще и питание. Если штука маломощная, то втыкаем какой нибудь LD1117-ADJ и не паримся. Если помощней, то можно импульсничек собрать на MC34068 или чем посовременней.

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

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

▌YEC SD200
Совершенно случайно нарвался на эту пепяку. Кто производитель неизвестно. По крайней мере я нагуглить не смог. Но эта сборка буквально наводнила Али и прочие китайские развалы. Я купил на али, там их полно . Цены смешные от 100 до 200р за штуку, в зависимости от тиража и типа доставки. И это при том, что микросхема на которой все собрано в рознице от 100р до 300р. А еще дроссель, плата и прочие радости.

Что характерно, они все продаются паяные. Т.е. видно следы монтажа, а также термические повреждения нижней пластины. У меня складывается впечатление, что где то в Китае в утиль пустили ОГРОМНУЮ партию неких железок где эта штука стояла. Ушлые китайцы разобрали их на запчасти и продают по цене лома практически. А еще на них нигде не найти официальную документацию. Только скриншоты оной на алиэкспрессе. Т.е. это что-то внутреннее или очень уж нестандартное. Так что гребите пока есть.

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

▌FreeRTOS?
Почему именно она? Она популярна, она Free и она портирована на огромное количество архитектур, под нее существуют плагины для Keil и IAR и всякие примочки для PC. При этом она довольно легкая и функциональная.

Я не буду вам сейчас тут расписывать все эти прототипы функций, порядок записи, технические тонкости и прочее. Это все есть в технической документации и в замечательном цикле статей Андрей Курница, что был в журнале Компоненты и Технологии в 2011 году. PDF статьи вы найдете в конце.

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

Если знаете аналогичные сборники от других вузов — набрасывайте в комменты или кидайте мне в почту [email protected]