В этом тексте я написал о некоторых подходах к организации кода для микроконтроллеров.
Основная идея - массив наша основная скрепа.
Главные достоинства представленной архитектуры - это простота поддержки, сопровождения и масштабирования кодовой базы.
Embedded SW/Firmware Engineer
КодоГенератор Линейных Отображений (как ускорить создание ASIC драйвера)
В программировании микроконтроллеров на Си часто приходится писать драйверы для умных и навороченных ASIC чипов с управлением по I2C/SPI/MDIO интерфейсам.
Обычно перед запуском эти чипы надо правильным образом сконфигурировать.
Такие чипы всегда оперируют с реальными физическими величинами. Одновременно с этим ячейки памяти этих ASIC чипов - дискретные, двоичные. Поэтому все производители микросхем кодируют эти переменные бинарными кодами разной разрядности.
В этом тексте я показал как можно делать интерпретаторы этих величин.
Обзор AудиоКодека NAU8814YG
Аудио кодек по сути это цифро-аналоговое устройство, где есть пара ADC + DAC. На входе обычно есть сумматор на операционных усилителях для подмешивания аналогово сигнала с разных проводов, есть еще аналоговые усилители. Высокоскоростной многоканальный интерфейс: I2S или TDM. И интерфейс I2C для того чтобы всем этим добром управлять.
В этой заметке я написал о своём опыте работы с ASIC аудиокодеком NAU8814.
Гидроударный Насос
Существует такое остроумное приспособление как гидротаранный насос. Его ещё называют гидро ударный насос или hydraulic ram.
Это чисто механический прибор, который преобразует кинетическую энергию потока жидкости в потенциальную энергию жидкости. Происходит это благодаря искусственно создаваемым гидравлическим ударам.
Это, пожалуй, единственный в технике пример, когда гидроудар приносит пользу, а не вред.
В этом тексте я расскажу о своём опыте конструирования экземпляра этого прибора.
Зачем Программисту Микроконтроллеров Линейная Алгебра (или Как Найти Угол Между Векторами?)
В программировании микроконтроллеров часто возникает задача найти угол между векторами.
Это всяческие встраиваемые системы, где есть подвижные, вращающиеся детали: PTZ камеры, поворотные платформы для радаров, турели, ветрогенераторы, солнечные панели, SDR обработка и прочее.
В данном тексте я приведу простое и понятное решение задачи вычисления угла между векторами на языке программирования Си.
Зачем Программисту Микроконтроллеров Диофантовы Уравнения
Школьные уроки математика не прошли даром.
Вот, настал день, когда впервые пришлось решить на работе Диофантовое уравнение.
Почему Сборка с Помощью Есlipse ARM GCC Плагинов это Тупиковый Путь
В программировании микроконтроллеров часто используют Eclipse с плагинами.
Главным образом от незнания языков скриптов сборки (Make, Cmake, Ninjia и т п).
В этом тексте я напишут почему способ сборки из Eclipse c ARM плагинами — это тупиковый путь в разработке больших промышленных командных проектов.
И как можно частично компенсировать недостатки Eclipse с плагинами.
Автоматическая Генерация Конфигураций для Make Сборок (или Лучшее Программирование — Конфигурирование)
При разработке программного обеспечения придется столкнуться с тем, что надо как-то передавать конфигурации для данного проекта.
Проблема в том, что конфигов становится так много, что можно нечаянно забыть какой-то важный конфиг.
В этом тексте представлен механизм автоматической конфигурации сборки.
Обзор Протокола ISO-TP [ISO 15765-2]
Как известно канальные CAN пакеты могут быть размером максимум 8 байт. Одновременно с этим, с более высоких уровней модели OSI могут поступить запросы передать огромные пакеты [ jumbo frame(ы) ]. Как же разрешить это противоречие?
Эту ситуацию призван распетлять протокол ISO-15765-2 (или попросту ISO-TP ).
В этом тексте я выполнил обзор протокола ISO-TP.
Обзор Переходника USB-CAN (SYS TEC USB-CANmodul1)
Как известно, в широкой продаже не существует компьютеров с интерфейсов CAN. Зато во всех настольных компьютерах и LapTop(ах) есть USB. В связи с этим для отладки оборудования с CAN нужны всяческие переходники USB-CAN.
В этом тексте я покажу как можно проверить это изделие.
Датчик объёма на основе резонанса Гельмгольца (микрофон = датчик объёма)
Что общего между скрипкой и крылатой ракетой ФАУ-1?
Ответ прост - резонатор Гельмгольца.
На основе физических эффектов можно создавать различного рода датчики.
В этом тексте я высказал предложение использовать резонанс Гельмгольца для измерения объёма ёмкостей. Как следствие датчик уровня жидкостей.
ToolChain: Настройка сборки прошивок для микроконтроллеров Artery из Makefile
Настало время освоить очередное семейство микроконтроллеров: от компании Artery Technology.
Компания Artery Technology уже возвела полноценную экосистему для своих процессоров. Есть фирменные отладочные платы, программаторы, документация, исходные коды MCAL и даже кодо генераторы.
В этом тексте я представил пошаговую инструкцию того как запрограммировать микроконтроллер Artery.
Обзор Датчика Ультрафиолетового Излучения LTR-390UV-01
Существует ASIC чип LTR390. Это датчик ультрафиолетового излучения.
Я разрабатываю Солнечный навигатор. Признаком присутствия естественного света у поверхности Земли может как раз служить факт наличия ультрафиолетовых лучей. Поэтому и пришлось разбираться как подключить датчик УФ к микроконтроллеру.
В этой заметке я написал о своём опыте работы с датчиком LTR390.
Автоматическое Обновление Версии Прошивки
В программировании микроконтроллеров новые сборки появляются каждый день.
Какие-то сборки уходят в релиз, а какие-то в циркулируют на разных электронных платах внутри предприятия.
Как отличать прошивки между собой? Как понять, какая прошивка новее, а какая старее?
Проблема в том, что вручную обновлять номер версии прошивки очень утомительно.
В тексте представлен механизм автоматического увеличения версии прошивки
Зачем Программисту Микроконтроллеров Численные Методы?
В программировании микроконтроллеров иногда прямо в коде приходится решать уравнения. Порой решение не получается выразить аналитически.
В математике бывают такие случаи, когда есть функция, которая просто выражается элементарными функциями. А вот обратную функцию выразить аналитически либо очень трудно, либо вообще невозможно.
В тексте показано как применять бинарный поиск для вычисления значений сложной тригонометрической обратной функций.
Изометрическое Черчение в Inkscape
Во время инженерной работы постоянно приходится проектировать заказные детали.
Очевидно, что нужен какой-то векторный редактор для быстрого и простого создания статической графики.
Редакторы 3D черчения как правило платные. При этом есть бесплатные программы для 2D черчения. В некоторой степенью работать на плоскости удобнее, чем теряться в 3D комнате.
В этом тексте представлены приёмы для 3D черчения в 2D редакторе Inkscape.
Как Чинить Программные Ошибки?
В программировании микроконтроллеров регулярно приходится занимаются починкой bug(ов).
При этом все bug(и) уникальные. Поиск причины каждой конкретной осечки это скорее искусство. Починка программ сродни работы детектива.
Есть ли универсальные приемы того как искать причину программных ошибок?
Считаю, что да. Подробности в тексте...
Разбор примера BLE Audio от Nordic Semiconductor (или переходник I2S->BLE-Audio)
Обзор технологии беспроводной передачи данных BLE 5.3.
Представлен разбор примера Ble Audio от Nordic Semiconductor для микроконтроллера nRF5340. Это пример передачи звука по Bluetooth 5.3.
Зачем Программисту Микроконтроллеров Математическая Статистика? (или так ли хороши UWB трансиверы?)
Настал день, когда мне для работы программистом микроконтроллеров наконец пригодилась математическая статистика из ВУЗ(овского) курса по теории вероятностей.
Есть очень интересная технология для автоматического радиоизмерения расстояния. Технология основана на UWB трансиверах. Позволяет измерять время пролёта радиоволны.
В этом тексте написал как я исследовал измерения расстояния, при помощи ASICа UWB трансивера DWM1000.
Как собрать Си программу в OS Windows
Иногда возникает ситуация, когда надо что-то посчитать согласно сложному алгоритму прямо на LapTop PC. При этом сам алгоритм написан на Си.
Это может быть цифровой фильтр, дискретное преобразование Фурье, генератор QR кода, кусок линейной алгебры с векторами, какое-то тригонометрическое вычисление, программный модулятор, статистическая обработка случайной величины.
Да всё, что угодно! То есть Вы хотите использовать язык Си как гибкий и быстрый калькулятор в Windows.
В этом тексте представлено минимальное окружение для сборки Си кода в Windows.
Information
- Rating
- 93-rd
- Location
- Москва, Москва и Московская обл., Россия
- Registered
- Activity