2014-12-22 10:54 AM
i'm triying to set a timer with a period of 1 us for a input capture application but i get a maximun of 600 khz (more o less). A led toggling at 300 khz.
i can reach accurately any value under 500 khz (led 250khz) but over that speed it starts behaving badly. i've tried with timers 2 and 4 and the response is the same. I don't think my oscilloscope it's the problem but i'm using a HANTEK 6028be (48 Msa/s) GPIOS are set to HIGH SPEED and all clocks to its maximun. I didn't experienced this problem with the old std perih library, just now i'm working with the hal library. any idea? thanks./* Enable Power Control clock */
__PWR_CLK_ENABLE();
/* The voltage scaling allows optimizing the power consumption when the device is
clocked below the maximum system frequency, to update the voltage scaling value
regarding system frequency refer to product datasheet. */
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
/* Enable HSE Oscillator and activate PLL with HSE as source */
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 8;
RCC_OscInitStruct.PLL.PLLN = 360;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 7;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
/* Activate the Over-Drive mode */
HAL_PWREx_ActivateOverDrive();
/* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2
clocks dividers */
RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);
#frecuency #:( #timer #max
2014-12-22 12:31 PM
You can output internal clocks via the MCO pins, use these to verify these are as you expect them.
You can read register settings, and confirm those have consistent settings for the clocks, and speeds you expect. Make sure to use scope probes in 10X mode, the 1X setting shouldn't effect frequency, but will distort the observed wave forms.2014-12-22 02:07 PM
Thank you clive.
I don't think i'm able to read this kind of frecuencies with my oscilloscope. I can reach any frecuency under 500 khz with the same calculations as always so i think the clocks are ok.i put the probe in 10x and the signal improve but the frecueny is the same.i can't imagine where the problem is. i'm getting 500 kHz for any value of period between 180 and 90. Under 90 i get more frecuency but the proportion it is not linear.