<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<IP DBVersion="V4.0" IPType="peripheral" Name="RCC" Version="STM32L1_rcc_v1_0" 
    xmlns:ns0="http://www.w3.org/2001/XMLSchema-instance" ns0:schemaLocation="http://mcd.rou.st.com/modules.php?name=mcu ../../../../../../../doc/V4/Development/Specifications/db/IP_Modes.xsd" 
    xmlns="http://mcd.rou.st.com/modules.php?name=mcu">
 
    <About>RCC: Reset and Clock Control</About>
	
	
    <RefParameter Visible="false" Comment="Oscillator Type" DefaultValue="+OscillatorTypeHSI+|OscillatorTypeLSI+|OscillatorTypeHSE+|OscillatorTypeLSE+|OscillatorTypeMSI" 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"/>
	 
    <RefParameter Comment="HSI Calibration Value" DefaultValue="16" Max="31" Min="0" Name="HSICalibrationValue" Group="RCC Parameters" Type="integer">
        <Condition Diagnostic="HSI used" Expression="HSIUsed=1"/>
    </RefParameter>
    <RefParameter Comment="HSI Calibration Value" DefaultValue="16" Max="31" Min="0" Name="HSICalibrationValue" Group="RCC Parameters" Type="integer"/>
    
   
    <RefParameter Comment="MSI Calibration Value" DefaultValue="0" Max="255" Min="0" Name="MSICalibrationValue" Type="integer" Group="RCC Parameters">
        <Condition Diagnostic="HSI used" Expression="MSIUsed=1"/>
    </RefParameter>
    <RefParameter Comment="MSI Calibration Value" DefaultValue="0" Max="255" Min="0" Name="MSICalibrationValue" Type="integer" Group="RCC Parameters"/>

    <!--Les multiplicateurs-->
	
    <!--PLL MUL-->
    <RefParameter Comment="PLLMUL" Visible="false" DefaultValue="RCC_PLL_MUL3" Name="PLLMUL" Type="list">
        <PossibleValue Comment="3"  Value="RCC_PLL_MUL3"/>
        <PossibleValue Comment="4"  Value="RCC_PLL_MUL4"/>
        <PossibleValue Comment="6"  Value="RCC_PLL_MUL6"/>
        <PossibleValue Comment="8"  Value="RCC_PLL_MUL8"/>
        <PossibleValue Comment="12" Value="RCC_PLL_MUL12"/>
        <PossibleValue Comment="16" Value="RCC_PLL_MUL16"/>
        <PossibleValue Comment="24" Value="RCC_PLL_MUL24"/>
        <PossibleValue Comment="32" Value="RCC_PLL_MUL32"/>
        <PossibleValue Comment="48" Value="RCC_PLL_MUL48"/>
    </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-->
    <!--USB Div /2-->
    <RefParameter Visible="false" Comment="DIV2USB" Name="DIV2USB" Type="integer" DefaultValue="2" Max="2" Min="2"/>
 
	 
    <!--diviseur HSE pour RTC-->
    <RefParameter Visible="false" Comment="RTC Clock Source_HSEDiv" DefaultValue="RCC_RTCCLKSOURCE_HSE_DIV2" Name="RCC_RTC_Clock_Source_FROM_HSE" Type="list" IP="RTC">
        <PossibleValue Comment="2"  Value="RCC_RTCCLKSOURCE_HSE_DIV2"/>
        <PossibleValue Comment="4"  Value="RCC_RTCCLKSOURCE_HSE_DIV4"/>
        <PossibleValue Comment="8"  Value="RCC_RTCCLKSOURCE_HSE_DIV8"/>
        <PossibleValue Comment="16" Value="RCC_RTCCLKSOURCE_HSE_DIV16"/>
    </RefParameter>
	 
    <!--diviseur  MCO-->
    <RefParameter Visible="false" Comment="MCO Prescaler" DefaultValue="RCC_MCODIV_1" Name="RCC_MCODiv" Type="list">
        <PossibleValue Comment="1"  Value="RCC_MCODIV_1"/>
        <PossibleValue Comment="2"  Value="RCC_MCODIV_2"/>
        <PossibleValue Comment="4"  Value="RCC_MCODIV_4"/>
        <PossibleValue Comment="8"  Value="RCC_MCODIV_8"/>
        <PossibleValue Comment="16" Value="RCC_MCODIV_16"/>
    </RefParameter>
	
    <!--diviseur de AHB /8 pour cortex-->

	<RefParameter Visible="false" Comment="Cortex Div" DefaultValue="SYSTICK_CLKSOURCE_HCLK" Name="TimPrescaler" 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 AHB-->
    <RefParameter Comment="AHBCLK Divider" Visible="false" DefaultValue="RCC_SYSCLK_DIV1" Name="AHBCLKDivider" Type="list">
        <PossibleValue Comment="1"   Value="RCC_SYSCLK_DIV1" Semaphore="AHBCLKDivider1"/>
        <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 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>
	
    <!--diviseur de PLL-->
    <RefParameter Comment="PLLDIV"  Visible="false" DefaultValue="RCC_PLL_DIV2" Name="PLLDIV" Type="list">
        <PossibleValue Comment="2" Value="RCC_PLL_DIV2"/>
        <PossibleValue Comment="3" Value="RCC_PLL_DIV3"/>
        <PossibleValue Comment="4" Value="RCC_PLL_DIV4"/>
    </RefParameter>
	


    <!--Les multiplexeurs-->	
    <!-- PLL source MUX-->
    	
    <RefParameter Visible="false" Comment="PLL Source" DefaultValue="RCC_PLLSOURCE_HSE" Name="PLLSourceVirtual" Type="list">
        <Condition Diagnostic="PLL Mux should have HSE as input" Expression="(USBUsed_ForRCC) "/>
        <PossibleValue Comment="Pllsource Hse" Value="RCC_PLLSOURCE_HSE"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="PLL Source" DefaultValue="RCC_PLLSOURCE_HSI" Name="PLLSourceVirtual" Type="list">
        <PossibleValue Comment="Pllsource Hsi" Value="RCC_PLLSOURCE_HSI"/>
        <PossibleValue Comment="Pllsource Hse" Value="RCC_PLLSOURCE_HSE"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="PLL Source" DefaultValue="+PLLSourceVirtual" Name="PLLSourceVirtualString" Type="string"/>
 
    <RefParameter Visible="false" Comment="PLL Source" DefaultValue="+PLLSourceVirtualString" Name="PLLSource" Type="list">
        <PossibleValue Comment="Pllsource Hsi" Value="RCC_PLLSOURCE_HSI" Semaphore="HSIusedPLL" />
        <PossibleValue Comment="Pllsource Hse" Value="RCC_PLLSOURCE_HSE"/>
    </RefParameter>
   	
    <!-- SYS clock MUX-->
    <RefParameter Comment="SYSCLK Source" Visible="false" DefaultValue="RCC_SYSCLKSOURCE_MSI" Name="SYSCLKSource" Type="list">
        <PossibleValue Comment="Sysclksource Msi"    Value="RCC_SYSCLKSOURCE_MSI" Semaphore="SysSourceMSI"/>
        <PossibleValue Comment="Sysclksource Hsi"    Value="RCC_SYSCLKSOURCE_HSI" Semaphore="SysSourceHSI"/>
        <PossibleValue Comment="Sysclksource Hse"    Value="RCC_SYSCLKSOURCE_HSE" Semaphore="HSEscale"/>
        <PossibleValue Comment="Sysclksource Pllclk" Value="RCC_SYSCLKSOURCE_PLLCLK" Semaphore="PLLscale"/>
    </RefParameter>
	
    <!-- RTC  MUX-->
    <!-- condition to disable LSE and LSI when HSE TIM14 is selected-->
    <RefParameter Visible="false" Comment="RTC Clock Selection" DefaultValue="RCC_RTCCLKSOURCE_HSE_DIV2" Name="RTCClockSelectionVirtual" Type="list">
        <Condition Diagnostic="RTC Mux should have HSE as input when TIM11 remap is used" Expression="(Semaphore_input_Channel1TIM11 &amp; TIM11 &amp; SEM2RCC_HSE_REQUIRED_TIM11)"/>

        <PossibleValue Comment="Rtcclksource Hse Div2"  Value="RCC_RTCCLKSOURCE_HSE_DIV2"/>
        <PossibleValue Comment="Rtcclksource Hse Div4"  Value="RCC_RTCCLKSOURCE_HSE_DIV4"/>
        <PossibleValue Comment="Rtcclksource Hse Div8"  Value="RCC_RTCCLKSOURCE_HSE_DIV8"/>
        <PossibleValue Comment="Rtcclksource Hse Div16" Value="RCC_RTCCLKSOURCE_HSE_DIV16"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="RTC Clock Selection" DefaultValue="RCC_RTCCLKSOURCE_LSI" Name="RTCClockSelectionVirtual" Type="list">
        <PossibleValue Comment="Rtcclksource Lse"       Value="RCC_RTCCLKSOURCE_LSE"/>
        <PossibleValue Comment="Rtcclksource Lsi"       Value="RCC_RTCCLKSOURCE_LSI"/>
        <PossibleValue Comment="Rtcclksource Hse Div2"  Value="RCC_RTCCLKSOURCE_HSE_DIV2"/>
        <PossibleValue Comment="Rtcclksource Hse Div4"  Value="RCC_RTCCLKSOURCE_HSE_DIV4"/>
        <PossibleValue Comment="Rtcclksource Hse Div8"  Value="RCC_RTCCLKSOURCE_HSE_DIV8"/>
        <PossibleValue Comment="Rtcclksource Hse Div16" Value="RCC_RTCCLKSOURCE_HSE_DIV16"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="PLL Source" DefaultValue="+RTCClockSelectionVirtual" Name="RTCClockSelectionVirtualString" Type="string"/>
 
   
