реклама на сайте
подробности

 
 
> STM32F100 три вопроса, Аварийный генератор, настройка GPIO
RomanRom
сообщение Dec 17 2013, 13:38
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 231
Регистрация: 14-02-05
Пользователь №: 2 635



1) Имеется плата STM32F100 с подключенным кварцевым резонатором 8 МГц. В CoIDE загружен тестовый пример мигания Blink, выставлен период мигания светодиодов 1 с. Проект нормально компилируется, светодиоды мигают. Как я понимаю, по умолчанию в проектах CooCox выставляется режим работы от кварцевого генератора с внутренним умножением частоты на 3, то есть тактовая частота 24 МГц.

Теперь я срываю генерацию кварца прикосновением пинцета, при этом период мигания светодиодов увеличивается в 6 раз. Если пинцет убираю, то вновь период возвращается к 1 с. В доках пишут, что при аварии внешнего тактового сигнала начинает работать внутренний генератор частотой 8 МГц. То есть, по идее период мигания должен увеличиться в 3 раза, а не в 6 раз. Вопрос - почему?

2) Если подключается кварцевый резонатор к линиям PD0, PD1, то в какой режим надо переводить регистры GPIO - вход, вход-pull-up/down, выход или ресет? Надо ли вообще активировать тактирование порта PD?

3) Аналогичный пункту 2 вопрос, если вместо кварцевого резонатора подключается внешний цифровой сигнал на линию PD0 (то есть как настраивать линии PD0 и PD1 по GPIO)?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Falkon_99
сообщение Dec 17 2013, 20:48
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 169
Регистрация: 26-03-12
Из: Харьков
Пользователь №: 71 010



Цитата(RomanRom @ Dec 17 2013, 15:38) *
... Как я понимаю, по умолчанию в проектах CooCox выставляется режим работы от кварцевого генератора с внутренним умножением частоты на 3, то есть тактовая частота 24 МГц....

не совсем, а точнее так:
PLL configuration = (HSE / 2) * 6 = 24 MHz, где HSE = 8MHz - сам кварц.

При сбое генератора HSE, он выключается на аппаратном уровне и включается HSI (8MHz). Срабатывает Clock security system (CSS).
Цитата
If the HSE oscillator is used directly or indirectly as the system clock (indirectly means: it is
used as PLL input clock, and the PLL clock is used as system clock), a detected failure
causes a switch of the system clock to the HSI oscillator and the disabling of the HSE
oscillator. If the HSE clock (divided or not) is the clock entry of the PLL used as system clock
when the failure occurs, the PLL is disabled too.

Тобиш PLL тоже выключается, остаётся только HSI (8MHz) !!! Вот такая математика.


Пожалуйста посмотрите и покажите нам значение регистра RCC_CFGR и RCC_CFGR2 после инициализации контроллера

Сообщение отредактировал Falkon_99 - Dec 17 2013, 20:55
Go to the top of the page
 
+Quote Post
RomanRom
сообщение Dec 17 2013, 21:26
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 231
Регистрация: 14-02-05
Пользователь №: 2 635



Цитата(Falkon_99 @ Dec 17 2013, 23:48) *
не совсем, а точнее так:
PLL configuration = (HSE / 2) * 6 = 24 MHz, где HSE = 8MHz - сам кварц.

А почему бы не так:
PLL configuration = (HSE * 1) *3 = 24 MHz, где HSE = 8MHz - сам кварц

В этом случае через регистр PREDIV1 частота умножается на 1, а через регистр PLLMUL - умножается на 3. Могут быть и другие сочетания коэффициентов.

Логичное объяснение разницы периодов мигания в 6 раз может быть в том, что ФАПЧ действительно в аварийном режиме отключается, причем под отключением понимается не переброс регистра SW на коммутацию от HSI, а установка коэффициента умножения регистра PLLMUL в 1. Тогда получается HSI / 2 * 1=4 МГц, то есть в 6 раз меньше, чем 24 МГц.

Единственное, что меня смущает, это отличие периода мигания в STM32VLDiscovery не в 6 раз, а где-то в 8 раз, что не вписывается в данную теорию. Но раньше на другой плате (не Discovery) я видел отличие ровно в 6 раз.

P.S. А как насчет двух других моих вопросов про входы/выходы GPIO для PD0-PD1 (выводы подключения кварцевого резонатора)?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- RomanRom   STM32F100 три вопроса   Dec 17 2013, 13:38
- - adnega   Цитата(RomanRom @ Dec 17 2013, 17:38) 1) ...   Dec 17 2013, 14:52
|- - RomanRom   Цитата(adnega @ Dec 17 2013, 17:52) А как...   Dec 17 2013, 15:13
- - coolbassnik   Вы ничего не напутали с замерами времени моргания?...   Dec 17 2013, 16:15
|- - RomanRom   Нет, отсчитывал по секундомеру одинаковые интервал...   Dec 17 2013, 16:25
|- - adnega   Цитата(RomanRom @ Dec 17 2013, 20:25) Нет...   Dec 17 2013, 18:03
|- - RomanRom   Цитата(adnega @ Dec 17 2013, 21:03) А выл...   Dec 17 2013, 19:43
|- - adnega   Цитата(RomanRom @ Dec 17 2013, 23:43) Про...   Dec 18 2013, 09:36
|- - andrey74   Добрый день! Имеется МК STM32F103. Хочу сделат...   Jul 8 2014, 03:15
|- - Сергей Борщ   Цитата(RomanRom @ Dec 17 2013, 23:26) А п...   Dec 18 2013, 07:24
- - uriy   Системную частоту можно вывести на ногу с сигналом...   Dec 18 2013, 05:13
|- - Falkon_99   Можно и так (8/1)*3=24 , но если используется не с...   Dec 18 2013, 07:17
- - ViKo   Все можно увидеть в отладчике Keil. И на картинке ...   Dec 18 2013, 08:46
- - Ulianov_Lenin   Товарищи, мне кажется, у меня аналогичная непонятк...   Dec 29 2014, 08:25


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th August 2025 - 08:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.0138 секунд с 7
ELECTRONIX ©2004-2016