Category Archives: Начинающим

Глюки контроллера. Ответ на загадку

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

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

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

(далее…)

Read More »

Глюки контроллера

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

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

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

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

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

Сделали платы в JLC, смонтировали партию устройств на десяток штук. Собрали и…

Дискотека, блядь! Это какой то трындец. Аппарат виснет и перезагружается каждые десять минут, хаотично. На индикации полный армагеддон. Кракозябры лезут в экран. Полная каша в показаниях. В общем, на лицо срыв стека. Ну очень похоже.
(далее…)

Read More »

MISRA C

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

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

Так вот, к чему я. Недавно наткнулся на хороший перевод правил MISRA C для IAR. От Андрея Шлеенкова. Вот, делюсь :)

Read More »

Чистая земля в EagleCad

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

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

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

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

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

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

Read More »

Замер сетевого напряжения

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

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

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

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

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


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

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

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

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

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

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

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

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

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

(далее…)

Read More »

Включить-выключить. Схемы управления питанием

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

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

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

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

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

(далее…)

Read More »

Использование цифрового осциллографа

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

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

Read More »

Диод. Часть 2. Немного о конструкции и принципах

Часть 1

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

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

(далее…)

Read More »

Диод. Часть 1

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

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

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

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

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

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

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

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

(далее…)

Read More »

Генератор отрицательного потенциала

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

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

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

(далее…)

Read More »

Использование отладчика GDB

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

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

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

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

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

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

Полезные ссылки:
Кратко о GDB
Пост на хабре
И еще один сайт

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

Read More »

Autodesk Fusion 360. Очень краткий курс

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

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

Read More »

Микросхемы из Китая

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

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

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

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

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

(далее…)

Read More »

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

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

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

Что представляет собой конденсатор? Из учебника физики известно, что это две пластины проводника, а между ними тонкий диэлектрик, чем он тоньше тем лучше конденсатор. Ну вот эту фигню мы и сколхозим из труб. Еще нам потребуется презерватив размера кингсайз, прокатит за диэлектрик. А чего? Воду он не пропускает, сгодится! Возьмем соединим две трубы, а между ними сунем мембрану. Герметично перекрывающую проток, но очень упругую.

Неправда ли похоже получилось? В конденсаторе энергия запасается в электрическом поле, а у нас энергия будет запасаться в упругом элементе мембраны из презерватива. Чем больше давление, тем сильней растягивается мембрана. Рано или поздно давление источника уравновесится противодействием мембраны и процесс встанет. Но всегда можно добавить еще давление и ее растянет еще сильней. И еще, и еще, и еще до тех пор, пока не лопнет. Обьемами камеры куда может упереться мембрана пренебрегаем. (далее…)

Read More »

ТОЭ для старшей группы детского сада. Или как провернуть дедушку Ома в гробу.

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

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

Read More »

Изолированный DC-DC преобразователь MeanWell NSD15-12S5

Люблю MeanWell, добротный китайский бренд делающий хорошие блоки питания. Цена правда довольно высокая. А недавно увидел у них одну интересную штуку — это изолированный DC-DC преобразователь с 12 в 5 вольт (есть и на другие напряжения) и током в 3А. Вот вам его даташитик: NSD15-12S5.pdf

▌Конструкция
Модуль довольно большой и толстый:

Несет на борту алюминиевый радиатор который на полной нагрузке весьма ощутимо греется. Мог бы быть и побольше. Сам модуль не из дешевых, порядка 850 рублей в рознице (на конец 2014 года).

Так зачем он такой нужен?

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

Т.е. исходные 12 вольт превращаются в переменку, прогонаются через трансформаторы, выпрямляются и догоняются до нужного значения напряжения. Зачем такие сложности, ведь у нас и там и тут низкое напряжение? Причин может быть много, одна из которых — защита от помех.
(далее…)

Read More »

Модульный DC-DC преобразователь YEC SD200

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

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

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

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

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

Продается как сама по себе, так и в виде готовых сборок, например таких:

(далее…)

Read More »

FreeRTOS для чайников. Краткое описание.


Бытует мнение, что RTOS это некий хардкор для избранных. Что там все сложно, замудрено и новичкам туда соваться бестолку. Отчасти тут есть доля истины, такие системы крайне сложны в отладке, но и то лишь тогда, когда вы забиваете контроллер под завязку и работаете на пределе оперативной памяти и быстродействия. Тогда да, словить какой-нибудь dead lock или пробой стека можно на раз. И попробуй найти где это случилось в этой асинхронной системе. Но простые задачи на RTOS реализуются еще проще и с меньшим количеством мозга.
 

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

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

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

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

Ну и все сказанное тут справедливо и для большинства других RTOS. Т.к. механизмы в целом все одни и те же и никто ничего нового еще не придумал.
 
(далее…)

Read More »

Видео лекции по электронике

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


 

Если знаете аналогичные сборники от других вузов — набрасывайте в комменты или кидайте мне в почту dihalt@dihalt.ru
 

Так, а вот еще один похожий:
РФПГУ им. Т.Г.Шевченко

Read More »