Other Parts Discussed in Thread: MSP430FR6043
使用MSP430FR5043的UUS模块的寄存器模式,触发后没有脉冲输出,配置如下:
/*******************************************************
*******************************************************/
void HSPLL_init(void)
{
HSPLLUSSXTLCTL = OSCTYPE_0 | USSXTEN;
while((HSPLLUSSXTLCTL & OSCSTATE) == 0);
HSPLLCTL = PLLM4 | PLLM2 | PLLM0 | PLLINFREQ_1; //PLLM = 21, PLL input frequency > 6MHz (7.3728MHz * 21 /2 =77.4144MHZ)
UUPSCTL&=~ASQEN;
}
void ASQ_ReGister_mode_init(void)
{
// UUPSCTL&=~USSSWRST;
SAPHKEY = KEY; // Unlock the SAPH registers
SAPHOSEL =0;
SAPHBCTL&=~ASQBSC; //寄存器模式,CH0输出
SAPHPGCTL =0;
SAPHICTL0 &=~MUXCTL; //寄存器模式,CH0输入
SDHSCTL0 =0;
SAPHPGCTL |=PPGEN;
SAPHASCTL0|= ASQTEN;
SDHSCTL3|=TRIGEN;
}
void UTC_Start(void)
{
//***************************************************
UUPSCTL|=USSPWRUP;
while((UUPSCTL & UPSTATE_3) != UPSTATE_3);
while(!(HSPLLCTL & PLL_LOCK));
PERIPH_UART1_PutUnit(2);
PERIPH_UART1_PutUnit(UUPSCTL>>8);
PERIPH_UART1_PutUnit(UUPSCTL);
SAPHPPGTRIG=PPGTRIG;
SAPHASQTRIG=ASQTRIG;
while(!(SAPHRIS & PNGDN));
while(!(SAPHRIS & SEQDN));
SAPHICR|=PNGDN|SEQDN;
/*******************************************************
*******************************************************/
void SAPH_init(void)
{
SAPHKEY = KEY; // Unlock the SAPH registers
SAPHPGC = PHIZ_1 | PPOL_0 | SPULS2 | EPULS4; // 8 excitation pulses, 4 stop pulses, output High_Z, high polarity
SAPHPGLPER = 4; // Low phase = 4 HSPLL cycles = 50ns
SAPHPGHPER = 4; // High phase = 4 HSPLL cycles = 50ns
}