Jump to content
Sign in to follow this  
Guest Иван

Настройка тактирования STM32F4 при помощи CMSIS

Recommended Posts

Guest Иван

При смены множителя N в PLL, частота мерцания светодиодов остается неизменной. Даже если закомментировать регистры связанные с PLL и тактировать от HSE, то частота мигания светодиодов остается прежней.

Используется плата: stm32f4 discovery.

В чем может быть дело? Что не так?

Полный листинг программы:

#include "stm32f4xx.h"                 // Device header

int main (void)
	
{
		RCC->CR |= (RCC_CR_HSEON); 							//Enable HSE

	while( !(RCC->CR & RCC_CR_HSERDY) ) {} //ready to start HSE

	//FLASH
	FLASH->ACR |= FLASH_ACR_LATENCY | FLASH_ACR_PRFTEN| FLASH_ACR_ICEN| FLASH_ACR_DCEN;
	//PLL - HSE
	RCC->PLLCFGR |= RCC_PLLCFGR_PLLSRC_HSE; //set HSE as PLL source
	RCC->CR &= ~(RCC_CR_PLLON); 						//disable PLL before changes
	//PLL M
	RCC->PLLCFGR &= ~(RCC_PLLCFGR_PLLM); 		//clear all PLLM bits
	RCC->PLLCFGR |= RCC_PLLCFGR_PLLM_2; 		//set PLLM = 4 (100)
	//PLL P
	RCC->PLLCFGR &= ~(RCC_PLLCFGR_PLLP); 		//main PLL division PLLP = 2: 00
	//PLL N
	RCC->PLLCFGR &= ~(RCC_PLLCFGR_PLLN); 		//clear all PLLN bits with mask
	RCC->PLLCFGR |= RCC_PLLCFGR_PLLN_3; 		//set PLLN = 168 (1010 1000)
	RCC->PLLCFGR |= RCC_PLLCFGR_PLLN_5; 		//for 8 or 16 MHz HSE
	RCC->PLLCFGR |= RCC_PLLCFGR_PLLN_7; 		//
	//PLL Q 7 (0111)
	RCC->PLLCFGR &= ~(RCC_PLLCFGR_PLLQ);
	RCC->PLLCFGR |= (RCC_PLLCFGR_PLLQ_0	| RCC_PLLCFGR_PLLQ_2	| RCC_PLLCFGR_PLLQ_2);
	//AHB Prescaler
	RCC->CFGR &= ~(RCC_CFGR_HPRE); 					//Prescaler 1
	RCC->CFGR |= RCC_CFGR_HPRE_DIV1; 				//AHB = SYSCLK/1
	//APB1 Prescaler 8
	RCC->CFGR &= ~(RCC_CFGR_PPRE1);
	RCC->CFGR |= RCC_CFGR_PPRE1_DIV8;
	//APB2 Prescaler 2
	RCC->CFGR &= ~(RCC_CFGR_PPRE2);
	RCC->CFGR |= RCC_CFGR_PPRE2_DIV2;
	//PLL enable
	RCC->CR |= RCC_CR_PLLON; 								//enalbe PLL
	while((RCC->CR & RCC_CR_PLLRDY) == 0) {} 	//wait for PLL is ready
	//PLL System
	RCC->CFGR &= ~RCC_CFGR_SW;
	RCC->CFGR |= RCC_CFGR_SW_HSE; 					//PLL selected as system clock
	while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_HSE) {} 	//wait for PLL is used

	
	RCC->AHB1ENR |=RCC_AHB1ENR_GPIODEN;	//start clock PORTD
	
	GPIOD->MODER |= GPIO_MODER_MODER15_0 | GPIO_MODER_MODER14_0 | GPIO_MODER_MODER13_0 | GPIO_MODER_MODER12_0; // Pin 15, 14, 13, 12 - out
	GPIOD->OTYPER &= ~0xF000; // Pin 15, 14, 13, 12 - Output push-pull
	GPIOD->OSPEEDR &= ~0xFF000000; // Pin 15, 14, 13, 12 - Low speed
	
	
