Jump to content

Внутреннее тактирование HSI на STM32F103C8T6


Prominence
 Share

Recommended Posts

Здравствуйте, в силу поставленных передо мной ограничений (на плате нет внешнего резонатора), я вынужден пытаться запустить STM32F103 от внутреннего тактирования, да ещё и под 72МГц.

Правильный ли код?

    RCC_DeInit();  //Сброс
    RCC_HSEConfig(RCC_HSE_OFF); //Выключение внешнего тактирования (на всякий случай)
    RCC_PLLConfig( RCC_PLLSource_HSI_Div1, RCC_PLLMul_9); //использование множителя 9 для получения 72МГц, но компилятор ругается на делитель Div1

Дескать, минимум можно использовать Div2, а совсем без делителя нельзя, как ещё можно выставить множитель?


    RCC_PLLCmd( ENABLE); //Включение PLL как такового
    RCC_SYSCLKConfig( RCC_SYSCLKSource_PLLCLK); //Использование PLL в качестве основного источника тактирования

Вышеперечисленная шняга будет вызываться в мэйне, но это совсем другая история, пока что с этим туплю.

Edited by Prominence
Link to comment
Share on other sites

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

2 часа назад, Prominence сказал:

Правильный ли код?

Двумя строками оно не настраивается. Открываем поисковик, вбиваем STM32 HSI, заходим по первой же ссылке http://easyelectronics.ru/arm-uchebnyj-kurs-taktovyj-generator-stm32.html и видим подробнейшее описание работы источников тактирования и их настройки. В чем сложность?

 

2 часа назад, Prominence сказал:

да ещё и под 72МГц.

В чем необходимость именно такой частоты?

Link to comment
Share on other sites

Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Для определения правильных параметров загружаю stm32cubemx, выставляю нужные частоты делители и все получается наглядно. Затем эти значения вношу в проект (не HAL).  HAL не использую. Только для визуального понимания настроек частот и разных пинов.

Link to comment
Share on other sites

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

19 часов назад, BARS_ сказал:

Двумя строками оно не настраивается. Открываем поисковик, вбиваем STM32 HSI, заходим по первой же ссылке http://easyelectronics.ru/arm-uchebnyj-kurs-taktovyj-generator-stm32.html и видим подробнейшее описание работы источников тактирования и их настройки. В чем сложность?

 

В чем необходимость именно такой частоты?

Сложность в недостатке навыков программирования, помноженных на сжатые сроки. Получается, что и учиться некогда, и сделать надо. Глупо и нагло конечно, но другого выхода нет.

 

Link to comment
Share on other sites

1 час назад, Prominence сказал:

Сложность в недостатке навыков программирования, помноженных на сжатые сроки.

Нуль помноженный на нечто, в итоге один хрен даст нуль

Link to comment
Share on other sites

может ошибаюсь, но насколько я понял, из своего опыта, когда включаешь выключаешь модули тактирования надо отслеживать флаг который устанавливается когда модуль HSI например, или любой другой вышел на рабочий уровень, если не отслеживать в цикле флаг, а шагать дальше возможно зависание. Да и с HSI он стартует при сбросе

Link to comment
Share on other sites

 HSI хоть и стартует сам при смерти резонатора - он стартует с залоченными портами в аварийном режиме (не помню уже где вычитал).

Link to comment
Share on other sites

Интересно халокубщики что вообще не смотрят в документацию. Вот как будет проходить сигнал:

5b140c48deace_12.thumb.JPG.7394097f0715f63ce983705f3d1da5c8.JPG

я даже специально одну сносочку скопировал тоже.

Link to comment
Share on other sites

Сложность в недостатке навыков программирования, помноженных на сжатые сроки. Получается, что и учиться некогда, и сделать надо. Глупо и нагло конечно, но другого выхода нет.
 
Я же дал статью, где все есть. Потратить 10 минут на прочтение тоже нельзя?
 HSI хоть и стартует сам при смерти резонатора - он стартует с залоченными портами в аварийном режиме (не помню уже где вычитал).
Бред. МК стартует абсолютно нормально, просто на тактовой 8МГц
Link to comment
Share on other sites

11 час назад, BARS_ сказал:

Бред. МК стартует абсолютно нормально, просто на тактовой 8МГц

То есть можно вообще не париться, не инициировать ничего, и он сам от внутреннего заведётся? Я запутался ещё больше, начал с того, что пытался внутреннему тактированию просто добавить множитель, который с минимальным делителем Div1 не компилировался.

Статью я прочитал, много статей читал, и то, что там пишут - зачастую разнится, а конкретных примеров в коде видел мало.

12 часа назад, MasterElectric сказал:

Интересно халокубщики

Хуже, коксо-воды. Не пойму этих предубеждений в стиле "Начинать надо с кейла, или не мужик".

