Jump to content

derty_flame

Members
  • Content Count

    4
  • Joined

  • Last visited

Community Reputation

0 Обычный

About derty_flame

  • Rank
    Новенький

Информация

  • Город
    Москва

Электроника

  • Стаж в электронике
    Менее года
  1. Всем спасибо, дело было в кривой разводке. Слишком длинная земля была, и на 8МГц вносила свой ненужный вклад.
  2. При инициализации если не запустился внешний кварц, то запускается от 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) { }
  3. тогда может флюс был особо ядреный? Или дорожки от МК к резонатору с километр. до кварца 1-1.5 см, не больше, дорожки прозваниваются тестером. Канифолью пользовался только, лил не жалея, но на других участках всё нормально. Инициализация с system_stm32f10x.c, редактировал там же, сравнивал в других проектах, вроде всё правильно. Факт того, что иногда запускается кварц, говорит, что с инициализацией всё норм, я думаю, хотя хз.
  4. Всем привет! Сделал плату для stm32f102, всё работает отлично (прошивается, диод мигает, серву крутит и т.д.), кроме кварцевого резонатора. Выпаял его вместе с конденсаторами из трёх мест - не запустилось, съездил в магазин взял новые на 8МГц - аналогично, менял конденсаторы, ставил 10, 20, 30, 40 пФ, по даташиту рекомендуют 20 - ничего не помогло, всё равно запускается от внутреннего. HSEStatus = RCC->CR & RCC_CR_HSERDY; HSEStatus не выставляется в единичку. Но если потыкать пальцами, пинцетом и т.д. ножки кварца, то на несколько секунд кварц заводится. и если смотреть через отладчик, то не запускается pll, но если без отладчика, то pll запускается, опять же ненадолго. В чём же мб дело?
×
×
  • Create New...