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

Большинство GSM модулей работают по интерфейсу UART, посредством AT-команд. Но для серьезных проектов, использование AT команд несет определенные трудности:

• контроль и обработка ошибок
• результат выполнения команды возвращается с длительной задержкой
• необходимо разбирать входящие строки налету

Нужно понимать, что с результатом выполнения команды, в буфер может попасть URC-код от входящего звонка, SMS, принятые данные и пр. Входной буфер с принятыми строками, приходится разбирать опираясь лишь на символы переносов и «эхо» команды, а сами команды зачастую сильно отличаются форматом. По этим причинам, использование AT вносит дополнительную задержку, алгоритмически ее устранить практически невозможно, ведь причина находится в самом модуле и несовершенстве его встроенного ПО

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

Пример PPP-пакета:

STM32 + PPP (GSM) + LwIP - 1
Читать полностью »

Привет geektimes.

О компьютерах BBC Micro я впервые прочитал здесь же, на geektimes. Еще в 80х британская компания BBC запустила обучающий проект, целью которого было повышение уровня компьютерной грамотности. Подробнее можно прочитать в статье компании Plarium "BBC Micro — компьютер, который обыграл ZX Spectrum", но мы вернемся к делам сегодняшним. Долго ли, коротко ли, BBC решила повторить проект уже на современной элементной базе, и выпустила микрокомпьютер BBC Micro:bit.

BBC Micro:bit — детский обучающий микрокомпьютер, первое знакомство - 1

Как можно видеть, современная модель чуть поменьше своего предшественника.

Про Micro:bit уже писали на geektimes, как про то что плату уже можно купить, так и про то, что британским школьникам ее даже раздают бесплатно. Однако здесь на сайте похоже мало кто на ней программировал, пора восполнить этот пробел.

Как это работает, подробности под катом.
Читать полностью »

Введение

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

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

Используем template + constexpr для создания масок регистров периферии микроконтроллера на этапе компиляции (C++14) - 1

Заинтересовавшихся в том, как это можно сделать, прошу под кат.
Читать полностью »

Как положено порядочному гигу у меня есть метеостанция, которую я собрал сам из DHT22, Raspberry Pi и экранчика Nokia, это решение на постоянном питании, передающее данные по Ethernet.

Но теперь мне понадобилась мобильная метеостанция на балкон беспроводная и на батарейках.
В качестве радио модуля я использовал Z-Wave плату Z-Uno, в качестве датчика температуры и влажности решил попробовать Sensirion SHT20 работающий по I2C.

Еще один беспроводной датчик температуры и влажности. Z-Wave плата Z-Uno + Sensirion SHT20 - 1

Материалы и цены:

Материал Магазин Цена
1 Z-Wave плата Z-Uno 5smart.ru 3500 р
2 Датчик Sensirion SHT20 voltmaster.ru 72 р
3 Корпус Gainta G517B voltmaster.ru 160 р
4 Батарейный отсек BH421 2xAAA voltmaster.ru 14 р

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

Несколько слов про «наш» микроконтроллер - 1
В статье речь пойдёт про отечественный МК фирмы Миландр 1886ВЕ5У, будет совсем немного кода и много нытья.

Данный МК построен на ядре PIC17, что заметно при разработке — так как у меня уже есть солидная кодовая база для PIC, мне было чуть проще начать. Также под данный МК можно приобрести отладочную плату — о ней я тоже пару слов напишу.

Я расскажу с какими проблемами столкнулся при разработке прошивки, что понравилось, а что не очень. Всё написанное — моё личное субъективное мнение, потому, сразу оговорюсь, возможно будут описаны проблемы, которые и не проблемы вовсе, а совсем даже особенности и которых можно было бы избежать, обладай я большим опытом разработки.

Итак, поехали.
Читать полностью »

Как сделать context switch на STM32 - 1
Добрый день!
Потоки… Переключение контекстов… Базовая сущность ОС. И конечно, при разработке библиотек и приложений мы всегда полагаемся на то, что реализация потоков безошибочна. Поэтому было неожиданно найти грубую ошибку в переключении потоков для STM32 на ОСРВ Embox, когда уже продолжительное время работали и сеть, и файловая система и многие сторонние библиотеки. И мы даже успели похвастаться о своих достижениях на хабре.

Я бы хотел рассказать про то, как мы делали переключение потоков для Cortex-M, и тестировали на STM32. Кроме того, постараюсь рассказать о том как это сделано в других ОС — NuttX и FreeRTOS.
Читать полностью »

Использование библиотеки stm32cube для создания платформо независимых драйверов - 1
Всем привет!
В данной статье я бы хотел поделиться опытом создания драйверов для платформ серии stm32. Идея заключается в том, чтобы в ОС Embox, не приходилось создавать драйвера для каждой серии платформ STM32F3, STM32F4 и так далее. Ведь кроме того, что это занимает время, новый код неизбежно будет содержать новые ошибки.
Читать полностью »

Продолжаем цикл про основы работы STM32MXCube и программированию микроконтроллеров STM32.
Часть 1.
Часть 2.
Начинаем работать в STM32CubeMX. Часть 3 - 1
В прошлых частях мы освоили базовые настройки микроконтроллера, работу с GPIO, таймером, DMA и DAC. В этой части мы познакомимся с ADC и USB.

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

Когда возникла эта идея, потребовался ЖК индикатор с последовательной шиной. Современного дисплея под рукой не оказалось и для проверки взяли древний ЖКИ с драйвером µPD7225. Когда задача была решена, стало понятно, что доступные сегодня индикаторы всего лишь частный случай.

Применяя микроконтроллеры с небольшим количеством ножек, часто сталкиваешься с проблемой нехватки портов ввода-вывода. Ресурсов микроконтроллера хватает "за глаза" для решения поставленной задачи, а портов — нет. Появляется искушение "нагрузить" уже занятые. В качестве примера рассмотрим простой двухканальный вольтметр на МК tiny13, в котором два порта — аналоговые входы и два — последовательный интерфейс ЖКИ. Расширить функциональные возможности прибора можно, только используя шину передачи последовательных данных (SD). Тем более, что она почти всегда отдыхает. Передача данных в индикатор занимает максимум две-три сотни микросекунд, обновление не чаще чем раз в 300 мС. Линию тактирования (CLK) использовать нельзя по понятным причинам. Простенькому приборчику остро не хватает пары кнопок для переключения режимов и индикации этих режимов, особенно когда невелика разрядность дисплея. Вот и задача...

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

image

Начало двухтысячных — бурное развитие телекоммуникационных сетей. Монтажники, сутки напролет проводившие на крышах, прокладывая кабель до конечного абонента, остро нуждались в устройствах для проверки соответствия кабеля подключенному порту. Остро стояла и проблема “зависания” оборудования. Монтажникам приходилось постоянно курсировать между узлами связи и перезагружать их вручную. Так возникла идея разработки первого SNR-ERD.
Читать полностью »


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