Регистрация | Вход

Объявление

Свернуть
Пока нет объявлений.

Search Result

Свернуть
2 результатов за 0.0022 секунд.
Ключевые слова
Участники
Метки
периферия x

  • Микроконтроллеры STM32G0: Периферия и таймеры. (учебный тренинг, впервые на русском языке)

    Продолжаем изучать новую серию микроконтроллеров STM32G0 производства STMicroelectronics. В третьей статье из цикла, основанного на публикации STM32G0 Online Training, рассматривается периферия STM32G0 – АЦП, ЦАП, встроенные ИОН, аналоговые компараторы – а также работа интерфейсов, таймеров и часов реального времени.

    В этой части описаны:
    • ADC: Аналогово-цифровой преобразователь
    • DAC: цифро-аналоговый преобразователь
    • VREFBUF: источник опорного напряжения
    • COMP: аналоговые компараторы
    • USART: универсальный синхронный/асинхронный приемопередатчик
    • LPUART: малопотребляющий UART
    • Интерфейс Serial Peripheral Interface (SPI)
    • Интерфейс Inter-Integrated Circuit (I2C)
    • CEC: контроллер HDMI-CEC
    • USB Type-C Power Delivery (UCPD)
    • IWDG: независимый сторожевой таймер
    • WWDG: оконный сторожевой таймер
    • IRTIM: ИК-интерфейс
    • GPTIM: таймеры общего назначения
    • LPTIM: таймеры для режимов пониженного потребления
    • RTC: часы реального времени RTC
    Читать третью статью и ранее опубликованные части>>...
    Показать больше | К сообщению

  • Промэлектроника: Запуск периферии на STM32

    Нет ничего проще запуска периферии на контроллере STM32. Инженеры компании STMicroelectronics создали все условия для лёгкого внедрения своих контроллеров в электронные изделия. Для этого совершенно не требуется длительного и мучительного изучения регистров периферии, а также команд ассемблера.
    Попробуем описать процесс запуска любой периферии на примере RTC (встроенные часы реального времени).

    1. Берём отладочную плату STM3210E-SK/IAR. На самом деле, пойдёт любая другая, на которой установлен часовой кварц.
    Более того, можно собрать свой макет и подключить часовой кварц по схеме:



    (это фрагмент принципиальной схемы отладочной платы STM3210E-SK/IAR…. Некоторые кварцевые резонаторы не имеют третьего выхода, подключаемого на землю …. Соответственно для них это не требуется)

    2. Запускаем IAR EMW (или другую среду разработки, которая нравится)

    3. Создаём новый проект. Как это сделать - рассказано тут.

    4. Подключаем к проекту библиотеки:



    Здесь файл startup - описывает прерывания и запускает функцию SystemInit (переводит на внешний кварц и выставляет частоту 72МГц) до выполнения основной программы. Функция SystemInit находится в файле system_stm3210x.c, поэтому он тоже подключен (если не сделать так - линкер заругается). Остальные файлы - библиотеки периферии (стандартные, которые выкачиваются с сайта ST).

    5. Не думая как запускать RTC, заходим в описание библиотек.



    6. Открываем примеры кода применения библиотечных функций.



    7. Находим интересующий пример (из великого множества примеров).

    8. В нём открываем функцию main

    00068 int main(void)
    00069 {
    00070 /*!< At this stage the microcontroller clock setting is already configured,
    00071 this is done through SystemInit() function which is called from startup
    00072 file (startup_stm32f10x_xx.s) before to branch to application main.
    00073 To reconfigure the default setting of SystemInit() function, refer to
    00074 system_stm32f10x.c file
    00075 */
    00076
    00077 /* Initialize LED1 mounted on STM3210X-EVAL board */
    00078 STM_EVAL_LEDInit(LED1);
    00079
    00080 /* USARTx configured as follow:
    00081 - BaudRate = 115200 baud
    00082 - Word Length = 8 Bits
    00083 - One Stop Bit
    00084 - No parity
    00085 - Hardware flow control disabled (RTS and CTS signals)
    00086 - Receive and transmit enabled
    00087 */
    00088 USART_InitStructure.USART_BaudRate = 115200;
    00089 USART_InitStructure.USART_WordLength = USART_WordLength_8b;
    00090 USART_InitStructure.USART_StopBits = USART_StopBits_1;
    00091 USART_InitStructure.USART_Parity = USART_Parity_No;
    00092 USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
    00093 USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
    00094
    00095 STM_EVAL_COMInit(COM1, &USART_InitStructure);
    00096
    00097
    00098 /* NVIC configuration */
    00099 NVIC_Configuration();
    00100
    00101 if (BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5)
    00102 {
    00103 /* Backup data register value is not correct or not yet programmed (when
    00104 the first time the program is executed) */
    00105
    00106 printf("rnn RTC not yet configured....");
    00107
    00108 /* RTC Configuration */
    00109 RTC_Configuration();
    00110
    00111 printf("rn RTC configured....");

    10. Копируем функцию RTC_Configuration() из примера в свой проект и делаем её вызов из функции main().

    11. Запускаем проект и смотрим регистры RTC

    12. Во время отладки узнаём, что регистр RTC_CNTL - это и есть регистр, в котором ведётся счёт секунд (нижние 16 бит). Меняется 1 раз в секунду на 1 (растёт, RTC работает от внешнего кварца - задача выполнена!). Впрочем, это не важно. Чтобы узнать "сколько секунд" можно использовать функцию RTC_GetCounter, взятую в описании стандартной библиотеки, после чего забыть о существовании регистров периферии (любой) навсегда (при желании).

    Инженеры компании "Промэлектроника" рекомендуют начинать освоение контроллеров STM именно таким методом.
    Данный метод подходит для освоения семейств (требуется правильно выбрать библиотеку применяемого семейства):
    - STM8S
    - STM8A
    - STM8L
    - STM32F0
    - STM32F1
    - STM32F2
    - STM32F4
    - STM32L
    - И других контроллеров фирмы STMicroelectronics, которые появятся на рынке в ближайшем будущем.

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

    Проект выложен на форуме "Промэлектроники".

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

    Компания " Промэлектроника" желает вам быстрых проектов, которые принесут вам быструю прибыль.

    За получением более подробной информации вы можете обратиться:

    Бренд-менеджер:
    Сорокин Сергей
    E-mail: stm@promelec.ru
    Телефон: +7 (343) 245-68-20


    Прочитать в оригинале…...
    Показать больше | К сообщению
2002—2021 «ЭтЛайт»
Наши контакты: +7 (812) 309-50-30, client@efind.ru
Реклама · Участие в поиске · Инструменты · Блог · Аналитика · English version

  ExpoElectronica RADEL
Обработка...
X