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

 
 
> STM32F103, Очень медленно переключает портом!
Firer
сообщение Apr 16 2012, 18:00
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 294
Регистрация: 7-01-05
Пользователь №: 1 832



Компилятор Keil.
Код в вечном цикле меняет состояние выходного бита порта.
Кварц 8МГц. SYSCLK=8*9=72МГц
APB1=72/2, APB2=72
порт настроен на макс.частоту 50МГц.
прерывания все запрещены.
Ядро работает на 72МГц - MCO включал убедился осциллографом вижу 72МГц.

Реально порт дергается с частотой около 3МГц. В чем дело?
Как минимум должно быть около 36МГц меандр.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
a1ien
сообщение Apr 17 2012, 19:29
Сообщение #2


Участник
*

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



Переход тоже гдето в 2 така выливается. Тоесть цикл записи в порт самый оптимизированный(а не тот что приведен выше) занимает около 6 тактов,соответственно 12 тактов запись патерна. Тоесть теоретически 6-7 мгц это максимум что можно получить при генерации меандра.
Go to the top of the page
 
+Quote Post
SBE
сообщение Apr 17 2012, 21:35
Сообщение #3


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

Группа: Участник
Сообщений: 108
Регистрация: 8-09-05
Пользователь №: 8 384



Цитата(a1ien @ Apr 17 2012, 23:29) *
Переход тоже гдето в 2 така выливается. Тоесть цикл записи в порт самый оптимизированный(а не тот что приведен выше) занимает около 6 тактов,соответственно 12 тактов запись патерна. Тоесть теоретически 6-7 мгц это максимум что можно получить при генерации меандра.

Это вы оптимист насчет перехода, 2 в идеальном случае.
Цитата
Branches take one cycle for instruction and then pipeline reload for target instruction. Non-taken branches are 1 cycle total.
Taken branches with an immediate are normally 1 cycle of pipeline reload (2 cycles total). Taken branches with register
operand are normally 2 cycles of pipeline reload (3 cycles total). Pipeline reload is longer when branching to unaligned 32-bit
instructions in addition to accesses to slower memory. A branch hint is emitted to the code bus that permits a slower system
to pre-load. This can reduce the branch target penalty for slower memory, but never less than shown here.

А если вспомнить про 2 такта ожидания при обращении к флеш на 72МГц для STM32F103, и небольшую глубину буфера предвыборки, то если память мне не изменяет, то и 5 тактов можно получить.
С оптимизацией тож не все так очевидно, какой код там самый оптимизированный. Из-за нюансов внутренней архитектуры легко получаются чудеса.

Цикл из двух записей в порт и перехода на 72МГц действительно по минимуму 6 тактов, т.е. генерация меандра 12МГц. Но можно получить и в 1.5 раза медленее на том же исходном коде.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Firer   STM32F103   Apr 16 2012, 18:00
- - -SANYCH-   Для начала не плохо было бы посмотреть во что ском...   Apr 16 2012, 18:34
- - scifi   Цитата(Firer @ Apr 16 2012, 22:00) Как ми...   Apr 16 2012, 19:17
|- - koyodza   Цитата(scifi @ Apr 16 2012, 22:17) Встреч...   Apr 22 2012, 16:22
- - Firer   Коллеги спасибо за подсказки! Код я посмотрел ...   Apr 16 2012, 19:35
|- - scifi   Цитата(Firer @ Apr 16 2012, 23:35) т.е. 4...   Apr 16 2012, 20:23
|- - SBE   Разбирался когда-то с этим. STR в порт на STM32...   Apr 17 2012, 18:10
- - zöner   а LDR ?   Apr 17 2012, 19:12
- - nicks80   Цитата(Firer @ Apr 16 2012, 22:00) Компил...   Oct 1 2012, 13:47
- - ViKo   В Keil есть симулятор, в котором прекрасно видно, ...   Oct 1 2012, 13:53
|- - scifi   Цитата(ViKo @ Oct 1 2012, 17:53) В Keil е...   Oct 1 2012, 14:07
|- - ViKo   Цитата(scifi @ Oct 1 2012, 17:07) Вопрос ...   Oct 1 2012, 15:56
- - Lukdut   Для быстрого дрыга пинами очень актуальным будет и...   Oct 1 2012, 20:53
- - KARLSON   Если нужно использовать порт как выход для прямоуг...   Oct 2 2012, 04:30
|- - scifi   Цитата(KARLSON @ Oct 2 2012, 08:30) Навер...   Oct 2 2012, 07:40
- - YAM   Хоть тема довольно старая, но я посмотрел на своем...   Oct 3 2012, 06:03
- - ViKo   Цитата(YAM @ Oct 3 2012, 09:03) STR ...   Oct 3 2012, 07:58


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

 


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


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