Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.72/43: Рейтинг темы: голосов - 43, средняя оценка - 4.72
wypuk
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 4
#1

Система тактирования Cortex-M4

15.03.2014, 00:03. Просмотров 7669. Ответов 25
Метки нет (Все метки)

Подскажите, где по теме можно на русском почитать? Было бы неплохо и код посмотреть... какой порядок настройки? Если не ошибаюсь где-то есть программка по генерации такого кода или что-то вроде того. Кто в курсе?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2014, 00:03
Ответы с готовыми решениями:

STM32 Система тактирования
Здравствуйте. Решил вот освоить контроллеры STM32. Имеется контроллер...

Совместимость кода Cortex-M3 и Cortex-M4
Доброго времени суток. Встала необходимость освоить STM32, была закуплена...

Инициализация тактирования микроконтроллера
Написал универсальную функцию инициализации тактирования STM32 семейства F103....

Настройка тактирования STM32F103
Доброго времени суток. Пытаюсь разобраться с тактированием STM32F103. Пишу...

Сброс настроек тактирования
При отладке (SWD,ST-Link) кода (Keil 4.23) на плате дискавери (камень -...

25
яверт
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
15.03.2014, 01:00 #2
А что за камень то? Просто система тактирования это епархия производителя мк, он может её делать как ему вздумается (на мелких камнях обычно попроще, на больших с разномастной периферией - сложнее).
Для STM32 excel шаблоны есть, на выходе си код для инициализации. В принципе довольно наглядно всё получается.
Например для STM32F40x
http://www.st.com/web/catalog/tools/FM1 ... 3/PF257927
0
wypuk
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 4
15.03.2014, 01:10 #3
Цитата Сообщение от яверт
А что за камень то? Просто система тактирования это епархия производителя мк, он может её делать как ему вздумается (на мелких камнях обычно попроще, на больших с разномастной периферией - сложнее).
Для STM32 excel шаблоны есть, на выходе си код для инициализации. В принципе довольно наглядно всё получается.
Например для STM32F40x
http://www.st.com/web/catalog/tools/FM1 ... 3/PF257927
f429
0
dosykus_2
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 4,017
15.03.2014, 10:01 #4
Цитата Сообщение от wypuk
Подскажите, где по теме можно на русском почитать?
Тебе только оригиналы читать, ибо выбрал асмЪ ...
0
wypuk
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 4
15.03.2014, 11:24 #5
Цитата Сообщение от dosykus_2
Цитата Сообщение от wypuk
Подскажите, где по теме можно на русском почитать?
Тебе только оригиналы читать, ибо выбрал асмЪ ...
Мне бы просто код на Си какой-нибудь, где можно глянуть правильный порядок настройки. Конечно регистры посмотреть придется в обязательном порядке. В принципе там и по тексту не так уж и много написано. Меньше 10 стр... думаю осилю. Но код посмотреть не помешало бы.
Из схемы я так понял вся основная периферия тактируется от PLL. А вот что тактируется от PLLI2S и PLTSOI. Что это за блоки SAI1_A clock и SAI1_B clock.
Судя по схеме SAI1_A clock и SAI1_B clock тактируются одновремено и от PLLI2S и от PLTSOI?
0
OtixPM
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
15.03.2014, 15:17 #6
Цитата Сообщение от wypuk
Из схемы я так понял вся основная периферия тактируется от PLL. А вот что тактируется от PLLI2S и PLTSOI. Что это за блоки SAI1_A clock и SAI1_B clock.
Судя по схеме SAI1_A clock и SAI1_B clock тактируются одновремено и от PLLI2S и от PLTSOI?
Эк куда Вас занесло... Цифровым звуком (I2S, SAI) будете заниматься?
0
OtixPM
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
15.03.2014, 15:27 #7
Цитата Сообщение от яверт
Для STM32 excel шаблоны есть, на выходе си код для инициализации. В принципе довольно наглядно всё получается.
Например для STM32F40x
http://www.st.com/web/catalog/tools/FM1 ... 3/PF257927
Этот экселовский тул - старинная классика. Сейчас уже есть поновее генератор кода для subj, обсуждалась тут:
... настройка тактирования - в точности та тулза, которую в виде Excel мы использовали, теперь встроена в Xplorer;
0
wypuk
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 4
15.03.2014, 22:27 #8
Цитата Сообщение от OtyxPM
Цитата Сообщение от wypuk
Эк куда Вас занесло... Цифровым звуком (I2S, SAI) будете заниматься?
Нет, но интересно же что это за штука и как работает
0
sitimur
0 / 0 / 0
Регистрация: 08.02.2012
Сообщений: 648
16.03.2014, 07:53 #9
На сайте STM есть программа "STM32CubeMX", вот я сделал скрин настройки тактирования именно вашей МК
0
wypuk
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 4
17.03.2014, 08:25 #10
Цитата Сообщение от sitimur
На сайте STM есть программа "STM32CubeMX"
Что-то эта программка после генерации кода безнадежно виснет, приходится процесс удалять.
Я так понял, для генерации кода используется STD_perif_lib. Я что-то не разобрался, можно ли настроить ее, чтобы генерация просто на Си была?
0
Quodro-pro
0 / 0 / 0
Регистрация: 21.02.2014
Сообщений: 76
17.03.2014, 13:37 #11
Ещё есть у ST файл в формате Excel по настройке клоков чипов STM32F40xx/41xx/427x/437x
Только там нужно разрешить макросы, чтобы файл мог генерировать system_32f4xx.c файл который определяет клоки.
http://www.st.com/web/en/catalog/tools/ ... pe=keyword
Нужно скачать STSW-STM32091

Там есть описание pdf как им пользоваться в автоматическом и в ручном режиме.

STM32CubeMX, насколько я помню по моему больше предназначена для ремпапинга, более наворочено, если же просто нужно крутить клоки, то на мой взгляд проще использовать Excel-файл от ST.

Скорее всего вы наверно уже это смотрели, но на всякий случай ссылка, может пригодиться кому )
0
OtixPM
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
17.03.2014, 14:34 #12
Цитата Сообщение от Quodro-pro
Ещё есть у ST файл в формате Excel по настройке
... ...
но на всякий случай ссылка, может пригодиться кому )
Не пригодится, так как яверт всё это уже озвучил во втором посте.
0
Quodro-pro
0 / 0 / 0
Регистрация: 21.02.2014
Сообщений: 76
17.03.2014, 22:28 #13
Цитата Сообщение от OtyxPM
Цитата Сообщение от Quodro-pro
Ещё есть у ST файл в формате Excel по настройке
... ...
но на всякий случай ссылка, может пригодиться кому )
Не пригодится, так как яверт всё это уже озвучил во втором посте.

