Как стать автором
Поиск
Написать публикацию
Обновить
180.43

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

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

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

Десять распространенных заблуждений, связанных с RISC-V

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

Архитектура RISC-V продолжает набирать обороты, но вокруг нее, как и вокруг любой новой и перспективной технологии, роятся мифы и недопонимания. Многие из этих заблуждений настолько укоренились, что мешают объективной оценке ее потенциала и ограничений. В этой статье мы разберем десять самых распространенных на сегодня мифов о RISC-V. Наш анализ опирается на фундаментальные принципы и подходы, изложенные в классическом труде "Компьютерная архитектура: Количественный подход" (Computer Architecture: A Quantitative Approach), в частности, используя логику разделов "Ошибки и подводные камни". Давайте посмотрим, почему эти убеждения ошибочны и что стоит за ними на самом деле. Всем интересующимся - добро пожаловать под кат!

Читать далее

Настольные деревянные часы

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

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

Читать далее

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

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

Добрый вечер, уважаемые коллеги. Статья будет короткой и возможно натолкнет кого-то на реализацию. У меня получилось.

Недавно разрабатывал код, который рассчитывает значения sin(x), cos(x) и квадратного корня из x, на arm. По сути это была апроксимация рядом Тейлора. Но код написан на Assembler и выполнялся относительно быстро. Изначально предполагалось использовать его для своего станка. Немого позже задался вопросом одновременной генерации sin(x) и cos(x) как сигналов для свертки с исходным. Некоторые предлагали cordic, но я пошел другим путем.

Изначально, моделировал систему дифференциальных уравнений, использующих два умножения и разности для получения sin(x) / cos(x) на каждый, временной отсчет. Фактически, это отклик диффкренциального уравнения на дельта-функцию (единичный импульс) который запускает колебательный процесс. "Синусойды" получились не ортогональными при небольшом количестве отсчетов на период из-за неточности вычисления сдвига фазы. Однако, при использовании длительных последовательностей данный метод может заменить классические методы генерации sin(x)/cos(x) поскольку конечные разности становятся небольшими.

Кроме того на вход дифференциального уравнения можно подать сигнал, который будет раскачивать его как реальный контур. Например, у Вас возникнет желание свернуть сигнал с длинноволновыми последовательностями. В этом случае, можно, просчитывать каждый отсчет sin(x)/cos(x), а можно просто подать входной сигнал с АЦП на вход такого дифференциального уравнения и получить "синхронный интегратор", настроенный на определенную частоту.

Читать далее

Протон-Импульс. Самый защищённый оптический домофон

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров4.7K
Приветствую всех!

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



Итак, в сегодняшней статье поговорим про домофоны «Протон-Импульс». Узнаем, чем же они так примечательны и как же они устроены. Традиционно будет много интересного.
Читать дальше →

Сервер за копейки

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

КДПВ


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


Это так называемые блейд-серверы. Блейд-сервер (от англ. blade — лезвие) – концепция использования нескольких компактных серверов в одной общей корзине (шасси). Некоторые узлы сервера (такие как блоки питания, охлаждение, сетевые адаптеры, управление) вынесены за пределы сервера и сделаны общими для всех. Благодаря этому исключается излишнее дублирование и, соответственно, уменьшаются габариты и общее энергопотребление всей сборки. Увеличивается плотность вычислительной мощности на единицу объема серверной стойки. Из-за того, что единичный блейд-сервер бесполезен без корзины, а в корзине избыточен, они не пользуются спросом на вторичном рынке, а потому стоят весьма недорого. 

Читать дальше →

Программирование ESP32 с ESP-IDF в среде platformio #2

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

Привет, Хабр!

Это третья статья из цикла по ESP-IDF. Ранее мы разобрали стек задач, работу с GPIO и прерывания. Теперь перейдём к очередям FreeRTOS — мощному инструменту для безопасного обмена данными между ISR и задачами. Поехали!

Читать далее

