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

Программирование микроконтроллеров *

Учимся программировать микроконтроллеры

Сначала показывать
Порог рейтинга
Уровень сложности

Запуск I2S трансивера на Artery

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

В этом тексте я написал про то, как самому написать System Software уровня HAL для ARM Cortex-M4 совместимого микроконтроллера.

Как отлаживать такую работу и на что обратить внимание при запуске I2S на Artery MCU.

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

Новости

Как Проинициализировать Микроконтроллер [часть 2]

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

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

В этом тексте я написал как автоматически выявить правильную последовательность инициализации

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

Прошиваем программу не только в начало FLASH памяти STM32

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

Знаете ли вы куда попадает ваша программа после того, как вы нажали кнопку RUN или DEBUG в IDE? Если да, то как изменить этот адрес или даже выйти за пределы постоянной памяти и прожигаться сразу в оперативную память? Небольшая статья, которую я сам в свое время не нашел и потратил много часов и нервов на сбор этой не хитрой информации.

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

Щупаем первый 8-битный процессор от Intel — 8008

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

После того как я собрал систему на самом первом процессоре от Intel (4004), логичным, в каком-то смысле, шагом было перейти к Intel 8008. Концепция проекта та же - компилируем ассемблерный код на обычном ПК, отправляем скомпилированный бинарник на системную плату через USB, а современный микроконтроллер (stm32) эмулирует ПЗУ и ОЗУ для реального 50-летнего процессора, вставленного в DIP-сокет.

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

Так же как и в случае с 4004, моя плата эмулирует максимально возможный объем памяти, который нативно адресуется процессором. В данном случае, это 16Кб с некоторыми нюансами (об этом отдельно расскажу ниже).

И, конечно же, было занятно сравнить 4004 и 8008 в небольшой нишевой задачке. Да, сравнение весьма условное и какие-либо выводы по нему сделать сложно, но всё равно результаты вышли интересными.

Читать далее
Всего голосов 56: ↑55 и ↓1+66
Комментарии6

Истории

Как студенты двигатель Стирлинга строили

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

Хочу рассказать вам историю, как студенты двигатель Стирлинга строили.. Результат вам не скажу). Пусть он будет интригой, как и для нас, на протяжении всего проекта.

Читать далее
Всего голосов 26: ↑15 и ↓11+9
Комментарии17

Фокусы с опторазвязкой

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

Нюансы оптронной развязки, борьба с её недостатками и интересный на мой взгляд костыль: как разогнать скорость копеечной опторазвязки и наполучать других бонусов. Я не силён в рекламе, поэтому на месте КДПВ будет сразу тема статьи.

Читать далее
Всего голосов 116: ↑115 и ↓1+151
Комментарии62

MIK32 АМУР на плате ELBEAR ACE-UNO от ELRON, мой опыт или как три дня загружать Blink

Время на прочтение4 мин
Количество просмотров4.6K

Здравствуйте все! ✋

Наконец-то ко мне пришёл долгожданный MIK32 АМУР на плате ELBEAR ACE-UNO от ELRON. Нормально так мне с ним пришлось по возиться, в какой-то момент уже подумал что прислали "кирпич", оказалось просто есть кое-какие нюансы о которых я сейчас расскажу.

