Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Программный контроллер интерфейса на STM32

Программирование микроконтроллеров *
Проблема обратной совместимости, вероятнее всего, будет всегда.

В области разработки электроники порой приходится поддерживать устройства 30-летней давности (а иногда и старше).

В таких аппаратах иногда всё собрано на логике, без каких-либо программируемых элементов.
Кроме того, в старой технике существуют доморощенные интерфейсы, которые не реализуются какими-либо серийно выпускаемыми контроллерами.

В таких случаях совместимые контроллеры приходится реализовывать на CPLD\FPGA\ASIC.

Я подумал, что можно обойтись без указанных выше средств, а именно реализовать контроллер интерфейса программно на микроконтроллере серии STM32F4.
Читать дальше →
Всего голосов 22: ↑21 и ↓1 +20
Просмотры 10K
Комментарии 16

Медиасистема для Toyota Prius (часть 2)

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

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

Быстро сказка сказывается, да не быстро дело делается. Сегодня продолжаю затяжной проект по переделке медиасистемы в Prius, начатый 2 года назад.
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 5.5K
Комментарии 2

Модуль подводного ультразвукового дальномера. Часть третья

DIY или Сделай сам
image

Без раскачки.

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

Ну и то, что теперь это коммерческий продукт, доведённый до стадии производства.
Читать дальше →
Всего голосов 24: ↑24 и ↓0 +24
Просмотры 6.1K
Комментарии 48

Если моя машина мешает

Программирование микроконтроллеров *Производство и разработка электроники *Автомобильные гаджеты
Из песочницы
Разговор был примерно таким.

Саня: «Купил китайских индикаторов, мечтаю устройство собрать, чтоб номер телефона светился, для машины. Только вот не знаю, как их подсоединить. Как-то к микроконтроллеру надо».
Читать дальше →
Всего голосов 25: ↑20 и ↓5 +15
Просмотры 18K
Комментарии 63

История разработки одного дозиметра (Часть 1)

Программирование микроконтроллеров *Производство и разработка электроники *
Из песочницы
Всем привет. Месяца два назад, от нечего делать, решил достать из своего пыльного ящика пару уже давно заброшенных проектов, до которых никак не доходили руки, и один из них был проект дозиметра-радиометра, который я начинал делать года так 3 назад, но из за недостатка знаний так и не довёл его до рабочего варианта. И вот теперь, спустя два долгих и мучительных месяца, хочу рассказать вам с чем я за это время успел столкнуться, и как делать не надо.
Читать дальше →
Всего голосов 27: ↑21 и ↓6 +15
Просмотры 6.2K
Комментарии 8

Моя USB визитка

Производство и разработка электроники *DIY или Сделай сам
Всем привет!

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


Читать дальше →
Всего голосов 72: ↑69 и ↓3 +66
Просмотры 47K
Комментарии 132

История разработки одного дозиметра (Часть 2)

Программирование микроконтроллеров *Производство и разработка электроники *
В продолжении статьи хочу поговорить о тех проблемах, на которые мне указывали люди в комментариях, рассказать о проблеме переноса прошивки с макета на итоговое устройство, т.к. с этим так же возникли проблемы, продемонстрировать работу устройства, и рассказать об изменениях в прошивке, которые были сделаны, и поговорить о планах на будущее. Я согласен со всеми комментаторами, и критика была вполне обоснована, но на данный момент у меня уже нет денег на переделку всего прибора, потому-что по сути, перелопатить нужно практически всё.
Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Просмотры 4.3K
Комментарии 29

Одежда умная, но мы умнее: как мы делали футболку с контролем осанки

Блог компании Питерская Вышка C++ *Программирование микроконтроллеров *DIY или Сделай сам Медгаджеты
Всем привет! Во втором семестре все первокурсники программы «Прикладная математика и информатика» в Питерской Вышке делают командные проекты по С++. Мы занимались разработкой умной футболки.

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

Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Просмотры 4.7K
Комментарии 5

Подключение OLED дисплея ssd1306 к STM32 (SPI+DMA)

Программирование микроконтроллеров *
Из песочницы
В данной статье будет описан процесс подключение oled дисплея с контроллером ssd1306 разрешением 128x64 к микроконтроллеру stm32f103C8T6 по интерфейсу SPI. Также мне хотелось добиться максимальной скорости обновления дисплея, поэтому целесообразно использовать DMA, а программирование микроконтроллера производить с помощью библиотеки CMSIS.

Подключение


Подключать дисплей к микроконтроллеру будем по интерфейсу SPI1 по следующей схеме:

  • VDD-> +3.3В
  • GND-> Земля
  • SCK -> PA5
  • SDA -> PA7(MOSI)
  • RES-> PA1
  • CS-> PA2
  • DS-> PA3

imageimage

Передача данных происходит по возрастающему фронту сигнала синхронизации по 1 байту за кадр. Линии SCK и SDA служат для передачи данных по интерфейсу SPI, RES — перезагружает контроллер дисплея при низком логическом уровне, CS отвечает за выбор устройства на шине SPI при низком логическом уровне, DS определяет тип данных (команда — 1/данные — 0) которые передаются дисплею. Так как с дисплея ничего считать нельзя, вывод MISO использовать не будем.
Читать дальше →
Всего голосов 40: ↑39 и ↓1 +38
Просмотры 16K
Комментарии 30

