
В первой части мы подготовили среду для легковесной разработки под STM32. Пора приступить к экспериментам.
Учимся программировать микроконтроллеры
В первой части мы подготовили среду для легковесной разработки под STM32. Пора приступить к экспериментам.
Гугл переводит английское слово embarrassment как "смущение", но для британцев это не просто смущение. Для них это сродне ощущение во сне, в котором вы приходите на экзамен совсем не готовым и при этом голым. Когда британцы проводят семинар с какими-нибуть платами в далекой стране, они панически боятся, что плата не заработает и будет embarrassment. Поэтому они стараются использовать один тип плат в фиксированной конфигурации, если всего этого нельзя избежать вообще и просто показывать плату издалека.
В глубине души британцы завидуют русским, которые "able to cope with difficulties". И вот вам свежий пример: когда выяснилось, что на более чем 300 заявок (UPD: сейчас уже больше 600) на Школу Синтеза Цифровых схем в 15 российских кластерах (UPD: уже 19, из них один белорусский) не хватает FPGA плат, группа волонтеров реализовала возможность легкого портирования учебных примеров на зоопарк из более чем 20 типов плат от Intel FPGA, GoWin и Xilinx, с идеей расшириться до 50 типов, с креативным добавлением недорогих внешних устройств.
Для справки - предпусковой подогреватель (далее ПП) двигателя, это устройство, позволяющее прогреть двигатель внутреннего сгорания транспортного средства для облегчения его запуска, не запуская его. И в некоторых случаях, для прогрева воздуха в салоне транспортного средства.
FIFO – ключевая концепция в хардварном дизайне. Понимание работы FIFO необходимо, в частности, для понимания протокола valid/ready, который в свою очередь необходим для организации flow-control как внутри цифровых блоков так и на межблочном уровне.
К сожалению по данной тематике очень мало литературы. Да и что говорить, микроархитектурные концепции достаточно сложно освоить по книгам. Понимание данных концепций это по сути выработка хардварной интуиции приходящая с практикой.
Микроархитектурный тренажер дает возможность «прощупать» хардварные сценарии в пошаговом (интерактивном) режиме, предоставляя детальную визуализацию цифровой логики.
Поскольку тренажер является "фронтендом" для HDL симулятора то на самом симуляторе исполняется реальный, синтезируемый SystemVerilog который можно посмотреть и даже поменять его функциональность.
В электронных устройствах часто бывают тактовые кнопки. Например в Bluetooth колонке пять кнопок: увеличение/уменьшения громкости, перехода в режим загрузчика, остановки звука и прочего.
Обычно кнопок мало, а функционала на кнопки разработчикам хочется добавить много. Поэтому у кнопок иногда бывает два режима: короткое нажатие, долгое нажатие. На каждый режим нажатия прошивка назначает отдельный программный код обработчика.
Очевидно, что firmware должно как‑то однозначно распознавать тип нажатия на кнопку; короткое долгое.
Можно очень красиво и элегантно решить эту задачу прибегнув к конечно автоматной методологии разработки программного обеспечения.
Как известно чтобы стать хорошим архитектором надо изучать чертежи выдающихся архитектурных сооружений: плотина Гувера, Бруклинский мост, Эмпайр Стейт Билдинг.
Этот принцип применим в любой другой области. Например в электронике. Чтобы стать хорошим инженером-электроником надо изучать выдающиеся электронные платы. Вот например есть у меня Bluetooth колонка Clip 3. Всё в ней кажется здорово.
Надо понять как это устроено внутри.
В далёком одиннадцатом классе я захотел сделать свой квадрокоптер. Купил на популярном маркетплейсе платку с несколькими датчиками, выполняющими все необходимые измерения, изучил даташиты, написал простенькую программу, получил удовлетворяющий результат. Но вскоре меня настигли выпускные экзамены, и проект отложился.
Алгоритм работы был малопонятным, потому что основывался на фантазировании и подгоне. Поэтому оценить его надёжность, масштабировать или восстановить для другого датчика было бы сложно.
Затем в универе мне показали линейную алгебру и MATLAB. Мне открылись новые возможности, и создать прототип программы удалось очень быстро.
К тому же у меня есть тяга к относительно научному познанию, и через такую работу я могу потренироваться. Текст же поможет структурировать мысли и сохранить математические выкладки.
До недавних пор для проведение подобных измерений требовалось использовать промышленные приемники/передатчики ультразвука. Только они могли дать приемлемую точность и дальность. Но они были слишком большие и дорогие. Использовать дешевые китайские модули, такие как HC-SR04/US-025, не выйдет. Точность, стабильность, повторяемость результата оставляет желать лучшего.
Ситуацию изменило появление нового чипа CH-201. Его основная проблема заключается в том, что он китайский. Я еще не видел китайский чип с хорошей документацией и хорошей службой поддержки.
На следующих изображениях продемонстрирован результат работы этого чипа.
Продолжаем открытый проект сервоконтроллера MC50.
В предыдущей статье была разработана архитектура управления и написана программа сервопривода. Но регулятор был вручную настроен на определенный тип нагрузки. А что делать если тип и динамика нагрузки неизвестны?
ISO26262 это международный текст, который объясняет как создавать безопасный и высоконадежный встраиваемый софт для мотоциклов, автомобилей, грузовиков и автобусов.
В этом тексте я попробовал разобраться с тем как понять автомобильный стандарт функциональной безопасности ISO26262 в той части, которая относится к требованиям к программному обеспечению (часть 6).
-----
В этом тексте я написал инструкцию того как настроить логический анализатор Saleae производить автоматический синтаксический разбор трафика на шине I2S.
Одноплатные компьютеры стали одним из самых популярных компонентов для проектов как новичков, так и профессионалов в мире электроники. Но для работы с теми же Raspberry Pi нужны достаточно обширные знания как в плане аппаратного обеспечения, так и программирования (хотя бы база). Но если всего этого нет, можно попробовать платы с более низким порогом входа. Одна из них — Cytron Reka:Bit от компании Cytron. О ней сегодня и поговорим.
Обзор аудиокодека MAX9860.
MAX9860 это 24 пиновый ASIC американской компании Maxim Integrated у которого внутри один 16ти битный sigma delta ЦАП, и два AЦП с управлением по I2C. Данные загружаются и выгребаются по I2S.
В тексте я написал свои впечатления от работы с этим чипом. Перечислил достоинства и недостатки микросхемы MAX9860.
Начнем знакомство с подключаемой библиотекой RepkaPi.GPIO, данная библиотека написана на Python 3 и для управления GPIO использует методы, реализованные через SysFS.
В программировании микроконтроллеров часто приходится в UART консоли вводить в прошивку какие-то калибровочные коэффициенты: значения токов, пороговых напряжений, уровней освещений и прочего. Как правило это действительные числа с плавающий запятой в разных форматах.
Потом часто надо анализировать текстовые логи с SD-карты. Надо выхватывать вещественные числа из CSV файлов для дальнейших расчетов.
Для всего этого нужен какой-то надежный переносимый прозрачный и простой алгоритм, чтобы распознавать вещественные числа из строчек.
В этом тексте я представил решение этой задачи.
Как вы думаете зачем в микроконтроллерах есть функция pull-up/pull-down, если можно просто воспользоваться установкой логического уровня push-pull?
Вот типичная ситуация. Вам принесли электронную плату с производства. Крайне вероятно, что на PCB есть какие-то аппаратные баги. Обычно это короткие замыкания на GND/VCC или вовсе непропай.
Как выявить и найти эти бракованные пины?
Вот тут-то нам и помогут подтяжки к питанию/земле на пинах MCU.
Называется эта тема load-detect.
В этом тексте я подробно написал про то, как работает load-detect под капотом.
В разработке электроники часто приходится делать отладку при помощи графических дисплеев. Есть и вовсе законченные устройства с точечными экранчиками.
Проблема в том что у языка Си нет встроенной библиотеки для отрисовки битовых матриц в отдельном окне подобно тому как это есть в Python или C#. Поэтому отлаживают такой код обычно на конечных устройствах.
В этом тексте я написал как можно отлаживать графические дисплеи на DeskTop PC без самого физического дисплея.
Ваш аккаунт