<RefParameter Comment="RTC Clock Selection" DefaultValue="+RTCClockSelectionVirtualString" IP="RTC,LCD" Name="RTCClockSelection" Type="list" Visible="false">
        <PossibleValue Comment="Rtcclksource Lse" Value="RCC_RTCCLKSOURCE_LSE" Semaphore="SEMAPHORE_LSE_SELECTED"/>
        <PossibleValue Comment="Rtcclksource Lsi" Value="RCC_RTCCLKSOURCE_LSI" Semaphore="SEMAPHORE_LSI_SELECTED"/>
        <PossibleValue Comment="Rtcclksource Hse Div2" Value="RCC_RTCCLKSOURCE_HSE_DIV2" Semaphore="HSEDiv2"/>
        <PossibleValue Comment="Rtcclksource Hse Div4" Value="RCC_RTCCLKSOURCE_HSE_DIV4" Semaphore="HSEDiv4"/>
        <PossibleValue Comment="Rtcclksource Hse Div8" Value="RCC_RTCCLKSOURCE_HSE_DIV8" Semaphore="HSEDiv8"/>
        <PossibleValue Comment="Rtcclksource Hse Div16" Value="RCC_RTCCLKSOURCE_HSE_DIV16" Semaphore="HSEDiv16"/>
       
    </RefParameter>
		<RefParameter Comment="RTC ClockSelection For LL" DefaultValue="LL_RCC_RTC_CLKSOURCE_LSE" Name="RTCClockSelectionForLL" Type="list" Visible="false">
 <Condition Diagnostic="" Expression="SEMAPHORE_LSE_SELECTED"/>
 <PossibleValue Comment="2" Value="LL_RCC_RTC_CLKSOURCE_LSE"/>
   </RefParameter>
		<RefParameter Comment="RTC ClockSelection For LL" DefaultValue="LL_RCC_RTC_CLKSOURCE_LSI" Name="RTCClockSelectionForLL" Type="list" Visible="false">
 <Condition Diagnostic="" Expression="SEMAPHORE_LSI_SELECTED"/>
 <PossibleValue Comment="2" Value="LL_RCC_RTC_CLKSOURCE_LSI"/>
   </RefParameter>
		<RefParameter Comment="RTC ClockSelection For LL" DefaultValue="LL_RCC_RTC_CLKSOURCE_HSE" Name="RTCClockSelectionForLL" Type="list" Visible="false">
 <PossibleValue Comment="2" Value="LL_RCC_RTC_CLKSOURCE_HSE"/>
   </RefParameter>
		<RefParameter Comment="HSE RTC Div" DefaultValue="LL_RCC_RTC_HSE_DIV_2" Name="HSEDivRTC" Type="list" Visible="false">
 <Condition Diagnostic="" Expression="HSEDiv2"/>
 <PossibleValue Comment="2" Value="LL_RCC_RTC_HSE_DIV_2"/>
   </RefParameter>
		<RefParameter Comment="HSE RTC Div" DefaultValue="LL_RCC_RTC_HSE_DIV_4" Name="HSEDivRTC" Type="list" Visible="false">
 <Condition Diagnostic="" Expression="HSEDiv4"/>
 <PossibleValue Comment="4" Value="LL_RCC_RTC_HSE_DIV_4"/>
   </RefParameter>
		<RefParameter Comment="HSE RTC Div" DefaultValue="LL_RCC_RTC_HSE_DIV_8" Name="HSEDivRTC" Type="list" Visible="false">
 <Condition Diagnostic="" Expression="HSEDiv8"/>
 <PossibleValue Comment="8" Value="LL_RCC_RTC_HSE_DIV_8"/>
   </RefParameter>
		<RefParameter Comment="HSE RTC Div" DefaultValue="LL_RCC_RTC_HSE_DIV_16" Name="HSEDivRTC" Type="list" Visible="false">
 <Condition Diagnostic="" Expression="HSEDiv16"/>
 <PossibleValue Comment="16" Value="LL_RCC_RTC_HSE_DIV_16"/>
   </RefParameter>
		<RefParameter Comment="HSE RTC Div" DefaultValue="null" Name="HSEDivRTC" Type="list" Visible="false">


   </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 MSI"    Value="RCC_MCO1SOURCE_MSI"/>
        <PossibleValue Comment="MCO1SRC HSE"    Value="RCC_MCO1SOURCE_HSE"/>
        <PossibleValue Comment="MCO1SRC PLLCLK" Value="RCC_MCO1SOURCE_PLLCLK" Semaphore="MCOSourcePLL"/>
        <PossibleValue Comment="MCO1SRC LSI"    Value="RCC_MCO1SOURCE_LSI"/>
        <PossibleValue Comment="MCO1SRC LSE"    Value="RCC_MCO1SOURCE_LSE"/>

    </RefParameter>
	
    <!-- MSI clock range-->	
    <RefParameter Visible="false" Comment="MSI Clock Range" DefaultValue="RCC_MSIRANGE_5" Name="MSIClockRange" Display="value/1000" Unit="KHz" Type="list">
        <PossibleValue Comment="65.536"  Value="RCC_MSIRANGE_0"/>
        <PossibleValue Comment="131.072" Value="RCC_MSIRANGE_1"/>
        <PossibleValue Comment="262.144" Value="RCC_MSIRANGE_2"/>
        <PossibleValue Comment="524.288" Value="RCC_MSIRANGE_3"/>
        <PossibleValue Comment="1048"    Value="RCC_MSIRANGE_4"/>
        <PossibleValue Comment="2097"    Value="RCC_MSIRANGE_5"/>
        <PossibleValue Comment="4194"    Value="RCC_MSIRANGE_6"/>
    </RefParameter>
    
   

	
    <!-- Clock Security System on HSE-->
    <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="(((PLLSourceVirtual=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>
	
	
    <!-- Clock Security System on LSE-->
	
    <RefParameter Visible="false" Name="EnableCSSLSE" Comment="LSE Clock Security System: available only when LSE is used as Clock Source for RTC/LCD" Type="list" DefaultValue="false">
        <Condition Diagnostic="" Expression="(((RTCClockSelection=RCC_RTCCLKSOURCE_LSE)) &amp; (RTCUsed_ForRCC|LCDUsed_ForRCC))"/>
        <PossibleValue Value="true" Comment="Enabled" Semaphore="NVICusedCssLSE"/>
        <PossibleValue Value="false" Comment="Disabled"/>
    </RefParameter>

    <RefParameter Visible="false" Name="EnableCSSLSE" Comment="LSE Clock Security System: available only when LSE is used as Clock Source for RTC/LCD" Type="list" DefaultValue="false">
        <PossibleValue Value="false" Comment="Disabled"/>
    </RefParameter>
	
    <!--frequence Values --> 
    <!--fixed and varied source  --> 
    <!--HSE Freq value-->
    <RefParameter Visible="false" Comment="HSE OSC" Name="HSE_VALUE" DefaultValue="24000000" Max="32000000" Min="1000000" Type="double" Display="value/1000000" Unit="MHz"><!--When HSE in bypass and PLused or CSS enable-->
        <Condition Diagnostic="HSE in bypass Mode" Expression="(((PLLscale)|CSSEnabled)) &amp; HSEByPass  "/>
    </RefParameter> 
	
    <RefParameter Visible="false" Comment="HSE OSC" Name="HSE_VALUE" DefaultValue="24000000" Max="8000000" Min="0" Type="double" Display="value/1000000" Unit="MHz"><!--HSE bypass and !PLL and !CSS-->
        <Condition Diagnostic="HSE in bypass Mode" Expression="HSEscale &amp; HSEByPass &amp; (PWR_Regulator_Voltage_Scale=PWR_REGULATOR_VOLTAGE_SCALE3) "/>
    </RefParameter>

    <RefParameter Visible="false" Comment="HSE OSC" Name="HSE_VALUE" DefaultValue="24000000" Max="16000000" Min="0" Type="double" Display="value/1000000" Unit="MHz"><!--HSE bypass and !PLL and !CSS-->
        <Condition Diagnostic="HSE in bypass Mode" Expression="HSEscale &amp; HSEByPass &amp; (PWR_Regulator_Voltage_Scale=PWR_REGULATOR_VOLTAGE_SCALE2) "/>
    </RefParameter> 
	 
    <RefParameter Visible="false" Comment="HSE OSC" Name="HSE_VALUE" DefaultValue="24000000" Max="32000000" Min="0" Type="double" Display="value/1000000" Unit="MHz"><!--HSE bypass and !PLL and !CSS-->
        <Condition Diagnostic="HSE in bypass Mode" Expression="HSEByPass  "/>
    </RefParameter>    
  
    <RefParameter Visible="false" Comment="HSE OSC" Name="HSE_VALUE" DefaultValue="24000000" Max="24000000" Min="1000000" Type="double" Display="value/1000000" Unit="MHz"/><!--HSE in OSI mode-->
	
    <!--HSE Freq value-->
    <RefParameter Visible="false" Comment="HSI Source" Name="HSI_VALUE" DefaultValue="16000000" Type="double" Display="value/1000000" Unit="MHz"/>
	 
    <!--LSE Freq value-->
    <RefParameter Visible="false" Comment="LSE OSC" Name="LSE_VALUE" DefaultValue="32768" Max="32768" Min="32768" Type="double" Display="value/1000" Unit="KHz"><!--LSE on OSi mode-->
        <Condition Diagnostic="LSE In crystal Mode" Expression="LSEOscillator"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="LSE OSC" Name="LSE_VALUE" DefaultValue="32768" Max="1000000" Min="1000" Type="double" Display="value/1000" Unit="KHz"/>
	
    <!--LSI and MSI Freq value-->
    <RefParameter Visible="false" Comment="LSI Source" Name="LSI_VALUE" DefaultValue="37000" Max="37000" Min="37000" Type="double" Display="value/1000" Unit="KHz"/>
    <RefParameter Visible="false" Comment="MSI Source" Name="MSI_VALUE" DefaultValue="2097000" Type="double" Display="value/1000" Unit="KHz"/>
	
    <!--mux output freq value  --> 
    <RefParameter Visible="false" Comment="System clock" Name="SYSCLKFreq_VALUE" DefaultValue="2097000" Max="32000000" Min="=RTCFreq_Value" Type="double" Display="value/1000000" Unit="MHz">
        <Condition Diagnostic="LSE In crystal Mode" Expression="RTCUsed_ForRCC|LCDUsed_ForRCC"/>	
    </RefParameter>
    
    <RefParameter Visible="false" Comment="System clock" Name="SYSCLKFreq_VALUE" DefaultValue="2097000" Max="32000000" Type="double" Display="value/1000000" Unit="MHz"/>
	
    <!--RTC freq value  --> 
    <RefParameter Visible="false" Comment="RTC clock" Name="RTCFreq_Value" Type="double" DefaultValue="32000" IP="RTC" Max="1000000" Min="0" Display="value/1000" Unit="KHz" >
        <Condition Diagnostic="RTC Has HSE as source" Expression="(!(RTCClockSelection=RCC_RTCCLKSOURCE_LSE)&amp;!(RTCClockSelection=RCC_RTCCLKSOURCE_LSI)&amp; (RTCEnable=true))"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="RTC clock" Name="RTCFreq_Value" Type="double" IP="RTC" DefaultValue="37000" Display="value/1000" Unit="KHz" />
    <RefParameter Visible="false" Comment="RTC Clock Source_HSEDiv" Name="RTCHSEDivFreq_Value" Max="1000000" Min="0" DefaultValue="12500000" Type="double" Display="value/1000000" Unit="MHz"/>
    <RefParameter Visible="false" Comment="LCD clock" Name="LCDFreq_Value" Type="double" DefaultValue="37000" IP="LCD" Max="1000000" Min="0" Display="value/1000" Unit="KHz" >
        <Condition Diagnostic="RTC Has HSE as source" Expression="(!(RTCClockSelection=RCC_RTCCLKSOURCE_LSE)&amp;!(RTCClockSelection=RCC_RTCCLKSOURCE_LSI)&amp; (LCDEnable=true))"/>
    </RefParameter>   
    <RefParameter Visible="false" Comment="LCD clock" Name="LCDFreq_Value" Type="double" IP="LCD" DefaultValue="37000" Display="value/1000" Unit="KHz" />
    <!--MCO freq va  --> 
 
    <RefParameter Visible="false" Comment="MCO Output" Name="MCOPinFreq_Value" DefaultValue="2097000"  Type="double" Display="value/1000000" Unit="MHz"/>

    <!--APB1 APB2 and AHB freq value  --> 
    <RefParameter Visible="false" Comment="System clock" Name="APB1Freq_Value" DefaultValue="8000000" Max="32000000" Min="=RTCFreq_Value" Type="double" Display="value/1000000" IP="SPI3,UART5,UART4,COMP,DAC,PWR,USB,WWDG,SPI2,USART2,USART3,I2C1,I2C2,I2S3,I2S2" Unit="MHz">
        <Condition Diagnostic="LSE In crystal Mode" Expression="(RTCUsed_ForRCC|LCDUsed_ForRCC) &amp; !USBUsed_ForRCC"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="APB1 peripheral clocks" Name="APB1Freq_Value" DefaultValue="2097000" Min="10000000" Max="32000000" Type="double" IP="SPI3,UART5,UART4,COMP,DAC,PWR,USB,WWDG,SPI2,USART2,USART3,I2C1,I2C2,I2S3,I2S2" Display="value/1000000" Unit="MHz">
        <Condition Diagnostic="USB" Expression="USBUsed_ForRCC"/>
    </RefParameter>  
    <RefParameter Visible="false" Comment="APB1 peripheral clocks" Name="APB1Freq_Value" DefaultValue="2097000" Max="32000000" Type="double" IP="SPI3,UART5,UART4,COMP,DAC,PWR,USB,WWDG,SPI2,USART2,USART3,I2C1,I2C2,I2S3,I2S2" Display="value/1000000" Unit="MHz"/>
    <RefParameter Visible="false" Comment="APB2 peripheral clocks" Name="APB2Freq_Value" DefaultValue="2097000" Max="32000000" Type="double" IP="SDIO,USART1,SPI1,SYSCFG,I2S1" 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="ADC"/>
    <RefParameter Visible="false" Comment="ADC asynchr" Name="asynchADCFreq_Value" DefaultValue="=ADCFreq_Value"  Type="double" Display="value/1000000"  Unit="MHz" IP="ADC"/>
   <RefParameter Visible="false" Comment="HCLK" Name="AHBFreq_Value" DefaultValue="2097000"  Type="double" Display="value/1000000" Unit="MHz"/>
    <RefParameter Visible="false" Comment="HCLK" Name="HCLKFreq_Value" DefaultValue="2097000" Max="32000000"  Type="double" IP="DMA-2D,CAMERAITF" Display="value/1000000" Unit="MHz"/>
    <!--PLL freq value  --> 
    <RefParameter Visible="false" Comment="VCOInput" Name="VCOInputFreq_Value" DefaultValue="16000000" Min="2000000" Max="24000000" Type="double" Display="value/1000000" Unit="MHz">
        <Condition Diagnostic="USB uses PLL as Clock Source" Expression="PLLUsed=1"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="VCOInput" Name="VCOInputFreq_Value" DefaultValue="16000000"  Type="double" Display="value/1000000" Unit="MHz"/>
        

    <RefParameter Visible="false" Comment="VCOOutput" Name="VCOOutputFreq_Value" DefaultValue="48000000"  Max="96000000" Type="double" Display="value/1000000" Unit="MHz">
        <Condition Diagnostic="USB uses PLL as clock source" Expression="(PLLUsed=1) &amp; (PWR_Regulator_Voltage_Scale=PWR_REGULATOR_VOLTAGE_SCALE1)"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="VCOOutput" Name="VCOOutputFreq_Value" DefaultValue="48000000"  Max="48000000" Type="double" Display="value/1000000" Unit="MHz">
        <Condition Diagnostic="USB uses PLL as clock source" Expression="(PLLUsed=1)&amp; ((PWR_Regulator_Voltage_Scale=PWR_REGULATOR_VOLTAGE_SCALE2))"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="VCOOutput" Name="VCOOutputFreq_Value" DefaultValue="48000000"  Max="24000000" Type="double" Display="value/1000000" Unit="MHz">
        <Condition Diagnostic="USB uses PLL as clock source" Expression="(PLLUsed=1)&amp; ((PWR_Regulator_Voltage_Scale=PWR_REGULATOR_VOLTAGE_SCALE3))"/>
    </RefParameter>
    
    <RefParameter Visible="false" Comment="VCOOutput" Name="VCOOutputFreq_Value" DefaultValue="48000000" Type="double" Display="value/1000000" Unit="MHz"/>
	
    <RefParameter Visible="false" Comment="PLL clock" Name="PLLCLKFreq_Value" DefaultValue="24000000" Max="32000000" Min="2000000"  Type="double" Display="value/1000000" Unit="MHz">
        <Condition Diagnostic="USB uses PLL as Clock Source" Expression="(PLLUsed=1)&amp; (PWR_Regulator_Voltage_Scale=PWR_REGULATOR_VOLTAGE_SCALE1)"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="PLL clock" Name="PLLCLKFreq_Value" DefaultValue="24000000" Max="16000000" Min="2000000" Type="double" Display="value/1000000" Unit="MHz">
        <Condition Diagnostic="USB uses PLL as Clock Source" Expression="(PLLUsed=1)&amp; ((PWR_Regulator_Voltage_Scale=PWR_REGULATOR_VOLTAGE_SCALE2))"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="PLL clock" Name="PLLCLKFreq_Value" DefaultValue="24000000" Max="4000000" Min="2000000" Type="double" Display="value/1000000" Unit="MHz">
        <Condition Diagnostic="USB uses PLL as Clock Source" Expression="(PLLUsed=1)&amp; ((PWR_Regulator_Voltage_Scale=PWR_REGULATOR_VOLTAGE_SCALE3))"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="PLL clock" Name="PLLCLKFreq_Value" DefaultValue="24000000"  Type="double" Min="2000000" Display="value/1000000" Unit="MHz"/>
	
	
    <!--anathor output freq value  --> 
    <RefParameter Visible="false" Comment="IWDG clock" Name="WatchDogFreq_Value" DefaultValue="37000" Type="double" IP="IWATCHDOG" Display="value/1000" Unit="KHz" />
    <RefParameter Visible="false" Comment="Cortex System Timer clock" Name="TimerFreq_Value" DefaultValue="2097000" Type="double" IP="Timer" Display="value/1000000" Unit="MHz"/>
   <!--  <RefParameter Visible="false" Comment="FCLK Cortex clock" Name="FCLKCortexFreq_Value" DefaultValue="2097000" Max="32000000" Min="32000000" Type="double" Display="value/1000000" Unit="MHz">
        <Condition Diagnostic="FCLK must be 32 MHz or 24 MHz when USB is enabled" Expression="USBUsed_ForRCC &amp; !(AHBFreq_Value=32000000)&amp;!(AHBFreq_Value=24000000) "/>
    </RefParameter>
    <RefParameter Visible="false" Comment="" Name="FCLKCortexFreq_ValueConstraintsText" DefaultValue="'FCLK Cortex clock' frequency must be =32 MHz or =24 MHz when USB is enabled" Type="string" Display="value/1000000" Unit="MHz">
        <Condition Diagnostic="FCLK must be 32 MHz or 24 MHz when USB is enabled" Expression="USBUsed_ForRCC &amp; !(AHBFreq_Value=32000000)&amp;!(AHBFreq_Value=24000000) "/>
    </RefParameter>
    <RefParameter Visible="false" Comment="" Name="FCLKCortexFreq_ValueConstraintsText" DefaultValue="" Type="string" Display="value/1000000" Unit="MHz"/>