Link to comment
Share on other sites

При наличии кварца МК автоматом запустится с внешним источником. Причём сразу умножит его частоту. Так, например, 100 и 103 серия умножает на 9. И по умолчанию предполагают наличие кварца 8 МГц. Если же кварца не будет, то МК за ведётся от внутреннего источника на 8 МГц. А как накинуть множители, написано в статье, что выше давал. Да и не в ней одной. Более того, там готовый кусок кода есть.

Link to comment
Share on other sites

Только что, BARS_ сказал:

там готовый кусок кода есть

Подправил немного то, что у меня есть, но проверить пока нет возможности. Фиг с ней с частотой, просто повесил делитель и всё закомпилировалось:

    RCC_DeInit(); 
    RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_9);
    RCC_PLLCmd( ENABLE);
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

Если я правильно понял - ничего не запускать и не выключать, просто настроить PLL.

Link to comment
Share on other sites

Один говорит что всё само заработает, другой уверяет, что надо читать статьи про настройки внешнего резонатора, мол, там даже код есть. (Ну выдернул я куски кода, которые исходя из статей были нужны, почём мне знать какие правильные?)

Понимаю конечно, местные гуру с закрытыми глазами силой мысли всё это делают, есть ведь проблемы и по-глобальнее, но мне не очевидно что нужно сделать, чтобы просто заставить эту дичь работать с нужной частотой. Не сдвинулся ни на йоту, извиняюсь за потраченное время.

Link to comment
Share on other sites

Вся проблема в том, что тактирование НЕ настраивается одной строкой и нужен ВЕСЬ код, который приводится в статье. Неужели так трудно это понять? Я ведь ещё в самом начале написал, что одной строкой не обойтись.

Link to comment
Share on other sites

12 минуты назад, BARS_ сказал:

одной строкой не обойтись

Вон откуда ветер дует, т.е. файлик не перезаписывает значения, а целиком заменяет собой системный? Так бы сразу и сказали.
В статьях как правило приводится участок кода, где кое-как запускают HSE, и всё обрывается циклом-заглушкой, в который скатывается МК, когда этот самый HSE не работает, а всё что я мог - это переделывать инструкции для HSI.

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

Edited by Prominence
Link to comment
Share on other sites

Да расслабляет до степени что не надо читать Reference Manual и ДШ на МК. У АВР то что фьюзы прошил и все.

1 час назад, BARS_ сказал:

При наличии кварца МК автоматом запустится с внешним источником. Причём сразу умножит его частоту. Так, например, 100 и 103 серия умножает на 9. И по умолчанию предполагают наличие кварца 8 МГц. Если же кварца не будет, то МК за ведётся от внутреннего источника на 8 МГц.

Что прям автоматом? Это скорее от среды зависит.

@Prominence На картинке что я давал изображена функциональная схема системы тактирования. Из нее видно что от HSI не выдавить частоту из PLL до 72 МГц. Ладно раз статьи не читаються я расскажу.

При включении МК он тактируеться от HSI на частоте 8МГц. Тебе нужно:

1. Настроить контроллер флеш памяти и указать латентность при ее чтении.

2. Настроить делители, множители PLL.

3. Настроить делители всех шин МК.

4. Включить PLL и подождать пока он запуститься и стабилизируеться.

5. Выбрать PLL источником тактирования системной частоты.  

Link to comment
Share on other sites

Прям автоматом. От среды вообще не зависит, CMSIS одинаковые для всех сред и с ними по дефолту HSI стартует автоматом, если не удаётся кварц запустить.

Link to comment
Share on other sites

4 часа назад, BARS_ сказал:

При наличии кварца МК автоматом запустится с внешним источником. Причём сразу умножит его частоту. Так, например, 100 и 103 серия умножает на 9. И по умолчанию предполагают наличие кварца 8 МГц. Если же кварца не будет, то МК за ведётся от внутреннего источника на 8 МГц. А как накинуть множители, написано в статье, что выше давал. Да и не в ней одной. Более того, там готовый кусок кода есть.

Из написанного следует что МК сам все это делает. Стартапы пишут разработчики сред, у всех они разные. Я вообще выкашиваю этот код и делаю то что мне надо.

Link to comment
Share on other sites

В 02.06.2018 в 14:20, dosikus сказал:

Пора начать работать а не тыкаться - 

 

Чертовски нудный урок...

Открытое видео осталось воспроизводиться фоном, и уже через час хотелось повеситься.

Link to comment
Share on other sites

2 часа назад, Darth_Vader сказал:

А использовал бы Куб - уже давно бы начал решать основную задачу

Ага с нулевыми знаниями как оно устроено... вперед...

@AVI-crak Home Он единственный кто вещает на таком уровне про регистры и устройство МК, пусть так чем никак. Ну то что рассказывает не все и по своему это уже такое.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...