Part Number: MSP432P401R
Hello,
We are developing a lighting product using the MSP432 microcontroller.
For this application we need a high speed PWM timer. The timer needs to operate at 250kHz or possibly higher. Also we will be running a UART which is also running a 250kHz.
This board is using a 48MHz crystal. This is a very capable controller but so far I have not been able to get the timer to run faster than about 60 kHz. Is there a limit to how fast the timer can operate?
Can you give me some advice on setting the clocks and timers to achieve the 250kHz or higher? Current settings are listed below.
Please provide suggestions...
Thank you. Christian Cochran
void clockInit(void)
{
/* 2 flash wait states, VCORE = 1, running off DC-DC, 48 MHz */
FlashCtl_setWaitState(FLASH_BANK0, 2);
FlashCtl_setWaitState(FLASH_BANK1, 2);
PCM_setPowerState(PCM_AM_DCDC_VCORE1);
CS_setDCOCenteredFrequency(CS_DCO_FREQUENCY_48); // was CS_DCO_FREQUENCY_48
CS_initClockSignal(CS_MCLK, CS_DCOCLK_SELECT, 1); // was CS_MCLK, CS_DCOCLK_SELECT, 1
CS_initClockSignal(CS_SMCLK, CS_DCOCLK_SELECT, 1 ); // was CS_SMCLK, CS_DCOCLK_SELECT, 1
CS_initClockSignal(CS_HSMCLK, CS_DCOCLK_SELECT, 1); // was CS_HSMCLK, CS_DCOCLK_SELECT, 1 CS_CLOCK_DIVIDER_2
return;
}
const Timer_A_UpModeConfig upA1Config = { // PWM
TIMER_A_CLOCKSOURCE_SMCLK, // SMCLK Clock Source
TIMER_A_CLOCKSOURCE_DIVIDER_2, // SMCLK/2
50, // timer period
TIMER_A_TAIE_INTERRUPT_DISABLE, // Disable Timer interrupt
TIMER_A_CCIE_CCR0_INTERRUPT_ENABLE , // Enable CCR0 interrupt
TIMER_A_DO_CLEAR // Clear value
};
