Что такое платы STM8 Nucleo?
Плата STM8 Nucleo — это ряд плат разработки, разработанных компанией STMicroelectronics специально для своих микроконтроллеров STM8. Эти платы служат удобной и гибкой платформой для создания и тестирования приложений на основе семейства микроконтроллеров STM8. Благодаря множеству функций и вариантов подключения платы STM8 Nucleo предоставляют разработчикам подходящую среду для прототипирования своих проектов и оценки производительности микроконтроллеров STM8. Эти платы обычно оснащены отладчиком/программистом, выводами GPIO, UART, I2C и SPI, что позволяет разработчикам легко подключаться и взаимодействовать с различными периферийными устройствами и датчиками. Платы STM8 Nucleo широко используются в электронной промышленности благодаря простоте использования и совместимости с экосистемой STM8.
NUCLEO-8L152R8 и NUCLEO-8S208RB
NUCLEO-8L152R8 и NUCLEO-8S208RB — первые платы Nucleo-64, в которых интегрированы микроконтроллеры STM8 (MCU), что обеспечивает гибкий дизайн прототипов благодаря компактным конфигурациям MCU. Существенное различие между этими двумя моделями заключается в объеме их флэш-памяти. Первая интегрирует STM8L152R8T6 MCU с 64 КБ флэш-памяти, а вторая использует STM8S208RBT6 со 128 КБ памяти. Они также являются первыми отладочными платами STM8 с разъемом Arduino™ Uno V3, позволяющим разработчикам использовать знакомые платы расширения, бесплатные плагины и популярные примеры программирования. Кроме того, в сотрудничестве с Cosmic мы предоставляем бесплатные компиляторы для STVD-STM8 IDE или Arduino IDE, что позволяет разработчикам впервые разрабатывать программное обеспечение для наших STM8 MCU на C++ без покупки цепочки инструментов.

Мы обнаружили, что платы STM32 Nucleo особенно популярны для проектирования и разработки прототипов. Они также предлагают широкий выбор плат расширения, которые теперь совместимы с NUCLEO-8L152R8 и NUCLEO-8S208RB, поскольку все модели Nucleo предоставляют разъемы Arduino. Это означает, что инженерные команды могут повторно использовать одно и то же оборудование, экономя затраты и, что более важно, сокращая время разработки, поскольку они уже знакомы со стекированием расширений на новых платах STM8 Nucleo. Поэтому теперь проще добавлять функциональность в наши 8-битные системы, что позволяет создавать более сложные и интеллектуальные конструкции в постоянно уменьшающихся корпусах.
Технические характеристики STM8 Nucleo
- Плата с типами MCU:
NUCLEO-8L152R8 — на базе 8-битного MCU STMicroelectronics STM8L152R8T6, работающего на частоте 16 МГц, с 64 КБ флэш-памяти, 2 КБ EEPROM и 4 КБ SRAM.
NUCLEO-8S208RB — на базе 8-битного MCU STMicroelectronics STM8S208RBT6, работающего на частоте 24 МГц, с 128 КБ флэш-памяти, 2 КБ EEPROM и 6 КБ SRAM.
4 светодиода — индикатор подключения USB (LD4), индикатор 5V STLINK (LD3), пользовательский светодиод (LD2) и индикатор питания (LD1).
2 кнопки — пользовательские кнопки и кнопка RESET.
Внешний кварцевый генератор 32,768 кГц, эксклюзивный для отладочной платы NUCLEO-8L152R8.
USB — 1-канальный интерфейс microUSB в качестве виртуального COM-порта, интерфейс памяти на чипе и интерфейс отладки.
- Разъемы расширения:
Интерфейс Arduino UNO V3.
Интерфейс расширения ST morpho, включающий все входы/выходы для STM8.
Отладка — встроенный отладчик и программатор ST-LINK/V2-1 с разъемом SWIM и портом microUSB.
Питание — питание от USB VBUS или внешнего источника питания (3,3 В, 5 В, 7–12 В).
Точки доступа к управлению питанием.
Проект отладочной платы STM8 Nucleo-64
Этот проект описывает, как управлять отладочной платой STM8 Nucleo-64 из терминального окна, работающего на ПК. Терминал подключен к UART либо STM8S208RBT6 (для NUCLEO-8S208RB), либо STM8L152R8T6 (для NUCLEO-8L152R8) с помощью кабеля RS232.
После добавления необходимых компонентов на отладочную плату и загрузки программного обеспечения, пользователи могут управлять GPIO и таймерами TIM3 серий STM8S или STM8L, а также настраивать выход зуммера с помощью терминального программного обеспечения.

