Как использовать контроллер FSMC в STM32 для работы с графическими дисплеями. Какие основные возможности предоставляет периферия STM32 для создания графических интерфейсов. На что обратить внимание при разработке устройства с графикой на базе STM32.
Контроллер FSMC в микроконтроллерах STM32
FSMC (Flexible Static Memory Controller) — это контроллер внешней статической памяти, присутствующий во многих микроконтроллерах STM32. Он позволяет подключать к микроконтроллеру различные типы внешней памяти и периферийных устройств, в том числе графические дисплеи.
Основные возможности FSMC:
- Поддержка различных типов памяти: SRAM, NOR Flash, NAND Flash, PSRAM
- До 4 независимых банков памяти
- Программируемые временные параметры доступа к памяти
- Поддержка 8/16-битных интерфейсов
- Возможность мультиплексирования адреса и данных
Использование FSMC для подключения графического дисплея
FSMC отлично подходит для работы с графическими дисплеями, требующими параллельного интерфейса. Рассмотрим основные шаги по настройке FSMC для работы с дисплеем:
- Настройка выводов GPIO для работы с FSMC
- Конфигурирование временных параметров FSMC под конкретный дисплей
- Инициализация контроллера FSMC
- Реализация функций записи команд и данных в дисплей через FSMC
Пример конфигурации FSMC для типичного TFT-дисплея:
«`c void FSMC_Init(void) { FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; FSMC_NORSRAMTimingInitTypeDef p; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE); p.FSMC_AddressSetupTime = 0x02; p.FSMC_AddressHoldTime = 0x00; p.FSMC_DataSetupTime = 0x05; p.FSMC_BusTurnAroundDuration = 0x00; p.FSMC_CLKDivision = 0x00; p.FSMC_DataLatency = 0x00; p.FSMC_AccessMode = FSMC_AccessMode_A; FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1; FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable; FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR; FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b; FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low; FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState; FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable; FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable; FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable; FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p; FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p; FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure); FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE); } «`Основные возможности периферии STM32 для работы с графикой
DMA2D (Chrom-ART Accelerator)
DMA2D — это аппаратный ускоритель 2D графики, доступный в некоторых сериях STM32. Он позволяет эффективно выполнять следующие операции:
- Заполнение прямоугольных областей цветом
- Копирование изображений с преобразованием форматов
- Альфа-блендинг (наложение изображений с прозрачностью)
- Рисование линий
Использование DMA2D может значительно ускорить отрисовку графического интерфейса.
Таймеры
Таймеры STM32 могут быть использованы для генерации ШИМ-сигналов, например, для управления яркостью подсветки дисплея. Также они полезны для создания различных анимационных эффектов.
АЦП и сенсорные экраны
Аналого-цифровые преобразователи (АЦП) STM32 можно применять для работы с резистивными сенсорными экранами. Для емкостных сенсорных экранов в некоторых сериях STM32 есть специализированный контроллер TSC (Touch Sensing Controller).Оптимизация производительности при работе с графикой
При разработке устройства с графическим интерфейсом на базе STM32 важно уделить внимание оптимизации производительности. Вот несколько советов:
- Максимально используйте возможности DMA2D для ускорения графических операций
- Применяйте двойную буферизацию для уменьшения мерцания при обновлении экрана
- Оптимизируйте алгоритмы отрисовки, минимизируя количество операций записи в дисплей
- Используйте кэширование часто используемых графических элементов
- При необходимости повысьте тактовую частоту микроконтроллера
Выбор дисплея для проекта на STM32
- Разрешение и размер дисплея
- Тип интерфейса (параллельный, SPI, RGB)
- Наличие встроенного контроллера или необходимость внешнего контроллера
- Энергопотребление
- Наличие сенсорного слоя
- Стоимость
Для начинающих разработчиков хорошим выбором могут стать недорогие TFT-дисплеи с контроллером ILI9341, которые легко подключаются к STM32 через FSMC или SPI.
Программные библиотеки для работы с графикой на STM32
Существует ряд готовых библиотек, упрощающих разработку графических интерфейсов на STM32:
- STemWin (эмбеддед-версия библиотеки emWin от SEGGER)
- TouchGFX (мощный фреймворк для создания современных интерфейсов)
- LVGL (открытая библиотека с богатым набором виджетов)
- uGFX (универсальная графическая библиотека для микроконтроллеров)
Выбор библиотеки зависит от сложности проекта, требований к интерфейсу и доступных ресурсов микроконтроллера.
Отладка графических приложений на STM32
Отладка графических приложений на микроконтроллере может быть непростой задачей. Вот несколько рекомендаций:
- Используйте отладочные платы с подключенным дисплеем для упрощения процесса разработки
- Применяйте UART или SWO для вывода отладочной информации
- Используйте логические анализаторы для проверки сигналов интерфейса дисплея
- Реализуйте функции для визуализации отладочной информации прямо на экране устройства
- При возможности используйте симуляторы графических библиотек для отладки логики интерфейса на ПК
Заключение: создание впечатляющих графических интерфейсов на STM32
Микроконтроллеры STM32 предоставляют широкие возможности для создания устройств с графическим интерфейсом. Грамотное использование FSMC, DMA2D и других периферийных модулей позволяет реализовать производительные и энергоэффективные решения. При разработке важно уделять внимание оптимизации, выбору подходящего дисплея и использованию готовых библиотек для ускорения процесса разработки.
Создание качественного графического интерфейса требует сочетания знаний в области программирования микроконтроллеров, оптимизации кода и дизайна пользовательских интерфейсов. Однако, с учетом доступных инструментов и библиотек, даже начинающие разработчики могут создавать впечатляющие проекты на базе STM32 с богатым графическим функционалом.
Программирование STM32. Часть 1: Документация — DiMoon Electronics
Начало знакомства с любой вещью лучше всего начинать с инструкции. В некоторых случаях ясно все и так, в других — «хм, ничего не работает, похоже все-таки надо почитать инструкцию». Микроконтроллеры — устройства достаточно сложные, и без прочтения документации с ними уж точно ничего полезного не сделаешь, хотя…
В этой статье мы рассмотрим, как на официальном сайте производителя организована документация на микроконтроллеры STM32, в частности на серию STM32F1. Все статьи цикла можно посмотреть тут: http://dimoon.ru/category/obuchalka/stm32f1.
После каких-нибудь AVR-ок, можно испытать легкий шок от количества разных PDF-ок на микроконтроллеры STM32. Куда глядеть первым делом? Как этим пользоваться? Что ваще происходит?? С первого взгляда ни чего не понятно. Поэтому я решил сделать небольшой обзор мира документации на эти замечательные микроконтроллеры. Особый упор буду делать на STM32F103C8T6, так как далее планирую написать несколько уроков по использованию именно этого камушка.
Основными документами на STM-ки являются следующие:
- Datasheet
- Reference manual
- Programming Manual
- Errata Sheet
Datasheet
Datasheet содержит в себе информацию о наличии определенной периферии в конкретном МК, цоколевке, электрических характеристиках и маркировке чипов для STM32F103x8 и STM32F103xB, то есть для вот этих, которые обведены красным прямоугольником:
Некисло, один даташит на 8 микроконтроллеров.
Основное в Datasheet-е
В первую очередь нужно обратить внимание на раздел 7. Ordering information scheme, в котором указано, то обозначает каждый символ в маркировке. Например, для STM32F103C8T6: корпус LQFP-48, 64Кб flash-а, температурный диапазон –40 to 85 °C.
Далее 2.1 Device overview. В нем есть таблица, в которой сказано, какая периферия есть в конкретном микроконтроллере и в каком количестве:
Основное различие между микроконтроллерами из разных колонок в количестве ножек и объеме флеша, остальное все одинаково. Небольшое исключение составляет первая колонка версий Tx: в этих микроконтроллерах поменьше модулей SPI, I2C и USART-ов. Нумерация периферии идет с единицы: то есть, если в STM32F103Cx у нас 2 SPI, то они имеют имена SPI1 и SPI2, а в STM32F103Tx у нас только SPI1. Так как Datasheet у нас на микроконтроллеры STM32F103x8 и STM32F103xB, то эта таблица справедлива только для этих моделей. К примеру STM32F103C8 или STM32F103CB соответствуют этой таблице, а STM32F103C6 нет, для него есть отдельный даташит.
В разделе 2.2 Full compatibility throughout the family говорится о том, что устройства STM32F103xx являются программно, функционально и pin-to-pin (для одинаковых корпусов) совместимыми.
В reference manual-е есть разделение на следующие «виды» микроконтроллеров: STM32F103x4 и STM32F103x6 обозначены как low-density devices, STM32F103x8 и STM32F103xB как medium-density devices, STM32F103xC, STM32F103xD и STM32F103xE как high-density devices. В устройствах Low-density devices меньше Flash и RAM памяти, таймеров и периферийных устройств. High-density devices имеют больший объем Flash и RAM памяти, а так же имеют дополнительную периферию, такую как SDIO, FSMC, I2S и DAC, при этом оставаясь полностью совместимыми с другими представителями семейства STM32F103xx. То есть, если на каком-то этапе разработки стало ясно, что выбранного микроконтроллера не хватает для реализации всех возможностей, то можно безболезненно выбрать более навороченный камень без необходимости переписывать весь существующий софт, при этом, если новый камень будет в том же корпусе, то отпадает необходимость заново разводить печатную плату.
Reference manual
Поехали далее. Reference manual (справочное руководство) содержит подробное описание всей периферии, регистров, смещений, и так далее. Это основной документ, который используется при создании прошивки под микроконтроллер. Reference manual составлен для большой группы микроконтроллеров, в нашем случае для всех STM32F10xxx, а именно STM32F101xx, STM32F102xx, STM32F103xx и STM32F105xx/STM32F107xx. Но STM32F100xx не входят в этот RM, для них есть свой.
Главное в Reference manual-е
Как было сказано выше, в reference manual-е есть разделение на следующие «виды» микроконтроллеров: low-, medium-, high-density и connectivity
line. В 2.3 Glossary разъяснено, кто есть кто:
- Low-density devices это STM32F101xx, STM32F102xx и STM32F103xx микроконтроллеры, у которых размер Flash-памяти находится между 16 и 32 Kbytes.
- Medium-density devices это STM32F101xx, STM32F102xx and STM32F103xx, размер флеш-памяти между 64 и 128 Kbytes.
- High-density devices это STM32F101xx и STM32F103xx, размер флеш-памяти между 256 и 512 Kbytes.
- XL-density devices это STM32F101xx и STM32F103xx, размер флеш-памяти между 768 Kbytes и 1 Mbyte.
- Connectivity line devices это микроконтроллеры STM32F105xx и STM32F107xx.
Наш STM32F103C8T6 является Medium-density device-ом. Это будет полезно знать при изучении периферии, например, есть отдельные разделы про RCC для Low-, medium-, high- and XL-density устройств, и Connectivity line devices.
Далее обратимся к Tabe 1. В ней отмечено, какой раздел применим к конкретному типу микроконтроллеров. У нас это Medium-density STM32F103xx:
Далее все просто: идет куча разделов, в каждом из которых содержится описание на конкретную периферию и ее регистры 🙂
Programming Manual
Programming Manual не является документом первой необходимости в самом начале знакомства с STM-ми, однако является очень важным при углубленном изучении этих микроконтроллеров. Он содержит информацию о процессорном ядре, системе команд и периферии ядра. Причем это не та же самая периферия, которая описана в Reference manual-е. В нее входят:
- System timer — системный таймер
- Nested vectored interrupt controller — контроллер приоритетных прерываний
- System control block
- Memory protection unit
Как только мы начнем знакомится с прерываниями в STM32, нам понадобится раздел 4.
Errata Sheet
Errata Sheet — сборник всех известных аппаратных глюков и косяков микроконтроллеров и советов, как их обойти. Довольно веселый документ 🙂 Перед использованием какой-либо периферии, советую суда заглянуть. Это может помочь сократить количество потерянных нервных клеток при отладке своей чудо-прошивки, которая ни как не хочет работать 🙂
Продолжение тут: http://dimoon.ru/obuchalka/stm32f1/uroki-stm32f103-chast-2-iar-cmsis.html
Ссылки:
Datasheet: https://www.st.com/resource/en/datasheet/stm32f103c8.pdf
Reference manual: https://www.st.com/resource/en/reference_manual/cd00171190.pdf
Programming manual: https://www.st.com/resource/en/programming_manual/cd00228163.pdf
Errata sheet: https://www. st.com/resource/en/errata_sheet/cd00190234.pdf
STM32: аббревиатуры и термины | arm
Расшифровка терминов и аббревиатур, часто используемых в документации и исходном коде STM32.
ADC Analog-Digital Converter, аналого-цифровой преобразователь, АЦП.
AFIO Alternative Function of I/O pin, альтернативная функция ножки ввода/вывода.
AHB, APB аббревиатуры для Advanced High-performance Bus и Advanced Peripheral Bus, это внутренние шины микроконтроллера, обеспечивающих внутренний высокопроизводительный обмен данными между аппаратными блоками микроконтроллера, его ядром и памятью. Матрица шин AHB и APB соединяет периферийные устройства и память микроконтроллера с его ядром и контроллером DMA. Обе эти шины входят в состав архитектуры AMBA. Хотя шины AHB и APB принадлежат AMBA, они во многом отличаются.
APB Advanced Peripherial Bus, внутренняя шина MCU для взаимодействия с периферийными аппаратными устройствами.
APB1, APB2 мосты для доступа к шине APB.
AMBA Advanced Microprocessor Bus Architecture.
ARM Semihosting. Смысл семихостинга: когда к проекту подключены специальные библиотеки реального времени, предоставленные многими системами разработки, Ваш код firmware может использовать возможности ввода/вывода хоста (I/O debug host) — экран компьютера, файл, клавиатуру (это и называется семихостингом). Это может позволить отладчику предоставить системную консоль и файловую систему, что может использоваться для вывода в файл на диске или в окно Terminal I/O (по умолчанию как раз и используется семихостинг).
ARR Auto Reload Register.
AWU Auto-Wakeup Unit, блок автоматического пробуждения.
Backup domain внутренние схемы MCU, получающие питание от резервной батареи, шина VBAT (например, часы реального времени RTC).
BDT Buffer Descriptor Table, таблица описание буферов.
bit-stuffing бит-стаффинг, вставка специальных пустых бит.
BSP Board Support Package, библиотека подпрограмм для поддержки аппаратуры платы (обычно имеется в виду оценочная плата разработчика).
BSRRH, BSRRL Bit Set/Reset Register. Запись в эти порты лог. 1 приводит к сбросу (если это регистр BSRRH) или к установке (если это регистр BSRRL) соответствующей ножки GPIO.
callback функция обратного вызова. Специальная функция, позволяющая коду, написанному разработчиком, участвовать в функционале библиотечных функций.
CCM RAM Core Coupled Memory, память RAM, специальным образом привязанная к ядру STM32. Для использования имеет некоторые ограничения, например нельзя оттуда выполнять код, и нельзя использовать вместе с DMA и DMA2D.
CMSIS Cortex Microcontroller Software Interface Standard, по сути это библиотека, обеспечивающиая целостную поддержку различных моделей микроконтроллеров STM32, упрощающая программирование как ядра процессора, так и его периферийных устройств [1].
CPU Central Processor Unit. Термин обычно обозначает процессор или вычислительное ядро микроконтроллера.
CSR Control and Status Registers, регистры управления и состояния.
CubeMX, STM32CubeMX библиотека от ST, облегчающая написание прикладного кода для STM32. Более высокоуровневая замена библиотекам CMSIS.
DAC Digital-Analog Converter, цифро-аналоговый преобразователь, ЦАП.
DAP Debug Access Port, порт для подключения отладчика (для STM32 это чаще всего SWD).
DFU означает Device Firmware Upgrade — обновление программного обеспечения устройства на микроконтроллере.
DMA Direct Memory Access, или Direct Memory Addressing — прямой доступ к памяти для периферийных устройств, освобождающий микроконтроллер от операций обмена данными с памятью.
DWT Data WatchpoinT comparator, специальное аппаратное устройство в ядре STM32, используемое для отладки и трассировки. С помощью DWT можно реализовать функции задержки [5].
embedded встраиваемое устройство, основанное на микроконтроллере (MCU).
EOC End Of Conversion, завершение преобразования ADC.
EOP End of Packet, конец пакета.
Ethernet MAC интерфейс локальной сети Ethernet.
ETM Embedded Trace Macrocell. Специальная ячейка аппаратуры MCU, предназначенная для трассировки событий и значений в программе.
ETR External TRigger, вход внешнего триггера, который может использоваться в качестве тактового входа таймера.
ETRP External TRigger Prescaler, предварительный делитель, который подключается ко входу ETR.
Ext.Clock внешняя тактовая частота.
FCLK Cortex free-running clock.
FCPU тактовая частота Cortex.
FCS Frame Check Sequence, последовательность проверки фрейма Ethernet.
FIFO First Input First Output, разновидность стека (кеширования), применяющаяся в системах обмена данными.
FMC Flexible Memory Controller, включающий в себя 3 контроллера памяти: NOR/PSRAM, NAND/PC Card, Synchronous DRAM (SDRAM/Mobile LPSDR SDRAM). Это относится только к MCU серий STM32F42xxx и STM32F43xxx.
FPU Floating-Point Unit, блок вычислений с плавающей запятой, которые есть на кристалле семейств микроконтроллеров STM32 Cortex®-M4 и STM32 Cortex®-M7.
Fs Sampling frequency, частота выборки.
FS Full Speed, полная скорость, до 12 мегабит/сек (относится к USB).
FSM Finite State Machine, автомат конечных состояний — термин, относящийся к реализации алгоритма поведения системы.
FSMC Flexible Static Memory Controller, контроллер статической внешней памяти.
GPIO General Purpose Input/Output, ввод/вывод общего назначения. Относится к программно управляемым портам микроконтроллера. Термин просто обозначает выводы микроконтроллера, которые можно программно опрашивать как входы, и программно устанавливать в лог. 0 или 1 как выходы.
HAL Hardware Abstraction Layer. Промежуточный код для упрощения написания приложений, создающий слой абстрации между железом процессора (ядро, периферия) и кодом пользователя. HAL представляет собой библиотеку макросов и подпрограмм на языке C, упрощающую доступ к какой-то аппаратуре (промежуточный слой программного обеспечения, необходимый для стандартизации и упрощения доступа к аппаратуре микроконтроллера). Кроме упрощения работы с периферийными устройствами, с помощью HAL для программиста облегчается процедура портирования программ с одного микроконтроллера на другой. Библиотека CubeMX от ST это и есть HAL.
Следует иметь в виду, что использование HAL для обработчиков прерываний часто приводит к излишней нагрузке на процессор, потому что обработка прерываний HAL старается предусмотреть все возможные ситуации, и использует вызовы callback-функций.
handshake рукопожатие. В этом контексте протоколов передачи данных это специальный пакет или сигнал для подтверждения транзакций (ACK, NACK, STALL).
HCD Host Controller Driver, блок реализации хоста USB.
HCLK HCLK тактовая частота шины AHB, она же тактовая частота CPU.
HMI Human Machine Interface, интерфейс взаимодействия между человеком и компьютером (или микроконтроллерной системой). Инструмент, представляющий иформацию о ходе процесса человеку-оператору, что позволяет оператору контролировать поведение системы и управлять им (из Википедии). См. также SCADA.
HNP Host Negotiation Protocol, термин относится к USB OTG. Позволяет устройствам обмениваться ролями хост/устройство, когда они оба поддерживают двойные роли устройств по спецификации OTG. При использовании HNP для смены ролей устройство USB OTG может захватить контроль над управлением планированием передачи данных. Таким образом, любое устройство OTG может инициировать передачу данных через шину USB OTG. Последняя версия дополнения таже ввела HNP-опрос, в котором хост периодически опрашивает устройство USB во время активного сеанса, чтобы определить, не хочет ли оно стать хостом.
hook переводится как «крючок», и обычно означает функцию для перехвата какого-нибудь события (например тика RTOS или ошибки выделения памяти).
HS High Speed, высокая скорость, до 480 мегабит/сек (относится к USB).
HSE High Speed External, высокоскоростной внешний генератор. Имеется в виду тактовый генератор, который реализован с помощью подключения внешнего кварцевого резонатора к выводам OSC_IN и OSC_OUT.
HSI High Speed Internal, высокоскоростной внутренний тактовый RC-генератор, вырабатывающий тактовый сигнал 16 МГц. Этот сигнал может использоваться напрямую как системная тактовая частота, или использоваться как частота на входе PLL. Генератор HSI RC является дешевым источником тактовой частоты, потому что не требует никаких внешних компонентов (не требуется внешний кварцевый резонатор). Также у него меньше время запуска, чем у генератора HSE, однако точность частоты HSI даже после калибровки все равно ниже, чем у внешнего кварцевого резонатора или керамического резонатора. См. также MSI.
I2S Integrated interchip sound, специальная шина для обмена звуковыми данными — цифровой интерфейс для передачи звука. Обычно используется для подключения микрофонов.
I2SCLK тактовая частота I2S.
IAP In-Application Programming, внутрисхемное программирование. Программный код перезаписывает свою же собственную память.
ICP In-Circuit Programming, внутрисхемное программирование (памяти микроконтроллера). То же самое, что и ISP.
IFG Inter Frame Gap, промежуток времени между кадрами Ethernet.
ISP In-System Programming, программирование в системе (памяти микроконтроллера). То же самое, что и ICP.
ISR Interrupt Service Routine, обработчик прерывания. Подпрограмма, код который предназначен для реакции на событие определенного прерывания.
IWDG Independent Watchdog, т. е. «независимый сторожевой таймер».
LLC Logical Link Control, подуровень управления логической связью (по стандарту IEEE 802) — термин, относящийся к организаци Ethernet. Верхний подуровень канального уровня модели OSI, который осуществляет управление передачей данных и обеспечивает проверку и правильность передачи информации по соединению (из Википедии).
LS Low Speed, низкая скорость, до 1.5 мегабит/сек (относится к USB).
LSB Least Significant Bit, самый младший значащий бит (см. MSB).
LSE Low Speed External, низкоскоростной сигнал внешних тактов — обычно 32768 Гц, формируемый с помощью кварцевого резонатора.
LSI Low Speed Internal, низкоскоростной сигнал внутренних тактов — внутренний RC-генератор, формирующий частоту тактов 32 кГц.
MAC в зависимости от контекста может означать как встроенный контроллер сети Ethernet (расшифровывается как Media Access Control), так и MAC-адрес сетевого адаптера.
MBED платформа программирования и операционная система для устройств на основе ARM Cortex-M, подключенных к Интернет (см. Википедию).
MCLK главная тактовая частота.
MCU MicroController Unit, микроконтроллер.
MII Media Independent Interface, не зависящий от среды передачи интерфейс. Представляет собой стандартизованный интерфейс для подключения MAC-блока сети FastEthernet к блоку PHY. Интерфейс MII может быть выведен на разъём для подключения внешнего приемопередатчика или может просто соединять две микросхемы на одной печатной плате. Независимость от среды передачи означает, что существует возможность использования любых PHY-устройств без необходимости смены или переработки аппаратуры MAC-блока (из Википедии).
MMC MAC management counters, счетчики статистики по передаваемым и принимаемым фреймам MAC. Также MMC может означать MultiMedia Card, устаревший термин для старых карт памяти SD небольшого объема.
MPU Memory Protection Unit, блок защиты памяти. Другой вариант использования аббревиатуры: MicroProcessor Unit, т. е. микропроцессор. Отличие от микроконтроллера (MCU) в основном в том, что MPU более мощный, может не иметь встроенной памяти Flash и внутренней памяти SRAM, загружаться программа должна из внешних устройств.
NRZI Non-return-to-zero Inverted. Способ кодирования последовательных данных.
MSB Most Significant Bit, самый старший значащий бит (см. LSB).
MSI Multi-Speed Internal, термин относится к внутреннему RC-генератору STM32, который может работать на нескольких частотах, что применяется в режимах пониженного энергопотребления. См. также HSI.
MSP Main Stack Pointer, указатель на основной стек, используемый по умолчанию в режимах Handler и Thread. Доступ на запись MSP возможен только в режиме Thread.
MSP MCU Support Package, пакет поддержки микроконтроллера. Библиотека абстракции от низкоуровневых особенностей аппаратуры MCU. Код MSP для инициализации и деинициализации аппаратных устройств находится в файле наподобие stm32f4xx_hal_msp.c. Этот модуль автоматически генерирует утилита STM32CubeMX, и он находится во всех примерах пакета STM32Cube_FW.
NSS сигнал выборки подчиненного (slave) устройства на шине SPI.
NVIC Nested Vectored Interrupt Controller, контроллер прерываний с поддержкой вложенности вызовов прерываний.
OPM One Pulse Mode, режим одного импульса таймера.
OTG On The Go, термин относится к USB. Обозначает устройство USB, которое может работать и как хост USB, и как устройство USB.
OTP One Time Programmable, однократно записываемая память. Обычно это память программ микроконтроллера.
output pushpull mode режим порта, когда он настроен как выход с возможностью работать на нагрузку как по низкому, так и по высокому логическому уровню.
PCB Protocol Control Blocks, термин используется в контексте обработки стека протоколов TCP/IP.
PCLK1, PCLK2 тактовые частоты шин APB1, APB2 соответственно.
PCM Pulse Code Modulation, способ цифрового кодирования звука.
PFC Packet FIFO Controller.
PHY сокращение от PHYsical layer, физический уровень — интегральная микросхема, предназначенная для выполнения функций физического уровня сетевой модели OSI (PHY Ethernet, USB2.0 PHY, CAN PHY и т. п.). Микросхемы PHY позволяют другим микросхемам канального уровня, называемыми MAC, подключиться к физической среде передачи, такой как оптическое волокно или медный кабель. Стандартный микрочип PHY включает в себя модули подуровня физического кодирования (PCS, аббревиатура от англ. Physical Coding Sublayer) и подуровня среды передачи (PMD, аббревиатура от англ. Physical Medium Dependent). Модуль подуровня физического кодирования выполняет функции кодирования и декодирования передаваемого и принимаемого потока данных. Целью кодирования является упрощение процесса восстановления потока данных приёмником (из Википедии).
PLL Phase Locked Loop, ФАПЧ. Петля захвата подстройки частоты, короче говоря ФАПЧ (фазовая автоподстройка частоты).
PLLCLK тактовая частота PLL.
PMT Power ManagemenT, система управления питанием микроконтроллера STM32.
PPP Point-to-Point Protocol, двухточечный протокол канального уровня (Data Link) сетевой модели OSI. Обычно используется для установления прямой связи между двумя узлами сети, причем он может обеспечить аутентификацию соединения, шифрование (с использованием ECP, RFC 1968) и сжатие данных. Используется на многих типах физических сетей: нуль-модемный кабель, телефонная линия, сотовая связь и т. д. Часто встречаются подвиды протокола PPP, такие как Point-to-Point Protocol over Ethernet (PPPoE), используемый для подключения по Ethernet, и иногда через DSL; и Point-to-Point Protocol over ATM (PPPoA), который используется для подключения по ATM Adaptation Layer 5 (AAL5), который является основной альтернативой PPPoE для DSL. PPP представляет собой целое семейство протоколов: протокол управления линией связи (LCP), протокол управления сетью (NCP), протоколы аутентификации (PAP, CHAP), многоканальный протокол PPP (MLPPP) (из Википедии).
PSP Process Stack Pointer, указатель на стек процесса (программы пользователя).
PTP Precision time protocol, точный протокол времени. Специальный протокол для синхронизации тактов через сеть.
RCC Reset and Clock Control, блок управления сбросом и тактами STM32.
RDP сокращение от ReaD Protection — термин, применяемый в описании загрузчика (bootloader) STM32 [4]. Обозначает защиту от доступа на чтение к содержимому памяти программ (FLASH) микроконтроллера. Термин RDP иногда может обозначать сетевой протокол компании Microsoft, предназначенный для доступа через сетевое соединение к рабочему столу компьютера с Windows (протокол Remote DesktoP).
RMII Reduced Media Independent Interface. То же самое, что и MII, однако у него есть физические различия в подключении — уменьшено в 2 раза количество сигналов данных (вместо 4 сигналов tx+rx используется только 2), в 2 раза увеличена тактовая частота (используется 50 МГц вместо 25).
RNG Random number generator, генератор случайного числа.
RTC Real Time Clock, таймер (часы) реального времени.
RTCCLK тактовая частота RTC.
RTOS Real Time Operation System, операционная система реального времени — специальная программная оболочка, позволяющая запускать многопоточные приложения с гарантированным по времени откликом на внешние события.
SCADA Supervisory Control And Data Acquisition, диспетчерское управление и сбор данных. Программный пакет, предназначенный для разработки или обеспечения работы в реальном времени систем сбора, обработки, отображения и архивирования информации об объекте мониторинга или управления (из Википедии). См. также HMI, потому что это сходные понятия.
SDIO Secure digital input/output interface.
SIE Serial Interface Engine, аппаратура последовательного интерфейса.
SMPS Switched-Mode Power Supply, ключевой источник питания.
SOF Start-Of-Frame, сигнал начала фрейма.
SPI TI протокол SPI компании Texas Instruments. Интерфейс SPI у STM32 может работать в двух режимах, в зависимости от состояния бита FRF регистра: TI (FRF=1) или Motorola (FRF=0).
SPL Standard Peripheral Library, стандартная библиотека для поддержки периферийных устройств. Это еще одно название для библиотеки CMSIS, поскольку она разработана ARM, не ST.
SRP Session Request Protocol, термин относится к USB. Позволяет обоим коммуницирующим устройствам управлять моментом, когда активен линк сесии питания; в стандартной организации линка USB это может делать только хост. SRP благодаря возможности отключать напряжение VBUS позволяет точно управлять энергопотреблением, что очень важно для устройств, работающих от батареи (таких как камеры и мобильные телефоны). OTG или embedded-хост может оставить линк без питания, пока периферийное устройство (которым может быть устройство OTG или традиционное устройство USB) не потребует питания. OTG и embedded-хост, у которых осталось мало энергии батареи, могут оставить линк USB без питания, что увеличит время работы от батареи.
STM32CubeMX библиотека от ST и связанная с ней инструментальная утилита, позволяющая упростить кодирование для управления ресурсами выбранного микроконтроллера. Утилита позволяет определиться с возможностями тактирования, функции различных аппаратных устройств и автоматически сгенерировать код инициализации необходимого функционала.
SWD SoftWare Debugger, аппаратный отладчик. Специальный интерфейс для отладки и программирования микроконтроллеров.
SWO Serial Wire Output, сигнал для последовательной передачи данных, используемый в целях отладки. Также может использоваться для передачи отладочных сообщений в реальном времени, не останавливая выполнение кода.
SWV Serial Wire Viewer.
SYSCLK системная тактовая частота ядра.
TIMCLK тактовая частота таймера.
TRGO Trigger Out, выход триггера. Сигнал внутренней синхронизации таймеров.
UEV Update EVent, событие обновления таймера.
ULPI UTMI+ Low Pin Interface [3], вариант интерфейса UTMI с уменьшенным количеством линий сигналов, с поддержкой OTG и всех скоростей (HS. FS, LS).
USBHS USB High Speed.
USB OTG FS интерфейс USB on-the-go на скорости full-speed.
USB on-the-go интерфейс USB, который может работать как интерфейс хоста USB, так и интерфейс устройства USB.
UTMI USB 2.0 Transceiver Macrocell Interface, интерфейс для подключения высокоскоростных чипов USB PHY.
VDD напряжение питания.
weak часто таким атрибутом обозначают функцию-заглушку, которая может быть автоматически заменена реализацией разработчика.
WFE, WFI Wait For Event, Wait For Interrupt. Специальные инструкции, вводящие микроконтроллер в режим сна.
workspace рабочее пространство — условная группа в IAR, которая может содержать в себе один или большее количество проектов.
[Ссылки]
1. Cortex Microcontroller Software Interface Standard.
2. Чем отличаются друг от друга CMSIS, STM32CubeMX и MBED.
3. ULPI: стандарт для высокоскоростных USB PHY.
4. AN3155: протокол загрузчика USART STM32.
5. Таймер SysTick, реализация задержек в программе.
— Назначение FSMC
спросил
Изменено 4 года, 4 месяца назад
Просмотрено 5к раз
\$\начало группы\$
Для проекта мне нужна внешняя память. Я выбрал 1 МБ SRAM.
Я использую STM32 и обнаружил FSMC. Мне было трудно понять цель этого.
То, что я читал об этом, привело меня к тому, что, используя его, вы получаете прямое место в памяти. Таким образом, вы можете записывать в память, не управляя определенными контактами (такими как CE, OE, WE…). Это также позволяет вам записывать/читать в SRAM без использования регистров записи GPIO, поэтому вы работаете намного быстрее. (конечно плюсов гораздо больше). Если я прав, думаю, это очень хорошая идея.
Правильно ли я думаю? Я понял это совершенно неправильно?
- микроконтроллер
- stm32
- sram
\$\конечная группа\$
9
\$\начало группы\$
Правильно ли я думаю? Я понял это совершенно неправильно?
FSMC можно использовать для хранения данных в энергозависимой конфигурации. Некоторые (не все) STM32 имеют FSMC, сопоставленные с адресным пространством (0x60000000). Использование последовательной SRAM лучше всего подходит для хранения данных, к которым вам не нужен быстрый доступ. Если вы используете его для значений, которые являются общими при выполнении, это может значительно замедлить вашу программу.
Вам все еще нужно настроить контакты для использования с FSMC, изучить интерфейс и протестировать его.
\$\конечная группа\$
2
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie
stm32 — Может ли HD44780 обмениваться данными с FSMC?
спросил
Изменено 1 год, 8 месяцев назад
Просмотрено 85 раз
\$\начало группы\$
Я пытаюсь использовать FSMC вместо параллельного интерфейса I2C для связи с ЖК-контроллером HD44780. FSMC подключен к SRAM и HD44780 одновременно, а тактовая частота составляет МГц. Тактовая частота HD44780 находится на уровне всего кГц.
Может ли FSMC нормально обмениваться данными с HD44780?
Будет ли время ожидания и скорость доступа к SRAM?
Если да, то по какому адресу FSMC связывается с HD44780?
Любая помощь будет принята с благодарностью!
- стм32
- ЖК
- hd44780
\$\конечная группа\$
1
\$\начало группы\$
Я полагаю, вы имеете в виду FSMC на STM32? Возможно, вы захотите указать, какой микроконтроллер вы имеете в виду.
Вы правы, замечая разницу в скорости с HD44780 — по сегодняшним меркам она очень медленная. Поэтому, вероятно, это не очень хорошая идея. Я бы предложил использовать стандартный GPIO и запустить HD44780 в 4-битном режиме только для записи.