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

 
 
> 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
Ответов
Ulianov_Lenin
сообщение Dec 29 2014, 08:25
Сообщение #2





Группа: Новичок
Сообщений: 2
Регистрация: 29-12-14
Пользователь №: 84 343



Товарищи, мне кажется, у меня аналогичная непонятка.
SYSCLK на MCO 8мгц, из HSI, судя по коду и регистрам в debug.
А код, аналогичный gpio_toggle из примеров от stm32f303 выдаёт на ножке 2мгц, вместо 4мгц. Смотрю осциллографом.
Делители AHB,APB1,APB2 = единицы. Компилятор оптимизирует код. Пошаговое исполнение asm инструкций меняет состояние выхода с каждым шагом.
STM32F303 я уже изучил неплохо, а вот тут F100 меня сбивает с толку.

Инициализация сгенерирована coide, разве что закомментировал вызов SetSysClockTo24(), в которой мк пытается запустить HSE+PLL.

Поведение HSI+PLL адекватное, но частота на выходе gpio всёравно в 2 раза ниже ожидаемой.

дизассемблер:
26 GPIOC->BRR = GPIO_Pin_9;
0800063a: str r1, [r0, #20]
27 GPIOC->BSRR = GPIO_Pin_9;
0800063c: str r1, [r0, #16]
28 GPIOC->BRR = GPIO_Pin_9;
0800063e: str r1, [r0, #20]
29 GPIOC->BSRR = GPIO_Pin_9;
08000640: str r1, [r0, #16]

Коммент к аналогичному коду из документации к F3Discovery:
In this example, HCLK is configured at 72 MHz so PE14 and PE15 toggles at 36MHz.
To achieve the maximum IO toggling frequency, you have to configure your compiler
options for high speed optimization.

Мне кажется, автор темы столкнулся с такой-же непоняткой, но ответа я так и не вижу.

вот нашел в одной статье:

The User Manual for the STM32F0 claims that the the output pins fastest toggle speed is every two clock cycles. Assuming a maximum operation speed of 48MHz, the fastest toggle speed for the GPIO on the STM32f0 is 24 MHZ, which means the highest frequency square wave that can be produced by the GPIO is 12MHz.

видимо и нас с F100 касается.
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
- - Falkon_99   Цитата(RomanRom @ Dec 17 2013, 15:38) ......   Dec 17 2013, 20:48
|- - RomanRom   Цитата(Falkon_99 @ Dec 17 2013, 23:48) не...   Dec 17 2013, 21:26
|- - Сергей Борщ   Цитата(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


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

 


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


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