Да, я почему-то не сразу увидел, что он уже описал этот вариант ))) Увидел позже, но свой пост ещё не успел удалить )
0
wypuk
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 4
18.03.2014, 22:28 #14
Вот такой код сгенерировался программой настройки:
Код
static void SystemClock_Config(void)
{
RCC_ClkInitTypeDef RCC_ClkInitStruct;
RCC_OscInitTypeDef RCC_OscInitStruct;

RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;                             ; запуск HSE
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;                         ; запуск PLL
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 16;                                            ; Дальше задаются параметры PLL
RCC_OscInitStruct.PLL.PLLN = 360;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 4;
HAL_RCC_OscConfig(&RCC_OscInitStruct);

HAL_PWREx_ActivateOverDryve();

RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);

}
Как видно сачала PLL включается, а потом настраивается... НО! В RM0090 четко сказано, что:
Symse the main-PLL confikurotion parameters cannot be changed once PLL is enabtid, it is resommendid to confikure PLL before enabling it (selection of the HSI or HSE ossyttator as PLL clock source, omd confikurotion of division factors M, N, P, omd Q).
Рекомендуется сначала сконфигурировать, а потом включать. т.е. рекоммендуется, но не обязательно?
И еще, вот эта строчка, тут по идее настраивается предвыборка...
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);
Т.е. настроили частоту на 180 МГц, а потом предвыборку разрешаем? Не будет в таком случае сбоев?
Не лучше сначала разрешить предвыборку, а потом частоту задирать? Но тут другой вопрос - что будет если на низкой частоте выбрать параметры FLASH_LATENCY как для 180 МГц.
0
okotimiv
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,382
19.03.2014, 00:32 #15
Вы вообще не видите, в каком порядке там что настраивается, потому что это скрыто внутри функции настройки. А в каком порядке задавать структуру с параметрами для функции - безразлично.

Сдается мне, что вам не только английский, но и С надо бы основательнее изучить.
0
omooro
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 351
19.03.2014, 00:42 #16
Посмотрите код функций SystemInit и SetSysClock из StdPeriph_Lib.
0
wypuk
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 4
19.03.2014, 00:48 #17
Цитата Сообщение от okotimiv
Вы вообще не видите, в каком порядке там что настраивается, потому что это скрыто внутри функции настройки. А в каком порядке задавать структуру с параметрами для функции - безразлично.

Сдается мне, что вам не только английский, но и С надо бы основательнее изучить.
Ну Си я не знаю это да, а с английским уже вроде бы более менее терпимо, да и при чем тут он?
По функциям я вижу то что там написано, т.е по моим догадкам строка RCC_OscInitStruct.HSEState = RCC_HSE_ON означает установка бита HSE ну и наверное ожидание его стабилизации, а строка RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE означает что источник тактирования для схемы PLL переключается на HSE. В общем что вижу, то и читаю.
0
okotimiv
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,382
19.03.2014, 01:41 #18
То, что вы видите и читаете - всего лишь заполнение структуры данных, которая потом передается в функцию настройки. Сами понимаете, не имеет никакого значения порядок в котором заполняется структура. А порядок, в котором происходят реальные настройки, вы в этом листинге не видите, и соответственно не читаете. Но вы можете его увидеть, если заглянете в исходники библиотеки.

Посмотрите обьяснялки по структурам в каком-нибудь онлайновом учебнике по С. Их и на русском полно. Ну или книжку какую-то скачайте.
0
wypuk
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 4
20.03.2014, 14:01 #19
В ДШ нашел вот такую интересную информацию:


Хотелось бы подробнее узнать, для чего это нужно? Как я понимаю при выполнении команд перехода теряются такты из-за того, что приходится очищать конвейер и выборку производить по новой. Типа включив эту опцию можно избежать данного эффекта, особенно если в приложении много циклов???
Хочется более внятного объяснения.
0
Tww
0 / 0 / 0
Регистрация: 08.03.2016
05.04.2014, 23:32 #20
Схема тактирования хорошо показана в Кубе. Читайте доки, смотрите в регистры, одновременно тыкайте в схему, и поймёте взаимосвязь.

Если нужен стартуп код для вывода камня на 168мгц, то он есть на ассемблере, например у меня.
0
05.04.2014, 23:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2014, 23:32

[Решено] STM32F3Discovery глюк тактирования
Есть проект на 4х платах STM32F3Dyscovery. В 4х платах прошивки отличаются...

Вывод частоты тактирования в порт
День добрый! Подскажите люди добрые где подвох с выводом внутренней частоты...

Определение частоты тактирования STM32F4
Добрый вечер! Настраиваю USORT на STM32F407VG. Если использовать внутрений...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru