Рубрика «микроконтроллеры» - 9

Светодиод, таймер и прерывания на RISC-V с нуля (на примере GD32VF103 и IAR C++) - 1

Сегодня речь пойдет о модном — о RISС-V микроконтроллере. Я давно хотел познакомиться с этим ядром и ждал когда появится что-то похожее на STM32 и вот дождался, встречайте — китайский GigaDevice — GD32V.

Инфраструктура для этого микроконтроллера не такая обширная как для STM32, но есть все необходимое для того, чтобы начать с ним работать. Благо отладочные платы можно заказать на аликекспресс, например, вот тут: Longan Nano GD32VF103CBT6 RISC-V MCU

Китайцы продвигают для этого микроконтроллера среду разработку Platform IO, которую можно поставить как расширение под Visual Studio Code. Но мы не будем её использовать, это ведь не по инженерным понятиям, мы же инженеры и хотим разобраться во всем сами. Поэтому давайте попробуем запустить плату на IAR, написав все с нуля.

Кстати, IAR раздает отладочный комплект (отладочная плата + отладчик I-Jet + 30 Дней полная лицензия) IAR RISC-V GD32V Evaluation kit. Вот тут можно оставить заявку Request for Development Tools. Не уверен, что они посылают комплект всем желающим, но я получил в течение 5 дней. Спасибо им за это.

Ну что же, кто заинтересовался, добро пожаловать под кат

Читать полностью »

image

С каждым годом курсовые для моих студентов становятся все объемнее. Например, в этом году одним из заданий была разработка метеостанции, ведь только ленивый не делает метеостанции, а студенты они по определению не ленивые, поэтому должны её сделать. Её можно быстро накидать в Cube или собрать на Ардуино, но задача курсового не в этом. Основная задача — самостоятельно, с нуля разобраться с модулями микроконтроллера, продумать архитектуру ПО и, собственно, закодировать все на С++, начиная от регистров и заканчивая задачами РТОС. Кому интересно, здесь пример отчета по такому курсовому

Так вот появилась небольшая проблема, а именно, бесплатный IAR позволяет делать ПО размером не более 30 кБайт. А это уже впритык к размеру курсового в неоптимизированном виде. Анализ кода студентов выявил, что примерно 1/4 часть их приложения занимает FreeRtos — около 6 кБайт, хотя для того, чтобы сделать вытесняющую переключалку и управлялку задачами хватило бы, наверное… да байт 500 причем вместе с 3 задачами (светодиодными моргунчиками).

Эта статья будет посвящена тому как можно реализовать Очень Простой Планировщик(он же SST), описанный в статье аж 2006 года и сейчас поддерживаемый Quantum Leaps в продукте Qp framework.

С помощью этого ядра очень просто реализовать конечный автомат, и оно очень хорошо может использоваться в небольших проектах студентами (и не только), которые могут получить дополнительно 5 кБайт в свое распоряжение.

Я попробую показать как можно реализовать такой планировщик самому. Чтобы не сильно перегружать статью, рассмотрю переключение контекста на CortexM0 у которого нет аппаратного модуля с плавающей точкой.

Все кто заинтересовался и хочет понять как можно переключать контекст, добро пожаловать под кат.

Читать полностью »

Умные пайетки - 1
В статье расскажу о том, как мы разрабатывали миниатюрное электромеханическое цветовоспроизводящее устройство для элементов умной одежды и систем адаптивного камуфляжа.
Читать полностью »

В ожидании часов спроектировал девайс на STM32. По функциональности задумывалось реализовать простой диктофон или плеер и посмотреть на сколько возможна обработка звука на STM32F103 семействе, хотя бы с использованием Fixed-Point

STM-32 Минимальная аудио плата - 1

Для реализации минимальной аудио платы я взял контроллер который имеет ЦАП, АЦП и может работать с СД картой не только по SPI но и желательно через SDIO. STM32F103RCT6 подходит.
Заказал 5 штук на Али за 7$ с копейками, на случай если что-то пойдет не так. Дисплей и горсть электретных микрофонов лежит в запасах. Кварцевые резонаторы думаю взять в ЧипДип

Разрабатывать в среде разработки STM32CubeIDE32 очень удобно. Можно сконфигурировать HAL в CubeIDE, а потом делать схемотехнику соединений

STM-32 Минимальная аудио плата - 2

Читать полностью »

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

  1. Требующий больших ресурсов микроконтроллера и не требующий жесткого реального времени графический интерфейс пользователя (GUI).
  2. Потребляющая немного ресурсов и работающая в жестком реальном времени аппаратная часть прибора.

И как правило, переход на новую серию микроконтроллеров определялся улучшением GUI: больше цветов, выше разрешение, более сложные элементы дизайна. Одно время была мысль использовать в качестве графического интерфейса какую-нибудь плату Raspberry.

Но с появлением у STM новой линейки микроконтроллеров STM32MP1 мои терзания закончились и вот что пока получилось.
Читать полностью »

Продолжение проекта по замене медиасистемы Toyota Prius.

В этой статье — PHY, Transport, и доставка пакетов до хост-девайса, которую наконец-то удалось проверить на реальной родной голове приуса.

Быстро сказка сказывается, да не быстро дело делается. Сегодня продолжаю затяжной проект по переделке медиасистемы в Prius, начатый 2 года назад.
Читать полностью »

Привет!

Вот уже несколько лет все свои проекты для линейки микроконтроллеров stm32 я делаю на C++.

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

Во избежание лишних вопросов: я использую связку QtCreator+gcc+gdb+openocd. Как с ней работать, описано многократно, поэтому не буду на этом останавливаться, а вот о своих подходах к работе с микроконтроллерами расскажу подробнее.

На нижнем уровне проекта, как правило, находятся драйвера периферии. С них и начнём.

Читать полностью »

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

Датчик положения выключателя для аварийного освещения - 1

Одно из решений под катом.
Читать полностью »

TMS1000: первый коммерчески доступный микроконтроллер - 1

Мы используем микроконтроллеры, даже не задумываясь об этом, в таких проектах, в которых когда-то нам пришлось бы работать со связкой из логических чипов 74-й серии. Но кто из нас когда-либо задумывался над эволюцией микроконтроллеров? Пора вернуться на несколько десятилетий в прошлое и посмотреть на первый коммерчески доступный микроконтроллер, Texas Instruments TMS1000.
Читать полностью »

В прошлой статье на Хабре я рассказал вам о том, как получил в подарок контроллер Canny3 tiny. Мы «поморгали» светодиодом, понажимали на кнопку. На этом в принципе можно было и закончить эксперименты.

Однако, последние пару недель я слушаю аудиокниги про Ведьмака и поэтому стал намного серьёзней относиться к Предназначению. Согласно информации, указанной на сайте производителя — контроллеры семейства CANNY предназначены в первую очередь для автоматизации различных систем автомобилей и спецтехники.

Проблема в том, что меня с моими «золотыми руками» никто близко не подпустит ковыряться в настоящем автомобиле, да и вообще я автомобилей побаиваюсь. Поэтому пришлось специально для этой статьи прикупить маленькую автомобильную лампу и фоторезистор. Чего только не сделаешь чтобы не разгневать Предназначение.

Сегодня мы подключим контроллер и автомобильную лампу к источнику питания 12В, отправим сообщение в COM-порт, автоматизируем включение лампы в зависимости от освещенности и попробуем в деле высокочастотный ШИМ контроллера.

Тоже верите в силу Предназначения? Тогда милости прошу под кат.

«У Предназначения масса обличий...» или автоматизируем управление автолампой с помощью CANNY 3 tiny и фоторезистора - 1
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js