-->
    <RefParameter Visible="false" Comment="FCLK Cortex clock" Name="FCLKCortexFreq_Value" DefaultValue="2097000" Type="double" Display="value/1000000" Unit="MHz"/>
	
	
	
    <RefParameter Visible="false" Comment="PWR clock" Name="PWRFreq_Value" DefaultValue="2097000" Type="double" IP="PWR" Display="value/1000000" Unit="MHz"/>
    <RefParameter Visible="false" Comment="USB clock" Name="48MHZClocksFreq_Value" DefaultValue="24000000" Min="47880000" Max="48120000" Type="double" Display="value/1000000" IP="USB,SDIO" Unit="MHz"/>
    <RefParameter Visible="false" Comment="sdio clock" Name="SDIOoutput" DefaultValue="24000000"  Type="double" Display="value/1000000" IP="USB" Unit="MHz"/>
    <RefParameter Visible="false" Comment="APB1 timers clocks" Name="APB1TimFreq_Value" DefaultValue="2097000" Type="double" IP="TIMER6,TIMER7,,TIMER2,TIMER3,TIMER4,TIMER5" Display="value/1000000" Unit="MHz"/>
    <RefParameter Visible="false" Comment="APB2 timers clocks" Name="APB2TimFreq_Value" DefaultValue="2097000" Type="double" IP="TIMER9,TIMER10,TIMER11" Display="value/1000000" Unit="MHz"/>
    <RefParameter Visible="false" Comment="ADC clock" Name="ADCFreq_Value" DefaultValue="16000000" Type="double" Display="value/1000000" Unit="MHz" />
	

		
		
		
    
	
    <!--VDD range--> 
    <!--for L100 min 1.8--> 
    <RefParameter Name="VDD_VALUE" Comment="VDD voltage (V)" DefaultValue="3.3" Max="3.6" Min="1.8" Type="double" Unit="V" Group="System Parameters">
        <Condition Diagnostic="" Expression=" STM32L100_Value_Line &amp; !DIE427"/>
    </RefParameter>
	
    <!--for !L100 min  1.71 when HCLK >16mhz --> 
    <RefParameter Name="VDD_VALUE" Comment="VDD voltage (V)" DefaultValue="3.3" Max="3.6" Min="1.71" Type="double" Unit="V" Group="System Parameters">
        <Condition Diagnostic="" Expression="(HCLKFreq_Value &gt; 16000000) &amp; (!STM32L100_Value_Line | DIE427)"/>
    </RefParameter>
	
    <!--for !L100 min 1.65 and HCLK<16mhz --> 
    <RefParameter Name="VDD_VALUE" Comment="VDD voltage (V)" DefaultValue="3.3" Max="3.6" Min="1.65" Type="double" Unit="V" Group="System Parameters"/>
	
	

    <RefParameter Name="PWR_Regulator_Voltage_Scale" Comment="Power Regulator Voltage Scale" Type="list" DefaultValue="PWR_REGULATOR_VOLTAGE_SCALE1" Group="Power Parameters">
        <Condition Diagnostic="" Expression="((HCLKFreq_Value &gt; 16000000))"/>
        <PossibleValue Value="PWR_REGULATOR_VOLTAGE_SCALE1" Comment="Power Regulator Voltage Scale 1" Semaphore="scale1"/>
    </RefParameter>
    <RefParameter Name="PWR_Regulator_Voltage_Scale" Comment="Power Regulator Voltage Scale" Type="list" DefaultValue="PWR_REGULATOR_VOLTAGE_SCALE1" Group="Power Parameters">
        <Condition Diagnostic="" Expression="((HCLKFreq_Value &gt; 8000000))"/>
        <PossibleValue Value="PWR_REGULATOR_VOLTAGE_SCALE2" Comment="Power Regulator Voltage Scale 2" Semaphore="scale2"/>
        <PossibleValue Value="PWR_REGULATOR_VOLTAGE_SCALE1" Comment="Power Regulator Voltage Scale 1" Semaphore="scale11"/>

    </RefParameter>
    <RefParameter Name="PWR_Regulator_Voltage_Scale" Comment="Power Regulator Voltage Scale" Type="list" DefaultValue="PWR_REGULATOR_VOLTAGE_SCALE1" Group="Power Parameters">
        <Condition Diagnostic="" Expression="(((HCLKFreq_Value &gt; 4200000))) &amp; STM32L162"/>
        <PossibleValue Value="PWR_REGULATOR_VOLTAGE_SCALE2" Comment="Power Regulator Voltage Scale 2" Semaphore="scale2"/>
        <PossibleValue Value="PWR_REGULATOR_VOLTAGE_SCALE1" Comment="Power Regulator Voltage Scale 1" Semaphore="scale1"/>
    </RefParameter>
    <RefParameter Name="PWR_Regulator_Voltage_Scale" Comment="Power Regulator Voltage Scale" Type="list" DefaultValue="PWR_REGULATOR_VOLTAGE_SCALE1" Group="Power Parameters">
        <Condition Diagnostic="" Expression="(((HCLKFreq_Value &gt; 4000000))) &amp; !STM32L162"/>
        <PossibleValue Value="PWR_REGULATOR_VOLTAGE_SCALE2" Comment="Power Regulator Voltage Scale 2" Semaphore="scale2"/>
        <PossibleValue Value="PWR_REGULATOR_VOLTAGE_SCALE1" Comment="Power Regulator Voltage Scale 1" Semaphore="scale1"/>
    </RefParameter>
    <RefParameter Name="PWR_Regulator_Voltage_Scale" Comment="Power Regulator Voltage Scale" Type="list" DefaultValue="PWR_REGULATOR_VOLTAGE_SCALE1" Group="Power Parameters">
        <PossibleValue Value="PWR_REGULATOR_VOLTAGE_SCALE3" Comment="Power Regulator Voltage Scale 3" Semaphore="scale3"/>
        <PossibleValue Value="PWR_REGULATOR_VOLTAGE_SCALE2" Comment="Power Regulator Voltage Scale 2" Semaphore="scale2"/>
        <PossibleValue Value="PWR_REGULATOR_VOLTAGE_SCALE1" Comment="Power Regulator Voltage Scale 1" Semaphore="scale1"/>



    </RefParameter>
  
    <RefParameter Name="FLatency" Comment="Flash Latency(WS)" Type="uniqueElementList" DefaultValue="FLASH_LATENCY_0" Group="System Parameters">
        <Condition Diagnostic="" Expression="
		(((((VDD_VALUE &gt; 1.71)|(VDD_VALUE= 1.71)) &amp;  ((VDD_VALUE &lt; 3.6)|(VDD_VALUE = 3.6 ))) &amp; (   ((HCLKFreq_Value &lt; 16000000)|(HCLKFreq_Value= 16000000 )))) &amp; (scale1|scale11))|
		(((((VDD_VALUE &gt; 1.65)|(VDD_VALUE=1.65)) &amp;  ((VDD_VALUE &lt; 3.6)|(VDD_VALUE = 3.6))) &amp; (  ((HCLKFreq_Value &lt; 8000000)|(HCLKFreq_Value =8000000 )))) &amp;(scale2) )|
		(((((VDD_VALUE &gt; 1.65)|(VDD_VALUE=1.65)) &amp;  ((VDD_VALUE &lt; 3.6)|(VDD_VALUE = 3.6))) &amp; (  (DIE416|STM32L162) &amp;((HCLKFreq_Value &lt; 2100000)|(HCLKFreq_Value =2100000 )))) &amp;(scale3) )|
		(((((VDD_VALUE &gt; 1.65)|(VDD_VALUE=1.65)) &amp;  ((VDD_VALUE &lt; 3.6)|(VDD_VALUE = 3.6))) &amp; (  !(DIE416|STM32L162) &amp;((HCLKFreq_Value &lt; 4200000)|(HCLKFreq_Value =4200000 )))) &amp;(scale3) )" />
        <PossibleValue Value="FLASH_LATENCY_0" Comment="0 WS (1 CPU cycle)"/>

    </RefParameter>
    <RefParameter Name="FLatency" Comment="Flash Latency(WS)" Type="uniqueElementList" DefaultValue="FLASH_LATENCY_1" Group="System Parameters">
        <Condition Diagnostic="" Expression="
		(((((VDD_VALUE &gt; 1.71)|(VDD_VALUE= 1.71)) &amp;  ((VDD_VALUE &lt; 3.6)|(VDD_VALUE = 3.6 ))) &amp; (   ((HCLKFreq_Value &lt; 32000000)|(HCLKFreq_Value= 32000000 )))) &amp; (scale1|scale11))|
		(((((VDD_VALUE &gt; 1.65)|(VDD_VALUE=1.65)) &amp;  ((VDD_VALUE &lt; 3.6)|(VDD_VALUE = 3.6))) &amp; (  ((HCLKFreq_Value &lt; 16000000)|(HCLKFreq_Value =16000000 )))) &amp;(scale2) )|
		(((((VDD_VALUE &gt; 1.65)|(VDD_VALUE=1.65)) &amp;  ((VDD_VALUE &lt; 3.6)|(VDD_VALUE = 3.6))) &amp; (  (DIE416|STM32L162) &amp;((HCLKFreq_Value &lt; 4200000)|(HCLKFreq_Value =4200000 )))) &amp;(scale3) )|
		(((((VDD_VALUE &gt; 1.65)|(VDD_VALUE=1.65)) &amp;  ((VDD_VALUE &lt; 3.6)|(VDD_VALUE = 3.6))) &amp; (  !(DIE416|STM32L162) &amp;((HCLKFreq_Value &lt; 8000000)|(HCLKFreq_Value =8000000 )))) &amp;(scale3) )" />
        <PossibleValue Value="FLASH_LATENCY_1" Comment="1 WS (2 CPU cycle)" Semaphore="FLASH_LATENCY1"/>
    </RefParameter>

    <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)"/>
        <PossibleValue Value="FLASH_LATENCY_1" Comment="1 WS (2 CPU cycle)" Semaphore="FLASH_LATENCY1"/>
    </RefParameter>
    <RefParameter Name="INSTRUCTION_CACHE_ENABLE" Comment="Instruction Cache" Type="list" DefaultValue="1" Group="System Parameters">
        <PossibleValue Value="1" Comment="Enabled"/>
        <PossibleValue Value="0" Comment="Disabled"/>
    </RefParameter>
    <RefParameter Name="PREFETCH_ENABLE" Comment="Prefetch Buffer" Type="list" DefaultValue="0" Group="System Parameters">
        <PossibleValue Value="1" Comment="Enabled"/>
        <PossibleValue Value="0" Comment="Disabled"/>
    </RefParameter>
    <RefParameter Name="DATA_CACHE_ENABLE" Comment="Data Cache" Type="list" DefaultValue="1" Group="System Parameters">
        <PossibleValue Value="1" Comment="Enabled"/>
        <PossibleValue Value="0" Comment="Disabled"/>
    </RefParameter>
	
	
    <!--Enable Param-->
    <!--HSE Enable -->
    <RefParameter Visible="false" Name="EnableHSE" Comment="HSE OSC" Type="list" DefaultValue="true" >
        <Condition Expression="(Semaphore_input_Channel1TIM11 &amp; TIM11 &amp; SEM2RCC_HSE_REQUIRED_TIM11)|(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" >
        <PossibleValue Value="false" Comment="false"/>
    </RefParameter>
    <!--RTC Enable -->
    <!--HSE DIv for RTC Enable -->
    <RefParameter Visible="false" Name="EnableHSERTCDevisor" Comment="RTC and HSE Oscillator" Type="list" DefaultValue="true" IP="RTC">
        <Condition Expression="(Semaphore_input_Channel1TIM11 &amp; TIM11 &amp; SEM2RCC_HSE_REQUIRED_TIM11)|(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>
	
	
    <!--HSE DIV for LCD Enable -->
    <RefParameter Visible="false" Name="EnableHSELCDDevisor" Comment="LCD and HSE Oscillator" Type="list" DefaultValue="true" IP="LCD">
        <Condition Expression="LCDUsed_ForRCC &amp; (HSEOscillator|HSEByPass)" Diagnostic="Disabled if RTC is used"/>
        <PossibleValue Value="true" Comment="true"/>
    </RefParameter>
    <RefParameter Visible="false" Name="EnableHSELCDDevisor" Comment="LCD and HSE Oscillator" Type="list" DefaultValue="false" IP="LCD">
        <PossibleValue Value="false" Comment="false"/>
    </RefParameter>
	
    <!-- LCD Enable -->
    <RefParameter Visible="false" Name="LCDEnable" Comment="LCD" Type="list" DefaultValue="true" IP="LCD">
        <Condition Expression="LCDUsed_ForRCC" Diagnostic="LCD is activated"/>
        <PossibleValue Value="true" Comment="true"/>
    </RefParameter>
	
    <RefParameter Visible="false" Name="LCDEnable" Comment="LCD" Type="list" DefaultValue="false" IP="LCD">
        <PossibleValue Value="false" Comment="false"/>
    </RefParameter>
	
    <RefParameter Visible="false" Name="RTCEnable" Comment="RTC" Type="list" DefaultValue="true" IP="RTC">
        <Condition Expression="(Semaphore_input_Channel1TIM11 &amp; TIM11 &amp; SEM2RCC_HSE_REQUIRED_TIM11)|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="EnableLSERTC" Comment="EnableLSERTC" Type="list" DefaultValue="true" IP="RTC,LCD">
        <Condition Expression="(RTCUsed_ForRCC|LCDUsed_ForRCC|(Semaphore_input_Channel1TIM11 &amp; TIM11 &amp; SEM2RCC_HSE_REQUIRED_TIM11)) &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,LCD">
        <PossibleValue Value="false" Comment="false"/>
    </RefParameter>
	
	
    <!-- LSE Enable -->
    <RefParameter Visible="false" Name="EnableLSE" Comment="EnableLSE" 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="EnableLSE" 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>
	
	
	
    <!-- 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>
	
   
    <!-- USB Enable -->
    <RefParameter Visible="false" Name="USBEnable" Comment="USB" Type="list" DefaultValue="true" IP="USB">
        <Condition Expression="USBUsed_ForRCC" Diagnostic="USB is activated"/>
        <PossibleValue Value="true" Comment="true"/>
    </RefParameter>
	
    <RefParameter Visible="false" Name="USBEnable" Comment="USB" Type="list" DefaultValue="false" IP="USB">
        <PossibleValue Value="false" Comment="false"/>
    </RefParameter> 
	
    
    <!-- ADC Output Enable -->
    <RefParameter Visible="false" Name="ADCEnable" Comment="ADC in Asynchronous mode" Type="list" DefaultValue="true" IP="ADC">
        <Condition Expression="USE_ADC" Diagnostic="ADC is activated"/>
        <PossibleValue Value="true" Comment="true"/>
    </RefParameter>
	
    <RefParameter Visible="false" Name="ADCEnable" Comment="ADC in Asynchronous mode" Type="list" DefaultValue="false" IP="ADC">
        <PossibleValue Value="false" Comment="false"/>
    </RefParameter>
	
    <!--SDIO Enable-->
    <RefParameter Visible="false" Name="SDIOEnable" Comment="SDIO" Type="list" DefaultValue="true">
        <Condition Expression="SDIOUsed_ForRCC" Diagnostic="SDIO is activated"/>
        <PossibleValue Value="true" Comment="true"/>
    </RefParameter>
	
    <RefParameter Visible="false" Name="SDIOEnable" Comment="SDIO" Type="list" DefaultValue="false">
        <PossibleValue Value="false" Comment="false"/>
    </RefParameter>
	
	
	
	
    
    <!-- HSE state control -->
    <!-- HSE osillator type -->
    <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 used -->	
    <RefParameter Visible="false" Comment="HSE used flag" DefaultValue="1" Name="HSEUsed" Type="integer" Min="1" Max="1">
        <Condition Expression="(Semaphore_input_Channel1TIM11 &amp; TIM11 &amp; SEM2RCC_HSE_REQUIRED_TIM11)|((RTCUsed_ForRCC|LCDUsed_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 OR MCO2 source"/>
    </RefParameter>
	
    <RefParameter Visible="false" Comment="HSE Is Used" DefaultValue="0" Name="HSEUsed" Min="0" Type="integer"/>
	
    <!-- HSE state for codGen -->	
    <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="Semaphore_input_Channel1TIM11 &amp; TIM11 &amp; SEM2RCC_HSE_REQUIRED_TIM11|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 state control -->
    <!-- LSE osillator type -->
    <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 used -->
    <RefParameter Visible="false" Comment="LSE Is Used" DefaultValue="1" Name="LSEUsed" Min="1" Type="integer">
        <Condition Expression="(Semaphore_TI1_TIM10L1RemapTIM10 &amp; TIM10 &amp; SEM2RCC_LSE_REQUIRED1_TIM10)|((Semaphore_ClockSourceETRMode2TIM10|Semaphore_TriggerSourceETRTIM10|Semaphore_ETRasClearingSourceTIM10)&amp; !Semaphore_TIM10_ETR_Remap_TGOTIM10  &amp; TIM10 &amp; SEM2RCC_LSE_REQUIRED_TIM10)|((Semaphore_ClockSourceETRMode2TIM11|Semaphore_TriggerSourceETRTIM11|Semaphore_ETRasClearingSourceTIM11)&amp; !Semaphore_TIM11_ETR_Remap_TGOTIM11 &amp; TIM11 &amp; SEM2RCC_LSE_REQUIRED_TIM11)|((Semaphore_input_Channel1TIM9 &amp; TIM9 &amp; SEM2RCC_LSE_REQUIRED_TIM9) &amp;(LSEByPass|LSEOscillator))|((RCC_MCOSource=RCC_MCO1SOURCE_LSE)&amp; MCOConfig)|((RTCClockSelection=RCC_RTCCLKSOURCE_LSE) &amp;(RTCUsed_ForRCC|LCDUsed_ForRCC) )" Diagnostic="LSE is used if "/>
    </RefParameter>
	
    <RefParameter Visible="false" Comment="LSE Is Used" DefaultValue="0" Name="LSEUsed" Min="0" Type="integer"/>
	
    <!-- LSE state used to codgen -->
    <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 -->
    <!-- LSI osillator type -->
    <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="(Semaphore_TI1_TIM10L1RemapTIM10 &amp; TIM10 &amp; SEM2RCC_LSI_REQUIRED_TIM10 )|(IWDGUsed_ForRCC|((RTCClockSelection=RCC_RTCCLKSOURCE_LSI)&amp;(RTCUsed_ForRCC|LCDUsed_ForRCC))|((RCC_MCOSource=RCC_MCO1SOURCE_LSI)&amp;(MCOConfig)))" Diagnostic=""/>
    </RefParameter>
    <RefParameter Visible="false" Comment="LSI used flag" DefaultValue="0" Name="LSIUsed" Type="integer" Min="0" Max="0"/>
   
    <!-- LSI state to codGen -->
    <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 -->
    <!-- HSI osillator type -->	
    <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>
	
    <!-- HSI used -->
    <RefParameter Visible="false" Comment="HSI Is Used" DefaultValue="1" Name="HSIUsed" Min="1" Type="integer">
        <Condition Expression="((HSIusedPLL)&amp; (PLLUsed=1))|(SYSCLKSource=RCC_SYSCLKSOURCE_HSI)|((RCC_MCOSource=RCC_MCO1SOURCE_HSI)&amp;(MCOConfig))|USE_ADC" Diagnostic="LSE is used if "/>
    </RefParameter>
    <RefParameter Visible="false" Comment="HSI is Used" DefaultValue="0" Name="HSIUsed" Min="0" Type="integer"/>
	
    <!-- HSI state used codGen-->
    <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>
	
	
	
    <!-- Main PLL state control-->
    <!-- PLL used -->
    <RefParameter Visible="false" Comment="MainPLL Is Used" DefaultValue="1" Name="PLLUsed" Min="1" Max="1" Type="integer">
        <Condition Expression="(SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK)|((RCC_MCOSource=RCC_MCO1SOURCE_PLLCLK)&amp; MCOConfig)|USBUsed_ForRCC|SDIOUsed_ForRCC" Diagnostic=" "/>
    </RefParameter>
	
    <RefParameter Visible="false" Comment="Main PLL is Used" DefaultValue="0" Name="PLLUsed" Min="0" Max="0" Type="integer"/>
	
    <!-- PLL state -->
    <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>
    
    
    <!-- MSI state control -->
    <!-- MSI osillator type-->
    <RefParameter Visible="false" Comment="Clock Type MSI" DefaultValue="" Name="OscillatorTypeMSI" Type="list">
        <Condition Diagnostic="MSI Is OFF" Expression="MSIUsed=0"/>
    </RefParameter>
    <RefParameter Visible="false" Comment="Clock Type MSI" DefaultValue="RCC_OSCILLATORTYPE_MSI" Name="OscillatorTypeMSI" Type="list">
        <PossibleValue Comment="MSI" Value="RCC_OSCILLATORTYPE_MSI"/>
    </RefParameter>
	
    <!-- MSI used -->
    <RefParameter Visible="false" Comment="MSI Is Used" DefaultValue="1" Name="MSIUsed" Min="1" Type="integer">
        <Condition Expression="(Semaphore_input_Channel1TIM11 &amp; TIM11 &amp; SEM2RCC_MSI_REQUIRED_TIM11)|(SYSCLKSource=RCC_SYSCLKSOURCE_MSI)|((RCC_MCOSource=RCC_MCO1SOURCE_MSI)&amp; MCOConfig)" Diagnostic=""/>
    </RefParameter>
    <RefParameter Visible="false" Comment="MSI is Used" DefaultValue="0" Name="MSIUsed" Min="0" Type="integer"/>
	
    <!-- MSI state used to codgen -->
    <RefParameter Visible="false" Comment="Msi State" DefaultValue="RCC_MSI_ON" Name="MSIState" Type="list">
        <Condition Expression="MSIUsed=1" Diagnostic=""/>
    </RefParameter>
	
    <RefParameter Visible="false" Comment="MSI State" DefaultValue="RCC_MSI_OFF" Name="MSIState" Type="list">
    </RefParameter>
	
	
	
    <!--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>
    <!--params for code generation-->
    <!--params for IP codgen-->
    <RefParameter Visible="false" Comment="Periph Clock Selection" Name="PeriphClockSelectionARG" DefaultValue="+PeriphClockSelection" Type="list">
        <Condition Expression="(Semaphore_input_Channel1TIM11 &amp; TIM11 &amp; SEM2RCC_HSE_REQUIRED_TIM11)|RTCUsed_ForRCC|LCDUsed_ForRCC" 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_LCDVar" Type="list"/>
   

    <RefParameter Visible="false" Name="RCC_PERIPHCLK_RTCVar" Comment="RCC_PERIPHCLK_RTCVar" Type="list" DefaultValue="RCC_PERIPHCLK_RTC">
        <Condition Expression="(Semaphore_input_Channel1TIM11 &amp; TIM11 &amp; SEM2RCC_HSE_REQUIRED_TIM11)|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_LCDVar" Comment="RCC_PERIPHCLK_LCDVar" Type="list" DefaultValue="RCC_PERIPHCLK_LCD">
        <Condition Expression="LCDUsed_ForRCC" Diagnostic="LCD Activated"/>
        <PossibleValue Comment="Periphclk LCD" Value="RCC_PERIPHCLK_LCD"/>
    </RefParameter>
	
    <RefParameter Visible="false" Name="RCC_PERIPHCLK_LCDVar" Comment="RCC_PERIPHCLK_LCDVar" Type="list" DefaultValue=""/>
	
	
    <RefParameter Visible="false" Name="RTCClockSelectionARG" Comment="RTCClockSelectionARG" Type="list" DefaultValue="+RTCClockSelection">
        <Condition Expression="(Semaphore_input_Channel1TIM11 &amp; TIM11 &amp; SEM2RCC_HSE_REQUIRED_TIM11)|RTCUsed_ForRCC" Diagnostic="RTC Activated"/>
    </RefParameter>
    <RefParameter Visible="false" Name="RTCClockSelectionARG" Comment="RTCClockSelectionARG" Type="list" DefaultValue="null"/>
	
	
    <RefParameter Visible="false" Name="LCDClockSelectionARG" Comment="LCDClockSelectionARG" Type="list" DefaultValue="+RTCClockSelection">
        <Condition Expression="LCDUsed_ForRCC" Diagnostic="LCD Activated"/>
    </RefParameter>
    <RefParameter Visible="false" Name="LCDClockSelectionARG" Comment="LCDClockSelectionARG" Type="list" DefaultValue="null"/>
	
	
	
	
	
    <!--params for clock source-->
    <!--params for HSE-->
    <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"/>
	
	
    <!--params for LSE-->
    <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"/>
	
	
    <!--params for HSI-->
    <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"/>
	
	
	
	
    <!--params for LSI-->
    <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"/>
	
        
    <!--params for MSI-->
    <RefParameter Visible="false" Comment="MSI StateARG" DefaultValue="+MSIState" Name="MSIStateARG" Type="list">
        <Condition Diagnostic="MSI used" Expression="MSIUsed=1"/>
    </RefParameter>
	
    <RefParameter Visible="false" Comment="MSI StateARG" DefaultValue="null" Name="MSIStateARG" Type="list"/>
	
    <!--params for PLL-->
    <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="PLLDIVARG" DefaultValue="+PLLDIV" Name="PLLDIVARG" Type="list">
        <Condition Diagnostic="PLL used" Expression="PLLUsed=1"/>
    </RefParameter>
	
    <RefParameter Visible="false" Comment="PLLDIVARG" DefaultValue="null" Name="PLLDIVARG" Type="list"/>
	
	
    <!--params for MSI and HSI calibration-->
    <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 Visible="false" Comment="MSICalibrationValueARG" DefaultValue="+MSICalibrationValue" Name="MSICalibrationValueARG" Type="list">
        <Condition Diagnostic="MSI used" Expression="MSIUsed=1"/>
    </RefParameter>
	
    <RefParameter Visible="false" Comment="MSICalibrationValueARG" DefaultValue="null" Name="MSICalibrationValueARG" Type="list"/>
	
	
    <!--params for MSI clock range-->
    <RefParameter Visible="false" Comment="MSIClockRangeARG" DefaultValue="+MSIClockRange" Name="MSIClockRangeARG" Type="list">
        <Condition Diagnostic="MSI used" Expression="MSIUsed=1"/>
    </RefParameter>
	
    <RefParameter Visible="false" Comment="MSIClockRangeARG" DefaultValue="null" Name="MSIClockRangeARG" Type="list"/>
	
            
        
    
	
        
        
    <RefParameter Visible="false" Comment="Clock TypeARG" DefaultValue="+ClockType" Name="ClockTypeARG" Type="list">
        <Condition Expression="SysClkToConfigure|HCLKtoConfigure|PCLK1toConfigure|PCLK2toConfigure|FLASH_LATENCY1" 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"/>
	
	
    <!--MCO param used to codGen -->
    <RefParameter Visible="false" Comment="Clock Output" Name="RCC_MCO" DefaultValue="RCC_MCO1" Type="list">
        <Condition Diagnostic="" Expression="MCOConfig"/>
        <PossibleValue Comment="Clock Output" Value="RCC_MCO1"/>
    </RefParameter>
 
    <RefParameter Visible="false" Comment="Clock Output" Name="RCC_MCO" DefaultValue="null" Type="list"/>
    
  
    
  
	
	
	




	
    <RefMode Name="ClockTree">
        <ConfigForMode>RCC_ConfigVoltageScaling</ConfigForMode>
        <ConfigForMode>RCC_OSCConfig</ConfigForMode>        
        <ConfigForMode>RCC_ClockConfig</ConfigForMode>        
        <ConfigForMode>RCC_MCO1Config</ConfigForMode>        
        <ConfigForMode>RCC_CSS_Enable</ConfigForMode>
        <ConfigForMode>RCC_CSS_EnableLSE</ConfigForMode>    
        <!--ConfigForMode>SYSCFG_CLK_ENABLE</ConfigForMode-->   <!-- added as a workAround to enable the SYSCFG clock : it should be managed internally by the HAL-->
          <ConfigForMode>RCC_interrupt_Time_SYSTICK_Config</ConfigForMode>
		  <ConfigForMode>RCC_SYSTICK_CONFIG</ConfigForMode>
	   <Parameter Name="OscillatorType"/>
        <Parameter Name="LSIState"/>
        <Parameter Name="MSIClockRange"/>
        <Parameter Name="PLLState"/>
        <Parameter Name="PLLSource"/>
        <Parameter Name="PLLMUL"/>
        <Parameter Name="PLLDIV"/>
        <Parameter Name="SYSCLKSource"/>
        <Parameter Name="AHBCLKDivider"/>
        <Parameter Name="APB1CLKDivider"/>
        <Parameter Name="APB2CLKDivider"/>
        <Parameter Name="RCC_MCOSource"/>
        <Parameter Name="RCC_RTC_Clock_Source_FROM_HSE"/>
        <Parameter Name="TimPrescaler"/>
        <Parameter Name="EnbaleCSS"/>
        <Parameter Name="HSE_VALUE"/>
        <Parameter Name="HSI_VALUE"/>
        <Parameter Name="LSE_VALUE"/>
        <Parameter Name="LSI_VALUE"/>
        <Parameter Name="MSI_VALUE"/>
        <Parameter Name="SYSCLKFreq_VALUE"/>
        <Parameter Name="AHBFreq_Value"/>
        <Parameter Name="HCLKFreq_Value"/>
        <Parameter Name="RTCFreq_Value"/>
        <Parameter Name="RTCHSEDivFreq_Value"/>
        <Parameter Name="LCDFreq_Value"/>
        <Parameter Name="WatchDogFreq_Value"/>
        <Parameter Name="TimerFreq_Value"/>
        <Parameter Name="FCLKCortexFreq_Value"/>
        <Parameter Name="APB1Freq_Value"/>
        <Parameter Name="APB2Freq_Value"/>
        <Parameter Name="EnableCSSLSE"/>
        <Parameter Name="ADCFreq_Value"/>
        <Parameter Name="MCOPinFreq_Value"/>
        <Parameter Name="VCOInputFreq_Value"/>
        <Parameter Name="PLLSourceVirtual"/>
        <Parameter Name="VCOOutputFreq_Value"/>
        <Parameter Name="PLLCLKFreq_Value"/>
        <Parameter Name="EnableHSE"/>
        <Parameter Name="EnableHSERTCDevisor"/>
        <Parameter Name="EnableHSELCDDevisor"/>
        <Parameter Name="RTCEnable"/>
        <Parameter Name="EnableLSERTC"/>
        <Parameter Name="EnableLSE"/>
        <Parameter Name="IWDGEnable"/>
        <Parameter Name="LCDEnable"/>
        <Parameter Name="MCOEnable"/>
        <Parameter Name="USBEnable"/>
        <Parameter Name="ADCEnable"/>
        <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="OscillatorTypeHSI"/>
        <Parameter Name="HSIUsed"/>
        <Parameter Name="HSIState"/>
        <Parameter Name="PLLUsed"/>
        <Parameter Name="OscillatorTypeMSI"/>
        <Parameter Name="MSIUsed"/>
        <Parameter Name="MSIState"/>
    </RefMode>
	
    <RefMode Name="AdvancedSettings">
        <Parameter Name="VDD_VALUE"/>
        <Parameter Name="INSTRUCTION_CACHE_ENABLE"/>
        <Parameter Name="PREFETCH_ENABLE"/>
        <Parameter Name="DATA_CACHE_ENABLE"/>
        <Parameter Name="FLatency"/>
        <Parameter Name="HSICalibrationValue"/>
        <Parameter Name="MSICalibrationValue"/>
        <Parameter Name="PWR_Regulator_Voltage_Scale"/>
		<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>	
	
	
	
	
	
	
	
	

	
	
	
	
	
	
	