Необходимые компоненты
Для запуска демонстрационного приложения терминала отладочной платы STM8 Nucleo-64 требуются следующие компоненты:
- Терминальное окно, работающее на ПК: Программное обеспечение для эмуляции терминала может быть Windows HyperTerminal, TeraTerm Pro или другое терминальное программное обеспечение.
- Кабель RS232 null modem (с перекрещенными линиями передачи и приема).
Настройка отладочной платы NUCLEO-8S208RB
Перед запуском приложения отладочная плата NUCLEO-8S208RB (на основе устройства STM8S208RBT6) должна быть настроена для включения выхода зуммера. Выход зуммера является мультиплексированной функцией STM8S208RBT6. Эта функция включается путем установки бита опции переназначения AFR7 в оптовом байте OPT2 в «1.»
Примечание: Отладочная плата NUCLEO-8L152R8 (на основе устройства STM8L152R8T6) не требует от пользователей проверки или активации функции переназначения или зуммера.
Инструкции по применению
Аппаратные требования
В этом приложении используются встроенный светодиод (LD2) и подключенный резистор (R1) на плате STM8 Nucleo-64. Внешние пассивные компоненты, необходимые для приложения, перечислены в таблице ниже:
| Component | Value |
|---|---|
| Buzzer B1 | - |
| Capacitors C1, C2, C3, C4, C5 | 100 nF |
| DB9 Connector | - |
Приложение также использует драйвер/приемник RS232 с питанием 5 В ST232B (подробности см. в таблице ниже). Этот дополнительный компонент необходим, поскольку COM-порт ПК работает от стандартного источника питания 12 В. Это несовместимо с входами/выходами UART устройств серий STM8S или STM8L, которые работают от 5 В. Устройство поставляется в корпусе SO16, соответствующем корпусу отладочной платы STM8 Nucleo-64. Дополнительную информацию о ST232B можно найти в спецификации ST232B.
| Model | Component Description | Package |
|---|---|---|
| ST232B | Ultra-Fast, Ultra-Low-Power 5V RS232 Driver/Receiver for UART 5/12V Level Conversion | SO16 |
Принципиальная схема приложения
На следующей диаграмме показана электрическая схема приложения. Если кабель RS232 не является кабелем null modem (линии передачи и приема не перекрещены), подключите вывод U1 14 к выводу DB9 2, а вывод U1 13 к выводу DB9 3.
Правила применения
Это приложение устанавливает стандартную связь между микроконтроллером STM8S208RBT6 или STM8L152R8T6 и терминальным окном, работающим на ПК. Связь осуществляется с использованием протокола RS232 через UART устройства STM8. Как терминальное окно, так и UART должны быть настроены одинаково.
Запуск приложения
Чтобы запустить это приложение, выполните следующие действия:
- Запустите и настройте терминальное окно на своем ПК (см. раздел B: Настройка терминального окна, в данном случае, используя Windows HyperTerminal).
- Скомпилируйте и запустите прошивку приложения с помощью ST Visual Develop (STVD) или другого инструментария.
- Подключите ПК к отладочной плате STM8 Nucleo-64 с помощью кабеля RS232.
- После запуска приложения в Windows HyperTerminal будет отображено меню. Это меню позволяет пользователям:
- Включить или выключить светодиод LD2.
- Установить LD2 в режим мигания.
- Включить/выключить зуммер и выбрать частоту звука зуммера.
Вся информация, отображаемая в этом меню, отправляется микроконтроллером серий STM8S или STM8L. При нажатии клавиши в HyperTerminal соответствующее значение ASCII отправляется на микроконтроллер, который затем декодирует его.
Последовательность связи между платой разработки STM8 Nucleo-64 и терминалом
- Микроконтроллер STM8S или STM8L отправляет строку «Введите ваш выбор» в программное обеспечение эмулятора терминала ПК.
- Терминал отображает строку «Введите ваш выбор.»
- Пользователь нажимает клавишу «2» на клавиатуре.
- Программное обеспечение эмулятора терминала отправляет соответствующий код ASCII (0x52) обратно в микроконтроллер (см. Приложение A: Стандартные коды ASCII).
- Микроконтроллер декодирует полученные данные и отправляет обратно код 0x52 для отображения в терминале и сохраняет значение «2» в памяти.
- Программное обеспечение эмулятора терминала получает код 0x52 и отображает «2.»
- Пользователь нажимает клавишу «Return».
- Программное обеспечение эмулятора терминала отправляет код 0x0D, соответствующий возврату каретки (см. Приложение A: Стандартные коды ASCII).
- Микроконтроллер STM8S или STM8L декодирует полученные данные, отправляет обратно код 0x0D для отображения в терминале и выполняет операцию, связанную с опцией 2.
Windows HyperTerminal
Периферийные устройства STM8S и STM8L
В этом примере приложения используются стандартные библиотеки прошивки STM8S и STM8L для управления общими функциями. В этом приложении используются следующие периферийные устройства:
- Таймер3 (TIM3): Таймер TIM3 настроен как базовый таймер с включенными прерываниями для управления скоростью мигания LD2.
- GPIO: GPIO используются для подключения MCU к внешнему оборудованию. Порт PC5 для серии STM8 или PB5 для серии STM8L настроен как выход с открытым коллектором для управления LD2.
- BEEPER: Для управления зуммером периферийное устройство BEEPER выводит сигнал частотой 1, 2 или 4 кГц на вывод BEEP.
- ART3 для серии STM8S или USART3 для серии STM8L: Используется для связи с окном терминала, работающим на ПК.
ART3 или USART3 необходимо настроить следующим образом:
- Скорость передачи = 960
- Длина данных = 8 бит
- 1 стоповый бит
- Нет контроля четности
- Включить прием и передачу
(Примечание: Если вы используете серию STM8L, необходимо отключить тактирование USART3.)
Связь управляется опросом для каждой операции приема и передачи.
(Примечание: Окно терминала и UART-периферийное устройство STM8 должны быть настроены с одинаковой скоростью передачи, длиной данных, стоповыми битами и четностью.)
Конфигурация стандартной прошивки STM8
Стандартная библиотека прошивки STM8S
Файл stm8s_conf.h стандартной библиотеки прошивки серии STM8S позволяет включать функции периферийных устройств для использования в приложении путем настройки библиотеки. Необходимо объявить следующие определения:
- #define _GPIO 1 для включения GPIO
- #define _TIM3 1 для включения TIM3
- #define _BEEPER 1 для включения BEEPER
- #define _UART3 1 для включения UART3
Стандартная библиотека прошивки STM8L
Файл stm8l_conf.h стандартной библиотеки прошивки серии STM8L позволяет включать функции периферийных устройств для использования в приложении путем настройки библиотеки. Необходимо объявить следующие операторы include:
- #include «stm8l15x_gpio.h»
- #include «stm8l15x_tim2.h»
- #include «stm8l15x_tim3.h»
- #include «stm8l15x_beep.h»
- #include «stm8l15x_usart.h»
Блок-схема программного обеспечения приложения
Этот раздел объясняет основной цикл программного обеспечения приложения и функции, управляющие приемом/отправкой данных на/с терминала:
- App_Menu: Эта функция используется для отображения меню на терминале и управления пользовательским вводом.
- SerialPutString: Эта функция используется для отправки строк на терминал.
- SerialPutChar: Эта функция используется для отправки отдельных символов на терминал.
- GetInputString: Эта функция используется для приема и хранения строк, отправленных с терминала.
- GetIntegerInput: Эта функция используется для приема целых чисел с терминала.
- Get_Key: Эта функция возвращает соответствующий шестнадцатеричный код при нажатии клавиши.
Основная функция приложения
Основная функция приложения конфигурирует периферийные устройства серий STM8S или STM8L и включает стандартные прерывания для всех периферийных устройств, используемых приложением. После инициализации основная программа отображает меню приложения в окне терминала.

