Темы будущих уроков по STM32

На волне вчерашнего поста https://pikabu.ru/story/18_podrobneyshikh_urokov_po_programm...


Есть идеи по написанию уроков по различным темам в разрезе STM32. Приглашаю @DmitryAR, @witiliar, @XanderEVG, @Arimf, @Alexey9, @slonofil, и @AlexGyver к обсуждению. Сам я занимаюсь разработкой и проектированием автоматики для отопительных систем на биотопливе, готов говорить в этом разрезе.


Собственно не вижу смысла говорить об основах языка, вроде типов данных. @AlexGyver это уже осветил. Но может стоит это преподнести в разрезе C99, а не C++?


Вот темы, которые я бы мог осветить, по разделам:


Основы программирования в разрезе C99 и STM32:

- #define: хитрости и приёмы

- SWITCH/CASE или IF/ELSE: когда и где применять

- Битовые операции: хитрости и приёмы


Фишки в разрезе STM32:

- FreeRTOS: планировщик, семафоры, стэки

- CubeMX и HAL: как сохранить переносимость кода, как искать нужные функции, где искать примеры и прочее

- Настройка таймеров, их различия, где искать информацию в документации по их параметрам

- RTC

- ADC и DAC

- Обработчик ошибок с задержками с использованием FreeRTOS (собственная библиотека)

- Простая Round Robin База данных (собственная библиотека)



Среда программирования и аппаратная отладка:

- Настройка собственной среды под Linux и Windows

- Настройка Sublime Text, System Workbench for STM32, KEIL

- Отдельно по KEIL: стилизация под Monokai, дебагинг, трэйсинг, настройка компилятора

- Логический анализатор (могу рассказать про Saleae Logic)


Модули:

- Принципы работы шин I2C, SPI. Их достоинства и недостатки. Различные режимы: Polling, Interrupt, DMA

- Watchdog: IWDG и WWDG - назначение, настройка

- Использование 7-сегментных дисплеев: подключение напрямую к МК и с помощью драйвера MAXIM MAX6950/MAX6951 (собственная библиотека)

- SPI EEPROM STM M95xxx (собственная библиотека)

- I2C расширители портов NXP PCA9671 и PCF8574  (собственная библиотека)


Проектирование схем и хитрости:

- Как правильно разводить резонаторы

- Дребезг кнопок: триггеры Шмитта и RS-триггер

- Защита портов (в разрезе дискретных и аналоговых для токовых петель)

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

- Реле: электромагнитные и твердотельные. Схемы подключения и различия использования

- В разрезе твердотельных реле особенно хочу остановиться на снабберных цепях

- Энкодеры

- Токовая петля

- Onewrire

- RS485 и Modbus (может имеет смысл рассмотреть их отдельно). По Modbus могу преподнести материал по адаптации FreeModbus Slave и собственную реализацию Modbus Master с использованием DMA и FreeRTOS

- Подключение датчика температуры PT100 напрямую (без звезды) с использованием ОУ в схеме стабилизации тока

- Фазовое регулирование напряжения: датчик нуля, табличные расчёты, таймеры


Проектирование готовых изделий:

- Проектирование плат в KiCAD: принципы работы, создание деталей, 3D-моделей и прочее

- Проектирование готового изделия в FreeCAD: сборочный чертёж, 3D-модель и т.д.


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


Ну и на закуску, вот несколько готовых изделий:

Темы будущих уроков по STM32 Arduino, Программирование, Микроконтроллеры, Stm32, Длиннопост, Ремонт техники
Темы будущих уроков по STM32 Arduino, Программирование, Микроконтроллеры, Stm32, Длиннопост, Ремонт техники
Темы будущих уроков по STM32 Arduino, Программирование, Микроконтроллеры, Stm32, Длиннопост, Ремонт техники
Темы будущих уроков по STM32 Arduino, Программирование, Микроконтроллеры, Stm32, Длиннопост, Ремонт техники
Темы будущих уроков по STM32 Arduino, Программирование, Микроконтроллеры, Stm32, Длиннопост, Ремонт техники

Сообщество Ремонтёров

7.3K постов42.1K подписчиков

Добавить пост

Правила сообщества

ЕСЛИ НЕ ХОТИТЕ, ЧТОБЫ ВАС ЗАМИНУСИЛИ НЕ ПУБЛИКУЙТЕ В ЭТОМ СООБЩЕСТВЕ ПРОСЬБЫ О ПОМОЩИ В РЕМОНТЕ, ДЛЯ ЭТОГО ЕСТЬ ВТОРОЕ СООБЩЕСТВО:


Посты с просьбами о помощи в ремонте создаются в дочернем сообществе: https://pikabu.ru/community/HelpRemont

К публикации допускаются только тематические статьи с тегом "Ремонт техники".

В сообществе строго запрещено и карается баном всего две вещи:

1. Оскорбления.

2. Реклама.

В остальном действуют базовые правила Пикабу.

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий
Я уже давно захотел сделать схему на stm32. В силу малого опыта сего дела, куча ошибок. Схема переразводилась уже раз дцать. Проект интересный, но нужна помощь. Можешь глянуть?
раскрыть ветку (25)
Автор поста оценил этот комментарий