Микроконтроллер долгое время не хотел определяться, с начала не заработал PlatformIO, библиотека MIK32 не установилась, выскакивала ошибка. Теперь я знаю что невнимательно прочёл инструкцию, но тогда не смог установить. В инструкции обратите внимание на ссылки wiki.mik32.ru и сделайте всё в точности как там описано, не спешите (:

Потом я установил MikronIDE, но OpenOCD писал ошибку, мол к JTAG ничего не подключено. Точнее ошибку сначала выдавал Uploader Микрона, а он в свою очередь обращался к OpenOCD.

Ошибка сначала выглядела так.

Читать далее
Всего голосов 28: ↑22 и ↓6+26
Комментарии39

Бюджетный умный климат: как я заставил дешевый кондиционер поумнеть и слушаться Алису

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

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

Я установил в свою 3-комнатную квартиру три кондиционера DEXP AC‑CH9ONF. Это самый простой и бюджетный вариант, я не ожидал от него особых возможностей.

Поначалу все устраивало, но учитывая, что в квартире реализован простенький умный дом на основе Zigbee-контроллера SLS, хотелось бы управлять кондиционерами дистанционно.

Управление по IR командам сразу забраковал, так как это неудобно. Почему?

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

Вторичная жизнь вторичных часов. На Arduino

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

Сегодня разберём решение небольшой практической задачи: запустим советские вторичные электромеханические часы максимально простым способом. Попутно узнаем несколько простых и не очень вещей из области электроники и программирования микроконтроллеров.

Сложность проекта в самый раз для начинающих, уже сделавших свои первые шаги, и теперь нуждающихся в чуть более сложных следующих шагах.
Читать дальше →
Всего голосов 58: ↑57 и ↓1+77
Комментарии99

Решатель Игры Set на Микроконтроллере

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

Существует одна остроумная настольная игра, называется Set. Это игра на внимание.

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

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

Нюанс, из-за которого ваш I2S не работает…

Время на прочтение3 мин
Количество просмотров14K

... и о котором почему‑то нигде не написано.

Некоторое время назад я сел осваивать интерфейс I2S для работы с аудио ЦАПом высокого качества. За спиной у меня уже был большой опыт работы с различными SPI микросхемами, I2C микросхемами, методы работы в блокирующем режиме, неблокирующем режиме через прерывания, неблокирующем режиме через DMA. В общем, мне казалось, что меня уже ничем не удивить. Но за это мы и любим мир электроники и компьютеров — он сможет удивить даже самого искушенного разработчика.

Читать далее
Всего голосов 44: ↑35 и ↓9+33
Комментарии43

Zigbee датчик давления воды EFEKTA_PST_V1

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров11K
Приветствую всех читателей Habr, хочу рассказать вам о своем новом проекте EFEKTA_PST_V1. Это небольшой датчик для измерения давления жидкостей и газов с питанием от двух батареек ААА, работающий по протоколу zigbee. Такие датчики используются в системах отопления для безопасности и обнаружения протечек или необходимости подпитки, простого мониторинга. Так же такие датчики могут отслеживать наполнение накопительных емкостей, работу насосного оборудования и водоподготовки, использоваться в системах автополива для контроля давления и расчета продолжительности полива.


Читать дальше →
Всего голосов 19: ↑18 и ↓1+23
Комментарии42

KC868-AG Pro: эпицентр умного дома (ESP32, Zigbee, Tuya, IR, 433 MHz и прочее)

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


Какое-то время назад я разбирал в своём блоге контроллер для управления устройствами умного дома KC868-AG. Сейчас компания Kincony выпустила новую, значительно модернизированную версию KC868-AG Pro с поддержкой Zigbee 3.0 и Tuya в двух диапазонах 2,4 ГГц и 433 МГц. Плюс контроллер имеет IR и RF433 управление и приём сигналов и прочие возможности.

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

А теперь разберём как это устроено и как это работает (там есть множество интересных и неочевидных нюансов).
Читать дальше →
Всего голосов 19: ↑19 и ↓0+26
Комментарии30

Ближайшие события

Техникум: Автоматическое Aрхивирование Aртефактов

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

В программировании микроконтроллеров на выходе получается довольно много артефактов. Всё это надо как-то связать и заточить в архив, чтобы всегда можно было ассоциировать *.hex с нужным для него *.map и *.elf.

Логичным шагом является архивация всех этих файликов в *.tar архив. Один архив очень удобен при транспортировке программного обеспечения.

В этом тексте я написал как это можно провернуть средствами утилиты GNU Make.

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

Аппаратный DIY аудиомикшер

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

Меня это задолбало - управлять громкостью, если источников звука больше одного, особенно больно, когда это надо сделать быстро, за пару секунд. Если играете в динамичные игры с дискордом, да ещё и музыку фоном включаете, думаю вы прекрасно знаете эти неудобства. И вот, в один прекрасный день я наткнулся на deej...

Читать далее
Всего голосов 91: ↑90 и ↓1+104
Комментарии84

Нужно больше ламповых табло!!! Запускаем дисплей от пейджера NJE-105

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

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

Однако, взяв его с полки, я обнаружил, что это табло-бегущая строка!

Поначалу я подумал, что оно светодиодное, а зачем оно такое мне? Тем более, что у меня уже есть шикарные плазменные часы дома. Ну и поставил было его на полку обратно. Раздавшийся в этот момент звон дал понять — внутри есть струны, а значит, это самый что ни на есть настоящий ВЛИ!

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

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

Детей недостаточно учить только питону и ардуине

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

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

Но учить канонично по книжкам 1970-х не обязательно. Например, ну зачем ребенку руками собирать генератор тактового сигнала на микросхеме 555, если его теорию он все равно не поймет, а для понимания функции D-триггера понимание работы генератора нерелевантно? Генератор на 555 можно купить уже собранным на AliExpress.

Также можно заменить батарейку на 9 вольт на питание от USB на 5 вольт; поставить толерантные к 5 вольтам светодиоды, не требующие дополнительных резисторов и поставить кнопочки, не требующие подтягивающих резисторов. В результате все сведется к самой сути - логическим элементам и D-триггерам, откуда уже можно переходить на ПЛИС / FPGA. Вот сравните схему сдвигового регистра. Что вы по этому поводу думаете?

Было:

Читать далее
Всего голосов 43: ↑34 и ↓9+40
Комментарии364

KC868-M16v2: мечта ардуинщика (16 токовых каналов, 3 канала напряжения, SD, LAN, POE, дисплей, RTC и SH3x)

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


Помнится, во времена моей пионерской юности я провёл много времени проектируя многоканальные измерители тока и напряжения и отлаживая математику обсчёта данных со всех этих каналов (да, были времена...). И тут, разбираясь что же в очередной раз изобрела компания Kincony в лице KC868-M16v2, я вдруг обнаружил, что это ни что иное, как воплощение моей мечты по железу для подобного измерителя.

То есть теперь все желающие могут попрактиковаться в многоканальном измерении токов потребления различных устройств и открыть для себя много нового и интересного (смайл). Кроме этого, компания Kincony снабдила своё очередное детище кучей фишек типа поддержки microSD карт памяти, сетевого подключения с POE, дисплея, часов реального времени и в качестве вишенки на торте — разъёма для подключения датчиков SH3x.

Да, иногда мечты сбываются…
Читать дальше →
Всего голосов 16: ↑14 и ↓2+19
Комментарии89

Сборка и отладка прошивки IoT-модуля: Python, make, апельсины и чёрная магия

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

Когда имеешь дело с микроконтроллерами, а микроконтроллер — основа нашего IoT-модуля, постоянно приходится собирать и отлаживать прошивку. Пишешь код, компилируешь его, заливаешь на микроконтроллер. Потом надо убедиться, что всё работает как надо: подключить отладчик, подебажить.

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

С вами на связи Фарук Юссуф. Как и прежде, я тружусь инженером-разработчиком электроники и встроенного ПО в Whoosh. Сегодня расскажу историю о том, как мы захотели оптимизировать и расширить процесс сборки и отладки прошивки, не смогли остановиться и в итоге пришли к целому серверу для сборки и специальным удалённым узлам для отладки.

Будет make, Python, vscode, ansible, gdb, orangepi и немного чёрной магии.

Вуншпунш
Всего голосов 15: ↑14 и ↓1+13
Комментарии19

Экран для вывода данных через COM-порт

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров9K
Если у компьютера нет не только монитора, но и даже видео-выхода, а показания датчиков хотелось бы видеть, то решением может быть отправлять данные в виде строки в COM-порт, который будет слушать микроконтроллер и отображать приходящую строку на своём дисплее. Под катом простейшая реализация этого на микроконтроллере ATtiny13 и 0,96'-экране SSD1306 с разрешением 128х32.


Читать дальше →
Всего голосов 19: ↑19 и ↓0+28
Комментарии56
1
23 ...

Вклад авторов