Функция App_Menu
Функция App_Menu является ядром приложения. Она отображает меню на терминале, позволяя настроить GPIO, TIM3 и зуммер. App_Menu вызывает GetInputString, GetIntegerInput и SerialPutString для отправки и приема данных через интерфейс RS232.

Функция GetInputString
Функция GetInputString используется для приема и хранения строк, отправленных из окна терминала. Эта функция полагается на функцию Get_Key для получения и декодирования каждого символа (см. Приложение для получения подробной информации). Различные действия выполняются на основе ASCII-кода символа:
Если ASCII-код = ‘\\b’ (backspace): Терминал отправил символ backspace. Если строка не пуста, она удаляет последний символ из строки.
Если ASCII-код находится в пределах {0…9} или {A…Z}: Символ сохраняется в строке.
Если ASCII-код = ‘\\r’ (carriage return): Функция GetInputString сохраняет значение «конец строки» ‘\\0’ в конце строки. Достигнуто максимальное количество ASCII-кодов, хранящихся в буфере buffP[bytes_read]. Программное обеспечение удаляет записанную строку и ждет нового ввода с терминала.
Функция Get_Key
Функция Get_Key используется для обнаружения ввода с клавиатуры на терминале путем опроса флага UART RXNE. Она возвращает полученное значение.

Функции SerialPutString и SerialPutChar
SerialPutString используется для отправки строк на терминал через UART. Символы строки отправляются один за другим с помощью функции SerialPutChar, как описано на блок-схеме.
Функция GetIntegerInput
Функция GetIntegerInput проверяет, соответствуют ли входящие данные целому числу. Если да, данные сохраняются в памяти; в противном случае пользователю предлагается ввести новые данные.