while(1)
{
	// ON LED
	GPIOD->ODR |= GPIO_ODR_ODR_15 | GPIO_ODR_ODR_14 | GPIO_ODR_ODR_13 | GPIO_ODR_ODR_12;
	for (int i=0; i<24000000; i++){}
	// OFF LED
	GPIOD->ODR &= ~(GPIO_ODR_ODR_15 | GPIO_ODR_ODR_14 | GPIO_ODR_ODR_13 | GPIO_ODR_ODR_12);
	for (int i=0; i<24000000; i++){}
	
}
}

 

Share this post


Link to post
Share on other sites
RCC->CFGR |= RCC_CFGR_SW_HSE; 					//PLL selected as system clock
while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_HSE) {} 	//wait for PLL is used

Источником тактирования выбран внешний кварц, а нужно выбирать PLL.

Должно быть как-то так:

RCC->CFGR |= RCC_CFGR_SW_PLL; 					//PLL selected as system clock
while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL) {} 	//wait for PLL is used

 

Share this post


Link to post
Share on other sites
Guest Иван
4 часа назад, Вуйко сказал:

Источником тактирования выбран внешний кварц, а нужно выбирать PLL.

Должно быть как-то так:


RCC->CFGR |= RCC_CFGR_SW_PLL; 					//PLL selected as system clock
while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL) {} 	//wait for PLL is used

 

У меня так было изначально. Частота не меняется при смене N.

Это я потом пробовал с HSE

Share this post


Link to post
Share on other sites

Тестирование литиевых батареек Fanso в нормальных условиях

Компания Компэл, эксклюзивный дистрибьютор компании Fanso, предлагает широкий перечень ЛХИТ, позволяющий подобрать элемент питания, в наибольшей степени соответствующий конкретным требованиям. Для тестирования параметров, указанных в Datasheet, специалисты Компэл организовали в апреле 2019 г. полугодовой тест на постоянный разряд в нормальных условиях четырех наиболее популярных моделей литий-тионилхлоридных и литий-диоксидмарганцевых батареек Fanso.

Посмотреть результаты первого среза

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  

  • Сообщения

    • Да сколько угодно. Цифровые запоминающие осциллографы, регистраторы данных.  Все это есть на  Алиэкспрессе. Можно даже  дешевенький конструктор собрать из модулей оттуда же.    А для чего я вам вот это написал? Это вы предлагаете, чтобы хлеб за ртом бегал?   Это у вас интерес. Только вы знаете сколько стоит ваше время, актуальность проблемы и вашу готовность что-то оптимизировать. Только вы формулируете ТЗ и знаете сколько можете  себе позволить потратить на его реализацию.  Ну и напоследок по поводу Это не перегиб, а лицо вашей фирмы. Это возможность планировать ваше время и поездки,  устранив внезапные выезды на аварии, предотвращать простои оборудования клиента своевременной профилактикой/превентивным ремонтом и  возможность ввести SLA для клиентов. За что они  же и заплатят сами.    
    • Добавлю: ещё и далеко не каждый тестер умеет точно измерять такие малые сопротивления.
    • Делайте выводы, чем вы будете дышать во время работы и насколько хватит этого ремонта.
    • Ну если человек не знает, что из себя представляет синфазный дроссель фильтра и нашёл "стабилитрон" на входе ИИП, то других выводов, кроме как "вроде", "мне кажется" и "где копать" ожидать не приходится.  Я требую выпустить КРАБа с гауптвахты! 
    • А что-меньше? Счастливый человек-не сталкивался видимо. Удачи!
    • Первая ссылка в яндексе поделилась https://elektrotanya.com/sony_xr-ca660x.pdf/download.html Чего беспомощные все такие?
×
×
  • Create New...