реклама на сайте
подробности

 
 
> Проблема с тактовой частотой., STM32F103RBT6
Jenya7
сообщение Oct 16 2013, 05:27
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Привет всем.
Выставляю тактовую частоту -72Мгц.
CODE
void SysClockInit(void)
{
__IO uint32_t StartUpCounter = 0, HSEStatus = 0;

/* Configuration SYSCLK, HCLK, PCLK2 и PCLK1 ---------------------------*/
/* Switch on HSE */
RCC->CR |= ((uint32_t)RCC_CR_HSEON);

/* Wait for HSE ready bit or timeout*/
do
{
HSEStatus = RCC->CR & RCC_CR_HSERDY;
StartUpCounter++;
} while( (HSEStatus == 0) && (StartUpCounter != HSEStartUp_TimeOut));

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

/* if HSE started good */
if ( HSEStatus == (uint32_t)0x01)
{
/* Включаем буфер предвыборки FLASH */
FLASH->ACR |= FLASH_ACR_PRFTBE;

/* Конфигурируем Flash на 2 цикла ожидания */
/* Это нужно потому, что Flash не может работать на высокой частоте */
FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY);
FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_2;

/* 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_DIV2;

/* Конфигурируем множитель PLL configuration: PLLCLK = HSE * 9 = 72 MHz */
/* При условии, что кварц на 8МГц! */
/* RCC_CFGR_PLLMULL9 - множитель на 9. Если нужна другая частота, не 72МГц */
/* то выбираем другой множитель. */
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_PLLMULL9);

/* Switch on PLL */
RCC->CR |= RCC_CR_PLLON;

/* wait for PLL ready bit */
while((RCC->CR & RCC_CR_PLLRDY) == 0) { }

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

/* Ожидаем, пока PLL выберется как источник системной частоты */
while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) { }
}
else
{
/* All is bad... HSE didn't turn on... Something wrong...
If we are here our source is HSI! */
}

//return HSEStatus;
}


Настраиваю MCO Pin чтобы видеть частоту.

CODE
void McoPinInit(void)
{
//RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; // Подаем тактирование на порт

GPIOA->CRH &= ~GPIO_CRH_CNF8; // Сбрасываем биты CNF для бита 8. Режим 00 - Push-Pull
GPIOA->CRH |= GPIO_CRH_CNF8_1; // Ставим режим для 8 го бита режим CNF = 10 (альтернативная функция, Push-Pull)

GPIOA->CRH &=~GPIO_CRH_MODE8; // Сбрасываем биты MODE для бита 8
GPIOA->CRH |= GPIO_CRH_MODE8_1 | GPIO_CRH_MODE8_0; // Выставляем бит MODE для пятого пина. Режим MODE11 = Max Speed 50MHz

RCC->CFGR &=~(RCC_CFGR_MCO); // Обнуляем MCO
//RCC->CFGR |=RCC_CFGR_MCO_PLL; // Выставлем для MCO сигнал с PLL/2
RCC->CFGR |=RCC_CFGR_MCO_SYSCLK; // Выставляем для МСО сигнал с SYSCLK
}


Вижу на скопе частоту 24Мгц вместо 72Мгц. Что я делаю не так?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   Проблема с тактовой частотой.   Oct 16 2013, 05:27
- - Golikov A.   как минимум, как следует из комментариев вы пин н...   Oct 16 2013, 08:50
- - A.Lex   В доке написано: I/Os on APB2 with up to 18 MHz to...   Oct 16 2013, 09:30
- - Jenya7   Я понял. Попробую подрезать частоту.   Oct 16 2013, 09:45
|- - Jenya7   изменил опцию MCO пина - чтоб выдавал PLL/2 Код RC...   Oct 20 2013, 05:58
|- - Jenya7   я так понимаю, что STM32F103RBT6 это Medium-dens...   Oct 22 2013, 07:21
|- - ViKo   Цитата(Jenya7 @ Oct 22 2013, 10:21) но Sy...   Oct 22 2013, 08:20
|- - Jenya7   Цитата(ViKo @ Oct 22 2013, 14:20) А вы св...   Oct 22 2013, 09:41
|- - antis   Цитата(Jenya7 @ Oct 22 2013, 13:41) конеч...   Oct 23 2013, 06:03
|- - Jenya7   Цитата(antis @ Oct 23 2013, 12:03) SysClo...   Oct 23 2013, 06:15
|- - antis   Цитата(Jenya7 @ Oct 23 2013, 10:15) SysCl...   Oct 23 2013, 06:29
|- - Jenya7   Цитата(antis @ Oct 23 2013, 12:29) Сорь, ...   Oct 23 2013, 08:28
- - ViKo   А на выводах резонатора генерация есть?   Oct 22 2013, 09:59
|- - Jenya7   Цитата(ViKo @ Oct 22 2013, 15:59) А на вы...   Oct 22 2013, 10:15
- - Jenya7   посмотрел частоту на кварце - красивые 8 Мгц, в че...   Oct 23 2013, 05:28
- - ViKo   В отладчике Keil можно увидеть состояние RCC.   Oct 23 2013, 05:54
|- - Jenya7   Цитата(ViKo @ Oct 23 2013, 11:54) В отлад...   Oct 23 2013, 06:02
- - ViKo   На всякий случай спрошу - а у вас точно STM32F103,...   Oct 23 2013, 09:24
- - smk   Как я помню на лету так просто переписать регистры...   Oct 23 2013, 09:27
- - Jenya7   у меня STM32F103RBT6. Мне кажется что system_stm3...   Oct 23 2013, 09:57
- - Jenya7   На всякий случай, если кто будет биться головой об...   Oct 31 2013, 08:27


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 05:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01395 секунд с 7
ELECTRONIX ©2004-2016