Easyelectronics.ru

Электроника для всех
Текущее время: 19 окт 2019, 00:17

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Keil установка частоты
СообщениеДобавлено: 12 авг 2018, 15:56 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2014, 13:25
Сообщения: 708
Откуда: Earth
Доброго времени суток. Keil µVision V5.25.2.0. При создании проекта воспользовался Manage Run-Time Environment, выбрал опцию Device/Startup, чтбобы оно сгенерировало за меня начальную инициализацию. В настройках проекта установил тактовую частут 8 МГц. Лезу в файл system_stm32f10x.c чтобы проверить, что оно там нахимичило, и вижу:
Код:
#if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)
/* #define SYSCLK_FREQ_HSE    HSE_VALUE */
#define SYSCLK_FREQ_24MHz  24000000
#else
// дальше идут "затемненные" варианту, видно что не активные.

Вопрос: почему оно поставило тактовую 24 Мгц, если в опциях проекта вибрано 8 ???


Последний раз редактировалось Gnusmas 12 авг 2018, 16:33, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil установка частоты
СообщениеДобавлено: 12 авг 2018, 16:28 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3646
Закоменнтируйте ненужное и раскомментируйте нужное. Ничего страшного. Имею ввиду #define SYSCLK_FREQ_ ...
У F1xx такой уж системный файл. Вы его вообще можете переписывать как хотите.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil установка частоты
СообщениеДобавлено: 12 авг 2018, 16:32 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4340
Откуда: Кемеровская область, Киселевск
Кто оно, че как чуваш? В настройках проекта XTAL задается для настройки отладчика и программатора.

_________________
RADIOWOLF.RU


Последний раз редактировалось Oxford 12 авг 2018, 16:39, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil установка частоты
СообщениеДобавлено: 12 авг 2018, 16:38 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3646
... и топикстартер в ответ: "Ну да, я из Чебоксар, а чо?" :))))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil установка частоты
СообщениеДобавлено: 12 авг 2018, 16:47 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2014, 13:25
Сообщения: 708
Откуда: Earth
Oxford писал(а):
Кто оно, че как чуваш?

Manage Run-Time Environment - Управление временем выполнения. Даже не знаю он это, или она))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil установка частоты
СообщениеДобавлено: 12 авг 2018, 19:14 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 2284
Не так это переводится. Настройки окружения во время исполнения... как-то так что-ли.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil установка частоты
СообщениеДобавлено: 12 авг 2018, 21:43 
Старожил

Зарегистрирован: 19 апр 2016, 11:59
Сообщения: 444
Gnusmas писал(а):
Вопрос: почему оно поставило тактовую 24 Мгц, если в опциях проекта вибрано 8 ???
У вас МК серии F100?
Тогда закомментируйте SYSCLK_FREQ_24MHz и раскомментируйте SYSCLK_FREQ_HSE и заодно убедитесь что в HSE_VALUE число 8000000.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil установка частоты
СообщениеДобавлено: 12 авг 2018, 23:07 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1775
Совет конечно странный.
С чего вдруг 8000000 а не 16000000 или 4000000 ?
А кнопку F11 после CTRL-F5 забанили в Keil ?
Можно посмотреть что происходит и сразу понятно будет.
Без всяких вопросов и ответов.
(если конечно предварительно галку убрать Run to main())


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil установка частоты
СообщениеДобавлено: 13 авг 2018, 00:01 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2014, 13:25
Сообщения: 708
Откуда: Earth
Maik писал(а):
У вас МК серии F100?...

Да, F100RB, который на STM32VL Discovery.
Так и сделал, убидился что у меня в stm32f10x.h
Код:
#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */

Просто думал что в IDE для крутых АРМов, частота CPU умеет подятягиваться из настроек проекта, как сделано еще в древней АВР Студио 4.19 для ущербных АВРок.
А как-то черезжопно получается: сперва генерируешь инициализацию (под частоту, которую тебе IDE с потолка взяла), а потом правишь в ней эту частоту и еще раз компилируешь.
А альтернативы: либо полностью ручками (СMSIS), либо Куб. А я к ни тому, ни другому не готов, хочется золотой середины/на 2 стульях посидеть (записи типа RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); ручками делать, авось что-то в памяти и отложится, потому что чистый СMSIS ну очень тяжел для запоминания до такого уровня, чтобы не лезть по каждому чиху в реф. мануал).

