8-900-374-94-44
[email protected]
Slide Image
Меню

Видео уроки stm32: Программирование микроконтроллеров

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

&nbsp

&nbsp

&nbsp

 

Продолжаем работу с сопроцессором ULP (ultra-low-power processor или процессор со сверхнизким потреблением). На данном уроке мы попытаемся организовать управление ножкой GPIO. Пока мы поработаем с портом GPIO на выход, для чего подключим к нашей схеме светодиод через ограничивающий резистор к ножке…

Подробнее »

 

Сопроцессор ULP (ultra-low-power processor или процессор со сверхнизким потреблением) — это процессор, который остаётся в работе в режиме пониженного энергопотреблении Deep Sleep. В данном режиме основные два ядра контроллера не работают. Также данный процессор является программируемым автоматом конечного состояния (Finite…

Подробнее »

 

  • Raspberry PI
  • |
  • Автор: Narod Stream
  • Опубликовано: 4 апреля 2023

На данном уроке мы установим MajorDomo на Raspberry PI. Напомню, что MajorDoMo — это сервер с визуализацией в веб-интерфейсе для выполнения задач по мониторингу и управления устройствами умного дома (различные датчики, устройства освещения, механизмы управления различными устройствами и тд). В сети очень много…

Подробнее »

 

  • Передача данных
  • |
  • Автор: Narod Stream
  • Опубликовано: 21 марта 2023

На данном уроке мы займёмся настройкой программного обеспечения для функционирования умного дома — MajorDoMo. И настроим мы данный продукт на контроль датчиков температуры, подключенных к контроллеру ESP32, который передаёт с них данные посредством протокола MQTT. Для этого нам потребуется собственно…

Подробнее »

 

  • Передача данных
  • |
  • Автор: Narod Stream
  • Опубликовано: 14 марта 2023

 На данном уроке мы попробуем установить на ПК программное обеспечение для функционирования умного дома — MajorDomo, которое представляет собой сервер с визуализацией в веб-интерфейсе для выполнения задач по мониторингу и управления устройствами умного дома (различные датчики, устройства освещения, механизмы управления…

Подробнее »

 

  • 1-WIRE, Программирование ESP32
  • |
  • Автор: Narod Stream
  • Опубликовано: 28 декабря 2022

Продолжаем работу с протоколом MQTT.

На данном уроке мы попробуем передать (опубликовать) с помощью данного протокола осознанные данные, а именно значение температуры, снятое с датчика DS18B20. С протоколом MQTT мы разобрались в прошлом уроке, а с датчиком DS18B20 мы также умеем…

Подробнее »

 

  • Программирование ESP32
  • |
  • Автор: Narod Stream
  • Опубликовано: 20 декабря 2022

Продолжаем работу с протоколами модели OSI и на данном уроке мы попытаемся создать клиент MQTT. С протоколом MQTT (Message Queuing Telemetry Transport) мы знакомы из уроков по передаче данных этому и этому. Мы знаем, что клиент может быть одновременно и издателем…

Подробнее »

 

  • Передача данных
  • |
  • Автор: Narod Stream
  • Опубликовано: 13 декабря 2022

На прошлом уроке мы познакомились с протоколом передачи данных MQTT (Message Queuing Telemetry Transport). Также мы узнали, что у данного протокола существует три уровня качества обслуживания QoS (Quality of Service), с которыми я и предлагаю с помощью практического исследования передачи…

Подробнее »

 

  • Raspberry PI
  • |
  • Автор: Narod Stream
  • Опубликовано: 6 декабря 2022

На предыдущем уроке мы установили операционную систему на плату Raspberry PI, тем самым сделав нашу плату работоспособной. А в этом уроке по протоколам передачи данных мы познакомились с протоколом MQTT (Message Queuing Telemetry Transport). Здесь же мы узнали, что для работы с данным…

Подробнее »

 

  • Передача данных
  • |
  • Автор: Narod Stream
  • Опубликовано: 29 ноября 2022

Сегодня мы познакомимся с протоколом передачи данных MQTT. MQTT — это протокол обмена сообщениями по шаблону издатель/подписчик (publisher/subscriber). Аббревиатура наименования данного протокола расшифровывается как Message Queuing Telemetry Transport (MQTT). Если перевести дословно, то получится Транспорт телеметрии очереди сообщений. MQTT — это облегчённый…

Подробнее »

Список уроков программирования Ардуино. | Оборудование, технологии, разработки

 


Урок 1. Введение. Общие сведения об Ардуино.

Урок 2. Плата Arduino UNO R3. Описание, характеристики.

Урок 3. Установка программного обеспечения Arduino IDE, подключение платы к компьютеру.

Урок 4. Основы программирования Ардуино на языке C.

Урок 5. Первая программа. Функции управления вводом/выводом. Кнопка, светодиод.

Урок 6. Обработка дребезга контактов кнопки. Интерфейс связи между программными блоками.

Урок 7. Классы в программах Ардуино. Кнопка как объект.

Урок 8. Цифровая фильтрация сигналов в программах для Ардуино.

Урок 9. Создание библиотеки для Ардуино.

Урок 10. Прерывание по таймеру в Ардуино. Библиотека MsTimer2. Параллельные процессы.

Урок 11. Программные таймеры в Ардуино. Циклы с различными временами периода от одного таймера.

Урок 12. Последовательный порт UART в Ардуино. Библиотека Serial. Отладка программ на Ардуино.

Урок 13. Аналоговые входы платы Ардуино. Чтение аналоговых сигналов. Измерение среднего значения сигнала.

Урок 14. EEPROM в Ардуино. Контроль целостности данных.

Урок 15. Указатели в C для Ардуино. Преобразование разных типов данных в байты.

Урок 16. Повышение надежности программ для Ардуино. Сторожевой таймер.

Урок 17. Рабочий проект Ардуино. Охранная сигнализация.

Урок 18. Подключение матрицы кнопок к Ардуино. Функция tone().

Урок 19. Семисегментные светодиодные индикаторы (LED). Режимы управления, подключение к микроконтроллеру.

Урок 20. Подключение семисегментного светодиодного (LED) индикатора к Ардуино. Библиотека управления индикатором.

Урок 21. Подключение к Ардуино LED индикаторов и матрицы кнопок, используя общие выводы.

Урок 22. Работа со временем в Ардуино. Проект спортивного секундомера.

Урок 23. Подключение ЖК (LCD) индикаторов к Ардуино. Библиотека LiquidCrystal.

Урок 24. Подключение аналоговых термодатчиков к Ардуино (LM35, TMP35, TMP36, TMP37). Рабочий проект термометра.

Урок 25. Кремниевые термодатчики серии KTY81 в системе Ардино. Проект термометра-регистратора.

Урок 26. Подключение термодатчиков DS18B20 к Ардуино. Библиотека OneWire. Точный Ардуино термометр-регистратор.

Урок 27. Термопары в системе Ардуино. Проект Ардуино термометра-регистратора  для высоких температур.

Урок 28. Униполярный шаговый двигатель в системе Ардуино. Библиотека Stepper.

Урок 29. StepMotor — библиотека управления шаговыми двигателями в системе Ардуино. Библиотека прерывания по таймеру 1 TimerOne.

Урок 30. Текстовые строки в Ардуино. Конвертирование данных в строки и наоборот. Класс String.

Урок 31. Драйвер шагового двигателя на Ардуино с управлением от компьютера. Протокол обмена данными с использованием AT команд.

Урок 32. Следящий электропривод с шаговым двигателем.

Урок 33. Биполярный шаговый двигатель в системе Ардуино.

Урок 34. STEP/DIR драйверы шаговых двигателей. Основные понятия. Протокол STEP/DIR.

Урок 35. Подключение STEP/DIR драйверов шаговых двигателей к Ардуино. Библиотека StepDirDriver.

Урок 36. Разработка Ардуино-контроллера элемента Пельтье. Импульсный (ключевой) регулятор напряжения.

Урок 37. Широтно-импульсная модуляция в Ардуино.

Урок 38. Ардуино-контроллер элемента Пельтье. Структура программы. Измерение выходных параметров контроллера.

Урок 39. Разработка контроллера элемента Пельтье. Интегральный регулятор мощности.

Урок 40. ПИД регулятор. Принцип действия, математическое описание, настройка.

Урок 41. Разработка контроллера элемента Пельтье. ПИД регулятор температуры.

Урок 42.

Контроллер элемента Пельтье. Реализация пользовательского интерфейса и защитных функций.

Урок 43. Разработка контроллера элемента Пельтье. Программа верхнего уровня. Проверка, настройка устройства.

Урок 44. Контроллер элемента Пельтье. Другая версия программного обеспечения. Завершение проекта.

Урок 45. Другие платы Ардуино с микроконтроллерами ATmega168/328. Плата Arduino Nano.

Урок 46. Другие платы Ардуино с микроконтроллерами ATmega168/328. Плата Arduino Pro Mini.

Урок 47. Обмен данными между платами Ардуино. Основные понятия. Терминология.

Урок 48. Обмен данными между платой Ардуино и компьютером через интерфейс UART.

Урок 49. Обмен данными между платами Ардуино через интерфейс UART.

Урок 50. Помехоустойчивость и физическая среда стандартного интерфейса UART.

Урок 51. Радиальные интерфейсы RS-232 и RS-422.

Урок 52. Интерфейс ИРПС (цифровая токовая петля). Принцип действия, параметры, схемная реализация.

Урок 53. Плата MassDuino UNO LC (MD-328D). АЦП высокого разрешения (до 16 бит), расширенные функциональные возможности, полная совместимость с Arduino UNO.

Урок 54. Специфика программирования платы MassDuino UNO LC. Установка программного обеспечения, программирование АЦП, ЦАП, дополнительных цифровых выводов.

Урок 55. Работа с инкрементальным энкодером в Ардуино. Библиотека Encod_er.h.

Урок  56. Протокол последовательной передачи данных ModBus RTU.

Урок 57. Обмен данными между платой Ардуино и компьютером через UART по протоколу ModBus. Библиотека Tiny_ModBusRTU_Slave.

Урок 58. Обмен данными между платами Ардуино через UART по протоколу ModBus. Библиотека Tiny_ModBusRTU_Master.

Урок 59. Объединение нескольких плат Ардуино в локальную сеть с топологией “Общая шина”. Преобразование UART в последовательный интерфейс с одной сигнальной линией.

Урок 60. Интерфейс RS-485.

Урок 61. Аппаратная реализация интерфейса RS-485. Объединение плат Ардуино в локальную сеть RS-485.

Урок 62. Технология клиент-сервер.

Урок 63. Локальная сеть Ethernet. Модуль ENC28J60, его подключение к плате Ардуино.

Урок 64. TCP сервер и клиент на Ардуино. Библиотека UIPEthernet.

Урок 65. Аналогово-цифровые преобразования Ардуино в фоновом режиме. Библиотека BackgroundADC.

Урок 66. OSD-генератор MAX7456. Общее описание, функциональные возможности, параметры, подключение к плате Ардуино.

Урок 67. Ардуино-библиотека OSD-генератора MAX7456. Описание библиотеки, проблемы некорректной работы, исправленный вариант.

Урок 68. Практическое программирование OSD-контроллера MAX7456 в системе Ардуино. Создание и загрузка шрифтов, вывод информации на экран.

Урок 69. Протокол UDP. Создание UDP-сервера и клиента с помощью библиотеки UIPEthernet.

Урок 70. Протокол HTTP. Создание WEB-сервера на Ардуино. Использование HTML-кода.

Урок 71. Продолжение темы HTTP-протокола. Передача данных от клиента WEB-серверу с помощью GET-запросов.

Урок 72. HTTP-протокол (продолжение). Передача данных WEB-серверу с помощью POST-запросов.

Урок 73. ПИД-регулятор скорости вращения двигателя постоянного тока. Разработка аппаратной части.

Урок 74. Регулировка скорости вращения двигателя без обратной связи. Измерение периода и частоты сигналов с помощью Ардуино.

Урок 75. Разработка ПИД-регулятора скорости вращения двигателя постоянного тока.

Урок 76. ПИД-регулятор скорости вращения двигателя постоянного тока. Проверка работы, настройка на быстродействие и устойчивость.

 

 


 

 

Авторизация

Регистрация

*

*

Запомнить

Потеряли пароль?

Авторизация

Регистрация

Авторизация Регистрация

Генерация пароля

Как создать собственную плату микроконтроллера STM32

В этом пошаговом руководстве вы узнаете, как создать собственную плату микроконтроллера на основе популярного микроконтроллера STM32 от ST Microelectronics.

Я разобью весь процесс проектирования на три основных этапа:

ЭТАП 1 — Проектирование системы
ЭТАП 2 — Проектирование схемы
ЭТАП 3 — Проектирование компоновки печатной платы

Получите БЕСПЛАТНОЕ руководство прямо сейчас: Полное руководство по микроконтроллерам STM32

Содержание

Этап 1 – Система/Предварительный проект

При разработке новой схемы первым шагом является проектирование системы высокого уровня (которое я также называю предварительным проектом).

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

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

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

При проектировании на системном уровне основное внимание уделяется взаимосвязанности и функциональности более высокого уровня.

Блок-схема

Ниже приведена блок-схема, с которой мы будем работать в этом уроке.

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

Блок-схема должна включать блок для каждой основной функции, взаимосвязи между различными блоками, определенные протоколы связи и любые известные уровни напряжения (входное напряжение питания, напряжение батареи и т. д.).

Позже, когда все компоненты выбраны и известны требуемые напряжения питания, я хотел бы добавить напряжения питания на блок-схему.

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

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

Блок-схема системного уровня. Блоки желтого цвета включены в этот начальный учебник.

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

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

Выберите микроконтроллер

При выборе микроконтроллера (или практически любого электронного компонента) мне нравится использовать веб-сайт дистрибьютора электроники, такой как Newark.com.

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

Если вы регулярно читаете этот блог, то знаете, что я большой поклонник микроконтроллеров ARM Cortex-M.

БЕСПЛАТНОЕ РУКОВОДСТВО: Введение в микроконтроллеры

Микроконтроллеры Arm Cortex-M, безусловно, являются самой популярной линейкой микроконтроллеров, используемых в коммерческих электронных продуктах. Они использовались в десятках миллиардов устройств.

Микроконтроллеры от Microchip (включая Atmel) могут доминировать на рынке производителей, но Arm доминирует на рынке коммерческих продуктов.

На самом деле Arm не производит чипы самостоятельно.

Вместо этого они разрабатывают архитектуры процессоров, которые затем лицензируются и производятся другими производителями микросхем, включая ST, NXP, Microchip, Texas Instruments, Silicon Labs, Cypress и Nordic.

ARM Cortex-M — это 32-разрядная архитектура, которая является фантастическим выбором для более ресурсоемких задач по сравнению с тем, что доступно в более старых 8-разрядных микроконтроллерах, таких как ядра 8051, PIC и AVR.

Микроконтроллеры Arm поставляются с различными уровнями производительности, включая Cortex-M0, M0+, M1, M3, M4 и M7.

Некоторые версии доступны с модулем с плавающей запятой (FPU) и обозначаются буквой F в номере модели, например, Cortex-M4F.

Одним из самых больших преимуществ процессоров Arm Cortex-M является их низкая цена за уровень производительности, который вы получаете.

На самом деле, даже если для вашего приложения достаточно 8-битного микроконтроллера, вам все равно следует рассмотреть 32-битный микроконтроллер Cortex-M.

Доступны микроконтроллеры Cortex-M по цене, очень сравнимой с некоторыми старыми 8-битными чипами.

Основание вашего проекта на 32-разрядном микроконтроллере дает вам больше возможностей для роста, если вы захотите добавить дополнительные функции в будущем.

STM32 от ST Microelectronics — моя любимая линейка микроконтроллеров ARM Cortex-M.

Хотя многие производители чипов предлагают микроконтроллеры Cortex-M, мой фаворит на сегодняшний день — серия STM32 от ST Microelectronics. Линейка микроконтроллеров STM32 довольно обширна и предлагает практически любые функции и уровни производительности, которые вам когда-либо понадобятся.

Линия STM32 может быть разбита на несколько подсерий, как показано в таблице 1 ниже.

Серия STM32 Кортекс-Мх Максимальное количество часов (МГц) Производительность (DMIPS)
Ф0 М0 48 38
Ф1 М3 72 61
Ф3 М4 72 90
F2 М3 120 150
F4 М4 180 225
F7 М7 216 462
H7 М7 400 856
Л0 М0 32 26
Л1 М3 32 33
Л4 М4 80 100
Л4+ М4 120 150

Таблица 1: Сравнение различных вариантов микроконтроллеров STM32

Подсерия STM32F — это их стандартная линейка микроконтроллеров (по сравнению с подсерией STM32L, которая специально ориентирована на более низкое энергопотребление). STM32F0 имеет самую низкую цену, но и самую низкую производительность.

Еще один шаг вперед по производительности — это подсерия F1, за которой следуют F3, F2, F4, F7 и, наконец, H7.

Для этого урока я выбрал STM32F042K6T7, который поставляется в корпусе с 32-контактными выводами LQFP. Я выбрал корпус с выводами в первую очередь потому, что он упрощает процесс отладки, так как у вас есть легкий доступ к контактам микроконтроллера.

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

В то время как в безвыводном корпусе, таком как QFN, контакты спрятаны под корпусом, что делает невозможным доступ без контрольных точек.

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

Я выбрал STM32F042, потому что он предлагает умеренную производительность, большое количество контактов GPIO и различные последовательные протоколы, включая UART, I2C, SPI и USB.

Это микроконтроллер STM32 начального уровня всего с 32 контактами, но с широким набором функций. Более продвинутые версии имеют до 216 контактов, что было бы слишком много для вводного руководства.

Шаг 2. Схематическая схема

Принципиальная схема, показывающая микроконтроллер STM32, линейный регулятор, разъем USB и разъем для программирования.

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

В этом уроке я буду использовать инструмент проектирования печатных плат под названием DipTrace.

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

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

Лучший способ чему-то научиться — это всегда делать это.

Для этого руководства достаточно бесплатной версии DipTrace, но для большинства проектов вам потребуется перейти на платную версию.

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

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

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

Для более сложных проектов обычно имеет смысл сначала полностью спроектировать каждую подсхему, а затем объединить их все вместе.

В зависимости от сложности проекта (и личных предпочтений) вы также можете разместить каждую подсхему на отдельном листе. Это удерживает схему от превращения в огромного монстра на одном листе.

Конденсаторы

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

Начнем с установки конденсатора 4,7 мкФ на входной контакт линейного регулятора. Это входное напряжение 5 В постоянного тока, подаваемое внешним зарядным устройством USB.

Это напряжение подается на линейный регулятор TLV70233, который понижает напряжение до 3,3 В, поскольку на микроконтроллер может поступать не более 3,6 В.

Еще один конденсатор 4,7 мкФ ставится на выходе регулятора как можно ближе к выводу. Этот конденсатор служит для накопления заряда для питания переходных нагрузок, а также для стабилизации внутреннего контура обратной связи регулятора.

Без выходного конденсатора большинство регуляторов начнут колебаться.

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

В описании STM32F042 рекомендуется размещать конденсаторы емкостью 4,7 мкФ и 100 нФ рядом с каждым из двух контактов VDD (входные контакты питания). Также рекомендуется размещать развязывающие конденсаторы емкостью 1 мкФ и 10 нФ рядом с выводом VDDA.

Вывод VDDA является питанием для внутреннего аналого-цифрового преобразователя (АЦП) и должен быть особенно чистым и стабильным. В этом руководстве мы не используем АЦП.

Обратите внимание, что вы часто будете видеть конденсаторы двух размеров, указанные вместе для целей развязки. Например, конденсаторы 4,7 мкФ и 100 нФ.

Более крупный 4,7 мкФ может хранить больше заряда, что помогает стабилизировать напряжение, когда требуются большие скачки тока нагрузки.

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

Распиновка микроконтроллера

Хотя STM32F042 предлагает широкий спектр функций, таких как коммуникационные интерфейсы UART, I2C, SPI и USB, вы не найдете ни одной из этих функций, обозначенных на распиновке микроконтроллера.

Это связано с тем, что большинство микроконтроллеров назначают различные функции каждому контакту, чтобы уменьшить количество необходимых контактов.

Распиновка микроконтроллера STM32F042 в 32-контактном выводном корпусе LQFP.

Например, на STM32F042 пин 9помечен как PA3, что означает, что это контакт GPIO. При запуске эта функция автоматически назначается этому контакту. Но у него есть и альтернативные функции, которые можно указать в программе прошивки.

Контакт 9 можно запрограммировать для выполнения следующих функций: приемный входной контакт для последовательной связи UART, вход для аналого-цифрового преобразователя (АЦП), выход таймера или контакт ввода-вывода для емкостного сенсорного датчика. контроллер.

См. таблицу определения контактов в техническом описании микроконтроллера (стр. 33 для STM32F042), в которой показаны все различные функции, доступные для каждого контакта.

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

Часы

Всем микроконтроллерам требуются часы для синхронизации. Эти часы просто точный осциллятор. Микроконтроллеры последовательно выполняют запрограммированные команды с каждым тактом.

Самый простой вариант, если он доступен на выбранном микроконтроллере, — использовать внутренние часы. Эти внутренние часы известны как часы RC-генератора, потому что они используют временные характеристики резистора и конденсатора.

Основным недостатком RC-генератора является точность.

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

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

Разъем для программирования

Программирование STM32 осуществляется с помощью одного из двух протоколов: JTAG или Serial Wire Debug (SWD). Более продвинутые версии STM32 (STM32F1 и выше) предлагают интерфейсы программирования JTAG и SWD.

Подсерия STM32F0 предлагает только более простой интерфейс программирования SWD, поэтому мы сосредоточимся на нем в этом руководстве.

Интерфейс SWD требует только 5 контактов. Это SWDIO (ввод/вывод данных), SWCLK (тактовый сигнал), NRST (сигнал сброса), VDD (напряжение питания) и земля.

К сожалению, программатор ST-LINK, который вы будете использовать для программирования STM32, использует 20-контактный разъем JTAG (с функцией SWD). Этот разъем довольно большой и не подходит для плат меньшего размера.

Вместо этого вы можете использовать переходную плату с 20-контактного на 10-контактный, такую ​​как эта от Adafruit, чтобы вы могли использовать 10-контактный разъем меньшего размера на своей плате.

В этом уроке мы будем использовать 10-контактный разъем.

Если это слишком велико для вашего проекта, вы всегда можете использовать 5-контактный разъем и перемычки от 20-контактного выхода программатора, чтобы подключить только 5 линий, необходимых для программирования SWD.

Power

Последняя часть схемы, которую мы рассмотрим, — силовая часть. Микроконтроллер STM32 может питаться напряжением питания от 2,0 до 3,6В.

Если у вас нет переменного источника питания, вам потребуется встроенный регулятор для обеспечения соответствующего напряжения питания.

Для этого проекта мы будем питать плату с помощью внешнего зарядного устройства USB с выходным напряжением 5 В постоянного тока. Затем это напряжение подается на линейный регулятор напряжения (TLV70233 от Texas Instruments), который снижает его до стабильных 3,3 В.

Для STM32 требуется не более 24 мА при условии, что ни один из выводов GPIO не является источником тока (каждый вывод GPIO может подавать до 25 мА).

Абсолютный максимальный ток, который когда-либо потребуется STM32, составляет 120 мА, если предположить, что различные выводы GPIO являются источниками тока.

TLV70233 рассчитан на ток до 300 мА, что должно быть более чем достаточно для этой исходной конструкции.

Проверка электрических правил

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

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

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

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

Этап 3. Разработка макета печатной платы (PCB)

После завершения проектирования схемы наступает время проектирования печатной платы. Начните с вставки всех компонентов в топологию печатной платы.

В DipTrace вы можете использовать функцию «Преобразовать в плату» на схеме, чтобы автоматически создать плату со всеми вставленными компонентами.

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

Размещение компонентов

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

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

В нашей начальной обучающей схеме размещение компонентов довольно простое.

Разместите разъем microUSB рядом с линейным регулятором так, чтобы его выход был как можно ближе к контактам входного питания (VDD) на микроконтроллере.

Наконец, разместите разъем для программирования в любом удобном месте.

Размещение важнейших компонентов в исходной конструкции: микроконтроллера (U1), регулятора (U2), разъема micro USB (J1) и разъема для программирования (JTAG-1).

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

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

Паразитические компоненты — это пассивные компоненты (резисторы, конденсаторы и катушки индуктивности), которые вы намеренно не встраиваете в свою схему. Но, тем не менее, они есть и влияют на производительность.

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

Размещение всех важных компонентов (U1, U2, J1 и JTAG-1) и пассивных компонентов (конденсаторов).

Таким образом, это означает, что если источник напряжения расположен далеко от нагрузки, которой в данном случае является микроконтроллер STM32, между нагрузкой и источником, по сути, находится резистор (без учета емкости и индуктивности).

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

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

Получите БЕСПЛАТНОЕ полное руководство по разработке нового электронного оборудования

Помните, что конденсаторы похожи на маленькие батарейки, в которых накапливается электрический заряд. Размещение их прямо на выводах питания микроконтроллера позволяет им обеспечивать любые быстрые, переходные токовые потребности микроконтроллера.

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

Стек слоев печатной платы

Печатная плата состоит из слоев, сложенных друг на друга. Проводящие слои разделены изолирующими слоями.

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

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

Количество проводящих слоев всегда четное, поэтому вы можете иметь плату с 2,4,6,8,10,12 проводящими слоями. Для большинства дизайнов потребуется 4-6 слоев, а для более сложных дизайнов может потребоваться 8 или более слоев.

Маршрутизация

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

Для автоматической трассировки в DipTrace просто выберите Route -> Run Autorouter , и программа автоматически выполнит всю трассировку.

К сожалению, автоматические трассировщики в целом делают ужасную работу, и почти во всех случаях вам придется выполнять всю трассировку вручную. В этом уроке мы будем выполнять всю маршрутизацию вручную.

Разводка печатной платы (черные дорожки на верхнем слое, серые дорожки на нижнем слое)

При разводке на печатной плате вы хотите максимально сократить длину каждой дорожки. Вы также хотите свести к минимуму количество переходных отверстий и избежать любых 9Изгибы трасс 0 градусов.

Эти рекомендации особенно важны для трасс высокой мощности и высокоскоростных сигналов.

via — это отверстие между слоями с проводящим материалом, позволяющее соединить вместе две дорожки на разных слоях. Большинство переходных отверстий известны как через переходные отверстия , что означает сквозные туннели через все слои платы.

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

Переход №1 — классический сквозной переход, переход №2 — глухой переход, переход №3 — скрытый переход.

Переходные отверстия, которые туннелируют только через подмножество слоев, называются скрытыми и глухими переходными отверстиями.

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

Скрытые переходные отверстия соединяют два внутренних слоя и полностью скрыты на собранной печатной плате.

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

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

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

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

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

Производители печатных плат позволяют выбрать различную толщину проводящего слоя, обычно измеряемую в унциях на квадратный фут (oz/ft 2 ), но также измеряемую в милах (миль — одна тысячная дюйма) или миллиметрах.

Стандартная толщина проводящего слоя составляет 1 унция/фут 2 . В этом уроке я сделал линии питания шириной 10 мил.

Использование калькулятора, указанного выше, показывает, что трасса 1 унция/фут 2 шириной 10 мил может фактически проводить почти 900 мА тока.

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

Абсолютный максимальный ток, необходимый для STM32F042, составляет 120 мА. Удивительно, но для обработки 120 мА нам нужна только ширина дорожки 0,635 мил!

Минимальная ширина трассы, допустимая для большинства процессов, составляет 4–6 мил. Трассы минимальной ширины можно легко использовать для линий подачи в этой конструкции.

При этом чем шире дорожка, тем меньше сопротивление и тем стабильнее напряжение питания на каждом компоненте.

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

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

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

Завершенный макет печатной платы (PCB) для этого начального руководства.

Проверка

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

Существует два основных типа проверки: проверка правил проектирования (DRC) и сравнение схем.

DRC проверяет соблюдение всех правил проектирования печатных плат. Сюда входят такие правила, как минимально допустимая ширина дорожки, минимально допустимое расстояние между дорожками, минимальное расстояние между дорожкой и краем платы и т. д.

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

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

В DipTrace вы определяете правила проектирования, выбирая Verification->Design Rules . Как только все правила будут правильно определены, вы можете запустить DRC, выбрав Проверка->Проверка правил проектирования.

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

Для этого в DipTrace просто выберите Verification->Compare to Schematic .

В будущих руководствах я покажу вам различные типы ошибок DRC и сравнения схем, а также способы их исправления.

Генерация Gerber

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

Получите БЕСПЛАТНОЕ руководство прямо сейчас: от прототипа Arduino до массового производства

Для этого вам необходимо преобразовать макет печатной платы (который в настоящее время хранится в проприетарном формате файла) в стандартный формат файла, известный как Gerber.

Формат Gerber выводит каждый слой вашей платы в виде отдельного файла. Сгенерированные слои — это гораздо больше, чем просто проводящие слои вашей платы. Некоторые из этих слоев включают:

1) Шелковые слои – включает текст и обозначения компонентов.

2) Сборочные слои – Аналогично шелковым слоям, но с особыми инструкциями по сборке.

