STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение prinv »

Коллеги, подскажите:
разбираюсь с STM32F103C8T6 от Pinboard в Qube+Keil5
Тактирование процессора работает только от HSI RC 8 Мгц.
Стоит переключить System Clock Mux на HSE 12Мгц или на PLLCLK - всё, тишина, камень мёртвый без признаков жизни.
Причем если на MCO выводить HSE при тактировании от HSI, то всё нормально - сигнал 12 Мгц идёт.
Где я туплю?
Вложения
clock.jpg
Тактирование от RC, на выходе MCO 12Мгц
(79.73 КБ) 799 скачиваний
Никакая контра не уйдёт от нас
bolek
Сверлит текстолит когтями
Сообщения: 1178
Зарегистрирован: Пт авг 21, 2009 03:22:12

Re: STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение bolek »

prinv писал(а):Стоит переключить System Clock Mux на HSE 12Мгц или на PLLCLK - всё, тишина, камень мёртвый без признаков жизни.

Странная конфигурация. Возможно, кварц дохлый или низкоактивный, не работает в генераторе при 3,3
Попробуй сменить кварц на обычные 8 МГц.
Частоту на MCO мерил? Осциллограмма есть?
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение prinv »

Да, осциллограмма с кварца на MCO такая же как и с внутреннего RC генератора, только 12 МГц.
Если бы кварц на 3.3 вольта не работал, то и "синусоиды" на MCO не было.
Никакая контра не уйдёт от нас
bolek
Сверлит текстолит когтями
Сообщения: 1178
Зарегистрирован: Пт авг 21, 2009 03:22:12

Re: STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение bolek »

А при переключении System Clock Mux на HSE, на MCO тоже есть 12 МГц?
Последний раз редактировалось bolek Сб апр 01, 2017 16:06:02, всего редактировалось 2 раза.
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение prinv »

Увы. Стоит изменить System Clock Mux на HSE и всё перестаёт работать.

Ссылка на проект
Никакая контра не уйдёт от нас
bolek
Сверлит текстолит когтями
Сообщения: 1178
Зарегистрирован: Пт авг 21, 2009 03:22:12

Re: STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение bolek »

Тогда поcмотри еще на тему CSS: если кварц генерит нестабильно, CSS генерит NMI, а его нельзя сбросить, не обработав. Вот программа и висит.
Попробуй в нициализации МК запретить включение работы CSS при тактировании от HSE.

P.S. Вот ей-ей, мне было бы проще и быстрее перепаять кварц...
Последний раз редактировалось bolek Сб апр 01, 2017 16:08:24, всего редактировалось 1 раз.
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение prinv »

CSS не разрешено

Так идёт же генерация HSE на MCO при тактировании от HSI RC.
Можно, конечно, и перепаять...
Никакая контра не уйдёт от нас
bolek
Сверлит текстолит когтями
Сообщения: 1178
Зарегистрирован: Пт авг 21, 2009 03:22:12

Re: STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение bolek »

Мой Cube устарел, не открывает твой проект, нужно обновлять...
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение prinv »

У меня вот такой Куб
Вложения
about.jpg
About STM32CubeMX
(26.56 КБ) 786 скачиваний
Никакая контра не уйдёт от нас
bolek
Сверлит текстолит когтями
Сообщения: 1178
Зарегистрирован: Пт авг 21, 2009 03:22:12

Re: STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение bolek »

Да уже грузится, только неспешно. Сегодня, наверное уже не успею.
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение prinv »

Я попробовал всё тоже самое, но только на плате stm32-discovery - такой же результат. Видимо или я где-то туплю, или Cube какую-то околесицу генерирует.
Никакая контра не уйдёт от нас
bolek
Сверлит текстолит когтями
Сообщения: 1178
Зарегистрирован: Пт авг 21, 2009 03:22:12

Re: STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение bolek »

Открыл твой сгенерированный код, добавил мигание светодиодом на PC13 на китайской мелкой платке (см. main.c) - мигает. http://rgho.st/7yMf7Wpr9
Сгенерил в кубе на скорую руку проект с тактированием от HSE, добавил мигание светодиодом - тоже работает. http://rgho.st/8dzjLsbvL

P.S. У меня установлен куб 4.18

P2main.zip
(7.04 КБ) 310 скачиваний
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение prinv »

В общем, Cube выдаёт вот такое при выборе HSE для System Clock Mux

Код: Выделить всё

  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSE;

Если ручками изменить строку на

Код: Выделить всё

  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;

то всё начинает работать.
Никакая контра не уйдёт от нас
bolek
Сверлит текстолит когтями
Сообщения: 1178
Зарегистрирован: Пт авг 21, 2009 03:22:12

Re: STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение bolek »

Да, у меня куб 4.18 сгенерил

Код: Выделить всё

 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;


Но в твоем проекте я эту строку не менял, однако тоже работает.

P.S. Сравни твой main и мой из сгенерированного P1 - там различий гораздо больше, не только эта одна строка.
Последний раз редактировалось bolek Сб апр 01, 2017 17:43:54, всего редактировалось 1 раз.
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение prinv »

Какая-то ахинея, в код Cube добавляю строку

Код: Выделить всё

RCC_OscInitStruct.HSIState = RCC_HSI_ON;

и всё начинает работает.

Да как так-то? :))

Вот рабочая инициализация тактирования

Код: Выделить всё

  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSE;
  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV2;
  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
  RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL4;


На выходе MCO получаю SYSCLK c запланированной частотой 16 МГц
Никакая контра не уйдёт от нас
bolek
Сверлит текстолит когтями
Сообщения: 1178
Зарегистрирован: Пт авг 21, 2009 03:22:12

Re: STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение bolek »

Смотри, в твоем коде есть строки, котрых нет в моем:

Код: Выделить всё

  RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  RCC_OscInitStruct.HSICalibrationValue = 16;

и отличия в строках

Код: Выделить всё

  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;

у меня

Код: Выделить всё

  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSE;


То ли в кубе в проекте что-то не то задано в настройках, то ли куб хрень нагенерил. На ixbt в 48 палате надо посмотреть, что-то там недавно было про ошибки куба.
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение prinv »

Я же говорю, что строчку RCC_OscInitStruct.HSIState = RCC_HSI_ON вписал руками.
При выборе OscillatorType указывается HSI, а сам HSI не включается. Если руками его включить (RCC_HSI_ON), то всё начинает работать.
Так же всё начинает работать, если все упоминания о HSI убрать ручками.

В общем, на Куб надейся, а сам не плошай.
Никакая контра не уйдёт от нас
bolek
Сверлит текстолит когтями
Сообщения: 1178
Зарегистрирован: Пт авг 21, 2009 03:22:12

Re: STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение bolek »

Посмотрел на ixbt - там проблема другая, но тоже куб генерит не то. Что характерно - версия 4.20 как у тебя.
А у меня обновление до 4.20 так и не загрузилось аж с трех попыток. Не судьба, видно, оставлю 4.18 :))
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение prinv »

Блин, только взялся за STM32 и тут такие косяки. Первый раз такое. Ни на AVR, ни на MSP430 такого не было :-)
Никакая контра не уйдёт от нас
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: STM32F103C8T6 и тактирование от внешнего кварца 12МГц

Сообщение Мурик »

Зачем вам куб? Чем SPL не устроила?
Вложения
Blink.zip
(270.22 КБ) 323 скачивания
Ответить

Вернуться в «ARM»