x893 писал(а):
С чего вдруг 8000000 а не 16000000 или 4000000 ?...

Ну, у меня же кварцевый резонатор на 8 МГц...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil установка частоты
СообщениеДобавлено: 13 авг 2018, 02:09 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1775
Для такой крутизны есть CubeMx.
Делайте им и смотрите, что и куда пишется.
Потом хоть на SPL, хоть на регистры переделайте.
Или оставьте.
И примеры никто не запрещал смотреть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil установка частоты
СообщениеДобавлено: 13 авг 2018, 08:01 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3646
Gnusmas писал(а):
частота CPU умеет подятягиваться из настроек проекта, .

Ну а вдруг во время работы частота МК будет изменяться? Это нормальное явление - динамическое управление частотой и потреблением тока.
Да и дело еще в том, что одну и ту же частоту МК можно получить разными способами - HSE, HSI, PLL с разным набором коэффициентов, MSI, CSI...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil установка частоты
СообщениеДобавлено: 13 авг 2018, 10:21 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2014, 13:25
Сообщения: 708
Откуда: Earth
Спасибо, доходчиво. Теперь объясните пожалуйста еще такой момент. В файле "system_stm32f10x.c", который я использую для настройки частоты, заинклужен файл "stm32f10x.h" (#include "stm32f10x.h"). В этом файле есть много дефайнов, среди которых есть:
Код:
#define  RCC_CFGR_PLLSRC_HSE                ((uint32_t)0x00010000)        /*!< HSE clock selected as PLL entry clock source */
#define  RCC_CFGR_PLLXTPRE_HSE_Div2         ((uint32_t)0x00020000)        /*!< HSE clock divided by 2 for PLL entry */

2 этих дефайна используются при выборе готовой частоты 36 МГц (в файле "system_stm32f10x.c"):
Код:
    /*  PLL configuration: PLLCLK = (HSE / 2) * 9 = 36 MHz */
    RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL));
    RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL9);

При компиляции ругается, что не может найти 2 указаных дефайна.
Копирую их из файла "stm32f10x.h" в "system_stm32f10x.c", и вуаля, все копилируется. Как может быть, что НЕКОТОРЫЕ дефайны из заинклуденого файла не подтягиваются (что ВСЕ остальные подтягиваются, я не проверял пока, просто пробовал комментировать строку #include "stm32f10x.h" и получил 30 ошибок, то есть многие дефайны из этого файла активно используются в "system_stm32f10x.c"). Директивы #undefine для 2 вышеуказаных дефайнов ни в одном файле я не нашел.
П.С. Файл "stm32f10x.h" находится не в папке проекта, я пробовал заменить его обявление на #include <stm32f10x.h>, не помогло. Пробовал скопировать его в папку проекта рядом с файлом "system_stm32f10x.c" (и оставить старое объявление с " а не <>) - тоже не помогло.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil установка частоты
СообщениеДобавлено: 13 авг 2018, 12:26 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 2284
Там же прям перед этими дефайнами написано #else, строчкой выше:
Код:
#else
#define  RCC_CFGR_PLLSRC_HSI_Div2           ((uint32_t)0x00000000)        /*!< HSI clock divided by 2 selected as PLL entry clock source */
#define RCC_CFGR_PLLSRC_HSE ((uint32_t)0x00010000) /*!< HSE clock selected as PLL entry clock source */


Следовательно смотрим что за #if был выше:
Код:
#ifdef STM32F10X_CL
...
#elif defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL)
...
#else

Какой-то из этих дефайнов объявлен и соотв. блок после #else не задействован.

PS: "Директивы #undefine" - нет такой директивы. Есть #undef.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil установка частоты
СообщениеДобавлено: 13 авг 2018, 12:42 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3646
F100 не может работать выше 24 МГц, он так устроен. А файл - универсальный, на всю серию. F100RB относится к MD_VL


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Keil установка частоты
СообщениеДобавлено: 13 авг 2018, 12:52 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2014, 13:25
Сообщения: 708
Откуда: Earth
Во, теперь все ясно. Спасибо большое!!!
П.С. Аж стыдно, как все просто оказалось. Буду больше курить даташиты.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB