Плата STM8 Nucleo-64

Содержание

STM8 Nucleo-64 boards

Что такое платы 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 В).

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

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

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

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

STM8 Nucleo Development Board
STM8 Nucleo Development Board

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

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

ComponentValue
Buzzer B1-
Capacitors C1, C2, C3, C4, C5100 nF
DB9 Connector-

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

ModelComponent DescriptionPackage
ST232BUltra-Fast, Ultra-Low-Power 5V RS232 Driver/Receiver for UART 5/12V Level ConversionSO16

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

На следующей диаграмме показана электрическая схема приложения. Если кабель 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
Main function flow chart of STM8S series or STM8L series peripherals on Windows HyperTerminal software
Функция App_Menu

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

App_menu function flow chart
App_menu function flow chart
Функция 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 function flow chart
Функции SerialPutString и SerialPutChar

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

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

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

GetIntegerInput function flow chart
GetIntegerInput function flow chart

Подписаться

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

Об авторе

Picture of Aidan Taylor
Aidan Taylor

I am Aidan Taylor and I have over 10 years of experience in the field of PCB Reverse Engineering, PCB design and IC Unlock.

Нужна помощь?

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

Instant Quote