Easyelectronics.ru

Электроника для всех
Текущее время: 26 июн 2022, 23:12

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



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: STM8 Fтакт Fcco
СообщениеДобавлено: 12 апр 2021, 18:17 
Только пришел

Зарегистрирован: 23 фев 2015, 21:49
Сообщения: 5
Доброго, Всем, времени суток.
Не нашёл в форуме подходящей темы решил создать свою.
Сразу предупреждаю, что в МК я чайник, поэтому, когда будете пинать, то сразу задавайте правильное направление :)

И так. Правильно ли я предполагаю, что частота с генератора (например с кварца, или от внутреннего генератора) должна передаваться на таймеры без изменений (если все предделители работают в режиме 1:1)?
CLK_DeInit();
CLK_HSECmd(ENABLE); //Запустил внешний генератор
CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER3, ENABLE); //Запустил тактирование на таймер 3

Просто у меня, при попытке замерить частоту на входе таймера
GPIO_DeInit(GPIOE);
GPIO_Init(GPIOE, GPIO_PIN_0, GPIO_MODE_OUT_PP_HIGH_FAST); //Активировал выход на порт Е0
CLK_CCOConfig(CLK_OUTPUT_HSE); //Направил на выход сигнал от внешнего генератора
Частота на ноге порта Е0 (STM8S105C6T6, LQFP48, pin 40), в 8 раз меньше, чем на кварце.

P.S. Пытаюсь изучать микроконтроллер и программирование. Подошёл к таймерам и ШИМ. Хочу сравнивать соотношение своего "кода" с реальным поведением МК.

Спасибо.


Последний раз редактировалось nuisance 13 апр 2021, 13:28, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 Fтакт Fcco
СообщениеДобавлено: 12 апр 2021, 22:34 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2014, 18:09
Сообщения: 721
Откуда: Мать городов Русских
Неужели даже на простом, как велосипед, STM8, нужно использовать HAL? Там же два регистра, три бита. Читайте Reference manual на ваш чип, там описана система тактирования, всё очень просто.
Например, разрешить тактирование только TIM3:
Код:
CLK->PCKENR1 = CLK_PCKENR1_TIM3; /*!< Timer 3 clock enable */

Или выбрать тактирование нужных блоков можно так:
Код:
CLK->PCKENR1 = CLK_PCKENR1_TIM2     * 0 /*!< Timer 2 clock enable */
                | CLK_PCKENR1_TIM3    * 1 /*!< Timer 3 clock enable */
                | CLK_PCKENR1_TIM4    * 1 /*!< Timer 4 clock enable */
                | CLK_PCKENR1_I2C1    * 0 /*!< I2C1 clock enable */
                | CLK_PCKENR1_SPI1    * 0 /*!< SPI1 clock enable */
                | CLK_PCKENR1_USART1  * 0 /*!< USART1 clock enable */
                | CLK_PCKENR1_BEEP    * 0 /*!< BEEP clock enable */
                | CLK_PCKENR1_DAC     * 0;/*!< DAC clock enable */

В результате - одна ассемблерная инструкция. Подумайте в этом направлении.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 Fтакт Fcco
СообщениеДобавлено: 13 апр 2021, 16:15 
Только пришел

Зарегистрирован: 23 фев 2015, 21:49
Сообщения: 5
SOVA писал(а):
Неужели даже на простом, как велосипед, STM8, нужно использовать HAL?.

Поправьте меня, если ошибаюсь. Я так понял, что HAL - это "hardware abstraction layer"? Т.е. Вы предлагаете задавать значения соответствующих регистров напрямую. Возможно для опытного программиста так проще и с точки зрения экономного расходования ресурсов - рациональней, но я, пока, не дорос до такого уровня и могу много чего напутать. А так я просто выбираю нужное мне значение из тех, что уже есть (и правильно оформлены) в библиотеке соответствующей периферии.
Но сейчас речь не об этом. Меня интересует какая частота доходит до тактирования таймера (если предделители не задействованы)? Равна ли она частоте генератора (кварца)?
В даташитах (https://www.st.com/content/st_com/en/products/microcontrollers-microprocessors/stm8-8-bit-mcus/stm8s-series/stm8s103-105/stm8s105c6.html#documentation) на микроконтроллер ничего противоречащего этому я не нашёл. Может где-то в другом месте поискать, или я что-то не так делаю?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 Fтакт Fcco
СообщениеДобавлено: 13 апр 2021, 16:23 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1703
nuisance писал(а):
Может где-то в другом месте поискать, или я что-то не так делаю?

Открываешь в RM главу про тактирование, там есть диаграмма "Clock tree".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 Fтакт Fcco
СообщениеДобавлено: 13 апр 2021, 17:16 
Только пришел

Зарегистрирован: 23 фев 2015, 21:49
Сообщения: 5
Если речь про то, что в прикреплённом файле, то получается, что можно HSE Ext без изменений передать на CCO, через fHSE или fMASTER. Причём частоты должны быть одинаковыми.
Или я чего-то недопонимаю?


Вложения:
clock_tree.jpg
clock_tree.jpg [ 224.88 Кб | Просмотров: 1147 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 Fтакт Fcco
СообщениеДобавлено: 13 апр 2021, 17:29 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1703
nuisance писал(а):
Причём частоты должны быть одинаковыми.

Могут, но не обязаны, fMASTER может быть равен и 128KHz...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 Fтакт Fcco
СообщениеДобавлено: 13 апр 2021, 17:54 
Только пришел

Зарегистрирован: 23 фев 2015, 21:49
Сообщения: 5
Вооот. И я про то же. А ведь нигде, в документации, про это не сказано. И на таймер приходит не то, что ожидаешь...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 Fтакт Fcco
СообщениеДобавлено: 13 апр 2021, 17:58 
Только пришел

Зарегистрирован: 23 фев 2015, 21:49
Сообщения: 5
Кажется я "изнасиловал" камень перезагрузками вариантов программы. :)
Заказал новые. Буду менять на Discovery. Осталось дождаться, всего месяц.
Спасибо большое всем, кто отозвался.
До новых встреч (с моими новыми вопросами :).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8 Fтакт Fcco
СообщениеДобавлено: 15 апр 2021, 22:31 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2014, 18:09
Сообщения: 721
Откуда: Мать городов Русских
1. Вы до сих пор не указали марку вашего микроконтроллера. Телепаты в отгулах.
2. Тактирование HSE выбирается битом EXTCLK OPT BIT - похоже, что он в регистрах опций и залочен для простой программы.
3. Источник тактирования Fmaster = fHSE выбирается битами селектора CKM[] - всё показано на рисунке.
4. Частоту Fmaster можно проконтролировать на выводе CCO - просто выбрать селектор CCOSEL[] = Fmaster.
Там же всё не просто, а очень просто.


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


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


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

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


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

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

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