3) Слои паяльной маски — обозначает зеленое покрытие на печатной плате, которое закрывает любые проводники, к которым вы не хотите припаивать. Это предотвращает случайное замыкание во время пайки.

4) Слои паяльной пасты – Используется для точного нанесения паяльной пасты в места пайки.

Вам также потребуется создать так называемый файл Pick-and-Place , который включает координаты и ориентацию всех компонентов. Этот файл используется производителями машин для автоматической установки компонентов.

Наконец, вам нужно вывести файл сверла, в котором указано точное расположение и размер любых отверстий, таких как переходные отверстия и монтажные отверстия.

Когда у вас есть файлы Gerber, файл Pick-and-Place и файл для сверления, вы можете отправить эти файлы в любой магазин прототипов или производителю для производства вашей платы.

Резюме

В этом учебном пособии вы узнали, как спроектировать блок-схему на уровне системы, выбрать все критически важные компоненты, спроектировать полную принципиальную схему, спроектировать компоновку печатной платы (PCB) и заказать прототипы ваш законченный дизайн печатной платы микроконтроллера.

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

Другой контент, который может вам понравиться:

4.7 12 голосов

Рейтинг статьи

Видеогид — Документация NanoEdge AI Studio

NanoEdge AI Studio: Видеогид — Документация NanoEdge AI Studio

Предупреждение

  • Эта документация устарела.
  • Посетите вики-страницу STMicroelectronics.


I. NanoEdge AI Studio для обнаружения аномалий

Вот видео, которое проведет вас по NanoEdge AI Studio и покажет, как быстро и легко создать умное устройство для обнаружения вибрационных аномалий от А до Я! Запустить Studio, записать некоторые данные, протестировать библиотеки, протестировать лучшую, загрузить ее и встроить ее в свой микроконтроллер менее чем за час.

Видео: ссылка на YouTube.


II. NanoEdge AI Studio для классификации

Вот пошаговое руководство по использованию NanoEdge AI Studio для классификации. Мы создадим интеллектуальный классификатор вибрационных моделей с помощью простого трехскоростного USB-вентилятора.

Видео: ссылка Vimeo.


Ресурсы

Документация

Вся документация NanoEdge AI Studio доступна здесь.

Учебные пособия

Пошаговые учебные пособия по использованию NanoEdge AI Studio для создания интеллектуального устройства от А до Я:

  • Обнаружение аномалий:

    • Интеллектуальный датчик вибрации (STM32)
    • Интеллектуальный датчик вибрации (Arduino)
    • Интеллектуальный датчик тока (STM32)
    • Интеллектуальная программа проверки аккордов для укулеле (STM32)
    • Умный итальянский кофе-наблюдатель (STM32)
  • Классификация:

    • Классификатор многоскоростных вентиляторов (STM32)

Полезные ссылки: