7 #ifndef __MSP430WARE_UCS_H__
8 #define __MSP430WARE_UCS_H__
12 #if defined(__MSP430_HAS_UCS__) || defined(__MSP430_HAS_UCS_RF__)
31 #define UCS_VLOCLK_FREQUENCY 10000
38 #define UCS_REFOCLK_FREQUENCY 32768
46 #define UCS_CLOCK_DIVIDER_1 DIVM__1
47 #define UCS_CLOCK_DIVIDER_2 DIVM__2
48 #define UCS_CLOCK_DIVIDER_4 DIVM__4
49 #define UCS_CLOCK_DIVIDER_8 DIVM__8
50 #define UCS_CLOCK_DIVIDER_12 DIVM__32
51 #define UCS_CLOCK_DIVIDER_16 DIVM__16
52 #define UCS_CLOCK_DIVIDER_32 DIVM__32
62 #define UCS_SMCLK 0x04
63 #define UCS_FLLREF 0x08
71 #define UCS_XT1CLK_SELECT SELM__XT1CLK
72 #define UCS_VLOCLK_SELECT SELM__VLOCLK
73 #define UCS_REFOCLK_SELECT SELM__REFOCLK
74 #define UCS_DCOCLK_SELECT SELM__DCOCLK
75 #define UCS_DCOCLKDIV_SELECT SELM__DCOCLKDIV
76 #define UCS_XT2CLK_SELECT SELM__XT2CLK
84 #define UCS_XCAP_0 XCAP_0
85 #define UCS_XCAP_1 XCAP_1
86 #define UCS_XCAP_2 XCAP_2
87 #define UCS_XCAP_3 XCAP_3
96 #define UCS_XT1_DRIVE_0 XT1DRIVE_0
97 #define UCS_XT1_DRIVE_1 XT1DRIVE_1
98 #define UCS_XT1_DRIVE_2 XT1DRIVE_2
99 #define UCS_XT1_DRIVE_3 XT1DRIVE_3
107 #define UCS_XT1_HIGH_FREQUENCY XTS
108 #define UCS_XT1_LOW_FREQUENCY 0x00
116 #define UCS_XT2_DRIVE_4MHZ_8MHZ XT2DRIVE_0
117 #define UCS_XT2_DRIVE_8MHZ_16MHZ XT2DRIVE_1
118 #define UCS_XT2_DRIVE_16MHZ_24MHZ XT2DRIVE_2
119 #define UCS_XT2_DRIVE_24MHZ_32MHZ XT2DRIVE_3
127 #define UCS_ACLK 0x01
128 #define UCS_SMCLK 0x04
129 #define UCS_MCLK 0x02
130 #define UCS_MODOSC MODOSCREQEN
139 #define UCS_XT2OFFG XT2OFFG
140 #define UCS_XT1HFOFFG XT1HFOFFG
141 #define UCS_XT1LFOFFG XT1LFOFFG
142 #define UCS_DCOFFG DCOFFG
166 extern void UCS_setExternalClockSource(uint32_t XT1CLK_frequency,
167 uint32_t XT2CLK_frequency);
210 extern void UCS_initClockSignal(uint8_t selectedClockSignal,
211 uint16_t clockSource,
212 uint16_t clockSourceDivider);
248 extern void UCS_turnOnLFXT1(uint16_t xt1drive,
273 extern void UCS_turnOnHFXT1(uint16_t xt1drive);
294 extern void UCS_bypassXT1(uint8_t highOrLowFrequency);
334 extern bool UCS_turnOnLFXT1WithTimeout(uint16_t xt1drive,
364 extern bool UCS_turnOnHFXT1WithTimeout(uint16_t xt1drive,
389 extern bool UCS_bypassXT1WithTimeout(uint8_t highOrLowFrequency,
400 extern void UCS_turnOffXT1(
void);
425 extern void UCS_turnOnXT2(uint16_t xt2drive);
442 extern void UCS_bypassXT2(
void);
470 extern bool UCS_turnOnXT2WithTimeout(uint16_t xt2drive,
490 extern bool UCS_bypassXT2WithTimeout(uint16_t timeout);
502 extern void UCS_turnOffXT2(
void);
530 extern void UCS_initFLLSettle(uint16_t fsystem,
557 extern void UCS_initFLL(uint16_t fsystem,
576 extern void UCS_enableClockRequest(uint8_t selectClock);
594 extern void UCS_disableClockRequest(uint8_t selectClock);
610 extern uint8_t UCS_getFaultFlagStatus(uint8_t mask);
629 extern void UCS_clearFaultFlag(uint8_t mask);
641 extern void UCS_turnOffSMCLK(
void);
653 extern void UCS_turnOnSMCLK(
void);
667 extern uint32_t UCS_getACLK(
void);
681 extern uint32_t UCS_getSMCLK(
void);
695 extern uint32_t UCS_getMCLK(
void);
712 extern uint16_t UCS_clearAllOscFlagsWithTimeout(uint16_t timeout);