Почему бы и нет. В чём смысл проекта?

раскрыть ветку (24)
Автор поста оценил этот комментарий
Умный усилитель: регулировка громкости, пульт, дисплей, энкодер, включение.
Первая модель ещё относительно простая. Во второй хочу реализовать управляемый toslink.
раскрыть ветку (23)
Автор поста оценил этот комментарий

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

раскрыть ветку (22)
Автор поста оценил этот комментарий
Не не, аналоговая часть полностью на мне, её я решил. С мозгами траблы.
раскрыть ветку (21)
Автор поста оценил этот комментарий

Ну показывайте =)

раскрыть ветку (20)
Автор поста оценил этот комментарий

https://easyeda.com/editor#id=40003490ed60441c956671a8528bc4...

Всё подписано, даташиты подкреплены. Очень на данный момент интересует вопрос по питанию дисплея от трёх вольт, надо ли согласовывать через "брошенный" чип TXB0108PWR?

раскрыть ветку (19)
Автор поста оценил этот комментарий

Кстати, а что это у вас на PF0 и PF1 заведено? Какая-то хитрая система. Плюс питания на эмиттер оптопары... И почему вы не делаете подтяжку в МК? Нафига ставить внешние резисторы, если есть подтяжка в МК?


Если вам надо туда подтяжку на ноль и оптопары +3.3В, то делается иначе:

Иллюстрация к комментарию
раскрыть ветку (3)
Автор поста оценил этот комментарий

PF1 это всего-навсего кнопка встроенная в энкодер. А PF0 это датчик включения ПК, чтобы не включать и не выключать в ручную. Вот такой вот финт ушами. :)

Я ещё думал регулировку громкости из ПК сделать, но потом понял что мне лень так париться.

раскрыть ветку (2)
Автор поста оценил этот комментарий

Тем более внешняя подтяжка не нужна. Настройте PullUP и PullDown в МК. Ну и схему с оптопарой переделайте.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Уже, обновите страницу.

Автор поста оценил этот комментарий

Вот ещё, как я делал питание STM32F030F4:

Иллюстрация к комментарию
Автор поста оценил этот комментарий

Ну вот сходу, что мне сразу бросилось в глаза:

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

2) Подтяжку R1-R2  для I2C уменьшить. Я для питания 3,3В и коротких линий ставлю максимум 3K3, на длинных не больше 1K5

3) Подтяжка R8 на NRST не нужна, в общем, в МК уже есть подтяжка. Но я для страховки ставлю не меньше 10K, а то и 100K.

4) К питанию EEPROM U7 добавить развязывающих конденсаторов: керамику на 0.1uf и тантал на 1uF (поверьте =) )

5) Прям возле питания дисплея поставьте дополнительный кондер 10-22uF

6) Не пойму, что за кондёр в снаббере, но уточню, что нужен именно металлоплёночный, керамический не подойдет. Ну и резистор ни в коем случае не проволочный и минимум на 1Вт.


Ну и к самому вопросу. Судя по даташиту, минимальный уровень на ногах дисплея - 3.0В, у вас 3.3В. Входы у МК толерантны к 5В, так что всё должно работать. Хотя я бы не мучался с параллельным интерфейсом, а подцепился бы по I2C, к такому дисплею есть же модули I2C на PCF8574


Сейчас пока работы навалило, позжей ещё гляну.

раскрыть ветку (13)
Автор поста оценил этот комментарий
Входы у МК толерантны к 5В, так что всё должно работать.

Далеко не все входы. У меня в корпусе TSOP20, у него к 5 вольтам толерантны только 20, 19, 18, 17, 3, 2. В моём случае как раз RS и E которые будет выдавать дисплей.

http://www.st.com/content/ccc/resource/technical/document/da...



Меня волновал вопрос контрастности, я где-то читал что надо -1,5 вольт для её регулировки городить. 

раскрыть ветку (10)
Автор поста оценил этот комментарий

Упс, мой косяк. Но вам же не надо данные с дисплея считывать? Тогда можно поставить триггер Шмитта между МК и дисплеем.


Вот скрин, делал давненько такой дисплей, но подключал по I2C. Контрастность резистором, яркость через ШИМ, вход BL на транзистор. Или пином замкнуть для 100% яркости.

Иллюстрация к комментарию
раскрыть ветку (9)
Автор поста оценил этот комментарий

Ну ладно. Вон как добавил. Так?

Если вы можете блиц-правки делать, их прямо по ссылке вроде можно сделать? Редактирование доступно?

Я сделал резервную копию.

раскрыть ветку (8)
Автор поста оценил этот комментарий

Я сам думал халка менять на что помощнее, понавешал деталей, не вытянет халк, он всего 3w. Я даже думал чтобы халк выключался при включении основного блока. Основной источник питания у меня тоже импульсный, однако и экранировка и огромные дроссели по рецепту "Майорова" на выходе должны шум нивелировать.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Ну окей, раз вы в теме и в курсе =)

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку