Site Loader

Обучение на STM32 в массы / Хабр

Небольшая предыстория

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

Мое обучение началось, когда я два года назад заинтересовался темой микроконтроллеров и инженер, у которого поинтересовался насчет них, выдал мне плату 300х200мм и сказал, что в ней стоит контроллер STM32F217ZGT6 и на этой плате есть все необходимое для обучения. «В общем, освоишь ее — все остальное покажется фигней» (он, правда, не сказал, что для моргания светодиодом надо настроить SPI, о котором на тот момент я даже не слышал). Спустя три не очень напряженных месяца бесплотных попыток, осознания слабости навыков программирования и огромного количества прочитанных статей пришлось все же раскошелится на STM32VLDISCOVERY и способом копирования программ и экспериментов с ними дело наконец-то пошло, но все равно медленно.

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

Да, знаю, знаю, от многих инженеров слышал, что с темой «отладочная плата» «будь я преподавателем, я бы тебя завалил на защите», но все же считаю, любая идея имеет право на жизнь, так что всем, кому интересно, прошу читать далее.


Я в курсе, что существует множество статей, где написано, что, где и как. И как работать с регистрами, как понимать, что они делают и т.д. и т.п. Для меня (может, от большого ума) многие такие статьи были все равно не понятны и выбраться за пределы моргания светодиодом без примеров рабочего кода я не мог довольно долго. Плюс ко всему в даже циклах (по 6-7 штук) статей не всегда прослеживалась система, многое не разжевывалось (чего мне сильно не хватало), а самое главное — они заканчивались, не закрыв тему до конца, оставив после себя еще больше вопросов.

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

Жизнь показала, что времени у меня было отнюдь не полгода, но все же все время, отведенное на диплом, почти закончилось, совсем скоро защита, но как не удивительно все не только готово, но и почти на 100% протестировано (на живых людях в том числе).

На выходе получилось следующее:

1. Сам курс (методическое пособие по-научному)

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

2. Отладочная плата на контроллере STM32F103RET6

Здесь все немного лучше, чем в первом пункте, плата разработана, заказана (из-за обстоятельств заказывать пришлось срочно) в Резоните, компоненты заказаны, спаяна ручками (честно скажу, никакое видео не передаст ощущения первой пайки LQFP64) и протестирована (большее ее часть заработала сразу же). Но это макет и, конечно, не обошлось без накладок: проводков, переходников и других различных «костылей», но заказать вторую ревизию я, к несчастью, не успею, да наверно и не стал бы, для защиты диплома, уверен и этого хватит.

Так что ниже я расскажу более подробно об этой отладочной плате.

Придя на первую работу в качестве разработчика электроники, я столкнулся с одним интересным мнением и, как оказалось, оно весьма распространено. Это мнение звучало примерно так: «Вот я программист и программирую микроконтроллеры, схемотехнику не знаю и знать не хочу, паять, кстати, тоже не умею». Пообщавшись с группой программистов вне фирмы, понял, что человек с моей работы далеко не одинок в своем мнении и хоть я его и не поддерживаю, понять и уважать мнение окружающих стоит, тем более это отлично вписывалось в тогдашнюю концепцию отладочной платы «все на борту». В связи с этим плата получилось достаточно «жирненькая», получила название STM32SB (SB-StudyBoard) V1.0b. Ниже разберем, что в нее вошло.

1. Микроконтроллер
Исходя из того, что я работал с микроконтроллером STM32F103RET6, он и был выбран для проекта.

2. Схема питания и аппаратный USB контроллера
В этом микроконтроллере есть встроенный USB, который было решено вывести на отдельный разъем.

3. Спикер

Было решено ввести для освоения ШИМ модуляции и обучению написанию мелодий.

4. Цифровой индикатор и сдвиговый резистор
Для одновременного освоения динамической индикацией и сдвиговым регистром было решено их совместить.

5. Светодиоды
Светодиоды, что может быть лучше? Только трехцветные светодиоды, на которых можно освоить плавную смену цветов.

6. ЖК-дисплей
Стандартный ЖК-дисплей на 2 строки по 16 символов для освоения параллельного интерфейса.

7. Клавиатура
Матричная клавиатура, это нужно знать и уметь.

8. Расширитель портов ввода-вывода

Много портов ввода-вывода не бывает, а тут еще и I2C освоить можно.

9. Электронный термометр
Датчик температуры по 1-Wire, полезная вещь и ценный опыт работы с ним может пригодиться.

10. Электронный потенциометр
На этой вещице можно освоить полноценный SPI и попробовать сделать замеры изменения напряжения через АЦП.

11. Реле
Хоть это и на уровне поморгать светодиодом, но все же приятно услышать знакомый щелчок, правда?

12. Ключевые транзисторы


Так же на уровне моргания светодиодом, но вдруг кому принцип не понятен.

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

14. Преобразователь WIFI-UART(esp8266)
В схеме преобразователь участвует как разъем, также он указан и здесь. Используется уже довольно нашумевший модуль esp8266.

15. Преобразователь USB-UART
USB это всегда круто, сдесь используется чип CP2102.

16. JTAG и SWD
Ну куда же без этих вещей.

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

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

Вот список моих «косяков», того, чего я не заметил, забыл или даже не знал при разработке этой платы:

1. Понял, что пины SWD расположены с странном порядке и хоть работе платы это не мешает. Услышал, на мой взгляд, правильное мнение, что их стоит располагать так, как они расположены на STM32VLDISCOVERY, чтобы избежать недоразумений у нового пользователя.

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

3. Я разработал свой логотип для этой платы, который хотел перевести в PCB и разместить на плате, но забыл.

4. Для экономии места во второй ревизии платы я бы разместил некоторые не используемые пользователем SMD компоненты на нижней стороне платы.

5. Понял, что для более удобной разводки цепей с кварцевыми резонаторами было бы удобно заменить их на SMD.

6. Забыл подписать, где JTAG и SWD, так же у них не показано, как их подключать и если для JTAG и его разъемом BH-20 все не так сложно, то с SWD ситуация несколько опасней.

7. При разработке футпринта ЖК-дисплея вышел казус и отверстия оказались слишком малы для болтов М3.

8. У преобразователя CP2102 перепутаны выводы RX и TX. Так как я привык, что в документации приводится пример подключения относительно микроконтроллера, а не внешнего устройства, пришлось перерезать таки 2 дорожки.

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

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

11. Ну и, как водится, «хорошая мысля приходит опосля». Так, уже после получения платы я понял, что стоило сделать размер ее подходящий хоть под какой-нибудь корпус — видимо придется доработать во второй ревизии.

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

Напоследок покажу вам 3D модель этой платы:

И для сравнения фотографии ее же, как она получилась «в живую», вид с верху:

И вид с боку, чтоб было видно побольше «костылей»:

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

Спасибо за внимание!

Рубрика: STM32 | Radiotech.kz

Статьи по STM32, это основное семейство контроллеров, с которым я работаю.

STM32

Posted on

Наконец я взялся и закончил новый перевод из книги Mastering STM32, на этот раз я взялся за главу про АЦП (ADC). Остальные мои переводы, можно…

Читать далее

STM32

Posted on

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

Читать далее

STM32

Posted on

Давно хотел сделать перевод именно этой главы, еще со времени, когда сделал первый перевод главы по SPI (уже год прошел), и вот, это время пришло….

Читать далее

STM32

Posted on

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

Читать далее

STM32

Posted on

Добрался я и до третьей части этой объемной главы и здесь будет про особенности управления энергопотреблением микроконтроллеров серии STM32L. Ссылки на другие части перевода: Power…

Читать далее

STM32

Posted on

До сих пор не использовал внутренний EEPROM в STM32L, только режим эмуляции EEPROM в STM32F, и был очень удивлен отсутствием какой-нибудь внятной статьи с описанием…

Читать далее

STM32

Posted on

Продолжаем перевод главы, которая описывает управление питанием в микроконтроллерах STM32. Power Management часть 1. Управление питанием в микроконтроллерах Cortex-MPower Management часть 3. Управление питанием в микроконтроллерах STM32LPower Management часть 4….

Читать далее

STM32

Posted on

Power Management часть 2. Управление питанием в микроконтроллерах STM32FPower Management часть 3. Управление питанием в микроконтроллерах STM32LPower Management часть 4. Использование калькулятора энергопотребления CubeMX Я уже…

Читать далее

STM32

Posted on

Хочу рассказать как использовать отладку через консоль SWV в среде Atollic TrueSTUDIO. Меня заинтересовала эта тема тем, что мне стали необходимы продвинутые способы отладки для…

Читать далее

STM32

Posted on

Если вы как я любитель писать на C++ для микроконтроллеров STM32, то наверняка в курсе данной проблемы, а именно то, что при использовании утилиты CubeMX…

Читать далее

Расширенное программирование с микроконтроллерами STM32 (электронная книга)

Расширенное программирование с микроконтроллерами STM32 (электронная книга) | Электор

Похоже, в вашем браузере отключен JavaScript. Для наилучшего взаимодействия с нашим сайтом обязательно включите Javascript в своем браузере.

  • 10% скидка для членов
  • Одобренные продукты
  • 2000+ продуктов

Становиться участником Архив Проекты

€ — EUR

Будьте первым, кто оставит отзыв об этом товаре

Перейти в конец галереи изображений

Перейти к началу галереи изображений

Advanced Programming with STM32 Microcontrollers (Электронная книга)

Будьте первым, кто оставит отзыв об этом продукте

Обзор

Освойте программные инструменты для микроконтроллера STM32

Эта книга основана на проектах и ​​направлена ​​на обучение программным инструментам для программирования микроконтроллеров STM32. Автор Маджид Пакдел разработал проекты с использованием различных сред разработки программного обеспечения, включая Keil MDK, IAR Embedded Workbench, Arduino IDE и MATLAB. Читатели должны иметь возможность использовать проекты как есть или модифицировать их в соответствии со своими потребностями. Эта книга написана для студентов, опытных инженеров и любителей. В книге используются отладочные платы микроконтроллеров STM32, включая STM32F103 и STM32F407. Читатели также должны легко использовать другие платы для разработки на базе ARM.

Подробнее

Обзор

Освойте программные инструменты для микроконтроллера STM32

Эта книга основана на проектах и ​​направлена ​​на обучение программным инструментам для программирования микроконтроллеров STM32. Автор Маджид Пакдел разработал проекты с использованием различных сред разработки программного обеспечения, включая Keil MDK, IAR Embedded Workbench, Arduino IDE и MATLAB. Читатели должны иметь возможность использовать проекты как есть или модифицировать их в соответствии со своими потребностями. Эта книга написана для студентов, опытных инженеров и любителей. В книге используются отладочные платы микроконтроллеров STM32, включая STM32F103 и STM32F407. Читатели также должны легко использовать другие платы для разработки на базе ARM.

Подробнее

Обычная цена €24,95

Участников €22,46

  • Подробности
  • Технические характеристики
  • Загрузки
  • Видео
  • Отзывы

Подробнее

Эта книга основана на проектах и ​​направлена ​​на обучение программным инструментам, лежащим в основе программирования микроконтроллеров STM32. Автор Маджид Пакдел разработал проекты с использованием различных сред разработки программного обеспечения, включая Keil MDK, IAR Embedded Workbench, Arduino IDE и MATLAB. Читатели должны иметь возможность использовать проекты как есть или модифицировать их в соответствии со своими потребностями. Эта книга написана для студентов, опытных инженеров и любителей. В книге используются отладочные платы микроконтроллеров STM32, включая STM32F103 и STM32F407. Читатели также должны легко использовать другие платы для разработки на базе ARM.

Расширенное программирование с помощью микроконтроллеров STM32 включает:
  • Введение в простые в использовании программные инструменты для STM32
  • Доступ к функциям STM32
  • Практическое, целенаправленное обучение
  • Полный код доступен онлайн
  • Легкое создание практических проектов
Темы:
  • Широтно-импульсная модуляция
  • Последовательная связь
  • Сторожевой таймер
  • I²C
  • Прямой доступ к памяти (DMA)
  • Программирование конечного автомата
  • АЦП и ЦАП
  • Внешние прерывания
  • Таймеры и счетчики

Технические характеристики

Дополнительная информация
19527
Английский
Электор Диджитал
Маджид Пакдел
215
ПДФ

Видео

Отзывы (0)

Пока нет отзывов. Будьте первым кто оценит этот продукт.

Ваш отзыв о программе Advanced Programming with STM32 Microcontrollers (Электронная книга)

книг STM32 Botland — Robotic Shop

Сортировать по

Прозрачный

Просмотр продуктов 0

Фильтр

  • Новый
    • Новый
    • Новый
    • Новый
    • Новый
    • Новый

      Все новые продукты

      • В продаже!
      • Акция
      • Цена снижена
      • Акция
      • В продаже!
      • Акция
      • Цена снижена
      • Акция
      • Цена снижена
      • Акция
      • В продаже!
      • Акция
      • Цена снижена
      • Акция
      • Цена снижена
      • Акция
      • В продаже!
      • Акция
      • Цена снижена
      • Акция
      • Цена снижена
      • Акция
      • Цена снижена
      • Акция

      Все рекламные продукты

      Микроконтроллеры STM32, представленные на рынке более десяти лет, приобрели множество преданных поклонников, которые ценят их за большую вычислительную производительность, мощный вариант выбора различного количества контактов, объемов памяти и периферийных устройств, а также – не менее важную Любителям и профессиональным разработчикам – низкие цены в розницу.

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *