Как стать автором
Обновить
113
63.8

Embedded SW/Firmware Engineer

Отправить сообщение

Обзор датчика освещения BH1750

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров7.2K


BH1750 это простой цифровой чип датчика освещения с I2C интерфейсом от японской компании Rohm Semiconductor.

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



Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии25

RTC: Обзор микросхемы часов DS3231

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров14K

Обзор микросхемы DS3231. Это часы реального времени со встроенным будильником и термометром и даже кварцевым резонатором. В этот тексте я расскажу об особенностях программирования этой микросхемы.

Читать далее
Всего голосов 19: ↑14 и ↓5+14
Комментарии32

Обзор платы Black Pill V2.0

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров11K

PCB Black Pill V2.0 - эта дешевая плата-малютка которая подходит для прототипирования электронных устройств.

В этом тексте я написал с какой стороны подходить к плате Black Pill V2.0. Перечислил особенности аппаратной реализации и перечислил плюсы и минусы этой платформы.

Читать далее
Всего голосов 8: ↑7 и ↓1+10
Комментарии19

Как начертить диск энкодера (или черчение кодом)

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2.8K

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

Однако есть языки программирования для черчения. Вот, например, Asymptote: The Vector Graphics Language отличный вариант для авто генерации чертежей.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии13

Акселерометр = полунавигатор

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров5.5K

Нам очень повезло, что Земля вращается вокруг своей оси!

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

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

Читать далее
Всего голосов 9: ↑5 и ↓4+3
Комментарии31

Обзор контроллера SSD1306 для OLED экранов

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров16K

В этом тексте я представил обзор контроллера графических монохромных OLED экранов SSD1306. В этом тексте я напишу с какой стороны следует подходить к этому ASIC(у). Перечислю достоинства и недостатки дисплея SSD1306.

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии18

Поляризатор = датчик угла

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров7.7K

Поговорим о датчиках угла.

Есть один остроумный и умозрительный способ измерять углы: при помощи поляризаторов.

Всем известен физический эффект поляризации. Это когда берут 2 поляризационные фильтра от фотоаппарата, накладывают их друг на друга и проворачивают. В результате свет то проходит то не проходит сквозь cэндвич из пластинок.

Насколько реально сделать датчик угла на основе закона Малюса?

Читать далее
Всего голосов 28: ↑27 и ↓1+35
Комментарии78

Фоторезистор = Навигатор

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров13K

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

Если взять микроконтроллер, к ADC пину подключить фоторезистор, целый день непрерывно записывать на SD карту показания солнечной освещенности с вкраплениями временных отметок из часов реального времени RTC, то спустя 24 часа можно оценить широту (длительность светового дня) и долготу (фаза светового дня).

Попробуем понять, работает ли эта идея.

Читать далее
Всего голосов 67: ↑62 и ↓5+83
Комментарии127

Отладочная плата NRF5340-DK в качестве программатора J-Link

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.5K

Отладочная плата NRF5340-DK поддерживает программирование и пошаговую отладку внешних плат с микроконтроллерами серий nRF51, nRF52, nRF53. В том числе модули BT40.
В этом случае отладочная плата NRF5340-DK выступает как программатор SEGGER J-Link. Для этого на PCB NRF5340-DK заложен отдельный интерфейсный микроконтроллер (U2) с тремя SWD шинами (к слову тот же чип, что и сам target NRF5340 (U1)).

В этом тексте представлена методичка про то, как прошивать внешние дикие платы отладочной платой NRF5340-DK.

Читать далее
Всего голосов 5: ↑3 и ↓2+3
Комментарии15

Примеры абстракций в технике и повседневности

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров15K

Поговорим об абстракциях. Где их можно заметить в технике и повседневности. Зачем их создают и какая от них польза.

Читать далее
Всего голосов 14: ↑9 и ↓5+7
Комментарии12

Обзор генератора сигналов AD9833

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров13K

Обзор ASIC генератора сигнала AD9833.

Читать далее
Всего голосов 15: ↑7 и ↓8+2
Комментарии10

NVRAM Поверх off-chip SPI-NOR Flash

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров4.6K

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

В этом тексте поговорим о том как можно построить эффективную программную реализацию энергонезависимой Key-Value Map(ки) над дешевой SPI NOR Flash для микроконтроллерных проектов. Суть проста. Нужна NVRAM.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии11

SPI-NOR Flash на примере MX25R6435F

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров6.7K

Обзор Off-Chip SPI-NOR Flash памяти на примере микросхемы MX25R6435FZNI.

Число хранилище для электронных плат. Если расшифровывать маркировку, то внутри 8MByte NOR-Flash память с SPI интерфейсом, питанием 1.65V-3.6V, в корпусе 8-WSON и индустриальном диапазоне переносимых температур (-40°C to 85°C).

Читать далее
Всего голосов 13: ↑5 и ↓80
Комментарии9

Сколько Надо Строк Кода Для Того Чтобы Подписать Артефакты?

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров2.2K

Бывает ситуация, когда надо чтобы прошивка или любой другой артефакт сам сказал в каком состоянии был GIT репозиторий с кодовой базой, когда эту прошивку собирали. Надо как-то добавить в text/rodata сегмент памяти такие метаданные как "из какой ветки собрали прошивку", "какой была контрольная сумма последнего коммита".

Данная подсказка может существенно помочь при сопровождении ПО.

В тексте представлен скрипт, который делает эту работу.

Как вы думаете сколько строк кода надо для подписи прошивки?

Читать далее
Всего голосов 7: ↑3 и ↓40
Комментарии9

Принцип Определения Дальности Между UWB Трансиверами (Конечный Автомат Для DS-TWR)

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров4.4K

Существуют UWB радио трансиверы, которые умеют измерять точное время отправки и приема радио пакетов. Под словом "точно" подразумевается, что с дискретизацией 15ps. В качестве примера можно привести микросхему DW1000. TimeStamp(ы) очень полезная функция так как открывает дорогу для измерения расстояния между трансиверами.

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

Вычисление TOF это чисто программная работа, которая должна осуществляться на уровне Firmware.

#Decawave

Читать далее
Всего голосов 16: ↑15 и ↓1+22
Комментарии23

Обзор технологии Ultra-Wideband на основе трансивера DW1000 (переходник с SPI на UWB)

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров9.3K

В этом тексте я написал с какой стороны подходить к UWB трансиверам.

Обзор технологии Ultra-Wideband (или переходник с SPI на UWB) на примере модуля DWM1000 с DW1000 внутри.

Тут будет перевод ключевых мест из datasheet(а) и набольшие комментарии по чипу в частности.

Читать далее
Всего голосов 19: ↑19 и ↓0+19
Комментарии10

Сборка firmware для CC2652 из Makefile

Уровень сложностиСложный
Время на прочтение37 мин
Количество просмотров4.9K

В этом тексте представлена инструкция настройки ToolChain(а) для работы с микроконтроллером CC26x2 при помощи языка программирования С и компилятора GCC. Сборка осуществляется прямо из Makefile(ов).

Тут же представлена инструкция для настройки пошаговой отладки в консоли Windows.

В принципе, если вы собираете из Makefile, то вам всё равно какой там микроконтроллер и какого он вендора. Для добавления поддержки очередного MCU достаточно написать всего один *.ld и один *.mk файлик.

Во многом по этому сборка из Makefile является предпочтительнее, когда в организации много разнообразного оборудования на разных МК (или просто много сборок) и одна переносимая кодовая база на всё.

Читать далее
Всего голосов 13: ↑11 и ↓2+14
Комментарии18

Градация Навыков в Embedded Программировании

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров14K

В программировании микроконтроллеров нет как таковой общепринятой градации на Junior->Middle->Senior. Не сложилось.

Давайте попробуем вместе разобраться, где же проходит водораздел между Junior->Middle->Senior программистом МК и что справедливо требовать от каждого из них?

Далее речь пойдет в основном про программирование микроконтроллеров. Тут не будет затронут Embedded Linux, FPGA разработка.

Читать далее
Всего голосов 26: ↑4 и ↓22-17
Комментарии98

Настройка Пошаговой Отладки JLink+Eclipse

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров5.1K

Записали прошивку через интерфейс SWD/JTAG и... ничего не происходит. HeartBeat LED не мигает. Логи в UART(е) не появляются. CLI не отвечает. Очевидно, что прошивка где-то зависла.

Что же делать? Как понять, где ошибка?

Тут выручит пошаговая GDB отладка с подсветкой в eclipse.

Читать далее
Всего голосов 2: ↑1 и ↓1+1
Комментарии4

Вывод формулы для двустороннего определения дальности между UWB трансиверами

Уровень сложностиСложный
Время на прочтение4 мин
Количество просмотров1.3K

Настал третий за 12 лет случай, когда в профессии программист-микроконтроллеров понадобилось вспомнить школьную математику. В этом тексте я представил перевод AppNote(а) "The mathematics of two-way ranging". Также добавил свои комментарии в те места, которые неочевидны при первом прочтении.

Тема нужна для определения расстояния между двумя UWB радио трансиверами, которые могут определять моменты времени прихода и отправки радиоволны. Такое умеют делать UWB трансиверы, например чип DW1000 и DW3000.

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии0

Информация

В рейтинге
91-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность

Специализация

Embedded Software Engineer, DevOps
Senior
Git
Bash
CI/CD
C
Embedded system
Programming microcontrollers
Software development
Algorithms and data structures
System Programming
Development of drivers