<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<IP xmlns:ns0="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://mcd.rou.st.com/modules.php?name=mcu" DBVersion="V3.0" IPType="peripheral" Name="RCC" Version="STM32F100_rcc_v1_0" 	ns0:schemaLocation="http://mcd.rou.st.com/modules.php?name=mcu ../../../../../../../doc/V4/Development/Specifications/db/IP_Modes.xsd">
    <About>RCC: Reset and Clock Control</About>
    <RefParameter Visible="false" Comment="Oscillator Type" DefaultValue="+OscillatorTypeHSI+|OscillatorTypeLSI+|OscillatorTypeHSE+|OscillatorTypeLSE" Name="OscillatorType" Type="list"/>
     <RefParameter Name="HSE_Timout"   Comment="HSE Startup Timout Value (ms)" Type="integer" DefaultValue="100" Min="1"  Max="4294967295" Group="RCC Parameters"/>
	 <RefParameter Name="LSE_Timout"   Comment="LSE Startup Timout Value (ms)" Type="integer" DefaultValue="5000" Min="1" Max="4294967295"  Group="RCC Parameters"/>
    <!--Les multiplicateurs-->
    <!--PLL MUL-->
    <RefParameter Visible="false" Comment="PLL Mul" DefaultValue="RCC_PLL_MUL2" Name="PLLMUL" Type="list">
        <PossibleValue Comment="2"  Value="RCC_PLL_MUL2"/>
        <PossibleValue Comment="3"  Value="RCC_PLL_MUL3"/>
        <PossibleValue Comment="4"  Value="RCC_PLL_MUL4"/>
        <PossibleValue Comment="5"  Value="RCC_PLL_MUL5"/>
        <PossibleValue Comment="6"  Value="RCC_PLL_MUL6"/>
        <PossibleValue Comment="7"  Value="RCC_PLL_MUL7"/>
        <PossibleValue Comment="8"  Value="RCC_PLL_MUL8"/>
        <PossibleValue Comment="9"  Value="RCC_PLL_MUL9"/>
        <PossibleValue Comment="10" Value="RCC_PLL_MUL10"/>
        <PossibleValue Comment="11" Value="RCC_PLL_MUL11"/>
        <PossibleValue Comment="12" Value="RCC_PLL_MUL12"/>
        <PossibleValue Comment="13" Value="RCC_PLL_MUL13"/>
        <PossibleValue Comment="14" Value="RCC_PLL_MUL14"/>
        <PossibleValue Comment="15" Value="RCC_PLL_MUL15"/>
        <PossibleValue Comment="16" Value="RCC_PLL_MUL16"/>
    </RefParameter>
	
    <!--APB1 MUL for TIM-->
    <RefParameter Visible="false" Comment="APB1 Timer Clock Divider" DefaultValue="1" Name="APB1TimCLKDivider" Type="integer" Max="1" Min="1">
        <Condition Diagnostic="APB1 timer clock" Expression="APB1CLKDivider=RCC_HCLK_DIV1"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="APB1 Timer Clock Divider" DefaultValue="2" Name="APB1TimCLKDivider" Type="integer" Max="2" Min="2"/>
    
    <!--APB2 MUL for TIM-->
    <RefParameter Visible="false" Comment="APB2 Timer Clock Divider" DefaultValue="1" Name="APB2TimCLKDivider" Type="integer" Max="1" Min="1">
        <Condition Diagnostic="APB1 timer clock" Expression="APB2CLKDivider=RCC_HCLK_DIV1"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="APB2 Timer Clock Divider" DefaultValue="2" Name="APB2TimCLKDivider" Type="integer" Max="2" Min="2"/>
   
    

    <!--les diviseurs-->
    <!--diviseur HSI pour PLL source-->
    <RefParameter Visible="false" Comment="HSIRC Divider for PLL" Name="HSIDivPLL"  Type="integer" DefaultValue="2"   Max="2"   Min="2"/>
 
    <!--diviseur HSE pour PLL source-->
    <RefParameter Visible="false" Comment="HSE Prediv Value" DefaultValue="RCC_HSE_PREDIV_DIV1" Name="HSEDivPLL" Type="list">
        <PossibleValue Comment="1"  Value="RCC_HSE_PREDIV_DIV1"/>
        <PossibleValue Comment="2"  Value="RCC_HSE_PREDIV_DIV2"/>
        <PossibleValue Comment="3"  Value="RCC_HSE_PREDIV_DIV3"/>
        <PossibleValue Comment="4"  Value="RCC_HSE_PREDIV_DIV4"/>
        <PossibleValue Comment="5"  Value="RCC_HSE_PREDIV_DIV5"/>
        <PossibleValue Comment="6"  Value="RCC_HSE_PREDIV_DIV6"/>
        <PossibleValue Comment="7"  Value="RCC_HSE_PREDIV_DIV7"/>
        <PossibleValue Comment="8"  Value="RCC_HSE_PREDIV_DIV8"/>
        <PossibleValue Comment="9"  Value="RCC_HSE_PREDIV_DIV9"/>
        <PossibleValue Comment="10" Value="RCC_HSE_PREDIV_DIV10"/>
        <PossibleValue Comment="11" Value="RCC_HSE_PREDIV_DIV11"/>
        <PossibleValue Comment="12" Value="RCC_HSE_PREDIV_DIV12"/>
        <PossibleValue Comment="13" Value="RCC_HSE_PREDIV_DIV13"/>
        <PossibleValue Comment="14" Value="RCC_HSE_PREDIV_DIV14"/>
        <PossibleValue Comment="15" Value="RCC_HSE_PREDIV_DIV15"/>
        <PossibleValue Comment="16" Value="RCC_HSE_PREDIV_DIV16"/>
    </RefParameter>
    
    <RefParameter Visible="false" Name="PLLSourceLL" Comment="PLLSourceLL" Type="list" DefaultValue="+HSEDivPLL">
        <Condition Expression="((PLLSource=RCC_PLLSOURCE_HSE) &amp; (PLLUsed=1)) " Diagnostic="PLLSource LL"/>        
    </RefParameter>

    <RefParameter Visible="false" Name="PLLSourceLL" Comment="PLLSourceLL" Type="list" DefaultValue="RCC_PLLSOURCE_HSI_DIV2"/>

    <!--diviseur HSE pour RTC-->
    <RefParameter Visible="false" Comment="HSE RTC Divider" Name="RCC_RTC_Clock_Source_FROM_HSE" Type="integer" DefaultValue="128" Max="128" Min="128"/>
  
    <!--diviseur de PLL output vers MCO-->
    <RefParameter Visible="false" Comment="PLL Divider for MCO" Name="RCC_MCOMult_Clock_Source_FROM_PLLMUL" Type="integer" DefaultValue="2" Max="2" Min="2"/>
	
	
    <!--diviseur AHB 1..512-->
    <RefParameter Comment="AHBCLK Divider" Visible="false" DefaultValue="RCC_SYSCLK_DIV1" Name="AHBCLKDivider" Type="list">
        <PossibleValue Comment="1"   Value="RCC_SYSCLK_DIV1"/>
        <PossibleValue Comment="2"   Value="RCC_SYSCLK_DIV2"/>
        <PossibleValue Comment="4"   Value="RCC_SYSCLK_DIV4"/>
        <PossibleValue Comment="8"   Value="RCC_SYSCLK_DIV8"/>
        <PossibleValue Comment="16"  Value="RCC_SYSCLK_DIV16"/>
        <PossibleValue Comment="64"  Value="RCC_SYSCLK_DIV64"/>
        <PossibleValue Comment="128" Value="RCC_SYSCLK_DIV128"/>
        <PossibleValue Comment="256" Value="RCC_SYSCLK_DIV256"/>
        <PossibleValue Comment="512" Value="RCC_SYSCLK_DIV512"/>
    </RefParameter>
	
    
    <!--diviseur ADC1-->
    <RefParameter Visible="false" Comment="ADC1 Clock Divider" DefaultValue="RCC_ADCPCLK2_DIV2" Name="ADCPresc" Type="list">
        <PossibleValue Comment="2"   Value="RCC_ADCPCLK2_DIV2"/>
        <PossibleValue Comment="4"   Value="RCC_ADCPCLK2_DIV4"/>
        <PossibleValue Comment="6"   Value="RCC_ADCPCLK2_DIV6"/>
        <PossibleValue Comment="8"   Value="RCC_ADCPCLK2_DIV8"/>
        
       
        
    </RefParameter>
    <!--diviseur de AHB /8 pour cortex sys timer-->
    <RefParameter Visible="false" Comment="Cortex timer system Div" DefaultValue="SYSTICK_CLKSOURCE_HCLK" Name="TimSys_Div" Type="list">
         <PossibleValue Comment="1" Value="SYSTICK_CLKSOURCE_HCLK" Semaphore="HCLKDiv1"/>
		 <PossibleValue Comment="8" Value="SYSTICK_CLKSOURCE_HCLK_DIV8"/>
    </RefParameter>  
   
   <RefParameter Visible="false" Comment="Cortex_DivARG" DefaultValue="HAL_RCC_GetHCLKFreq()/1000" Name="Cortex_DivARG" Type="String">
        <Condition Expression="HCLKDiv1" Diagnostic=""/>
    </RefParameter>	
    <RefParameter Visible="false" Comment="Cortex_DivARG" DefaultValue="HAL_RCC_GetHCLKFreq()/8000" Name="Cortex_DivARG" Type="String"/>
    <!--diviseur APB1 1..16-->
    <RefParameter Visible="false"  Comment="APB1 Clock Divider" DefaultValue="RCC_HCLK_DIV1" Name="APB1CLKDivider" Type="list">
        <PossibleValue Comment="1"  Value="RCC_HCLK_DIV1"/>
        <PossibleValue Comment="2"  Value="RCC_HCLK_DIV2"/>
        <PossibleValue Comment="4"  Value="RCC_HCLK_DIV4"/>
        <PossibleValue Comment="8"  Value="RCC_HCLK_DIV8"/>
        <PossibleValue Comment="16" Value="RCC_HCLK_DIV16"/>
    </RefParameter>
	
	
    <!--diviseur APB2 1..16-->
    <RefParameter Visible="false"  Comment="APB2 Clock Divider" DefaultValue="RCC_HCLK_DIV1" Name="APB2CLKDivider" Type="list">
        <PossibleValue Comment="1"  Value="RCC_HCLK_DIV1"/>
        <PossibleValue Comment="2"  Value="RCC_HCLK_DIV2"/>
        <PossibleValue Comment="4"  Value="RCC_HCLK_DIV4"/>
        <PossibleValue Comment="8"  Value="RCC_HCLK_DIV8"/>
        <PossibleValue Comment="16" Value="RCC_HCLK_DIV16"/>
    </RefParameter>
 

	 
	
    <!--Les multiplexeurs-->
    <!-- PLL source MUX-->

    <RefParameter Visible="false" Comment="PLL Source" DefaultValue="RCC_PLLSOURCE_HSI_DIV2" Name="PLLSource" Type="list">
        <PossibleValue Comment="Pllsource Hsi" Value="RCC_PLLSOURCE_HSI_DIV2" />
        <PossibleValue Comment="Pllsource Hse" Value="RCC_PLLSOURCE_HSE"/>
    </RefParameter>
   
    <!-- SYS clock MUX-->
    <RefParameter Comment="SYSCLK Source" Visible="false" DefaultValue="RCC_SYSCLKSOURCE_HSI" Name="SYSCLKSource" Type="list">
        <PossibleValue Comment="Sysclksource Hsi"    Value="RCC_SYSCLKSOURCE_HSI"/>
        <PossibleValue Comment="Sysclksource Hse"    Value="RCC_SYSCLKSOURCE_HSE"/>
        <PossibleValue Comment="Sysclksource Pllclk" Value="RCC_SYSCLKSOURCE_PLLCLK"/>
    </RefParameter>
	
    <!-- RTC  MUX-->
    <RefParameter Visible="false"  Comment="RTC Clock Selection" DefaultValue="RCC_RTCCLKSOURCE_LSI" Name="RTCClockSelection" Type="list" IP="RTC">
        <PossibleValue Comment="Rtcclksource Lse"       Value="RCC_RTCCLKSOURCE_LSE"/>
        <PossibleValue Comment="Rtcclksource Lsi"       Value="RCC_RTCCLKSOURCE_LSI"/>
        <PossibleValue Comment="Rtcclksource Hse Div32" Value="RCC_RTCCLKSOURCE_HSE_DIV128"/>
       
    </RefParameter>
    
    <RefParameter Visible="false" Comment="RTC Clock Source"  DefaultValue="RCC_RTCCLKSOURCE_LSE" Name="RCC_RTC_Clock_SourceLL" Type="list" IP="RTC">
        <Condition Expression="RTCClockSelection=RCC_RTCCLKSOURCE_LSE" Diagnostic=""/>
        <PossibleValue Comment="LSE" Value="RCC_RTCCLKSOURCE_LSE"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="RTC Clock Source"  DefaultValue="RCC_RTCCLKSOURCE_LSI" Name="RCC_RTC_Clock_SourceLL" Type="list" IP="RTC">
        <Condition Expression="RTCClockSelection=RCC_RTCCLKSOURCE_LSI" Diagnostic=""/>
        <PossibleValue Comment="LSI" Value="RCC_RTCCLKSOURCE_LSI"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="RTC Clock Source"  DefaultValue="RCC_RTCCLKSOURCE_HSE" Name="RCC_RTC_Clock_SourceLL" Type="list" IP="RTC">
        <PossibleValue Comment="HSE" Value="RCC_RTCCLKSOURCE_HSE"/>
    </RefParameter>

    <!-- MCO MUX-->
    <RefParameter Visible="false" Comment="MCO Clock Source" DefaultValue="RCC_MCO1SOURCE_SYSCLK" Name="RCC_MCOSource" Type="list">
        <PossibleValue Comment="MCO1SRC SYSCLK" Value="RCC_MCO1SOURCE_SYSCLK"/>
        <PossibleValue Comment="MCO1SRC HSI"    Value="RCC_MCO1SOURCE_HSI" />
        <PossibleValue Comment="MCO1SRC HSE"    Value="RCC_MCO1SOURCE_HSE"/>
        <PossibleValue Comment="MCO1SRC PLLCLK" Value="RCC_MCO1SOURCE_PLLCLK" />   
    </RefParameter>
    <!-- CSS HSE enable****************-->
    <RefParameter Visible="false" Name="EnbaleCSS" Comment="Clock Security System: available only when HSE is used directly or undirectly as System Clock" Type="list" DefaultValue="false">
        <Condition Diagnostic="" Expression="(((PLLSource=RCC_PLLSOURCE_HSE) &amp;SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK )|(SYSCLKSource=RCC_SYSCLKSOURCE_HSE)) &amp; (HSEOscillator | HSEByPass)"/>
        <PossibleValue Value="true"  Comment="Enabled" Semaphore="CSSEnabled"/>
        <PossibleValue Value="false" Comment="Disabled"/>
    </RefParameter>

    <RefParameter Visible="false" Name="EnbaleCSS" Comment="Clock Security System: available only when HSE is used directly or undirectly as System Clock" Type="list" DefaultValue="false">
        <PossibleValue Value="false" Comment="Disabled"/>
    </RefParameter>
    
	
	
    <!--LES frequence Values --> 
    <!--Les frequences des sources --> 
    <RefParameter Visible="false" Comment="HSI Source" Name="HSI_VALUE" DefaultValue="8000000" Type="double" Display="value/1000000" Unit="MHz"/>
    <RefParameter Visible="false" Comment="LSI Source" Name="LSI_VALUE" DefaultValue="40000"   Max="40000"    Min="40000" Type="double" Display="value/1000" Unit="KHz"/>
  
    <RefParameter Visible="false" Comment="HSE OSC" Name="HSE_VALUE" DefaultValue="8000000" Max="24000000" Min="1000000" Type="double" Display="value/1000000" Unit="MHz">
        <Condition Diagnostic="HSE in bypass Mode" Expression="HSEByPass"/>
    </RefParameter>    
  
    <RefParameter Visible="false" Comment="HSE OSC" Name="HSE_VALUE" DefaultValue="8000000" Max="24000000" Min="4000000" Type="double" Display="value/1000000" Unit="MHz"/>

    <RefParameter Visible="false" Comment="LSE OSC"    Name="LSE_VALUE" DefaultValue="32768"   Max="32768"   Min="32768" Type="double" Display="value/1000" Unit="KHz">
        <Condition Diagnostic="LSE In crystal Mode" Expression="LSEOscillator"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="LSE OSC"    Name="LSE_VALUE" DefaultValue="32768"   Max="1000000" Min="0"     Type="double" Display="value/1000" Unit="KHz"/>
    <!--frequence  PLL --> 
   
    <RefParameter Visible="false" Comment="VCOInput"   Name="VCOOutput2Freq_Value" DefaultValue="4000000"  Max="24000000" Min="1000000" Type="double" Display="value/1000000" Unit="MHz">
        <Condition Diagnostic="PLL not used" Expression="PLLUsed=1"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="VCOInput"   Name="VCOOutput2Freq_Value" DefaultValue="4000000"   Type="double" Display="value/1000000" Unit="MHz"/>
    <RefParameter Visible="false" Comment="PLL clock"    Name="PLLCLKFreq_Value" DefaultValue="8000000" Max="24000000" Min="16000000" Type="double"  Display="value/1000000" Unit="MHz">
        <Condition Diagnostic="PLL not used" Expression="PLLUsed=1"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="PLL clock"    Name="PLLCLKFreq_Value" DefaultValue="8000000"  Type="double"  Display="value/1000000" Unit="MHz"/>

    <!--frequence de mux PLL input de HSE div et HSI div -->
    <RefParameter Visible="false" Comment="HSI diviseur output to PLL" Name="HSIPLLFreq_Value" DefaultValue="4000000"  Type="double" Display="value/1000000" Unit="MHz"/>
    <RefParameter Visible="false" Comment="HSE diviseur output to PLL" Name="HSEPLLFreq_Value" DefaultValue="8000000"  Type="double" Display="value/1000000" Unit="MHz"/>

    
    <!--Les frequences des signaux-->
    <!--SYS clock freq de l'output	-->
    <RefParameter Visible="false" Comment="System clock" Name="SYSCLKFreq_VALUE" DefaultValue="8000000" Max="24000000"    Type="double" Display="value/1000000" Unit="MHz"/>
    <!--AHB out freq-->
    <RefParameter Visible="false" Comment="HCLK"         Name="AHBFreq_Value"    DefaultValue="8000000"    Type="double" Display="value/1000000" Unit="MHz"/>
    <RefParameter Visible="false" Comment="HCLK"         Name="HCLKFreq_Value"   DefaultValue="8000000"    Type="double" Max="24000000"  Display="value/1000000" Unit="MHz"/>
    <!--RTC freq de la sortie-->
	<RefParameter Visible="false" Comment="RTC" Name="RTCFreq_Value" Type="double" DefaultValue="40000" IP="RTC" Max="1000000" Display="value/1000" Unit="KHz">
		<Condition Diagnostic="RTC Has HSE as source" Expression="(!(RCC_RTC_Clock_Source=RCC_RTCCLKSOURCE_LSE)&amp;!(RCC_RTC_Clock_Source=RCC_RTCCLKSOURCE_LSI))"/>
	</RefParameter>
	<RefParameter Visible="false" Comment="RTC" Name="RTCFreq_Value" Type="double" IP="RTC" DefaultValue="40000" Display="value/1000" Unit="KHz"/>
        <!--Divers output freq-->
    <RefParameter Visible="false" Comment="IWDG clock"             Name="WatchDogFreq_Value"   DefaultValue="40000"     Type="double" IP="IWATCHDOG" Display="value/1000" Unit="KHz" />
    <RefParameter Visible="false" Comment="Timer System "          Name="TimSysFreq_Value"     DefaultValue="1000000"   Type="double" Display="value/1000000" Unit="MHz"/>
    <RefParameter Visible="false" Comment="FCLK Cortex clock"      Name="FCLKCortexFreq_Value" DefaultValue="8000000"   Type="double" Display="value/1000000" Unit="MHz"/>
    <RefParameter Visible="false" Comment="FLITF clock"            Name="FLITFCLKFreq_Value"   DefaultValue="8000000"   Type="double" IP="FLITF" Display="value/1000000" Unit="MHz" />
    <RefParameter Visible="false" Comment="ADC clock"              Name="ADCFreqValue"         DefaultValue="4000000"   Type="double"  Display="value/1000000" Unit="MHz" />
    <RefParameter Visible="false" Comment="FSMC clock"             Name="FSMCFreq_Value"       DefaultValue="8000000"   Type="double" IP="FSMC"  Display="value/1000000" Unit="MHz"/>
    <!--APBx frequency-->
    <RefParameter Visible="false" Comment="APB1 peripheral clocks" Name="APB1Freq_Value"       DefaultValue="8000000"   Max="24000000"  Type="double" IP="WWDG,USART2,USART3,UART4,UART5,SPI2,I2S2,SPI3,I2S3,HDMI_CEC,I2C1,I2C2,DAC" Display="value/1000000" Unit="MHz"/>
    <RefParameter Visible="false" Comment="APB2 peripheral clocks" Name="APB2Freq_Value"       DefaultValue="8000000"   Max="24000000"  Type="double" IP="USART1,SPI1,I2S1" Display="value/1000000" Unit="MHz"/>
    <RefParameter Visible="false" Comment="APB1 timers clocks"     Name="APB1TimFreq_Value"    DefaultValue="8000000"   Type="double" IP="TIMER7,TIMER6,TIMER2,TIMER3,TIMER4,TIMER5,TIMER12,TIMER13,TIMER14" Display="value/1000000" Unit="MHz"/>
    <RefParameter Visible="false" Comment="APB2 timers clocks"     Name="APB2TimFreq_Value"    DefaultValue="8000000"   Type="double" IP="TIMER1,TIMER15,TIMER16,TIMER17,TIMER8,TIMER9,TIMER10,TIMER11" Display="value/1000000" Unit="MHz"/>
    <!--MCO frequency-->
    <RefParameter Visible="false" Comment="PLL MCO DIV output"     Name="PLLMCOFreq_Value"     DefaultValue="4000000"   Type="double"  Display="value/1000000" Unit="MHz"/>
    <RefParameter Visible="false" Comment="MCO Output"             Name="MCOFreq_Value"        DefaultValue="8000000"   Type="double" Max="24000000"  Display="value/1000000" Unit="MHz"/>
     <!--ADC frequency  --> 
    <RefParameter Visible="false" Comment="ADC synchr"  Name="synchADCFreq_Value"  DefaultValue="=APB2Freq_Value" Type="double" Display="value/1000000" Unit="MHz" IP="ADC1"/>
    <RefParameter Visible="false" Comment="ADC asynchr" Name="asynchADCFreq_Value" DefaultValue="=ADCFreqValue"  Type="double" Display="value/1000000"  Unit="MHz" IP="ADC1"/>
    <!--Enable Param-->
    <!--HSE Enable -->
    <RefParameter Visible="false" Name="EnableHSE" Comment="HSE OSC" Type="list"  DefaultValue="true" IP="HSE-External-Clock-Source,HSE-External-Oscillator">
        <Condition Expression="(HSEOscillator|HSEByPass)" Diagnostic="Disabled if RTC is used and HSE ON"/>
        <PossibleValue Value="true" Comment="true"/>
    </RefParameter>
    <RefParameter Visible="false" Name="EnableHSE" Comment="HSE OSC" Type="list"  DefaultValue="false" IP="HSE-External-Clock-Source,HSE-External-Oscillator">
        <PossibleValue Value="false" Comment="false"/>
    </RefParameter>
    <!--HSE div for RTC Enable -->
    <RefParameter Visible="false" Name="EnableHSERTCDevisor" Comment="RTC and HSE Oscillator" Type="list" DefaultValue="true" IP="RTC">
        <Condition Expression="(RTCUsed_ForRCC &amp; (HSEOscillator|HSEByPass))" Diagnostic="Disabled if RTC is used"/>
        <PossibleValue Value="true" Comment="true"/>
    </RefParameter>
    <RefParameter Visible="false" Name="EnableHSERTCDevisor" Comment="RTC and HSE Oscillator" Type="list" DefaultValue="false" IP="RTC">
        <PossibleValue Value="false" Comment="false"/>
    </RefParameter>
    
    
    <!--PLL div for MCO Enable -->
    <RefParameter Visible="false" Name="EnableMCOMultDivisor" Comment="PLL and MCO" Type="list" DefaultValue="true" >
        <Condition Expression="MCOUsed_ForRCC " Diagnostic="Disabled if RTC is used"/>
        <PossibleValue Value="true" Comment="true"/>
    </RefParameter>
    <RefParameter Visible="false" Name="EnableMCOMultDivisor" Comment="PLL and MCO" Type="list" DefaultValue="false" >
        <PossibleValue Value="false" Comment="false"/>
    </RefParameter>
    <!--RTC Enable -->
    <RefParameter Visible="false" Name="RTCEnable" Comment="RTC" Type="list" DefaultValue="true" IP="RTC">
        <Condition Expression="RTCUsed_ForRCC" Diagnostic="Disabled if RTC is used"/>
        <PossibleValue Value="true" Comment="true"/>
    </RefParameter>
    <RefParameter Visible="false" Name="RTCEnable" Comment="RTC" Type="list" DefaultValue="false" IP="RTC">
        <PossibleValue Value="false" Comment="false"/>
    </RefParameter>
    <RefParameter Visible="false" Name="EnableHSERTCDevisor" Comment="RTC and HSE Oscillator" Type="list" DefaultValue="true" IP="RTC">
        <Condition Expression="(RTCUsed_ForRCC &amp; (HSEOscillator|HSEByPass))" Diagnostic="Disabled if RTC is used"/>
        <PossibleValue Value="true" Comment="true"/>
    </RefParameter>
    <RefParameter Visible="false" Name="EnableHSERTCDevisor" Comment="RTC and HSE Oscillator" Type="list" DefaultValue="false" IP="RTC">
        <PossibleValue Value="false" Comment="false"/>
    </RefParameter>
    <!--LSE Enable -->
    <RefParameter Visible="false" Name="EnableLSERTC" Comment="EnableLSERTC" Type="list" DefaultValue="true" IP="RTC">
        <Condition Expression="(RTCUsed_ForRCC &amp; (LSEOscillator | LSEByPass))" Diagnostic="Disabled if RTC is used and LSE ON"/>
        <PossibleValue Value="true" Comment="true"/>
    </RefParameter>
    <RefParameter Visible="false" Name="EnableLSERTC" Comment="EnableLSERTC" Type="list" DefaultValue="false" IP="RTC">
        <PossibleValue Value="false" Comment="false"/>
    </RefParameter>
    <!-- LSE Enable -->
    <RefParameter Visible="false" Name="EnableLSE" Comment="LSE OSC" Type="list" DefaultValue="true">
        <Condition Expression="(LSEOscillator|LSEByPass)" Diagnostic="Disabled if RTC is used and LSE ON"/>
        <PossibleValue Value="true" Comment="true"/>
    </RefParameter>
   
    <RefParameter Visible="false" Name="EnableLSE" Comment="LSE OSC" Type="list" DefaultValue="false">
        <PossibleValue Value="false" Comment="false"/>
    </RefParameter>
    <!-- IWDG Enable -->

    <RefParameter Visible="false" Name="IWDGEnable" Comment="IWDG" Type="list" DefaultValue="true" IP="IWDG">
        <Condition Expression="IWDGUsed_ForRCC" Diagnostic="IWDG is activated"/>
        <PossibleValue Value="true" Comment="true"/>
    </RefParameter>
    <RefParameter Visible="false" Name="IWDGEnable" Comment="IWDG" Type="list" DefaultValue="false" IP="IWDG">
        <PossibleValue Value="false" Comment="false"/>
    </RefParameter>
	
    <!-- FSMC Enable -->

    <RefParameter Visible="false" Name="FSMCEnable" Comment="FSMC" Type="list" DefaultValue="true" IP="FSMC">
        <Condition Expression="(FSMCUsed_ForRCC)" Diagnostic="FSMC is activated"/>
        <PossibleValue Value="true" Comment="true"/>
    </RefParameter>
    <RefParameter Visible="false" Name="FSMCEnable" Comment="FSMC" Type="list" DefaultValue="false" IP="FSMC">
        <PossibleValue Value="false" Comment="false"/>
    </RefParameter>
	
    
   
    <!-- MCO Enable -->
    <RefParameter Visible="false" Name="MCOEnable" Comment="Master Clock Output" Type="list" DefaultValue="true" IP="Clock-out">
        <Condition Expression="MCOConfig" Diagnostic="MCO mode is activated"/>
        <PossibleValue Value="true" Comment="true"/>
    </RefParameter>
    <RefParameter Visible="false" Name="MCOEnable" Comment="Master Clock Output" Type="list" DefaultValue="false" IP="Clock-out">
        <PossibleValue Value="false" Comment="false"/>
    </RefParameter>
	
    <!-- ADC Enable -->
    <RefParameter Visible="false" Name="ADCEnable" Comment="ADC Clock Output" Type="list" DefaultValue="true" IP="ADC1">
        <Condition Expression="USE_ADC1" Diagnostic="ADC is activated"/>
        <PossibleValue Value="true" Comment="true"/>
    </RefParameter>
    <RefParameter Visible="false" Name="ADCEnable" Comment="ADC Clock Output" Type="list" DefaultValue="false" IP="ADC1">
        <PossibleValue Value="false" Comment="false"/>
    </RefParameter>
	
	
	
    <!-- HSE Used -->
    <RefParameter Visible="false" Comment="HSE used flag" DefaultValue="1" Name="HSEUsed" Type="integer" Min="1" Max="1">
        <Condition Expression="((RTCUsed_ForRCC)&amp;!((RTCClockSelection=RCC_RTCCLKSOURCE_LSE)|(RTCClockSelection=RCC_RTCCLKSOURCE_LSI))) | ((PLLSource=RCC_PLLSOURCE_HSE) &amp; (PLLUsed=1)) | (SYSCLKSource=RCC_SYSCLKSOURCE_HSE) | ((RCC_MCOSource=RCC_MCO1SOURCE_HSE)&amp;MCOConfig)" Diagnostic="SYSCLK source OR PLL source OR RTC source OR MCO1 source "/>
    </RefParameter>
    <RefParameter Visible="false" Comment="HSE Is Used" DefaultValue="0" Name="HSEUsed" Min="0"  Max="1" Type="integer"/>
	
    <!-- HSE state control -->
    <RefParameter Visible="false" Comment="Clock Type HSE" DefaultValue="" Name="OscillatorTypeHSE" Type="list">
        <Condition Expression="HSEUsed=0" Diagnostic="if HSE source not used"/>
        <PossibleValue Comment="" Value=""/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Clock Type HSE" DefaultValue="RCC_OSCILLATORTYPE_HSE" Name="OscillatorTypeHSE" Type="list">
        <PossibleValue Comment="HSE" Value="RCC_OSCILLATORTYPE_HSE"/>
    </RefParameter>
    
	
    <!-- HSE state -->
    <RefParameter Visible="false" Comment="Hse State" DefaultValue="RCC_HSE_BYPASS" Name="HSEState" Type="list">
        <Condition Diagnostic="HSE BYPass" Expression="HSEByPass"/>
        <PossibleValue Comment="Hse Bypass" Value="RCC_HSE_BYPASS" Semaphore="HSEEnabled"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Hse State" DefaultValue="RCC_HSE_ON" Name="HSEState" Type="list">
        <Condition Diagnostic="HSE ON" Expression="HSEOscillator"/>
        <PossibleValue Comment="Hse ON" Value="RCC_HSE_ON" Semaphore="HSEEnabled"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Hse State" DefaultValue="RCC_HSE_OFF" Name="HSEState" Type="list">
        <PossibleValue Comment="Hse Off" Value="RCC_HSE_OFF"/>
    </RefParameter>
	
	
	
    <!-- LSE Used -->
    <RefParameter Visible="false" Comment="LSE Is Used" DefaultValue="1" Name="LSEUsed" Min="1" Type="integer">
        <Condition Expression="( (RTCClockSelection=RCC_RTCCLKSOURCE_LSE) &amp; RTCUsed_ForRCC )" Diagnostic="LSE is used if RTC or MCO or Usart1,2,3 or CEC activated  "/>
    </RefParameter>
    <RefParameter Visible="false" Comment="LSE Is Used" DefaultValue="0" Name="LSEUsed" Min="0" Type="integer"/>
	
    <!-- LSE state control -->
    <RefParameter Visible="false" Comment="Clock Type LSE" DefaultValue="" Name="OscillatorTypeLSE" Type="list">
        <Condition Diagnostic="LSE Is OFF" Expression="LSEUsed=0"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Clock Type LSE" DefaultValue="RCC_OSCILLATORTYPE_LSE" Name="OscillatorTypeLSE" Type="list">
        <PossibleValue Comment="LSE" Value="RCC_OSCILLATORTYPE_LSE"/>
    </RefParameter>
	
  
    <!-- LSE state  -->
    <RefParameter Visible="false" Comment="Lse State" DefaultValue="RCC_LSE_BYPASS" Name="LSEState" Type="list">
        <Condition Diagnostic="LSE BYPass" Expression="LSEByPass"/>
        <PossibleValue Comment="Lse Bypass" Value="RCC_LSE_BYPASS"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Lse State" DefaultValue="RCC_LSE_ON" Name="LSEState" Type="list">
        <Condition Diagnostic="LSE ON" Expression="LSEOscillator"/>
        <PossibleValue Comment="Lse ON" Value="RCC_LSE_ON"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Lse State" DefaultValue="RCC_LSE_OFF" Name="LSEState" Type="list">
        <PossibleValue Comment="Lse Off" Value="RCC_LSE_OFF"/>
        <PossibleValue Comment="Lse On" Value="RCC_LSE_ON"/>
        <PossibleValue Comment="Lse Bypass" Value="RCC_LSE_BYPASS"/>
    </RefParameter>
	
	
    <!-- LSI state control -->
    <RefParameter Visible="false" Comment="Clock Type LSI" DefaultValue="" Name="OscillatorTypeLSI" Type="list">
        <Condition Diagnostic="WDOG is activated Or RTC source = LSI " Expression="LSIUsed=0"/>
        <PossibleValue Comment="" Value=""/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Clock Type LSI" DefaultValue="RCC_OSCILLATORTYPE_LSI" Name="OscillatorTypeLSI" Type="list">
        <PossibleValue Comment="LSI" Value="RCC_OSCILLATORTYPE_LSI"/>
    </RefParameter>
    <!-- LSI Used-->
    <RefParameter Visible="false" Comment="LSI used flag" DefaultValue="1" Name="LSIUsed" Type="integer" Min="1" Max="1">
        <Condition Expression="((SEM2RCC_LSI_REQUIRED_TIM5 &amp; TIM5 &amp; Semaphore_input_Channel4TIM5)| IWDGUsed_ForRCC | ((RTCClockSelection=RCC_RTCCLKSOURCE_LSI) &amp; RTCUsed_ForRCC))" Diagnostic="LSI is used if MCO or RTC watch dog Activated"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="LSI used flag" DefaultValue="0" Name="LSIUsed" Type="integer" Min="0" Max="0"/>
	
    <!-- LSI state  -->
    <RefParameter Visible="false" Comment="Lsi State" DefaultValue="RCC_LSI_OFF" Name="LSIState" Type="list">
        <Condition Expression="LSIUsed=0" Diagnostic=""/>
        <PossibleValue Comment="Lsi Off" Value="RCC_LSI_OFF"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Lsi State" DefaultValue="RCC_LSI_ON" Name="LSIState" Type="list">
        <PossibleValue Comment="Lsi ON" Value="RCC_LSI_ON"/>
    </RefParameter>
	
	
	
	
    <!-- HSI state control -->
    <RefParameter Visible="false" Comment="Clock Type HSI" DefaultValue="" Name="OscillatorTypeHSI" Type="list">
        <Condition Diagnostic="HSI Is OFF" Expression="HSIUsed=0"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Clock Type HSI" DefaultValue="RCC_OSCILLATORTYPE_HSI" Name="OscillatorTypeHSI" Type="list">
        <PossibleValue Comment="HSI" Value="RCC_OSCILLATORTYPE_HSI"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="HSI Is Used" DefaultValue="1" Name="HSIUsed" Min="1" Type="integer">
        <Condition Expression="(((PLLSource=RCC_PLLSOURCE_HSI_DIV2) &amp; (PLLUsed=1)) | (SYSCLKSource=RCC_SYSCLKSOURCE_HSI) | ((RCC_MCOSource=RCC_MCO1SOURCE_HSI) &amp; MCOConfig) )" Diagnostic="LSE is used if "/>
    </RefParameter>
    <RefParameter Visible="false" Comment="HSI is Used" DefaultValue="0" Name="HSIUsed" Min="0" Type="integer"/>
    <RefParameter Visible="false" Comment="Hsi State" DefaultValue="RCC_HSI_OFF" Name="HSIState" Type="list">
        <Condition Expression="HSIUsed=0" Diagnostic=""/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Hsi State" DefaultValue="RCC_HSI_ON" Name="HSIState" Type="list">
        <PossibleValue Comment="Hsi On" Value="RCC_HSI_ON"/>
    </RefParameter>
	
    <!--  PLL state control-->
    <RefParameter Visible="false" Comment="MainPLL Is Used" DefaultValue="1" Name="PLLUsed" Min="1" Type="integer">
        <Condition Expression="( (SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK) | ((RCC_MCOSource=RCC_MCO1SOURCE_PLLCLK) &amp; MCOConfig))" Diagnostic=" "/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Main PLL is Used" DefaultValue="0" Name="PLLUsed" Min="0" Type="integer"/>
	
    <RefParameter Visible="false" Comment="Pll State" DefaultValue="RCC_PLL_OFF" Name="PLLState" Type="list">
        <Condition Expression="PLLUsed=0" Diagnostic=""/>
        <PossibleValue Comment="Pll Off" Value="RCC_PLL_OFF"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Pll State" DefaultValue="RCC_PLL_ON" Name="PLLState" Type="list"> 
        <PossibleValue Comment="Pll ON" Value="RCC_PLL_ON"/>
    </RefParameter>
   
    <!--params for code generation-->
    <RefParameter Visible="false" Comment="Periph Clock Selection" Name="PeriphClockSelectionARG" DefaultValue="+PeriphClockSelection" Type="list">
        <Condition Expression="RTCUsed_ForRCC|USE_ADC1" Diagnostic="clock used by RCC"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Periph Clock Selection" Name="PeriphClockSelectionARG" DefaultValue="null" Type="list"/>
    <RefParameter Visible="false" Comment="Periph Clock Selection" Name="PeriphClockSelection" DefaultValue="+RCC_PERIPHCLK_RTCVar+|RCC_PERIPHCLK_ADCVar" Type="list"/>
    
    
    <RefParameter Visible="false" Name="RCC_PERIPHCLK_RTCVar" Comment="RCC_PERIPHCLK_RTCVar" Type="list" DefaultValue="RCC_PERIPHCLK_RTC">
        <Condition Expression="RTCUsed_ForRCC" Diagnostic="RTC Activated"/>
        <PossibleValue Comment="Periphclk RTC" Value="RCC_PERIPHCLK_RTC"/>
    </RefParameter>
    <RefParameter Visible="false" Name="RCC_PERIPHCLK_RTCVar" Comment="RCC_PERIPHCLK_RTCVar" Type="list" DefaultValue=""/>
	
	
    <RefParameter Visible="false" Name="RCC_PERIPHCLK_ADCVar" Comment="RCC_PERIPHCLK_ADCVar" Type="list" DefaultValue="RCC_PERIPHCLK_ADC">
        <Condition Expression="USE_ADC1" Diagnostic="RTC Activated"/>
        <PossibleValue Comment="Periphclk ADC" Value="RCC_PERIPHCLK_ADC"/>
    </RefParameter>
    <RefParameter Visible="false" Name="RCC_PERIPHCLK_ADCVar" Comment="RCC_PERIPHCLK_ADCVar" Type="list" DefaultValue=""/>
	
	
	
	
    <RefParameter Visible="false" Name="RTCClockSelectionARG" Comment="RTCClockSelectionARG" Type="list" DefaultValue="+RTCClockSelection">
        <Condition Expression="RTCUsed_ForRCC" Diagnostic="RTC Activated"/>
    </RefParameter>
    <RefParameter Visible="false" Name="RTCClockSelectionARG" Comment="RTCClockSelectionARG" Type="list" DefaultValue="null"/>
	
	
    <RefParameter Visible="false" Name="ADCClockSelectionARG" Comment="ADCClockSelectionARG" Type="list" DefaultValue="+ADCPresc">
        <Condition Expression="USE_ADC1" Diagnostic="ADC Activated"/>
    </RefParameter>
    <RefParameter Visible="false" Name="ADCClockSelectionARG" Comment="ADCClockSelectionARG" Type="list" DefaultValue="null"/>
	
   
	
    <RefParameter Visible="false" Name="HSEPredivValueARG" Comment="HSEPredivValueARG" Type="list" DefaultValue="+HSEDivPLL">
        <Condition Expression="((PLLSource=RCC_PLLSOURCE_HSE) &amp; (PLLUsed=1)) " Diagnostic="HSE prediv generate code "/>
        
    </RefParameter>
    <RefParameter Visible="false" Name="HSEPredivValueARG" Comment="HSEPredivValueARG" Type="list" DefaultValue="null"/>
    
    
	
    <RefParameter Visible="false" Comment="Lse StateARG" DefaultValue="+HSEState" Name="HSEStateARG" Type="list">
        <Condition Diagnostic="HSE used" Expression="HSEUsed=1"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Hse StateARG" DefaultValue="null" Name="HSEStateARG" Type="list"/>
	
	
    <RefParameter Visible="false" Comment="Lse StateARG" DefaultValue="+LSEState" Name="LSEStateARG" Type="list">
        <Condition Diagnostic="LSE used" Expression="LSEUsed=1"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Lse StateARG" DefaultValue="null" Name="LSEStateARG" Type="list"/>
	
	
	
    <RefParameter Visible="false" Comment="HSI StateARG" DefaultValue="+HSIState" Name="HSIStateARG" Type="list">
        <Condition Diagnostic="HSI used" Expression="HSIUsed=1"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="HSI StateARG" DefaultValue="null" Name="HSIStateARG" Type="list"/>
    
    <RefParameter Visible="false" Comment="HSICalibrationValueARG" DefaultValue="RCC_HSICALIBRATION_DEFAULT" Name="HSICalibrationValueARG" Type="list">
        <Condition Diagnostic="HSI used" Expression="HSIUsed=1 &amp; HSICalibrationValue=16"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="HSICalibrationValueARG" DefaultValue="+HSICalibrationValue" Name="HSICalibrationValueARG" Type="list">
        <Condition Diagnostic="HSI used" Expression="HSIUsed=1"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="HSICalibrationValueARG" DefaultValue="null" Name="HSICalibrationValueARG" Type="list"/>
    <RefParameter Comment="HSI Calibration Value" DefaultValue="16" Max="31" Min="0" Name="HSICalibrationValue" Group="RCC Parameters" Type="integer"/>

   
    <RefParameter Visible="false" Comment="LSI StateARG" DefaultValue="+LSIState" Name="LSIStateARG" Type="list">
        <Condition Diagnostic="LSI used" Expression="LSIUsed=1"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="LSI StateARG" DefaultValue="null" Name="LSIStateARG" Type="list"/>
        
    
  
        
    <RefParameter Visible="false" Comment="PLLStateARG" DefaultValue="+PLLState" Name="PLLStateARG" Type="list">
        <Condition Diagnostic="PLL used" Expression="PLLUsed=1"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="PLLStateARG" DefaultValue="RCC_PLL_NONE" Name="PLLStateARG" Type="list"/>
    <RefParameter Visible="false" Comment="PLLSourceARG" DefaultValue="+PLLSource" Name="PLLSourceARG" Type="list">
        <Condition Diagnostic="PLL used" Expression="PLLUsed=1"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="PLLSourceARG" DefaultValue="null" Name="PLLSourceARG" Type="list"/>
    <RefParameter Visible="false" Comment="PLLMULARG" DefaultValue="+PLLMUL" Name="PLLMULARG" Type="list">
        <Condition Diagnostic="PLL used" Expression="PLLUsed=1"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="PLLMULARG" DefaultValue="null" Name="PLLMULARG" Type="list"/>
	
	
	
    <RefParameter Visible="false" Comment="Clock TypeARG" DefaultValue="+ClockType" Name="ClockTypeARG" Type="list">
        <Condition Expression="SysClkToConfigure|HCLKtoConfigure|PCLK1toConfigure|PCLK2toConfigure|FLASH_LATENCY0" Diagnostic="at least one clock to configure"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Clock TypeARG" DefaultValue="null" Name="ClockTypeARG" Type="list"/>
    <RefParameter Visible="false" Comment="SysClock SourceARG" DefaultValue="+SYSCLKSource" Name="SYSCLKSourceARG" Type="list">
        <Condition Expression="SysClkToConfigure" Diagnostic=""/>
    </RefParameter>
    <RefParameter Visible="false" Comment="SysClock SourceARG" DefaultValue="null" Name="SYSCLKSourceARG" Type="list"/>
    <RefParameter Visible="false" Comment="AHBCLKDividerARG" DefaultValue="+AHBCLKDivider" Name="AHBCLKDividerARG" Type="list">
        <Condition Expression="HCLKtoConfigure" Diagnostic=""/>
    </RefParameter>	
    <RefParameter Visible="false" Comment="AHBCLKDividerARG" DefaultValue="null" Name="AHBCLKDividerARG" Type="list"/>
    <RefParameter Visible="false" Comment="APB1CLKDividerARG" DefaultValue="+APB1CLKDivider" Name="APB1CLKDividerARG" Type="list">
        <Condition Expression="PCLK1toConfigure" Diagnostic=""/>
    </RefParameter>
    <RefParameter Visible="false" Comment="APB1CLKDividerARG" DefaultValue="null" Name="APB1CLKDividerARG" Type="list"/>
    <RefParameter Visible="false" Comment="APB2CLKDividerARG" DefaultValue="+APB2CLKDivider" Name="APB2CLKDividerARG" Type="list">
        <Condition Expression="PCLK2toConfigure" Diagnostic=""/>
    </RefParameter>
    <RefParameter Visible="false" Comment="APB2CLKDividerARG" DefaultValue="null" Name="APB2CLKDividerARG" Type="list"/>
	
    
    <!--Clock Type-->
    <RefParameter Visible="false" Comment="Clock Type" DefaultValue="+ClockTypeHCLK+|ClockTypeSysClk+|ClockTypePCLK1+|ClockTypePCLK2" Name="ClockType" Type="list"/>

    <RefParameter Visible="false" Comment="Clock Type SysClk" DefaultValue="RCC_CLOCKTYPE_SYSCLK" Name="ClockTypeSysClk" Type="list">
        <PossibleValue Comment="Sysclk" Value="RCC_CLOCKTYPE_SYSCLK" Semaphore="SysClkToConfigure"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Clock Type AHB" DefaultValue="RCC_CLOCKTYPE_HCLK" Name="ClockTypeHCLK" Type="list">
        <PossibleValue Comment="RCC_CLOCKTYPE_HCLK" Value="RCC_CLOCKTYPE_HCLK" Semaphore="HCLKtoConfigure"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Clock Type HCLK1" DefaultValue="RCC_CLOCKTYPE_PCLK1" Name="ClockTypePCLK1" Type="list">
        <PossibleValue Comment="PCLK1" Value="RCC_CLOCKTYPE_PCLK1" Semaphore="PCLK1toConfigure"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Clock Type HCLK2" DefaultValue="RCC_CLOCKTYPE_PCLK2" Name="ClockTypePCLK2" Type="list">
        <PossibleValue Comment="PCLK2" Value="RCC_CLOCKTYPE_PCLK2" Semaphore="PCLK2toConfigure"/>
    </RefParameter>
	
	
	
    <!--Advanced Param -->
   
    <RefParameter Name="VDD_VALUE" Comment="VDD voltage (V)" DefaultValue="3.3" Max="3.6" Min="2" Type="double" Unit="V" Group="System Parameters"/>


	
	
    	
	
    <RefParameter Name="FLatency" Comment="Flash Latency(WS)" Type="uniqueElementList" DefaultValue="FLASH_LATENCY_0" Group="System Parameters">
       
        <PossibleValue Value="FLASH_LATENCY_0" Comment="0 WS (1 CPU cycle)" Semaphore="FLASH_LATENCY0"/>
    </RefParameter>
 

   
   
    
   
    <RefParameter Visible="false" Comment="Clock Output" Name="RCC_MCO" DefaultValue="RCC_MCO" Type="list">
        <Condition Diagnostic="" Expression="(SEM2RCC_MCO_REQUIRED_TIM14 &amp; TIM14 &amp; Semaphore_input_Channel1TIM14)|MCOConfig"/>
        <PossibleValue Comment="Clock Output" Value="RCC_MCO"/>
    </RefParameter>
   
  
    <RefParameter Visible="false" Comment="Clock Output" Name="RCC_MCO" DefaultValue="null" Type="list"/>
    <RefParameter Visible="false" Comment="MCO Prescaler" DefaultValue="RCC_MCODIV_1" Name="RCC_MCODiv" Type="list">
        <PossibleValue Comment="1" Value="RCC_MCODIV_1"/>

    </RefParameter>

    <!-- PLLUsedForSys used -->
    <RefParameter Visible="false" Comment="MainPLL Is Used" DefaultValue="1" Name="PLLUsedForSys" Min="1" Max="1" Type="integer">
        <Condition Expression="((SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK) | ((RCC_MCOSource=RCC_MCO1SOURCE_PLLCLK) &amp; MCOConfig))" Diagnostic=" "/>
    </RefParameter>

    <RefParameter Visible="false" Comment="Main PLL is Used" DefaultValue="0" Name="PLLUsedForSys" Min="0" Max="0" Type="integer"/>    
    
    <RefMode Name="ClockTree">
        <ConfigForMode>RCC_OSCConfig</ConfigForMode>        
        <ConfigForMode>RCC_ClockConfig</ConfigForMode>    
        <ConfigForMode>RCC_MCOConfig</ConfigForMode> 
        <ConfigForMode>RCC_CSS_Enable</ConfigForMode>
        <!--ConfigForMode>RCC_AFIO_CLK_ENABLE</ConfigForMode-->
		 <ConfigForMode>RCC_interrupt_Time_SYSTICK_Config</ConfigForMode>
		 <ConfigForMode>RCC_SYSTICK_CONFIG</ConfigForMode>
        <Parameter Name="PLLMUL"/>
        <Parameter Name="APB1TimCLKDivider"/>
        <Parameter Name="APB2TimCLKDivider"/>
        <Parameter Name="RCC_RTC_Clock_Source_FROM_HSE"/>
        <Parameter Name="RCC_MCOMult_Clock_Source_FROM_PLLMUL"/>
        <Parameter Name="AHBCLKDivider"/>
        <Parameter Name="TimSys_Div"/>
        <Parameter Name="APB1CLKDivider"/>
        <Parameter Name="APB2CLKDivider"/>
        <Parameter Name="PLLSource"/>
        <Parameter Name="SYSCLKSource"/>
        <Parameter Name="RTCClockSelection"/>
        <Parameter Name="RCC_MCOSource"/>
        <Parameter Name="HSI_VALUE"/>
        <Parameter Name="LSE_VALUE"/>
        <Parameter Name="LSI_VALUE"/>
        <Parameter Name="HSE_VALUE"/>
        <Parameter Name="HSIPLLFreq_Value"/>
        <Parameter Name="HSEPLLFreq_Value"/>
        <Parameter Name="PLLCLKFreq_Value"/>
        <Parameter Name="SYSCLKFreq_VALUE"/>
        <Parameter Name="AHBFreq_Value"/>
        <Parameter Name="HCLKFreq_Value"/>
        <Parameter Name="RTCFreq_Value"/>
        <Parameter Name="WatchDogFreq_Value"/>
        <Parameter Name="TimSysFreq_Value"/>
        <Parameter Name="APB1Freq_Value"/>
        <Parameter Name="APB2Freq_Value"/>
        <Parameter Name="APB1TimFreq_Value"/>
        <Parameter Name="APB2TimFreq_Value"/>
        <Parameter Name="MCOFreq_Value"/>
        <Parameter Name="EnableHSE"/>
        <Parameter Name="EnableHSERTCDevisor"/>
        <Parameter Name="EnableMCOMultDivisor"/>
        <Parameter Name="RTCEnable"/>
        <Parameter Name="EnableHSERTCDevisor"/>
        <Parameter Name="EnableLSERTC"/>
        <Parameter Name="EnableLSE"/>
        <Parameter Name="IWDGEnable"/>
        <Parameter Name="MCOEnable"/>
        <Parameter Name="OscillatorTypeHSE"/>
        <Parameter Name="HSEUsed"/>
        <Parameter Name="HSEState"/>
        <Parameter Name="OscillatorTypeLSE"/>
        <Parameter Name="LSEUsed"/>
        <Parameter Name="LSEState"/>
        <Parameter Name="OscillatorTypeLSI"/>
        <Parameter Name="LSIUsed"/>
        <Parameter Name="LSIState"/>
        <Parameter Name="OscillatorTypeHSI"/>
        <Parameter Name="HSIUsed"/>
        <Parameter Name="HSIState"/>
        <Parameter Name="PLLUsed"/>
        <Parameter Name="PLLState"/>
        <Parameter Name="PeriphClockSelectionARG"/>
        <Parameter Name="ClockTypeARG"/>
        <Parameter Name="ClockTypeARG"/>
        <Parameter Name="ClockType"/>
        <Parameter Name="ClockTypeHCLK"/>
        <Parameter Name="ClockTypePCLK1"/>
        <Parameter Name="ClockTypePCLK2"/>
        <Parameter Name="PeriphClockSelection"/>
        <Parameter Name="RCC_PERIPHCLK_RTCVar"/>
        <Parameter Name="RTCClockSelectionARG"/>
        <Parameter Name="HSEStateARG"/>
        <Parameter Name="LSEStateARG"/>
        <Parameter Name="HSIStateARG"/>
        <Parameter Name="LSIStateARG"/>
        <Parameter Name="PLLStateARG"/>
        <Parameter Name="PLLSourceARG"/>
        <Parameter Name="PLLMULARG"/>
    </RefMode>
	
    <RefMode Name="AdvancedSettings">
        <Parameter Name="VDD_VALUE"/>
        <Parameter Name="FLatency"/>
        <Parameter Name="HSICalibrationValue"/>
		<Parameter Name="HSE_Timout"/>
        <Parameter Name="LSE_Timout"/>
    </RefMode>
    
    <ModeLogicOperator Name="OR">
        <!-- Modes for Oscillators & Clocks -->
        <Mode Name="OSC" UserName="High Speed Clock (HSE)">
            <ModeLogicOperator Name="XOR">
                <Mode Name="HSE-External-Clock-Source" UserName="BYPASS Clock Source">
                    <SignalLogicalOp Name="AND">
                        <Signal Name="OSC_IN"/>
                        <Signal Name="OSC_OUT"/>
                    </SignalLogicalOp>
                    <Semaphore>HSEByPass</Semaphore>
                </Mode>
                <Mode Name="HSE-External-Oscillator" UserName="Crystal/Ceramic Resonator">
                    <SignalLogicalOp Name="AND">
                        <Signal Name="OSC_IN"/>
                        <Signal Name="OSC_OUT"/>
                    </SignalLogicalOp>
                    <Semaphore>HSEOscillator</Semaphore>
                </Mode>
            </ModeLogicOperator>
        </Mode>
        <Mode Name="OSC32" UserName="Low Speed Clock (LSE) ">
            <ModeLogicOperator Name="XOR">
                <Mode Name="LSE-External-Clock-Source" UserName="BYPASS Clock Source">
                    <SignalLogicalOp Name="AND">
                        <Signal Name="OSC32_IN"/>
                        <Signal Name="OSC32_OUT"/>
                    </SignalLogicalOp>
                    <Semaphore>LSEByPass</Semaphore>
                </Mode>
                <Mode Name="LSE-External-Oscillator" UserName="Crystal/Ceramic Resonator">
                    <SignalLogicalOp Name="AND">
                        <Signal Name="OSC32_IN"/>
                        <Signal Name="OSC32_OUT"/>
                    </SignalLogicalOp>
                    <Semaphore>LSEOscillator</Semaphore>
                </Mode>
            </ModeLogicOperator>
        </Mode>
        <Mode Name="Clock-out" UserName="Master Clock Output">
            <ModeLogicOperator Name="OR">
                <Mode Name="Clock-out">
                    <SignalLogicalOp Name="AND">
                        <Signal Name="MCO"/>
                    </SignalLogicalOp>
                    <Semaphore>MCOConfig</Semaphore>
                </Mode>
            </ModeLogicOperator>
        </Mode>
    </ModeLogicOperator>
    <RefSignal IOMode="AlternateFunctionPushPull" Name="MCO"/>
    <RefSignal IOMode="System" Name="OSC32_IN"/>
    <RefSignal IOMode="System" Name="OSC32_OUT"/>
    <RefSignal IOMode="System" Name="OSC_IN"/>
    <RefSignal IOMode="System" Name="OSC_OUT"/>
</IP>
	 
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
