Что такое платы 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++ без покупки цепочки инструментов.

STM8 Nucleo 64 Boards Large
(Изображение: cnx-software)

Мы обнаружили, что платы 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 В).

Точки доступа к управлению питанием.

Выбор между платами NUCLEO-8L152R8 и NUCLEO-8S208RB

NUCLEO-8L152R8 и NUCLEO-8S208RB относятся к платам STM8 Nucleo-64 со встроенным программатором-отладчиком ST-LINK/V2-1, интерфейсом SWIM, разъёмами Arduino Uno V3 и линейками ST morpho. На 8L152R8 установлен малопотребляющий STM8L с 64 КБ флеш-памяти и кварцем 32,768 кГц, а на 8S208RB — ориентированный на производительность STM8S со 128 КБ флеш-памяти. Выбирать следует по режиму работы и требуемой периферии, а не только по одинаковому формату разъёмов.

  • Сопоставьте профиль MCU: используйте STM8L для исследования энергосбережения, а STM8S — ради другого набора скорости и периферии.
  • Проверьте питание: изучите USB, внешний источник, стабилизатор и перемычки до установки платы расширения.
  • Настройте отладчик: правильно выберите маршрутизацию ST-LINK и SWIM перед программированием цели.
  • Проверьте разъёмы: сверьте напряжения, альтернативные функции, таймеры и конфликты с руководством.
  • Уточните экосистему: перед новой разработкой проверьте статус изделия, компиляторы, примеры и замену.

Проект отладочной платы STM8 Nucleo-64

Этот проект описывает, как управлять отладочной платой STM8 Nucleo-64 из терминального окна, работающего на ПК. Терминал подключен к UART либо STM8S208RBT6 (для NUCLEO-8S208RB), либо STM8L152R8T6 (для NUCLEO-8L152R8) с помощью кабеля RS232.

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

STM8 Nucleo Development Board
Отладочная плата STM8 Nucleo

Необходимые компоненты

Для запуска демонстрационного приложения терминала отладочной платы 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. Внешние пассивные компоненты, необходимые для приложения, перечислены в таблице ниже:

КомпонентЗначение
Зуммер B1-
Конденсаторы C1, C2, C3, C4, C5100 nF
Разъём DB9-

Приложение также использует драйвер/приемник RS232 с питанием 5 В ST232B (подробности см. в таблице ниже). Этот дополнительный компонент необходим, поскольку COM-порт ПК работает от стандартного источника питания 12 В. Это несовместимо с входами/выходами UART устройств серий STM8S или STM8L, которые работают от 5 В. Устройство поставляется в корпусе SO16, соответствующем корпусу отладочной платы STM8 Nucleo-64. Дополнительную информацию о ST232B можно найти в спецификации ST232B.

МодельОписание компонентаКорпус
ST232BСверхбыстрый, со сверхнизким энергопотреблением 5V приёмопередатчик RS232 для преобразования уровней UART 5/12VSO16

Принципиальная схема приложения

На следующей диаграмме показана электрическая схема приложения. Если кабель RS232 не является кабелем null modem (линии передачи и приема не перекрещены), подключите вывод U1 14 к выводу DB9 2, а вывод U1 13 к выводу DB9 3.

Схема приложения серии STM8S
Схема приложения серии STM8L

Правила применения

Это приложение устанавливает стандартную связь между микроконтроллером STM8S208RBT6 или STM8L152R8T6 и терминальным окном, работающим на ПК. Связь осуществляется с использованием протокола RS232 через UART устройства STM8. Как терминальное окно, так и UART должны быть настроены одинаково.

Запуск приложения

Чтобы запустить это приложение, выполните следующие действия:

  1. Запустите и настройте терминальное окно на своем ПК (см. раздел B: Настройка терминального окна, в данном случае, используя Windows HyperTerminal).
  2. Скомпилируйте и запустите прошивку приложения с помощью ST Visual Develop (STVD) или другого инструментария.
  3. Подключите ПК к отладочной плате STM8 Nucleo-64 с помощью кабеля RS232.
  4. После запуска приложения в Windows HyperTerminal будет отображено меню. Это меню позволяет пользователям:
  • Включить или выключить светодиод LD2.
  • Установить LD2 в режим мигания.
  • Включить/выключить зуммер и выбрать частоту звука зуммера.

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

Последовательность связи между платой разработки STM8 Nucleo-64 и терминалом
  1. Микроконтроллер STM8S или STM8L отправляет строку «Введите ваш выбор» в программное обеспечение эмулятора терминала ПК.
  2. Терминал отображает строку «Введите ваш выбор.»
  3. Пользователь нажимает клавишу «2» на клавиатуре.
  4. Программное обеспечение эмулятора терминала отправляет соответствующий код ASCII (0x52) обратно в микроконтроллер (см. Приложение A: Стандартные коды ASCII).
  5. Микроконтроллер декодирует полученные данные и отправляет обратно код 0x52 для отображения в терминале и сохраняет значение «2» в памяти.
  6. Программное обеспечение эмулятора терминала получает код 0x52 и отображает «2.»
  7. Пользователь нажимает клавишу «Return».
  8. Программное обеспечение эмулятора терминала отправляет код 0x0D, соответствующий возврату каретки (см. Приложение A: Стандартные коды ASCII).
  9. Микроконтроллер 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 и включает стандартные прерывания для всех периферийных устройств, используемых приложением. После инициализации основная программа отображает меню приложения в окне терминала.

Main function flow chart of STM8S series or STM8L series peripherals on Windows HyperTerminal software
Блок-схема главной функции периферии серий STM8S или STM8L в Windows HyperTerminal
Функция App_Menu

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

App_menu function flow chart
Блок-схема функции App_menu
Функция 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. Она возвращает полученное значение.

Get_key function flow chart
Блок-схема функции Get_key
Функции SerialPutString и SerialPutChar

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

Блок-схема функции SerialPutString
Блок-схема функции SerialPutChar
Функция GetIntegerInput

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

GetIntegerInput function flow chart
Блок-схема функции GetIntegerInput

Поделиться:

Прокрутить вверх

Instant Quote

Мгновенный расчет