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

Программный контроллер интерфейса на 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.2K
Комментарии 2

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

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

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

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

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

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

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

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

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

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

Моя USB визитка

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

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


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

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

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

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

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

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

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

Подключение 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
Просмотры13.9K
Комментарии 30

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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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


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

Данное повествование — это не ещё одна инструкция о том, как сделать ту или иную вещь, следуя по пунктам, шаг за шагом. Эта история про то, как можно найти свой путь среди огромного множества протоптанных тропинок, отказавшись от готовых инструкций и решений.
Читать дальше →
Всего голосов 56: ↑55 и ↓1 +54
Просмотры15.9K
Комментарии 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
Просмотры16.8K
Комментарии 19

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

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

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

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

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

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

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


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

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

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

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

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


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


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

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