Jump to content
Sign in to follow this  
derty_flame

Не Запускается Кварц

Recommended Posts

Всем привет!

Сделал плату для stm32f102, всё работает отлично (прошивается, диод мигает, серву крутит и т.д.), кроме кварцевого резонатора.

Выпаял его вместе с конденсаторами из трёх мест - не запустилось, съездил в магазин взял новые на 8МГц - аналогично, менял конденсаторы, ставил 10, 20, 30, 40 пФ, по даташиту рекомендуют 20 - ничего не помогло, всё равно запускается от внутреннего.

HSEStatus = RCC->CR & RCC_CR_HSERDY;

HSEStatus не выставляется в единичку.

Но если потыкать пальцами, пинцетом и т.д. ножки кварца, то на несколько секунд кварц заводится. и если смотреть через отладчик, то не запускается pll, но если без отладчика, то pll запускается, опять же ненадолго.

В чём же мб дело?

Edited by derty_flame

Share this post


Link to post
Share on other sites

С STM дела не имел, но если:

Но если потыкать пальцами, пинцетом и т.д. ножки кварца, то на несколько секунд кварц заводится

тогда может флюс был особо ядреный? Или дорожки от МК к резонатору с километр.

Share this post


Link to post
Share on other sites

Высококачественные конденсаторы Panasonic для надежности вашей электроники!

Электролитические алюминиевые конденсаторы Panasonic отличаются повышенной надежностью, длительным сроком службы, низким импедансом и выдерживают большой ток пульсаций, в то время как семейства полимерных конденсаторов Panasonic SP-CAP, POSCAP, OS-CON и HYBRID характеризуют сверхнизкий ESR и увеличенная емкость, работа при высоких напряжениях и в расширенном температурном диапазоне. Приобретая продукцию Panasonic, вы гарантированно получаете самое передовое решение для ваших задач. Для облегчения вашего выбора, мы подготовили подборку полезных материалов.

Читать статьи

С STM дела не имел, но если:

Но если потыкать пальцами, пинцетом и т.д. ножки кварца, то на несколько секунд кварц заводится

тогда может флюс был особо ядреный? Или дорожки от МК к резонатору с километр.

до кварца 1-1.5 см, не больше, дорожки прозваниваются тестером. Канифолью пользовался только, лил не жалея, но на других участках всё нормально.

Проверь инициализацию системы тактирования.

Инициализация с system_stm32f10x.c, редактировал там же, сравнивал в других проектах, вроде всё правильно. Факт того, что иногда запускается кварц, говорит, что с инициализацией всё норм, я думаю, хотя хз.

Share this post


Link to post
Share on other sites

Так-то по идее при выборе источника HSE , источник HSI должен отключаться, т.е. контроллер не должен работать. Может быть я не прав.

Можно кусок кода с инициализацией в студию?

Share this post


Link to post
Share on other sites
                     

Вебинар "Как создать BLE-устройство на базе новейшего беспроводного микроконтроллера STM32WB55"

27 ноября 2019 года компания КОМПЭЛ приглашает разработчиков, технических руководителей и энтузиастов беспроводной связи на вебинар, посвященный новинке 2019 года – мультипротокольному беспроводному микроконтроллеру STM32WB55, который позволяет создавать устройства на базе стандартов BLE 5.0; BLE Mesh; 802.15.4/ZigBee и Thread. На вебинаре мы покажем, как с помощью привычных инструментов STM32Cube и STM32CubeMX можно создать свое первое, надежно работающее BLE-приложение.

Зарегистрироваться на вебинар

Так-то по идее при выборе источника HSE , источник HSI должен отключаться, т.е. контроллер не должен работать. Может быть я не прав.

Можно кусок кода с инициализацией в студию?

При инициализации если не запустился внешний кварц, то запускается от HSI, и елси в процессе отваливается, то тоже от HSI запускается, вроде как.

static void SetSysClockTo24(void)
{
 __IO uint32_t StartUpCounter = 0, HSEStatus = 0;

 /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/    
 /* Enable HSE */    
 RCC->CR |= ((uint32_t)RCC_CR_HSEON);

 /* Wait till HSE is ready and if Time out is reached exit */
 do
 {
   HSEStatus = RCC->CR & RCC_CR_HSERDY;
   StartUpCounter++;  
 } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));

 if ((RCC->CR & RCC_CR_HSERDY) != RESET)
 {
   HSEStatus = (uint32_t)0x01;
 }
 else
 {
   HSEStatus = (uint32_t)0x00;
 }  

 if (HSEStatus == (uint32_t)0x01)
 {
   /* Flash 0 wait state */
   FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY);
   FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_0;   

   /* HCLK = SYSCLK */
   RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;

   /* PCLK2 = HCLK */
   RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1;

   /* PCLK1 = HCLK */
   RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV1;

   /*  PLL configuration:  = (HSE / 2) * 6 = 24 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_PLLMULL6);

   /* Enable PLL */
   RCC->CR |= RCC_CR_PLLON;

   /* Wait till PLL is ready */
   while((RCC->CR & RCC_CR_PLLRDY) == 0)
   {
   }

   /* Select PLL as system clock source */
   RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
   RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL;    

   /* Wait till PLL is used as system clock source */
   while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08)
   {
   }

Share this post


Link to post
Share on other sites

Всем спасибо, дело было в кривой разводке. Слишком длинная земля была, и на 8МГц вносила свой ненужный вклад.

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. 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
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...
Sign in to follow this  

  • Similar Content

    • By KEKUS
      Продам 3шт Кварцевых резонаторов
      все подробности смотрите на фотографиях.
      на счет цены пишите.




    • Guest Дед Михалыч
      By Guest Дед Михалыч
      На корпусе кварца написано:12000; 774-71; KSS 2GT
      На какую частоту этот кварц - нигде не мог сыскать, а измерительных приборов у меня нет. Помогите, кто знает, как прочитать это.
    • By ВладимирДВ
      Добрый день всем. В антенном блоке сигнализации вышел из строя кварцевый резонатор. Маркировка на нем 20.9с07. нигде в интернете не могу найти подобную модель. Помогите с определением частоты резонатора.
    • Guest Ronikan
      By Guest Ronikan
      Добрый день!
      Помогите подобрать недорогой частотомер с функцией передачи данных по частоте кварцевого резонатора на компьютер (в процессе измерения частота может изменяться в течение определённого времени).
      Обязательные условия:
      Возможность записи на компьютер данных по изменению частоты во времени (т.е., в начальный момент времени частота была 10, 000 МГц, через минуту 9,995 МГц и так далее). Возможность копирования, полученных данных в Excel (т.е., на выходе таблица формата: время/частота)  Данные по резонаторам, которые будут использоваться.

       

    • By Не баг а фича (Не баг а фича)
      Нужна схема от пульта zh/jt-03 или частоту кварцевого резонатора в нем. Пульт совершенно не работает, не выводит изображение на дисплей, и не подает ик сигнал.
      Помогите найти нужный кварцевый резонатор. На не рабочем указана маркировка KDS1m, но такой я не нашел.
×
×
  • Create New...