Перепрограммируем заводской Zigbee датчик протечки от компании Tuya

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

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

Читать далее

Решение проблемы мертвого времени с помощью Copilot

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

Этой проблеме я уже посвятил две статьи. Ну, как проблеме — проблеме для меня. Никак не удавалось охватить её целиком, когнитивно и ментально промоделировать. Появление Copilot кардинально всё изменило — ментальные границы раздвинулись, и здесь я выкладываю окончательное решение для семейств микроконтроллеров Synergy и RA8 от Renesas.

Читать далее

Утилита R

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

В программировании часто приходится писать программные компоненты, которые, в общем очень похожи друг на друга по своей структуре и API.

В заметке я представил простую утилиту r.exe для авто-замены токенов в файлах и названиях файлов.

Читать далее

FC7300F8MDT: Lockstep (или как МК выявляет сбои)

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

Системы Lockstep — это отказоустойчивые компьютерные системы, которые выполняют один и тот же набор операций одновременно и параллельно.

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

Читать далее

Дизайн в электронике — кому он нужен? Тем более если это Ардуино, пусть и русская…

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

Так говорили многие, и даже те ребята инженеры, которые занимались схемотехникой... Зачем двигать детали, усложнять схемотехнику ради красивой картинки?

Читать далее

Простой самодельный терменвокс

Время на прочтение8 мин
Количество просмотров5.6K
Картинка Bettmann, Corbis, What's On the Air Company

В первой половине прошлого века появился замечательный инструмент, получивший название «терменвокс» — по имени советского изобретателя Льва Сергеевича Термена. Он позволял излучать интересные «космические» звуки, просто манипулируя руками около антенн этого аппарата.

И если в прежние времена для создания этого аппарата потребовалось бы приложить немалые усилия — хотя бы чтобы собрать и спаять всю эту конструкцию (не говоря уже о том, чтобы собрать её корректно!), — то наше время даёт интересные возможности, которые позволяют создать этот аппарат практически «из воздуха», минимальными усилиями (забегая вперёд: ниже будет самодельная версия — всего из трёх деталей).

В какой-то мере это поэтически перекликается с самой идеей терменвокса — как раз и позволяющего извлекать музыку «напрямую из воздуха».

Итак, поглядим, что же это такое и как такое можно реализовать!
Читать дальше →

Программирование ESP32 с ESP-IDF в среде platformio #1

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

Привет, Хабр!

Это вторая статья из цикла по программированию ESP32 на ESP‑IDF. В первой части мы познакомились с базовой терминологией RTOS и реализовали несколько простых задач (tasks). Сегодня же мы перейдём к работе с GPIO и прерываниями (ISR), а заодно обсудим особенности настройки стека задач в ESP‑IDF (спасибо за совет @0x6b73ca).

Читать далее

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

В русских клубах Америки можно делать не только дискотеки и выступления писателей, но и митапы по FPGA

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

В городах Америки и Канады, где живут много наших соотечественников, существуют русские клубы, в которые ходят на дискотеки и викторины, для игру в мафию и на выступления писателей. В столице Калифорнии городе Сакраменто, где живет около 80 тысяч русских и украинцев, а также есть армянский и молдавский рестораны, таким клубом является Synergy Social Club.

В этом клубе я недавно провел просветительский митап по главной технологии современной цифровой микроэлектроники: маршруту проектирования RTL-to-GDSII для микросхем в массовых изделиях типа смартфонов, и связанной с этим маршрутом технологии FPGA, которые применяются для прототипирования ASIC-ов и обучения в университетах будущих проектировщиков.

Эти технологии полезны в наше тревожное время для надежного трудоустройства в самых разных местах: от производителя ракет Lockheed Martin до производителя айфонов Apple. Вот примеры объявлений:

Читать далее

Альянс RISC-V. Цели создания, основные направления деятельности, проекты

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

