Рубрика «программирование микроконтроллеров» - 8

В этом тексте я предлагаю порассуждать, что же должно быть в нормальном взрослом firmware репозитории (репе/общаке) безотносительно к конкретному проекту. То есть самые универсальные и переносимые программные компоненты (кирпичики), которые могут пригодиться в практически любой сборке.

Загрузчик

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

Компонент управления логированием

Читать полностью »

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

Читать полностью »

Массажер для головы на базе платформы Стюарта - 1


Целью этого проекта было превратить массажер головы в автоматизированное устройство, которое бы само делало мне массаж. Изначальной задумкой было просто использовать линейный привод или один шаговый двигатель с резьбовой шпилькой для реализации движения вверх/вниз. Однако меня понесло, и я решил сделать так, чтобы устройство могло осуществлять движение во всех направлениях, для чего и была выбрана платформа Гью-Стюарта, обеспечивающая 6 степеней свободы.

  • Не слишком ли это мудрено? Да!
  • Оказалось ли это дорого? Да!
  • Я ненормальный? Да!

Все программные и аппаратные файлы доступны на GitHubЧитать полностью »

От Шёлкового Пути — to the Road to Silicon: в Средней Азии есть RTL-дизайнеры - 1

Оказывается, в Кыргызстане, который в 11 веке стоял аккурат посередине Великого шёлкового пути, спустя тысячу лет появились проектировщики цифровых схем на уровне регистровых передач. Во время семинара Читать полностью »

Штука для намотки трансформаторов. Без Arduino - 1

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

Читать полностью »

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

Язык Dot для Автогенерации Блок Схем Сложных Электронных Цепей - 1

Читать полностью »

Пролог

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

В основу изделия заложены микроконтроллеры ATtiny13 в корпусах DFN10. И как сейчас помню, закупался этими контроллерами в розницу (ДКО Электронщик) по цене 28,7 рублей за штуку (июнь 2020 года). С тех пор многое изменилось…

Читать полностью »

Этот текст адресован когорте программистов на С(ях). Это не академические атрибуты из учебников это скорее правила буравчика оформления сорцов из реального prod(а). Некоторые приемы совпали с MISRA, некоторые с CERT-C. А кое-что является результатом множества итераций инспекций программ и перестроек после реальных инцидентов. В общем тут представлен обогащенный концентрат полезных практик программирования на С(ях).

*1–Все функции должны быть менее 45 строк. Так каждая функция сможет уместиться на одном экране. Это позволит легко анализировать алгоритм и управлять модульностью кода.

*2–Не допускать всяческих Читать полностью »

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

Лента, которую я использую, оснащена яркими RGB-светодиодами SMD 5060 с тремя кристаллами каждый и микросхемами управления UCS512C. Каждый пиксель управляется индивидуально и состоит из шести светодиодов.

Читать полностью »

Это список вопросов на которые должен уметь ответить тот кто программирует микроконтроллеры и заниматься разработкой электроники. Вопросы в частности взяты из технических собеседований при устройстве на работу в разные компании. Постарался отобрать только самые приближенные к практике вопросы, которые можно выделить после 10 лет InSider(ского) опыта. Тут не будет моветонных вопросов из серии "как инвертировать связанный список". Тут всё исключительно только по делу.

По коду

--Зачем static?

--Зачем ключевое слово volatile C

--Всё ли в порядке с кодом?

int square(volatile int *ptr) {
    return *ptr * *ptr;
}Читать полностью »

https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js