<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<IP DBVersion="V4.0" IPType="peripheral" Name="VREFBUF" Version="STM32WL_vrefbuf_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>VREFBUF</About>
	
	<RefParameter Comment="Instance" DefaultValue="VREFBUF" Name="Instance" Type="" Visible="false"/>
	
	<RefParameter Comment="High impedance mode" DefaultValue="SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE" Name="HighImpedanceMode" Type="list" Visible="false">
		 <Condition Expression="Sem_ExternalMode | Sem_HoldMode" Diagnostic="" />
		<PossibleValue Comment="Enable" Value="SYSCFG_VREFBUF_HIGH_IMPEDANCE_ENABLE" />
	</RefParameter>
	
	<RefParameter Comment="High impedance mode" DefaultValue="SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE" Name="HighImpedanceMode" Type="list" Visible="false">
		 <Condition Expression="Sem_VREFBUFOFF | Sem_InternalMode" Diagnostic="" />
		<PossibleValue Comment="Disable" Value="SYSCFG_VREFBUF_HIGH_IMPEDANCE_DISABLE" />
	</RefParameter>
	
   <RefParameter Comment="High impedance mode" DefaultValue="null" Name="HighImpedanceMode" Type="list" Visible="false"/>

	<RefParameter Comment="Internal Voltage reference scale" DefaultValue="SYSCFG_VREFBUF_VOLTAGE_SCALE0" Name="VoltageScaling" Type="list">
		<Condition Expression="Sem_InternalMode" Diagnostic="" />
		<PossibleValue Comment="SCALE 0: around 2.048 V" Value="SYSCFG_VREFBUF_VOLTAGE_SCALE0" />
		<PossibleValue Comment="SCALE 1: around 2.5 V" Value="SYSCFG_VREFBUF_VOLTAGE_SCALE1" />
               
	</RefParameter>
	
	<RefParameter Comment="Internal Voltage reference scale" DefaultValue="null" Name="VoltageScaling" Type="list" Visible="false" />
	
	<RefParameter Comment="Trimming Mode" DefaultValue="__NULL" Name="TrimmingMode" Type="list">
	    <Condition Expression="Sem_InternalMode" Diagnostic=""/>
		<PossibleValue Comment="Factory Trimming" Value="__NULL" />
		<PossibleValue Comment="User Trimming" Value="USER_TRIMMING" />
	</RefParameter>
	
	<RefParameter Comment="Trimming Mode" DefaultValue="null" Name="TrimmingMode" Type="list" Visible="false" />
	
	<RefParameter Comment="Trimming Value" DefaultValue="0" Max="63" Min="0" Name="TrimmingValue" Type="integer">
    	<Condition Expression="TrimmingMode = USER_TRIMMING &amp; Sem_InternalMode" Diagnostic=""/>
    </RefParameter>
    
    <RefParameter Comment="Trimming Value" DefaultValue="null" Max="63" Min="0" Name="TrimmingValue" Type="integer" Visible="false"/>
	
	<RefMode Name="VREFBUFOFFMode" Group="Voltage_Reference_Buffer_Settings">
		<ConfigForMode>VREFBUFMODEConfigDisable</ConfigForMode>
		<ConfigForMode>HighImpedanceModeConfig</ConfigForMode>
		<Parameter Name="HighImpedanceMode" />
	</RefMode>
	
	<RefMode Name="ExternalMode" Group="Voltage_Reference_Buffer_Settings">
		<ConfigForMode>VREFBUFMODEConfigDisable</ConfigForMode>
		<ConfigForMode>HighImpedanceModeConfig</ConfigForMode>
		<Parameter Name="HighImpedanceMode" />
	</RefMode>
        
        <RefMode Name="InternalMode" Group="Voltage_Reference_Buffer_Settings">
	   
    	<ConfigForMode>InternalVoltageReferenceScaleConfig</ConfigForMode>
         <ConfigForMode>TrimmingValueConfig</ConfigForMode>
		<ConfigForMode>VREFBUFMODEConfigEnable</ConfigForMode>
		<ConfigForMode>HighImpedanceModeConfig</ConfigForMode>	
		<Parameter Name="HighImpedanceMode" />
		<Parameter Name="TrimmingMode" />
		<Parameter Name="TrimmingValue" />
		<Parameter Name="VoltageScaling" />
	</RefMode>
	
	<RefMode Name="HoldMode" Group="Voltage_Reference_Buffer_Settings">
		<ConfigForMode>VREFBUFMODEConfigEnable</ConfigForMode>
		<ConfigForMode>HighImpedanceModeConfig</ConfigForMode>
		<Parameter Name="HighImpedanceMode" />
	</RefMode>
	
        	
        <ModeLogicOperator Name="OR">
                                          
		<Mode Name="VREFBUFMODE" UserName="VREFBUF Mode" ><!--RemoveCondition="!$modeexist_InternalMode"-->
			<ModeLogicOperator Name="XOR">
				<Mode Name="VREFBUFOFFMode" UserName="VREFBUF buffer OFF">
					<SignalLogicalOp Name="AND">
						<Signal Name="V_VREFBUF" />
					</SignalLogicalOp>
					<Semaphore>Sem_VREFBUFOFF</Semaphore>
				</Mode>
				<Mode Name="ExternalMode" UserName="External voltage reference">
					<SignalLogicalOp Name="AND">
						<Signal Name="V_VREFBUF" />
					</SignalLogicalOp>
					<Semaphore>Sem_ExternalMode</Semaphore>
				</Mode>				
				<Mode Name="InternalMode" UserName="Internal voltage reference">
					<SignalLogicalOp Name="AND">
						<Signal Name="$SingleInstanceVREFBUF_OUT" />
                                                <!--Signal Name="V_VREFBUF" /-->
					</SignalLogicalOp>
					<Semaphore>Sem_InternalMode</Semaphore>
				</Mode>				
				<Mode Name="HoldMode" UserName="Hold">
					<SignalLogicalOp Name="AND">
						<Signal Name="V_VREFBUF" />
					</SignalLogicalOp>
					<Semaphore>Sem_HoldMode</Semaphore>
				</Mode>					
			</ModeLogicOperator>
		</Mode>	
			
                </ModeLogicOperator>
                
 <!-- RefSignal for System -->
	
	
	<RefSignal IOMode="Analog" Name="V_VREFBUF" Virtual="true" />
	<RefSignal IOMode="System" Name="$SingleInstanceVREFBUF_OUT" />
        
        
        
</IP>
