Перейти к содержанию

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


Prominence

Рекомендуемые сообщения

Здравствуйте, в силу поставленных передо мной ограничений (на плате нет внешнего резонатора), я вынужден пытаться запустить 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 в качестве основного источника тактирования

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

Изменено пользователем Prominence
Ссылка на комментарий
Поделиться на другие сайты

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

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

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

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

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

 

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

 

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

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

 

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

5b140c48deace_12.thumb.JPG.7394097f0715f63ce983705f3d1da5c8.JPG

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Изменено пользователем Prominence
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

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

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

 

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...