Еще немного RISC-V

Программирование микроконтроллеров *
Из песочницы
Я занимаюсь программированием микроконтроллеров. И не только пишу для них программы, а по большей части программы для программаторов. И хотел поделиться небольшой радостью заработавшего мк. Вдруг кто-то сейчас мучается с gd32vfxx.
Читать дальше →
Всего голосов 20: ↑19 и ↓1 +18
Просмотры 6.7K
Комментарии 0

Прошивка для фотополимерного LCD 3D-принтера своими руками. Часть 1

C *Программирование микроконтроллеров *3D-принтеры
image

… или как я изобретал собственные велосипеды с преферансами и гейшами на свой вкус — писал с нуля прошивку для фотополимерного принтера. На данный момент прошивка уже вполне работоспособна.

За основу была взята продающаяся на Алиэкспресс плата MKS DLP, для которой производитель дает схему и исходные коды прошивки, которые я отверг в пользу написания всего с нуля.
Статья получается очень уж большой, поэтому я решил разбить ее на две части. В этой части будет предыстория и описание самодельного GUI для сенсорного дисплея. В конце будут ссылки на сам предмет издевательств и на репозитории Гитхаба.
Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Просмотры 3.3K
Комментарии 21

Прошивка для фотополимерного LCD 3D-принтера своими руками. Часть 2

C *Программирование микроконтроллеров *3D-принтеры


Продолжение статьи о написании своей прошивки для фотополимерного LCD 3D-принтера.
В этой части продолжу описывать этапы своего проекта:
2. Работа с USB-флэшкой и файлами на ней
3. Управление шаговым двигателем для движения платформы.
Читать дальше →
Всего голосов 20: ↑20 и ↓0 +20
Просмотры 2.4K
Комментарии 4

Прошивка для фотополимерного LCD 3D-принтера своими руками. Часть 3

C *Программирование микроконтроллеров *3D-принтеры


В предыдущих двух частях я рассказал о том как делал GUI, заводил управление шаговым двигателем и организовывал работу с файлами на USB-флэшке.

Сегодня я напишу о процессе печати, выводе печатаемых слоев на экран засветки и об оставшихся, не таких существенных вещах:

4. Вывод изображений слоев на дисплей засветки.
5. Всякая мелочь типа управления засветкой и вентиляторами, загрузки и сохранения настроек и т.п.
6. Дополнительные возможности для комфорта и удобства.
Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Просмотры 3.2K
Комментарии 39

Свой путь в мире, где есть готовое решение для всего

Программирование *Разработка мобильных приложений *Программирование микроконтроллеров *Умный дом DIY или Сделай сам


Я стал счастливым обладателем новых часов. Тех самых, которые, наверное, было бы правильнее называть компьютером с ремешком, чем часами, но всё же. В спальне, над кроватью была LED лента, которая управлялась с пульта. Как обычно бывает, когда он был нужен, пульт постоянно был где угодно, но только не под рукой. «А что может быть ближе, к рукам, чем часы?» — подумал я и начал потирать лапки, подобно мухе на стекле…

Данное повествование — это не ещё одна инструкция о том, как сделать ту или иную вещь, следуя по пунктам, шаг за шагом. Эта история про то, как можно найти свой путь среди огромного множества протоптанных тропинок, отказавшись от готовых инструкций и решений.
Читать дальше →
Всего голосов 56: ↑55 и ↓1 +54
Просмотры 16K
Комментарии 13

Низкоуровневое программирование STM32: от включения питания до «Hello, World»

Блог компании RUVDS.com Ненормальное программирование *Программирование микроконтроллеров *DIY или Сделай сам
Перевод
В этом материале я хочу рассказать о том, как писать программы для микроконтроллеров (Microcontroller Unit, MCU) Cortex-M, вроде STM32, используя лишь набор инструментов ARM и документацию, подготовленную STMicroelectronics. У некоторых читателей может появиться вопрос о том, почему кому-то это может понадобиться. Если вам эта идея, на первый взгляд, не показалась очень уж страшной, то, возможно, вам будет интересно то, о чём пойдёт речь в этом материале. И, кстати, подумаем о том, кому и зачем это может пригодиться.

Конечно, разрабатывать программы для MCU STM32 можно с помощью существующих фреймворков. Это может быть ST HAL, обычный CMSIS, или даже что-то, более близкое к Arduino. Но… что тут увлекательного? Ведь, в итоге, тот, кто пользуется каким-то фреймворком, полностью зависим от документации к нему и от его разработчиков. И, с другой стороны, если документация к STM32 кажется кому-то, работающему с этой платформой, так сказать, бредом сивой кобылы, то можно ли говорить о том, что этот человек по-настоящему понимает данную платформу?



Поэтому давайте поговорим о низкоуровневом программировании STM32 и доберёмся от включения питания STM32 до «Hello, World».
Читать дальше →
Всего голосов 49: ↑39 и ↓10 +29
Просмотры 20K
Комментарии 19

Что делать, если ты уже научился программировать микроконтроллеры?

Программирование микроконтроллеров *
Привет, Хабровчанин.

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

На данный момент я работаю программистом уже 3 года, и до недавнего времени, я не видел, что делать дальше. Однако, тогда я повстречал человека с 20+ лет стажем программирования встраиваемых систем, и общаясь с ним, я выделил некоторые аспекты, в которых можно развиваться. Здесь я и хочу поделиться ими, а также свои личным опытом. Я ни в коем случае не хочу никого учить, я просто поделюсь своими наработками, а ты уже сам решай, полезны эти советы или нет.
Читать дальше →
Всего голосов 30: ↑12 и ↓18 -6
Просмотры 7.8K
Комментарии 87

К вопросу о сложении или как я нашел ошибку в gcc (на самом деле нет)

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

Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий.


Вчера, просматривая новый комментарий к своему старому посту о реализации сдвигов компилятора gcc для МК, обратил внимание на интересную ссылку godbolt.org/z/lW6rk8. На ней демонстрируется разница в коде, порождаемом компилятором для знаковых и без-знаковых кардинальных типов. Решил я немного поэкспериментировать с приведенным кодом и обнаружил интересные особенности компилятора, о которых и сообщаю сообществу.

Итак, мы видим две функции, которые сравнивают некую величину х и ее же, увеличенную на 1 и сообщают о том, какая из них больше. Подавляющее большинство читателей уже поняло, в чем дело, но для тех, кто забыл курс введения в программирование, напомню.
Для тех, кто решил освежить базовые знания
Всего голосов 18: ↑16 и ↓2 +14
Просмотры 4.2K
Комментарии 3

На распутье — Ардуино, Cи или Ассемблер?

Программирование микроконтроллеров *Электроника для начинающих

Сначала короткая предыстория появления этого поста. Относительно давно, помигав светодиодом, захотелось сделать что-то полезное. Так появился Беспроводной программируемый по Wi-Fi комнатный термостат с монитором качества воздуха и другими полезными функциями. Как назло, в это время перестал работать мой промышленный термостат. Меня выручил еще сырой макет, наспех спрятанный в картонную коробочку. За время отопительного сезона напрягал лишь один недостаток прототипа – это необходимость таскать по квартире удлинитель 220В и кабель, который всегда путался под шваброй ногами. Поэтому решил сделать нечто похожее, но автономное, притом, с питанием от батареек, как в серийном образце.


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


Приступая к задаче, для меня было очевидно одно – вряд ли программы промышленных автономных устройств составлены на платформе Arduino IDE. Где все спрятано в громоздкие тяжеловесные библиотеки, а простые коды (скетчи) занимают в редакторе несколько десятков строк, делая работу в этой среде комфортной и не требующей особых усилий. Уточню сразу – дальше речь о выборе языка программирования между Ардуино, Си или Ассемблером. "Язык Ардуино"- это сленг для краткости. Нет такого языка программирования. Если увидите тут и дальше "язык Ардуино", то — это "Arduino IDE — интегрированная среда разработки для Windows, MacOS и Linux, разработанная на Си и C ++"(Википедия).

Читать дальше →
Всего голосов 18: ↑11 и ↓7 +4
Просмотры 5.8K
Комментарии 35

Предельная скорость USB на STM32F103, чем она обусловлена?

Системное программирование *Программирование микроконтроллеров *Компьютерное железо
У данной статьи тяжёлая история. Мне надо было сделать USB-устройства, не выполняющие никакой функции, но работающие на максимальной скорости. Это были бы эталоны для проверки некоторых вещей. HS-устройство я сделал на базе ПЛИС и ULPI, загрузив туда «прошивку» на базе проекта Daisho. Для FS-устройства, разумеется, была взята «голубая пилюля». Скорость получалась смешная. Прямо скажем, черепашья скорость.



Но я же крутой, у меня теперь есть USB-анализатор (его разработка была описана в блоке из нескольких предыдущих статей). Посмотрев логи, я понял, что похоже, знаю, почему скорость невозможно поднять, даже если STM32F103 обслуживает исключительно USB и ничего больше. Даже начал писать о результатах… Но потом решил, что кому-то это будет не интересно, а кто-то скажет, что и так это знал.

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

Итак, давайте выясним, почему именно STM32F103C8T6 не может прокачать по шине USB данные на скорости 12 мегабит, заняв всю ширину предоставленного канала, и можно ли с этим что-то сделать.
Читать дальше →
Всего голосов 61: ↑59 и ↓2 +57
Просмотры 8.9K
Комментарии 73

Электронный уровень для бурения ям и скважин

Программирование *Программирование микроконтроллеров *Разработка под Arduino *Производство и разработка электроники *DIY или Сделай сам

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

Читать далее
Всего голосов 10: ↑7 и ↓3 +4
Просмотры 4.2K
Комментарии 5