Еще несколько лет назад казалось, что на рынке процессорных архитектур перемен не будет: x86 прочно удерживал серверы и десктопы, а ARM доминировал в мобильных устройствах и в микроконтроллерной отрасли. Все новые инициативы выглядели либо нишевыми, либо обреченными на маргинальное существование. Но постепенно стало заметно: всё чаще в новостях упоминается странная аббревиатура — RISC‑V. То NVIDIA заявляет о поддержке, то Huawei инвестирует в разработку процессоров на его основе, то стартапы один за другим анонсируют новые решения, основанные на открытой архитектуре.

RISC‑V за десятилетие прошел путь от академического проекта до реальной альтернативы закрытым стандартам. И его преимущества — открытость, гибкость, отсутствие лицензионных отчислений — сегодня оказываются особенно важными на фоне глобальных технологических и политических изменений.

Россия не осталась в стороне от этой тенденции: для координации усилий по развитию отечественных технологий на базе RISC‑V был создан Российский альянс RISC‑V и настало время представиться и рассказать о том, кто мы такие, как создавался Альянс, кто стоял у истоков его создания и почему эта инициатива важна для технологической независимости страны. Погрузимся в историю и узнаем, основные цели Альянса, его ключевые направления деятельности и рассмотрим наиболее интересные проекты, реализуемые с использованием открытой архитектуры, которая объединила ведущие IT‑компании России.

Читать далее

Задача о пересечении интервалов (или зачем программисту MК стабильная сортировка)

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

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

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

В этой заметка я представил свой алгоритм определения пересечений интервалов и его разбор.

Читать далее

Программирование ESP32 с ESP-IDF в среде platformio #0

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

Привет хабр!
Совсем недавно мне в руки попала плата ESP32 (NodeMCU‑32S). Ранее я уже работал с ESP8266 и даже создавал на ней простейшее веб‑приложение в режиме Station. Делал я все это в ArduinoIDE и был рад обнаружить расширение, которое позволяло организовать мой проект (да и просто в VSCode удобнее работать) - PlatformIO. Именно в PlatformIO я в первый раз увидел фреймворк ESP-IDF и начал потихоньку углубляться в эту тему.

Читать далее

Насколько быстр Intel 8080? Используем чипсет на FPGA чтоб проверить

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

Я люблю вызовы - например, написать код в условиях ограниченных ресурсов: медленный процессор, странный набор инструкций, крохи памяти. У меня уже было несколько проектов такого рода - я запускал тяжелую вычислительную задачу на процессорах, которые уже разменяли пол-века: Intel 4004, Intel 4040 и Intel 8008. Очевидно, что на очереди Intel 8080!

В этой статье я опишу детали проекта по созданию системной платы с чипсетом на основе FPGA, на которой будет запущен Intel 8080A-1 на частоте выше 3Мгц. А также расскажу о том, как писать программы для этого процессора на C, и в финале покажу результаты бенчмарков - Dhrystone и CoreMark.

Читать далее

Настройка SSH для коммитов в репозиторий

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

Итак вам надо клонировать репозиторий с компанейского репозитория и git просит какие-то непонятные пароли.
Знакома ситуация?

В этой заметке я написал как настроить ssh ключи.

Читать далее

О контроллере батареи ИБП (вопрос к читателям Хабра)

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

Среди ИТ специалистов ходит анекдот, что системные администраторы делятся на 10 категории, на тех кто пока не делает бэкап, и на тех, кто уже делает резервное копирование данных. А так как самой частой причиной отказов в ЦОДах является – сбой электропитания, то обеспечение надежного электрического питания для компьютера (да и для любой другой цифровой техники) является наиглавнейшей задачей.

К сожалению, большинство простых (офисных) источников бесперебойного питания выпускаются либо вообще без возможности дистанционного/автоматизированного контроля его состояния (только звуковое оповещение), либо имеют подключение по USB с собственным протоколом связи и проприетарным приложением, которое обладает самым минимумом функций (наверное маркетологи таким образом ненавязчиво подталкивают потребителей к покупке более дорогих моделей своего оборудования).

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

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

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

Читать далее

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