<?xml version="1.0" encoding="UTF-8" standalone="no"?><IP xmlns="http://mcd.rou.st.com/modules.php?name=mcu" xmlns:ns0="http://www.w3.org/2001/XMLSchema-instance" DBVersion="V3.0" IPType="peripheral" Name="USART" Version="sci3_v1_0_Cube" ns0:schemaLocation="http://mcd.rou.st.com/modules.php?name=mcu ../../db/IP_Modes_V3_0.xsd">
 
    <About>USART: Universal Synchronous/Asynchronous Receiver Transmitter</About>
	
    <!-- Generic RefParameters for USART/UART/IrDA/SmartCard Modes -->
    <RefParameter Comment="Instance" DefaultValue="USART$Index" Name="Instance" Type="" Visible="false"/>
	
    <!-- Virtual Mode Parameter, to define RefParameter in function of RefMode -->
    <RefParameter Comment="" DefaultValue="VM_ASYNC" Group="Basic Parameters" Name="VirtualMode" Type="list" Visible="false">
        <PossibleValue Comment="" Value="VM_ASYNC"/>
        <PossibleValue Comment="" Value="VM_SYNC"/>
        <PossibleValue Comment="" Value="VM_IRDA"/>
        <PossibleValue Comment="" Value="VM_SMARTCARD"/>
        <PossibleValue Comment="" Value="VM_LIN"/>
    </RefParameter>
	
    <RefParameter Comment="" DefaultValue="VM_SYNC" Group="Basic Parameters" Name="VirtualClockMode" Type="list" Visible="false">
        <PossibleValue Comment="" Value="VM_SYNC"/>
        <PossibleValue Comment="" Value="VM_SMARTCARD"/>
    </RefParameter>
	
	
	
    <RefParameter Comment="Auto Baudrate Mode arg" DefaultValue="UART_ADVFEATURE_AUTOBAUDRATE_ENABLE" Group="Advanced Features" Name="AutoBaudRateEnable" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_UART_AutoBaudRate_Enable"/>
        <PossibleValue Comment="Enable" Value="UART_ADVFEATURE_AUTOBAUDRATE_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="Auto Baudrate Mode arg" DefaultValue="null" Group="Advanced Features" Name="AutoBaudRateEnable" Type="list" Visible="false"/>
    
	
    <RefParameter Comment="Auto Baudrate" DefaultValue="UART_ADVFEATURE_AUTOBAUDRATE_DISABLE" Group="Advanced Features" Name="AutoBaudRateEnableParam" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="($IpNumber=4)|($IpNumber=5)|($IpNumber=6)|($IpNumber=7)|($IpNumber=8)"/>
        <PossibleValue Comment="Disable" Value="UART_ADVFEATURE_AUTOBAUDRATE_DISABLE"/>
    </RefParameter>
    <RefParameter Comment="Auto Baudrate" DefaultValue="UART_ADVFEATURE_AUTOBAUDRATE_DISABLE" Group="Advanced Features" Name="AutoBaudRateEnableParam" Type="list">
        <PossibleValue Comment="Disable" Value="UART_ADVFEATURE_AUTOBAUDRATE_DISABLE"/>
        <PossibleValue Comment="Enable" Semaphore="$IpInstance_UART_AutoBaudRate_Enable" Value="UART_ADVFEATURE_AUTOBAUDRATE_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="UART_ADVFEATURE_AUTOBAUDRATE_INIT" Group="Advanced Features" Name="IsAutoBaudRateMode" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_UART_AutoBaudRate_Enable"/>
        <PossibleValue Comment="" Value="UART_ADVFEATURE_AUTOBAUDRATE_INIT"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="" Group="Advanced Features" Name="IsAutoBaudRateMode" Type="list" Visible="false"/>
	
	
	
    <!-- BaudRate Parameters ; based on Uart Instance (AHB Clock), and if IrDa Mode on a Small maximum. -->
    <!-- BaudRate Parameters ; based on Uart Instance (AHB Clock), and if IrDa Mode on a Small maximum. -->
    <RefParameter Comment="Baud Rate" DefaultValue="115200" Group="Basic Parameters" Max="115200" Min="115200" Name="BaudRate" Type="integer" Unit="Bits/s" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_UART_AutoBaudRate_Enable"/>
    </RefParameter>
    <RefParameter Comment="Baud Rate" DefaultValue="921600" Group="Basic Parameters" Max="10500000" Min="110" Name="BaudRate" Type="integer" Unit="Bits/s">
        <Condition Diagnostic="" Expression="TRACEREMB_$IpInstance"/>
    </RefParameter>
    <RefParameter Comment="Baud Rate" DefaultValue="115200" Group="Basic Parameters" Max="10500000" Min="110" Name="BaudRate" Type="integer" Unit="Bits/s" Visible="true"/>
   
	
	
	
	
    <!-- Word Length Parameters for Synchronous, IrDa, SmartCard and Others (based on Asynchronous). -->
	
    <RefParameter Comment="Word Length" DefaultValue="WORDLENGTH_8B" Group="Basic Parameters" Name="WordLength" Type="list">
        <Condition Diagnostic="" Expression="(VirtualMode = VM_SYNC)"/>
        <PossibleValue Comment="7 Bits (including Parity)" Semaphore="$IpInstance_Usart_7B" Value="WORDLENGTH_7B"/>
        <PossibleValue Comment="8 Bits (including Parity)" Value="WORDLENGTH_8B"/>
        <PossibleValue Comment="9 Bits (including Parity)" Value="WORDLENGTH_9B"/>
    </RefParameter>
	
    <RefParameter Comment="Word Length" DefaultValue="WORDLENGTH_8B" Group="Basic Parameters" Name="WordLength" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_IRDA"/>
        <PossibleValue Comment="7 Bits (including Parity)" Semaphore="$IpInstance_Irda_7B" Value="WORDLENGTH_7B"/>
        <PossibleValue Comment="8 Bits (including Parity)" Value="WORDLENGTH_8B"/>
        <PossibleValue Comment="9 Bits (including Parity)" Value="WORDLENGTH_9B"/>
    </RefParameter>
    <RefParameter Comment="Word Length" DefaultValue="WORDLENGTH_9B" Group="Basic Parameters" Name="WordLength" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_SMARTCARD"/>
        <PossibleValue Comment="9 Bits (including Parity)" Value="WORDLENGTH_9B"/>
    </RefParameter>
    <RefParameter Comment="Word Length" DefaultValue="WORDLENGTH_8B" Group="Basic Parameters" Name="WordLength" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_LIN"/>
        <PossibleValue Comment="8 Bits (including Parity)" Value="WORDLENGTH_8B"/>
    </RefParameter>
    <RefParameter Comment="Word Length" DefaultValue="WORDLENGTH_8B" Group="Basic Parameters" Name="WordLength" Type="list">
        <PossibleValue Comment="7 Bits (including Parity)" Semaphore="$IpInstance_Uart_7B" Value="WORDLENGTH_7B"/>
        <PossibleValue Comment="8 Bits (including Parity)" Value="WORDLENGTH_8B"/>
        <PossibleValue Comment="9 Bits (including Parity)" Value="WORDLENGTH_9B"/>
    </RefParameter>
	
    <RefParameter Comment="Word Length" DefaultValue="USART_WORDLENGTH_7B" Group="Basic Parameters" Name="UsartWordLength" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_SYNC &amp; WordLength=WORDLENGTH_7B"/>
        <PossibleValue Comment="7 Bits (including Parity)" Value="USART_WORDLENGTH_7B"/>
    </RefParameter>
    <RefParameter Comment="Word Length" DefaultValue="USART_WORDLENGTH_8B" Group="Basic Parameters" Name="UsartWordLength" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_SYNC &amp; WordLength=WORDLENGTH_8B"/>
        <PossibleValue Comment="8 Bits (including Parity)" Value="USART_WORDLENGTH_8B"/>
    </RefParameter>
    <RefParameter Comment="Word Length" DefaultValue="USART_WORDLENGTH_9B" Group="Basic Parameters" Name="UsartWordLength" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_SYNC &amp; WordLength=WORDLENGTH_9B"/>
        <PossibleValue Comment="9 Bits (including Parity)" Value="USART_WORDLENGTH_9B"/>
    </RefParameter>
    <RefParameter Comment="Word Length" DefaultValue="IRDA_WORDLENGTH_7B" Group="Basic Parameters" Name="IrdaWordLength" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_IRDA &amp; WordLength=WORDLENGTH_7B"/>
        <PossibleValue Comment="7 Bits (including Parity)" Value="IRDA_WORDLENGTH_7B"/>
    </RefParameter>
    <RefParameter Comment="Word Length" DefaultValue="IRDA_WORDLENGTH_8B" Group="Basic Parameters" Name="IrdaWordLength" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_IRDA &amp; WordLength=WORDLENGTH_8B"/>
        <PossibleValue Comment="8 Bits (including Parity)" Value="IRDA_WORDLENGTH_8B"/>
    </RefParameter>
    <RefParameter Comment="Word Length" DefaultValue="IRDA_WORDLENGTH_9B" Group="Basic Parameters" Name="IrdaWordLength" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_IRDA &amp; WordLength=WORDLENGTH_9B"/>
        <PossibleValue Comment="9 Bits (including Parity)" Value="IRDA_WORDLENGTH_9B"/>
    </RefParameter>
    <RefParameter Comment="Word Length" DefaultValue="SMARTCARD_WORDLENGTH_9B" Group="Basic Parameters" Name="SmartCardWordLength" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_SMARTCARD &amp; WordLength=WORDLENGTH_9B"/>
        <PossibleValue Comment="9 Bits (including Parity)" Value="SMARTCARD_WORDLENGTH_9B"/>
    </RefParameter>
    <RefParameter Comment="Word Length" DefaultValue="UART_WORDLENGTH_7B" Group="Basic Parameters" Name="UartWordLength" Type="list">
        <Condition Diagnostic="" Expression="WordLength=WORDLENGTH_7B"/>
        <PossibleValue Comment="7 Bits (including Parity)" Value="UART_WORDLENGTH_7B"/>
    </RefParameter>
    <RefParameter Comment="Word Length" DefaultValue="UART_WORDLENGTH_8B" Group="Basic Parameters" Name="UartWordLength" Type="list">
        <Condition Diagnostic="" Expression="WordLength=WORDLENGTH_8B"/>
        <PossibleValue Comment="8 Bits (including Parity)" Value="UART_WORDLENGTH_8B"/>
    </RefParameter>
    <RefParameter Comment="Word Length" DefaultValue="UART_WORDLENGTH_9B" Group="Basic Parameters" Name="UartWordLength" Type="list">
        <Condition Diagnostic="" Expression="WordLength=WORDLENGTH_9B"/>
        <PossibleValue Comment="9 Bits (including Parity)" Value="UART_WORDLENGTH_9B"/>
    </RefParameter>
    <!-- Stop Bits Parameters for Synchronous, SmartCard and Others (based on Asynchronous). N.B. IrDa do not have Stop Bits -->
    <RefParameter Comment="Stop Bits" DefaultValue="STOPBITS_1" Group="Basic Parameters" Name="StopBits" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_SYNC"/>
        <PossibleValue Comment="1" Value="STOPBITS_1"/>
        <PossibleValue Comment="2" Value="STOPBITS_2"/>
        <PossibleValue Comment="1.5" Value="STOPBITS_1_5"/>
    </RefParameter>
    <RefParameter Comment="Stop Bits" DefaultValue="STOPBITS_1" Group="Basic Parameters" Name="StopBits" Type="list">
        <Condition Diagnostic="" Expression="$IpInstance_Asynchronous &amp; (STM32F0 | STM32F3 | STM32L0 | STM32L4)"/>
        <PossibleValue Comment="1" Value="STOPBITS_1"/>
        <PossibleValue Comment="2" Value="STOPBITS_2"/>
        <PossibleValue Comment="1.5" Value="STOPBITS_1_5"/>
    </RefParameter>
    <RefParameter Comment="Stop Bits" DefaultValue="STOPBITS_1_5" Group="Basic Parameters" Name="StopBits" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_SMARTCARD"/>
        <PossibleValue Comment="1.5" Value="STOPBITS_1_5"/>
        <PossibleValue Comment="0.5" Value="STOPBITS_0_5"/>
    </RefParameter>
    <RefParameter Comment="Stop Bits" DefaultValue="STOPBITS_1" Group="Basic Parameters" Name="StopBits" Type="list">
        <PossibleValue Comment="1" Value="STOPBITS_1"/>
        <PossibleValue Comment="2" Value="STOPBITS_2"/>
    </RefParameter>

    <RefParameter Comment="Stop Bits" DefaultValue="USART_STOPBITS_2" Group="Basic Parameters" Name="UsartStopBits" Type="list">
        <Condition Diagnostic="" Expression="(VirtualMode = VM_SYNC) &amp; StopBits=STOPBITS_2"/>
        <PossibleValue Comment="2" Value="USART_STOPBITS_2"/>
    </RefParameter>
    <RefParameter Comment="Stop Bits" DefaultValue="USART_STOPBITS_1" Group="Basic Parameters" Name="UsartStopBits" Type="list">
        <Condition Diagnostic="" Expression="(VirtualMode = VM_SYNC) &amp; StopBits=STOPBITS_1"/>
        <PossibleValue Comment="1" Value="USART_STOPBITS_1"/>
    </RefParameter>
    <RefParameter Comment="Stop Bits" DefaultValue="USART_STOPBITS_1_5" Group="Basic Parameters" Name="UsartStopBits" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_SYNC &amp; StopBits=STOPBITS_1_5" />
        <PossibleValue Comment="1.5" Value="USART_STOPBITS_1_5" />
    </RefParameter>
    <RefParameter Comment="Stop Bits" DefaultValue="UART_STOPBITS_1" Group="Basic Parameters" Name="UartStopBits" Type="list">
        <Condition Diagnostic="" Expression="$IpInstance_Asynchronous &amp; StopBits=STOPBITS_1"/>	
        <PossibleValue Comment="1" Value="UART_STOPBITS_1"/>
    </RefParameter>
    <RefParameter Comment="Stop Bits" DefaultValue="UART_STOPBITS_2" Group="Basic Parameters" Name="UartStopBits" Type="list">
        <Condition Diagnostic="" Expression="$IpInstance_Asynchronous &amp; StopBits=STOPBITS_2"/>
        <PossibleValue Comment="2" Value="UART_STOPBITS_2"/>
    </RefParameter>
    <RefParameter Comment="Stop Bits" DefaultValue="UART_STOPBITS_1_5" Group="Basic Parameters" Name="UartStopBits" Type="list">
        <Condition Diagnostic="" Expression="$IpInstance_Asynchronous &amp; StopBits=STOPBITS_1_5" />
        <PossibleValue Comment="1.5" Value="UART_STOPBITS_1_5" />
    </RefParameter>
    <RefParameter Comment="Stop Bits" DefaultValue="SMARTCARD_STOPBITS_1_5" Group="Basic Parameters" Name="SmartCardStopBits" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_SMARTCARD &amp; StopBits=STOPBITS_1_5" />
        <PossibleValue Comment="1.5" Value="SMARTCARD_STOPBITS_1_5" />
    </RefParameter>
    <RefParameter Comment="Stop Bits" DefaultValue="SMARTCARD_STOPBITS_0_5" Group="Basic Parameters" Name="SmartCardStopBits" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_SMARTCARD &amp; StopBits=STOPBITS_0_5" />
        <PossibleValue Comment="0.5" Value="SMARTCARD_STOPBITS_0_5" />
    </RefParameter>
    <RefParameter Comment="Stop Bits" DefaultValue="UART_STOPBITS_1" Group="Basic Parameters" Name="UartStopBits" Type="list">
        <Condition Diagnostic="" Expression="StopBits=STOPBITS_1"/>
        <PossibleValue Comment="1" Value="UART_STOPBITS_1"/>
    </RefParameter>
    <RefParameter Comment="Stop Bits" DefaultValue="UART_STOPBITS_2" Group="Basic Parameters" Name="UartStopBits" Type="list">
        <Condition Diagnostic="" Expression="StopBits=STOPBITS_2"/>
        <PossibleValue Comment="2" Value="UART_STOPBITS_2"/>
    </RefParameter>

    <!-- Parity Parameters for Synchronous, IrDa, SmartCard and Others (based on Asynchronous). -->
    <RefParameter Comment="Parity" DefaultValue="PARITY_EVEN" Group="Basic Parameters" Name="Parity" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_SMARTCARD"/>
        <PossibleValue Comment="Even" Semaphore="$IpInstance_PARITY_EVEN"  Value="PARITY_EVEN"/>
        <PossibleValue Comment="Odd" Semaphore="$IpInstance_PARITY_ODD" Value="PARITY_ODD"/>
    </RefParameter>
    <RefParameter Comment="Parity" DefaultValue="PARITY_NONE" Group="Basic Parameters" Name="Parity" Type="list">
        <PossibleValue Comment="None" Semaphore="$IpInstance_PARITY_NONE" Value="PARITY_NONE"/>
        <PossibleValue Comment="Even" Semaphore="$IpInstance_PARITY_EVEN" Value="PARITY_EVEN"/>
        <PossibleValue Comment="Odd" Semaphore="$IpInstance_PARITY_ODD" Value="PARITY_ODD"/>
    </RefParameter>

    <RefParameter Comment="Parity" DefaultValue="USART_PARITY_NONE" Group="Basic Parameters" Name="UsartParity" Type="list">
        <Condition Diagnostic="" Expression="$IpInstance_PARITY_NONE &amp; VirtualMode=VM_SYNC"/>
    </RefParameter>
    <RefParameter Comment="Parity" DefaultValue="USART_PARITY_ODD" Group="Basic Parameters" Name="UsartParity" Type="list">
        <Condition Diagnostic="" Expression="$IpInstance_PARITY_ODD &amp; VirtualMode=VM_SYNC"/>
    </RefParameter>
    <RefParameter Comment="Parity" DefaultValue="USART_PARITY_EVEN" Group="Basic Parameters" Name="UsartParity" Type="list">
        <Condition Diagnostic="" Expression="$IpInstance_PARITY_EVEN &amp; VirtualMode=VM_SYNC"/>
    </RefParameter>
    <RefParameter Comment="Parity" DefaultValue="IRDA_PARITY_NONE" Group="Basic Parameters" Name="IrdaParity" Type="list">
        <Condition Diagnostic="" Expression="$IpInstance_PARITY_NONE &amp; VirtualMode=VM_IRDA"/>
    </RefParameter>
    <RefParameter Comment="Parity" DefaultValue="IRDA_PARITY_EVEN" Group="Basic Parameters" Name="IrdaParity" Type="list">
        <Condition Diagnostic="" Expression="$IpInstance_PARITY_EVEN &amp; VirtualMode=VM_IRDA"/>
    </RefParameter>
    <RefParameter Comment="Parity" DefaultValue="IRDA_PARITY_ODD" Group="Basic Parameters" Name="IrdaParity" Type="list">
        <Condition Diagnostic="" Expression="$IpInstance_PARITY_ODD &amp; VirtualMode=VM_IRDA"/>
    </RefParameter>
    <RefParameter Comment="Parity" DefaultValue="SMARTCARD_PARITY_EVEN" Group="Basic Parameters" Name="SmartCardParity" Type="list">
        <Condition Diagnostic="" Expression="(Parity = PARITY_EVEN) &amp; VirtualMode = VM_SMARTCARD"/>
        <PossibleValue Comment="Even" Value="SMARTCARD_PARITY_EVEN"/>
    </RefParameter>
    <RefParameter Comment="Parity" DefaultValue="SMARTCARD_PARITY_ODD" Group="Basic Parameters" Name="SmartCardParity" Type="list">
        <Condition Diagnostic="" Expression="(Parity = PARITY_ODD) &amp; VirtualMode = VM_SMARTCARD"/>
        <PossibleValue Comment="Odd" Value="SMARTCARD_PARITY_ODD"/>
    </RefParameter>
    <RefParameter Comment="Parity" DefaultValue="UART_PARITY_NONE" Group="Basic Parameters" Name="UartParity" Type="list">
        <Condition Diagnostic="" Expression="$IpInstance_PARITY_NONE"/>
    </RefParameter>
    <RefParameter Comment="Parity" DefaultValue="UART_PARITY_EVEN" Group="Basic Parameters" Name="UartParity" Type="list">
        <Condition Diagnostic="" Expression="$IpInstance_PARITY_EVEN"/>
    </RefParameter>
    <RefParameter Comment="Parity" DefaultValue="UART_PARITY_ODD" Group="Basic Parameters" Name="UartParity" Type="list">
        <Condition Diagnostic="" Expression="$IpInstance_PARITY_ODD"/>
    </RefParameter>
	
	
    <!-- DataDirection Parameters for Synchronous, IrDa, SmartCard and Others (based on Asynchronous). -->
    <RefParameter Comment="Data Direction" DefaultValue="MODE_TX_RX" Group="Advanced Parameters" Name="Mode" Type="list">
        <PossibleValue Comment="Receive and Transmit" Semaphore="S_$IpInstance_TX_RX" Value="MODE_TX_RX"/>
        <PossibleValue Comment="Receive Only" Semaphore="S_$IpInstance_RX" Value="MODE_RX"/>
        <PossibleValue Comment="Transmit Only" Semaphore="S_$IpInstance_TX" Value="MODE_TX"/>
    </RefParameter>

    <RefParameter Comment="Data Direction" DefaultValue="USART_MODE_TX_RX" Group="Advanced Parameters" Name="UsartMode" Type="list">
        <Condition Diagnostic="" Expression="S_$IpInstance_TX_RX &amp; VirtualMode=VM_SYNC"/>
    </RefParameter>
    <RefParameter Comment="Data Direction" DefaultValue="USART_MODE_TX" Group="Advanced Parameters" Name="UsartMode" Type="list">
        <Condition Diagnostic="" Expression="S_$IpInstance_TX &amp; VirtualMode=VM_SYNC"/>
    </RefParameter>
    <RefParameter Comment="Data Direction" DefaultValue="USART_MODE_RX" Group="Advanced Parameters" Name="UsartMode" Type="list">
        <Condition Diagnostic="" Expression="S_$IpInstance_RX &amp; VirtualMode=VM_SYNC"/>
    </RefParameter>

    <RefParameter Comment="Data Direction" DefaultValue="SMARTCARD_MODE_TX_RX" Group="Advanced Parameters" Name="SmartCardMode" Type="list">
        <Condition Diagnostic="" Expression="S_$IpInstance_TX_RX &amp; VirtualMode=VM_SMARTCARD"/>
    </RefParameter>
    <RefParameter Comment="Data Direction" DefaultValue="SMARTCARD_MODE_TX" Group="Advanced Parameters" Name="SmartCardMode" Type="list">
        <Condition Diagnostic="" Expression="S_$IpInstance_TX &amp; VirtualMode=VM_SMARTCARD"/>
    </RefParameter>
    <RefParameter Comment="Data Direction" DefaultValue="SMARTCARD_MODE_RX" Group="Advanced Parameters" Name="SmartCardMode" Type="list">
        <Condition Diagnostic="" Expression="S_$IpInstance_RX &amp; VirtualMode=VM_SMARTCARD"/>
    </RefParameter>

    <RefParameter Comment="Data Direction" DefaultValue="IRDA_MODE_TX_RX" Group="Advanced Parameters" Name="IrdaMode" Type="list">
        <Condition Diagnostic="" Expression="S_$IpInstance_TX_RX &amp; VirtualMode=VM_IRDA"/>
    </RefParameter>
    <RefParameter Comment="Data Direction" DefaultValue="IRDA_MODE_TX" Group="Advanced Parameters" Name="IrdaMode" Type="list">
        <Condition Diagnostic="" Expression="S_$IpInstance_TX &amp; VirtualMode=VM_IRDA"/>
    </RefParameter>
    <RefParameter Comment="Data Direction" DefaultValue="IRDA_MODE_RX" Group="Advanced Parameters" Name="IrdaMode" Type="list">
        <Condition Diagnostic="" Expression="S_$IpInstance_RX &amp; VirtualMode=VM_IRDA"/>
    </RefParameter>

    <RefParameter Comment="Data Direction" DefaultValue="UART_MODE_TX_RX" Group="Advanced Parameters" Name="UartMode" Type="list">
        <Condition Diagnostic="" Expression="S_$IpInstance_TX_RX"/>
    </RefParameter>
    <RefParameter Comment="Data Direction" DefaultValue="UART_MODE_TX" Group="Advanced Parameters" Name="UartMode" Type="list">
        <Condition Diagnostic="" Expression="S_$IpInstance_TX"/>
    </RefParameter>
    <RefParameter Comment="Data Direction" DefaultValue="UART_MODE_RX" Group="Advanced Parameters" Name="UartMode" Type="list">
        <Condition Diagnostic="" Expression="S_$IpInstance_RX"/>
    </RefParameter>
	
    <!-- Specifics RefParameters for UART Mode only -->
    <RefParameter Comment="Hardware Flow Control" DefaultValue="UART_HWCONTROL_RTS" Group="Basic Parameters" Name="HwFlowCtl" Type="list" Visible="false">	
        <Condition Diagnostic="" Expression="$IpInstance_Request"/>
        <PossibleValue Comment="RTS Only" Value="UART_HWCONTROL_RTS"/>
    </RefParameter>
    <RefParameter Comment="Hardware Flow Control" DefaultValue="UART_HWCONTROL_CTS" Group="Basic Parameters" Name="HwFlowCtl" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_Clear"/>
        <PossibleValue Comment="CTS Only" Value="UART_HWCONTROL_CTS"/>
    </RefParameter>
    <RefParameter Comment="Hardware Flow Control" DefaultValue="UART_HWCONTROL_RTS_CTS" Group="Basic Parameters" Name="HwFlowCtl" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_CTS_RTS"/>
        <PossibleValue Comment="RTS/CTS" Value="UART_HWCONTROL_RTS_CTS"/>
    </RefParameter>
    <RefParameter Comment="Hardware Flow Control" DefaultValue="UART_HWCONTROL_NONE" Group="Basic Parameters" Name="HwFlowCtl" Type="list" Visible="false">
        <PossibleValue Comment="None" Value="UART_HWCONTROL_NONE"/>
    </RefParameter>
	
    <RefParameter Comment="Over Sampling" DefaultValue="UART_OVERSAMPLING_16" Group="Advanced Parameters" Name="OverSampling" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_ASYNC"/>
        <PossibleValue Comment="16 Samples" Value="UART_OVERSAMPLING_16"/>
        <PossibleValue Comment="8 Samples" Value="UART_OVERSAMPLING_8"/>
    </RefParameter>
    <RefParameter Comment="Over Sampling" DefaultValue="UART_OVERSAMPLING_16" Group="Advanced Parameters" Name="OverSampling" Type="uniqueElementList">
        <Condition Diagnostic="" Expression="VirtualMode = VM_LIN"/>
        <PossibleValue Comment="16 Samples" Value="UART_OVERSAMPLING_16"/>
    </RefParameter>
    <RefParameter Comment="Over Sampling" DefaultValue="null" Group="Advanced Parameters" Name="OverSampling" Type="list" Visible="false"/>
	
    <!-- Specifics RefParameters for USART/SmartCard Clock Mode -->
    <RefParameter Comment="Clock Polarity" DefaultValue="SMARTCARD_POLARITY_LOW" Group="Clock Parameters" Name="CLKPolarity" Type="list">
        <Condition Diagnostic="" Expression="VirtualClockMode = VM_SMARTCARD"/>
        <PossibleValue Comment="Low" Value="SMARTCARD_POLARITY_LOW"/>
        <PossibleValue Comment="High" Value="SMARTCARD_POLARITY_HIGH"/>
    </RefParameter>
    <RefParameter Comment="Clock Polarity" DefaultValue="USART_POLARITY_LOW" Group="Clock Parameters" Name="CLKPolarity" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_SYNC"/>
        <PossibleValue Comment="Low" Value="USART_POLARITY_LOW"/>
        <PossibleValue Comment="High" Value="USART_POLARITY_HIGH"/>
    </RefParameter>
    <RefParameter Comment="Clock Polarity" DefaultValue="null" Group="Clock Parameters" Name="CLKPolarity" Type="integer" Visible="false"/>
	
    <RefParameter Comment="Clock Phase" DefaultValue="SMARTCARD_PHASE_1EDGE" Group="Clock Parameters" Name="CLKPhase" Type="list">
        <Condition Diagnostic="" Expression="VirtualClockMode = VM_SMARTCARD"/>
        <PossibleValue Comment="One Edge" Value="SMARTCARD_PHASE_1EDGE"/>
        <PossibleValue Comment="Two Edge" Value="SMARTCARD_PHASE_2EDGE"/>
    </RefParameter>
    <RefParameter Comment="Clock Phase" DefaultValue="USART_PHASE_1EDGE" Group="Clock Parameters" Name="CLKPhase" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_SYNC"/>
        <PossibleValue Comment="One Edge" Value="USART_PHASE_1EDGE"/>
        <PossibleValue Comment="Two Edge" Value="USART_PHASE_2EDGE"/>
    </RefParameter>
    <RefParameter Comment="Clock Phase" DefaultValue="null" Group="Clock Parameters" Name="CLKPhase" Type="integer" Visible="false"/>
	
    <RefParameter Comment="Clock Last Bit" DefaultValue="SMARTCARD_LASTBIT_DISABLE" Group="Clock Parameters" Name="CLKLastBit" Type="list">
        <Condition Diagnostic="" Expression="VirtualClockMode = VM_SMARTCARD &amp; STM32F0 "/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_LASTBIT_DISABLE"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_LASTBIT_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="Clock Last Bit" DefaultValue="SMARTCARD_LASTBIT_DISABLE" Group="Clock Parameters" Name="CLKLastBit" Type="list">
        <Condition Diagnostic="" Expression="VirtualClockMode = VM_SMARTCARD"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_LASTBIT_DISABLE"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_LASTBIT_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="Clock Last Bit" DefaultValue="USART_LASTBIT_DISABLE" Group="Clock Parameters" Name="CLKLastBit" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_SYNC"/>
        <PossibleValue Comment="Disable" Value="USART_LASTBIT_DISABLE"/>
        <PossibleValue Comment="Enable" Value="USART_LASTBIT_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="Clock Last Bit" DefaultValue="null" Group="Clock Parameters" Name="CLKLastBit" Type="integer" Visible="false"/>
	
    <!-- Specifics RefParameters for IrDa Mode -->
    <RefParameter Comment="IrDa Mode" DefaultValue="IRDA_POWERMODE_NORMAL" Group="Advanced Parameters" Name="PowerMode" Type="list">
        <PossibleValue Comment="Low Power" Value="IRDA_POWERMODE_LOWPOWER"/>
        <PossibleValue Comment="Normal Power" Value="IRDA_POWERMODE_NORMAL"/>
    </RefParameter>
	
    <!-- Prescaler Parameters for IrDa/SmartCard Clock Mode -->
    <RefParameter Comment="Prescaler" DefaultValue="10" Group="Clock Parameters" Max="31" Min="1" Name="Prescaler" Type="integer">
        <Condition Diagnostic="" Expression="VirtualMode = VM_SMARTCARD"/>
        <Description>The value given in the register is multiplied by 2 to give the division factor of the source clock frequency.</Description>
    </RefParameter>
    <RefParameter Comment="Prescaler" DefaultValue="10" Group="Advanced Parameters" Max="255" Min="1" Name="Prescaler" Type="integer"/>
	
    <!-- Calculate Speed, based on Prescaler Value on SmartCard Mode -->
    <RefParameter Comment="SmartCard Clock Frequency" DefaultValue="5000000" Group="Clock Parameters" Name="CalculateSpeed" Type="string"/>
	
    <!-- Specifics RefParameters for SmartCard Mode Only -->
    <RefParameter Comment="NACK If Parity Error" DefaultValue="SMARTCARD_NACK_ENABLE" Group="Advanced Parameters" Name="NACKState" Type="list">
        <PossibleValue Comment="Enable" Value="SMARTCARD_NACK_ENABLE"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_NACK_DISABLE"/>
    </RefParameter>
    <RefParameter Comment="Guard Time" DefaultValue="0" Group="Advanced Parameters" Max="255" Min="0" Name="GuardTime" Type="integer"/> 		
    <RefParameter Comment="Receiver TimeOut State" DefaultValue="SMARTCARD_TIMEOUT_DISABLE" Group="Advanced Parameters" Name="TimeOutEnable" Type="list">
        <PossibleValue Comment="Enable" Value="SMARTCARD_TIMEOUT_ENABLE"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_TIMEOUT_DISABLE"/>
    </RefParameter>
	
    <RefParameter Comment="Receiver TimeOut Value" DefaultValue="0" Group="Advanced Parameters" Max="16777215" Min="0" Name="TimeOutValue" Type="integer">
        <Condition Diagnostic="" Expression="TimeOutEnable = SMARTCARD_TIMEOUT_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="Receiver TimeOut Value" DefaultValue="null" Group="Advanced Parameters" Name="TimeOutValue" Type="integer" Visible="false"/>
	
    <RefParameter Comment="SmartCard Block Length" DefaultValue="0" Group="Advanced Parameters" Max="255" Min="0" Name="BlockLength" Type="integer"/>
    <RefParameter Comment="Number of retries in receive and transmit mode" DefaultValue="0" Group="Advanced Parameters" Max="7" Min="0" Name="AutoRetryCount" Type="integer"/>

    <!-- Specifics RefParameters for MultiProcessor Only. WakeUp Method -->
    <RefParameter Comment="Wake-Up Method" DefaultValue="UART_WAKEUPMETHOD_IDLELINE" Group="Advanced Parameters" Name="WakeUpMethod" Type="list">
        <PossibleValue Comment="Idle Line" Value="UART_WAKEUPMETHOD_IDLELINE"/>
        <PossibleValue Comment="Address Mark" Value="UART_WAKEUPMETHOD_ADDRESSMARK"/>
    </RefParameter>
	
    <!-- Address for MultiProcessor --> 
    <RefParameter Comment="Wake-Up Address" DefaultValue="0" Group="Advanced Parameters" Max="63" Min="0" Name="Address" Type="integer">
        <Condition Diagnostic="" Expression="AddressLength = UART_ADDRESS_DETECT_7B &amp; WordLength=WORDLENGTH_7B"/>
    </RefParameter>
    <RefParameter Comment="Wake-Up Address" DefaultValue="0" Group="Advanced Parameters" Max="127" Min="0" Name="Address" Type="integer">
        <Condition Diagnostic="" Expression="AddressLength = UART_ADDRESS_DETECT_7B &amp; WordLength=WORDLENGTH_8B"/>
    </RefParameter>
    <RefParameter Comment="Wake-Up Address" DefaultValue="0" Group="Advanced Parameters" Max="255" Min="0" Name="Address" Type="integer">
        <Condition Diagnostic="" Expression="AddressLength = UART_ADDRESS_DETECT_7B &amp; WordLength=WORDLENGTH_9B"/>
    </RefParameter>
    <RefParameter Comment="Wake-Up Address" DefaultValue="0" Group="Advanced Parameters" Max="15" Min="0" Name="Address" Type="integer">
        <Condition Diagnostic="" Expression="WakeUpMethod = UART_WAKEUPMETHOD_ADDRESSMARK"/>
    </RefParameter>
    <RefParameter Comment="Wake-Up Address" DefaultValue="0" Group="Advanced Parameters" Max="0" Min="0" Name="Address" Type="integer" Visible="false"/>
	
    <!-- Specifics RefParameters for MultiProcessor Only. Adress length -->
    <RefParameter Comment="Wake-Up Method" DefaultValue="UART_ADDRESS_DETECT_4B" Group="Advanced Parameters" Name="AddressLength" Type="list">
        <Condition Diagnostic="" Expression="WakeUpMethod=UART_WAKEUPMETHOD_ADDRESSMARK"/>
        <PossibleValue Comment="4 Bits" Value="UART_ADDRESS_DETECT_4B"/>
        <PossibleValue Comment="7 Bits" Value="UART_ADDRESS_DETECT_7B"/>
    </RefParameter>
    <RefParameter Comment="Wake-Up Method" DefaultValue="null" Group="Advanced Parameters" Name="AddressLength" Type="list" Visible="false"/>
		
	
    <!--Specifics RefParameters for LIN. Line BreakLength -->
    <RefParameter Comment="Break Detect Length" DefaultValue="UART_LINBREAKDETECTLENGTH_10B" Group="Advanced Parameters" Name="BreakDetectLength" Type="list">
        <PossibleValue Comment="10 Bits" Value="UART_LINBREAKDETECTLENGTH_10B"/>
        <PossibleValue Comment="11 Bits" Value="UART_LINBREAKDETECTLENGTH_11B"/>
    </RefParameter>
	
    <!--Specifics RefParameters for RS485 -->
    <RefParameter Comment="Polarity" DefaultValue="UART_DE_POLARITY_HIGH" Group="Advanced Parameters" Name="UART_DEPolarity" Type="list">
        <PossibleValue Comment="High" Value="UART_DE_POLARITY_HIGH"/>
        <PossibleValue Comment="Low" Value="UART_DE_POLARITY_LOW"/>
    </RefParameter>
    <RefParameter Comment="Assertion Time" DefaultValue="0" Group="Advanced Parameters" Max="31" Min="0" Name="UART_DEAssertionTime" Type="integer" Unit="Sample Time Unit"/>
    <RefParameter Comment="Deassertion Time" DefaultValue="0" Group="Advanced Parameters" Max="31" Min="0" Name="UART_DEDeassertionTime" Type="integer" Unit="Sample Time Unit"/>

    
    <!--Specifics RefParameters for UART and SMARTCARD -->
    <RefParameter Comment="Single Sample" DefaultValue="SMARTCARD_ONE_BIT_SAMPLE_DISABLE" Group="Advanced Parameters" Name="OneBitSampling" Type="list">
        <Condition Diagnostic="" Expression="VirtualMode = VM_SMARTCARD"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_ONE_BIT_SAMPLE_DISABLE"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_ONE_BIT_SAMPLE_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="Single Sample" DefaultValue="UART_ONE_BIT_SAMPLE_DISABLE" Group="Advanced Parameters" Name="OneBitSampling" Type="list">
        <PossibleValue Comment="Disable" Value="UART_ONE_BIT_SAMPLE_DISABLE"/>
        <PossibleValue Comment="Enable" Value="UART_ONE_BIT_SAMPLE_ENABLE"/>
    </RefParameter>
	
    <!-- Advanceds features -->
    <RefParameter Comment="SMARTCARD Advanced Features" DefaultValue="SMARTCARD_ADVFEATURE_NO_INIT" Group="Advanced Features" Name="AdvFeatureInit" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="!((SmartCardTxPinLevelInvertParam = SMARTCARD_ADVFEATURE_TXINV_ENABLE)|(SmartCardRxPinLevelInvertParam = SMARTCARD_ADVFEATURE_RXINV_ENABLE)|(SmartCardDataInvertParam = SMARTCARD_ADVFEATURE_DATAINV_ENABLE)|(SmartCardSwapParam = SMARTCARD_ADVFEATURE_SWAP_ENABLE)|(SmartCardOverrunDisableParam = SMARTCARD_ADVFEATURE_OVERRUN_DISABLE)|(SmartCardDMADisableonRxErrorParam = SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR)|(SmartCardMSBFirstParam = SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE))&amp; (VirtualMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="" Semaphore="$IpInstance_ADVFEATURE_NO_INIT" Value="SMARTCARD_ADVFEATURE_NO_INIT"/>
    </RefParameter>
    <RefParameter Comment="UART Advanced Features" DefaultValue="UART_ADVFEATURE_NO_INIT" Group="Advanced Features" Name="AdvFeatureInit" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="!($IpInstance_TxPinLevelInvertENABLE|$IpInstance_RxPinLevelInvertENABLE|$IpInstance_DataInvertENABLE|$IpInstance_SwapENABLE|$IpInstance_OverrunDisableENABLE|$IpInstance_DMADisableonRxErrorENABLE|$IpInstance_MSBFirstENABLE|$IpInstance_UART_AutoBaudRate_Enable|(VirtualMode = VM_SMARTCARD))"/>
        <PossibleValue Comment="" Semaphore="$IpInstance_ADVFEATURE_NO_INIT" Value="UART_ADVFEATURE_NO_INIT"/>
    </RefParameter>

    <RefParameter Comment="UART Advanced Features" DefaultValue="+IsClockTxPinLevelInvert+|IsClockRxPinLevelInvert+|IsClockDataInvert+|IsClockSwap+|IsClockOverrunDisable+|IsClockDMADisableonRxError+|IsClockMSBFirst" Name="AdvFeatureInit" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="VirtualClockMode = VM_SMARTCARD"/>
    </RefParameter>
    <RefParameter Comment="UART Advanced Features" DefaultValue="+IsSmartCardTxPinLevelInvert+|IsSmartCardRxPinLevelInvert+|IsSmartCardDataInvert+|IsSmartCardSwap+|IsSmartCardOverrunDisable+|IsSmartCardDMADisableonRxError+|IsSmartCardMSBFirst" Name="AdvFeatureInit" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="VirtualMode = VM_SMARTCARD"/>
    </RefParameter>
		
    <RefParameter Comment="UART Advanced Features" DefaultValue="+IsTxPinLevelInvert+|IsRxPinLevelInvert+|IsDataInvert+|IsSwap+|IsOverrunDisable+|IsDMADisableonRxError+|IsMSBFirst+|IsAutoBaudRateMode" Name="AdvFeatureInit" Type="list" Visible="false"/>
    <!-- TxPinLevelInvert -->
    <RefParameter Comment="TX Pin Active Level Is Inverted arg" DefaultValue="SMARTCARD_ADVFEATURE_TXINV_ENABLE" Group="Advanced Features" Name="TxPinLevelInvert" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardTxPinLevelInvertParam = SMARTCARD_ADVFEATURE_TXINV_ENABLE) &amp; (VirtualClockMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_ADVFEATURE_TXINV_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="TX Pin Active Level Is Inverted arg" DefaultValue="SMARTCARD_ADVFEATURE_TXINV_ENABLE" Group="Advanced Features" Name="TxPinLevelInvert" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardTxPinLevelInvertParam = SMARTCARD_ADVFEATURE_TXINV_ENABLE) &amp; (VirtualMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_ADVFEATURE_TXINV_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="TX Pin Active Level Is Inverted arg" DefaultValue="UART_ADVFEATURE_TXINV_ENABLE" Group="Advanced Features" Name="TxPinLevelInvert" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_TxPinLevelInvertENABLE"/>
        <PossibleValue Comment="Enable" Value="UART_ADVFEATURE_TXINV_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="TX Pin Active Level Is Inverted arg" DefaultValue="null" Group="Advanced Features" Name="TxPinLevelInvert" Type="list" Visible="false"/>
   
    <RefParameter Comment="TX Pin Active Level Inversion" DefaultValue="ADVFEATURE_TXINV_DISABLE" Group="Advanced Features" Name="TxPinLevelInvertParam" Type="list">
        <PossibleValue Comment="Disable" Value="ADVFEATURE_TXINV_DISABLE"/>
        <PossibleValue Comment="Enable"  Value="ADVFEATURE_TXINV_ENABLE"/>
    </RefParameter>

    <RefParameter Comment="SmartCard TX Pin Active Level Inversion" DefaultValue="SMARTCARD_ADVFEATURE_TXINV_DISABLE" Group="Advanced Features" Name="SmartCardTxPinLevelInvertParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualClockMode = VM_SMARTCARD) &amp; (TxPinLevelInvertParam=ADVFEATURE_TXINV_DISABLE)"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_ADVFEATURE_TXINV_DISABLE"/>
    </RefParameter>
    <RefParameter Comment="SmartCard TX Pin Active Level Inversion" DefaultValue="SMARTCARD_ADVFEATURE_TXINV_ENABLE" Group="Advanced Features" Name="SmartCardTxPinLevelInvertParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualClockMode = VM_SMARTCARD) &amp; (TxPinLevelInvertParam=ADVFEATURE_TXINV_ENABLE)"/>
        <PossibleValue Comment="Enable" Semaphore="$IpInstance_CLOCK_TxPinLevelInvertENABLE" Value="SMARTCARD_ADVFEATURE_TXINV_ENABLE"/>        
    </RefParameter>    
    <RefParameter Comment="SmartCard TX Pin Active Level Inversion" DefaultValue="SMARTCARD_ADVFEATURE_TXINV_DISABLE" Group="Advanced Features" Name="SmartCardTxPinLevelInvertParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualMode = VM_SMARTCARD) &amp; (TxPinLevelInvertParam=ADVFEATURE_TXINV_DISABLE)"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_ADVFEATURE_TXINV_DISABLE"/>
    </RefParameter> 
    <RefParameter Comment="SmartCard TX Pin Active Level Inversion" DefaultValue="SMARTCARD_ADVFEATURE_TXINV_DISABLE" Group="Advanced Features" Name="SmartCardTxPinLevelInvertParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualMode = VM_SMARTCARD) &amp; (TxPinLevelInvertParam=ADVFEATURE_TXINV_ENABLE)"/>
        <PossibleValue Comment="Enable" Semaphore="$IpInstance_SC_TxPinLevelInvertENABLE" Value="SMARTCARD_ADVFEATURE_TXINV_ENABLE"/>
    </RefParameter>   
    <RefParameter Comment="TX Pin Active Level Inversion" DefaultValue="UART_ADVFEATURE_TXINV_DISABLE" Group="Advanced Features" Name="UartTxPinLevelInvertParam" Type="list">
        <Condition Diagnostic="" Expression="(TxPinLevelInvertParam=ADVFEATURE_TXINV_DISABLE) &amp; !(VirtualClockMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Disable" Value="UART_ADVFEATURE_TXINV_DISABLE"/>
    </RefParameter>
    <RefParameter Comment="TX Pin Active Level Inversion" DefaultValue="UART_ADVFEATURE_TXINV_DISABLE" Group="Advanced Features" Name="UartTxPinLevelInvertParam" Type="list">
        <Condition Diagnostic="" Expression="(TxPinLevelInvertParam=ADVFEATURE_TXINV_ENABLE) &amp; !(VirtualClockMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Enable" Semaphore="$IpInstance_TxPinLevelInvertENABLE" Value="UART_ADVFEATURE_TXINV_ENABLE"/>
    </RefParameter>
	
    <RefParameter Comment="CLOCK SMARTCARD IsTxPinLevelInvert" DefaultValue="SMARTCARD_ADVFEATURE_TXINVERT_INIT" Group="Advanced Features" Name="IsClockTxPinLevelInvert" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_CLOCK_TxPinLevelInvertENABLE &amp; (VirtualClockMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="SMARTCARD_ADVFEATURE_TXINVERT_INIT" Value="SMARTCARD_ADVFEATURE_TXINVERT_INIT"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="" Group="Advanced Features" Name="IsClockTxPinLevelInvert" Type="list" Visible="false"/>
    <RefParameter Comment="SMARTCARD IsTxPinLevelInvert" DefaultValue="SMARTCARD_ADVFEATURE_TXINVERT_INIT" Group="Advanced Features" Name="IsSmartCardTxPinLevelInvert" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardTxPinLevelInvertParam=SMARTCARD_ADVFEATURE_TXINV_ENABLE)"/>
        <PossibleValue Comment="SMARTCARD_ADVFEATURE_TXINVERT_INIT" Value="SMARTCARD_ADVFEATURE_TXINVERT_INIT"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="" Group="Advanced Features" Name="IsSmartCardTxPinLevelInvert" Type="list" Visible="false"/>
    <RefParameter Comment="IsTxPinLevelInvert" DefaultValue="UART_ADVFEATURE_TXINVERT_INIT" Group="Advanced Features" Name="IsTxPinLevelInvert" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_TxPinLevelInvertENABLE"/>
        <PossibleValue Comment="" Value="UART_ADVFEATURE_TXINVERT_INIT"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="" Group="Advanced Features" Name="IsTxPinLevelInvert" Type="list" Visible="false"/>
    <!--RxPinLevelInvert -->
	
    <RefParameter Comment="RX Pin Active Level Is Inverted arg" DefaultValue="SMARTCARD_ADVFEATURE_RXINV_ENABLE" Group="Advanced Features" Name="RxPinLevelInvert" Type="list">
        <Condition Diagnostic="" Expression="(SmartCardRxPinLevelInvertParam = SMARTCARD_ADVFEATURE_RXINV_ENABLE) &amp; (VirtualClockMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_ADVFEATURE_RXINV_ENABLE"/>
    </RefParameter>	
    <RefParameter Comment="RX Pin Active Level Is Inverted arg" DefaultValue="SMARTCARD_ADVFEATURE_RXINV_ENABLE" Group="Advanced Features" Name="RxPinLevelInvert" Type="list">
        <Condition Diagnostic="" Expression="(SmartCardRxPinLevelInvertParam = SMARTCARD_ADVFEATURE_RXINV_ENABLE) &amp; (VirtualMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_ADVFEATURE_RXINV_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="RX Pin Active Level Is Inverted arg" DefaultValue="UART_ADVFEATURE_RXINV_ENABLE" Group="Advanced Features" Name="RxPinLevelInvert" Type="list">
        <Condition Diagnostic="" Expression="$IpInstance_RxPinLevelInvertENABLE"/>
        <PossibleValue Comment="Enable" Value="UART_ADVFEATURE_RXINV_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="RX Pin Active Level Is Inverted arg" DefaultValue="null" Group="Advanced Features" Name="RxPinLevelInvert" Type="list" Visible="false"/>
	
    
    <RefParameter Comment="RX Pin Active Level Inversion" DefaultValue="ADVFEATURE_RXINV_DISABLE" Group="Advanced Features" Name="RxPinLevelInvertParam" Type="list">
        <PossibleValue Comment="Disable" Value="ADVFEATURE_RXINV_DISABLE"/>
        <PossibleValue Comment="Enable"  Value="ADVFEATURE_RXINV_ENABLE"/>
    </RefParameter>
    <RefParameter Comment=" SmartCard RX Pin Active Level Inversion" DefaultValue="SMARTCARD_ADVFEATURE_RXINV_DISABLE" Group="Advanced Features" Name="SmartCardRxPinLevelInvertParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualClockMode = VM_SMARTCARD) &amp; (RxPinLevelInvertParam=ADVFEATURE_RXINV_DISABLE)"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_ADVFEATURE_RXINV_DISABLE"/>
    </RefParameter>
    <RefParameter Comment=" SmartCard RX Pin Active Level Inversion" DefaultValue="SMARTCARD_ADVFEATURE_RXINV_ENABLE" Group="Advanced Features" Name="SmartCardRxPinLevelInvertParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualClockMode = VM_SMARTCARD) &amp; (RxPinLevelInvertParam=ADVFEATURE_RXINV_ENABLE)"/>
        <PossibleValue Comment="Enable" Semaphore="$IpInstance_CLOCK_RXINV_ENABLE" Value="SMARTCARD_ADVFEATURE_RXINV_ENABLE"/>
    </RefParameter>
    <RefParameter Comment=" SmartCard RX Pin Active Level Inversion" DefaultValue="SMARTCARD_ADVFEATURE_RXINV_DISABLE" Group="Advanced Features" Name="SmartCardRxPinLevelInvertParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualMode = VM_SMARTCARD) &amp; (RxPinLevelInvertParam=ADVFEATURE_RXINV_DISABLE)"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_ADVFEATURE_RXINV_DISABLE"/>
    </RefParameter>
    <RefParameter Comment=" SmartCard RX Pin Active Level Inversion" DefaultValue="SMARTCARD_ADVFEATURE_RXINV_DISABLE" Group="Advanced Features" Name="SmartCardRxPinLevelInvertParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualMode = VM_SMARTCARD) &amp; (RxPinLevelInvertParam=ADVFEATURE_RXINV_ENABLE)"/>
        <PossibleValue Comment="Enable" Semaphore="$IpInstance_SC_RXINV_ENABLE" Value="SMARTCARD_ADVFEATURE_RXINV_ENABLE"/>
    </RefParameter>

    <RefParameter Comment="RX Pin Active Level Inversion" DefaultValue="UART_ADVFEATURE_RXINV_ENABLE" Group="Advanced Features" Name="UartRxPinLevelInvertParam" Type="list">
        <Condition Diagnostic="" Expression="(RxPinLevelInvertParam=ADVFEATURE_RXINV_ENABLE) &amp; !(VirtualClockMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Enable" Semaphore="$IpInstance_RxPinLevelInvertENABLE" Value="UART_ADVFEATURE_RXINV_ENABLE"/>
    </RefParameter>
	
    <RefParameter Comment="CLOCK SMARTCARD IsRxPinLevelInvert" DefaultValue="SMARTCARD_ADVFEATURE_RXINVERT_INIT" Group="Advanced Features" Name="IsClockRxPinLevelInvert" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_CLOCK_RXINV_ENABLE"/>
        <PossibleValue Comment="CLOCK RXINVERT_INIT" Value="SMARTCARD_ADVFEATURE_RXINVERT_INIT"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="" Group="Advanced Features" Name="IsClockRxPinLevelInvert" Type="list" Visible="false"/>
    <RefParameter Comment="SMARTCARD IsRxPinLevelInvert" DefaultValue="SMARTCARD_ADVFEATURE_RXINVERT_INIT" Group="Advanced Features" Name="IsSmartCardRxPinLevelInvert" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="SmartCardRxPinLevelInvertParam=SMARTCARD_ADVFEATURE_RXINV_ENABLE"/>
        <PossibleValue Comment="RXINVERT_INIT" Value="SMARTCARD_ADVFEATURE_RXINVERT_INIT"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="" Group="Advanced Features" Name="IsSmartCardRxPinLevelInvert" Type="list" Visible="false"/>
    <RefParameter Comment="IsRxPinLevelInvert" DefaultValue="UART_ADVFEATURE_RXINVERT_INIT" Group="Advanced Features" Name="IsRxPinLevelInvert" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_RxPinLevelInvertENABLE"/>
        <PossibleValue Comment="" Value="UART_ADVFEATURE_RXINVERT_INIT"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="" Group="Advanced Features" Name="IsRxPinLevelInvert" Type="list" Visible="false"/>
       
    <!-- -->
    <RefParameter Comment="Data Are Inverted arg" DefaultValue="SMARTCARD_ADVFEATURE_DATAINV_ENABLE" Group="Advanced Features" Name="DataInvert" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardDataInvertParam = SMARTCARD_ADVFEATURE_DATAINV_ENABLE)&amp; (VirtualClockMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_ADVFEATURE_DATAINV_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="Data Are Inverted arg" DefaultValue="SMARTCARD_ADVFEATURE_DATAINV_ENABLE" Group="Advanced Features" Name="DataInvert" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardDataInvertParam = SMARTCARD_ADVFEATURE_DATAINV_ENABLE)&amp; (VirtualMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_ADVFEATURE_DATAINV_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="Data Are Inverted arg" DefaultValue="UART_ADVFEATURE_DATAINV_ENABLE" Group="Advanced Features" Name="DataInvert" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_DataInvertENABLE"/>
        <PossibleValue Comment="Enable" Value="UART_ADVFEATURE_DATAINV_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="Data Are Inverted arg" DefaultValue="null" Group="Advanced Features" Name="DataInvert" Type="list" Visible="false"/>
	
    
    <RefParameter Comment="Data Inversion" DefaultValue="ADVFEATURE_DATAINV_DISABLE" Group="Advanced Features" Name="DataInvertParam" Type="list">
        <PossibleValue Comment="Disable" Value="ADVFEATURE_DATAINV_DISABLE"/>
        <PossibleValue Comment="Enable"  Value="ADVFEATURE_DATAINV_ENABLE"/>
    </RefParameter>

    <RefParameter Comment="Data Inversion" DefaultValue="SMARTCARD_ADVFEATURE_DATAINV_DISABLE" Group="Advanced Features" Name="SmartCardDataInvertParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualClockMode = VM_SMARTCARD) &amp; (DataInvertParam = ADVFEATURE_DATAINV_DISABLE)"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_ADVFEATURE_DATAINV_DISABLE"/>
    </RefParameter>
    <RefParameter Comment="Data Inversion" DefaultValue="SMARTCARD_ADVFEATURE_DATAINV_ENABLE" Group="Advanced Features" Name="SmartCardDataInvertParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualClockMode = VM_SMARTCARD) &amp; (DataInvertParam = ADVFEATURE_DATAINV_ENABLE)"/>
        <PossibleValue Comment="Enable" Semaphore="$IpInstance_Clock_DataInvertENABLE" Value="SMARTCARD_ADVFEATURE_DATAINV_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="Data Inversion" DefaultValue="SMARTCARD_ADVFEATURE_DATAINV_DISABLE" Group="Advanced Features" Name="SmartCardDataInvertParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualMode = VM_SMARTCARD) &amp; (DataInvertParam = ADVFEATURE_DATAINV_DISABLE)"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_ADVFEATURE_DATAINV_DISABLE"/>
    </RefParameter>
    <RefParameter Comment="Data Inversion" DefaultValue="SMARTCARD_ADVFEATURE_DATAINV_ENABLE" Group="Advanced Features" Name="SmartCardDataInvertParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualMode = VM_SMARTCARD) &amp; (DataInvertParam = ADVFEATURE_DATAINV_ENABLE)"/>
        <PossibleValue Comment="Enable" Semaphore="$IpInstance_Sc_DataInvertENABLE" Value="SMARTCARD_ADVFEATURE_DATAINV_ENABLE"/>
    </RefParameter>

    <RefParameter Comment="Data Inversion" DefaultValue="UART_ADVFEATURE_DATAINV_ENABLE" Group="Advanced Features" Name="UartDataInvertParam" Type="list">
        <Condition Diagnostic="" Expression="(DataInvertParam = ADVFEATURE_DATAINV_ENABLE) &amp; !(VirtualClockMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Enable" Semaphore="$IpInstance_DataInvertENABLE" Value="UART_ADVFEATURE_DATAINV_ENABLE"/>
    </RefParameter>
	
    <RefParameter Comment="SMARTCARD IsDataInvert" DefaultValue="SMARTCARD_ADVFEATURE_DATAINVERT_INIT" Group="Advanced Features" Name="IsClockDataInvert" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_Clock_DataInvertENABLE"/>
        <PossibleValue Comment="CLOCK" Value="SMARTCARD_ADVFEATURE_DATAINVERT_INIT"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="" Group="Advanced Features" Name="IsClockDataInvert" Type="list" Visible="false"/>
    <RefParameter Comment="SMARTCARD IsDataInvert" DefaultValue="SMARTCARD_ADVFEATURE_DATAINVERT_INIT" Group="Advanced Features" Name="IsSmartCardDataInvert" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="SmartCardDataInvertParam=SMARTCARD_ADVFEATURE_DATAINV_ENABLE"/>
        <PossibleValue Comment="SMARTCARD" Value="SMARTCARD_ADVFEATURE_DATAINVERT_INIT"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="" Group="Advanced Features" Name="IsSmartCardDataInvert" Type="list" Visible="false"/>

    <RefParameter Comment="IsDataInvert" DefaultValue="UART_ADVFEATURE_DATAINVERT_INIT" Group="Advanced Features" Name="IsDataInvert" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_DataInvertENABLE"/>
        <PossibleValue Comment="" Value="UART_ADVFEATURE_DATAINVERT_INIT"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="" Group="Advanced Features" Name="IsDataInvert" Type="list" Visible="false"/>
     
    <!-- -->
    <RefParameter Comment="TX and RX pins are swapped arg" DefaultValue="SMARTCARD_ADVFEATURE_SWAP_ENABLE" Group="Advanced Features" Name="Swap" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardSwapParam = SMARTCARD_ADVFEATURE_SWAP_ENABLE) &amp; (VirtualClockMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_ADVFEATURE_SWAP_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="TX and RX pins are swapped arg" DefaultValue="SMARTCARD_ADVFEATURE_SWAP_ENABLE" Group="Advanced Features" Name="Swap" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardSwapParam = SMARTCARD_ADVFEATURE_SWAP_ENABLE) &amp; (VirtualMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_ADVFEATURE_SWAP_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="TX and RX pins are swapped arg" DefaultValue="UART_ADVFEATURE_SWAP_ENABLE" Group="Advanced Features" Name="Swap" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_SwapENABLE"/>
        <PossibleValue Comment="Enable" Value="UART_ADVFEATURE_SWAP_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="TX and RX pins are swapped arg" DefaultValue="null" Group="Advanced Features" Name="Swap" Type="list" Visible="false"/>
	
    <RefParameter Comment="TX and RX Pins Swapping" DefaultValue="ADVFEATURE_SWAP_DISABLE" Group="Advanced Features" Name="SwapParam" Type="list">
        <PossibleValue Comment="Disable" Value="ADVFEATURE_SWAP_DISABLE"/>
        <PossibleValue Comment="Enable" Value="ADVFEATURE_SWAP_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="TX and RX Pins Swapping" DefaultValue="SMARTCARD_ADVFEATURE_SWAP_DISABLE" Group="Advanced Features" Name="SmartCardSwapParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualClockMode = VM_SMARTCARD) &amp; (SwapParam=ADVFEATURE_SWAP_DISABLE)"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_ADVFEATURE_SWAP_DISABLE"/>
    </RefParameter>
    <RefParameter Comment="TX and RX Pins Swapping" DefaultValue="SMARTCARD_ADVFEATURE_SWAP_ENABLE" Group="Advanced Features" Name="SmartCardSwapParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualClockMode = VM_SMARTCARD) &amp; (SwapParam=ADVFEATURE_SWAP_ENABLE)"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_ADVFEATURE_SWAP_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="TX and RX Pins Swapping" DefaultValue="SMARTCARD_ADVFEATURE_SWAP_DISABLE" Group="Advanced Features" Name="SmartCardSwapParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualMode = VM_SMARTCARD) &amp; (SwapParam=ADVFEATURE_SWAP_DISABLE)"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_ADVFEATURE_SWAP_DISABLE"/>
    </RefParameter>
    <RefParameter Comment="TX and RX Pins Swapping" DefaultValue="SMARTCARD_ADVFEATURE_SWAP_ENABLE" Group="Advanced Features" Name="SmartCardSwapParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualMode = VM_SMARTCARD) &amp; (SwapParam=ADVFEATURE_SWAP_ENABLE)"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_ADVFEATURE_SWAP_ENABLE"/>
    </RefParameter>

    <RefParameter Comment="TX and RX Pins Swapping" DefaultValue="UART_ADVFEATURE_SWAP_ENABLE" Group="Advanced Features" Name="UartSwapParam" Type="list">
        <Condition Diagnostic="" Expression="(SwapParam=ADVFEATURE_SWAP_ENABLE) &amp; !(VirtualMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Enable" Semaphore="$IpInstance_SwapENABLE" Value="UART_ADVFEATURE_SWAP_ENABLE"/>
    </RefParameter>
	
    <RefParameter Comment="SMARTCARD IsSwap" DefaultValue="SMARTCARD_ADVFEATURE_SWAP_INIT" Group="Advanced Features" Name="IsClockSwap" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardSwapParam = SMARTCARD_ADVFEATURE_SWAP_ENABLE) &amp; (VirtualClockMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="CLOCK" Value="SMARTCARD_ADVFEATURE_SWAP_INIT"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="" Group="Advanced Features" Name="IsClockSwap" Type="list" Visible="false"/>
    <RefParameter Comment="SMARTCARD IsSwap" DefaultValue="SMARTCARD_ADVFEATURE_SWAP_INIT" Group="Advanced Features" Name="IsSmartCardSwap" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardSwapParam = SMARTCARD_ADVFEATURE_SWAP_ENABLE) &amp; (VirtualMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="SMARTCARD" Value="SMARTCARD_ADVFEATURE_SWAP_INIT"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="" Group="Advanced Features" Name="IsSmartCardSwap" Type="list" Visible="false"/>
    <RefParameter Comment="IsSwap" DefaultValue="UART_ADVFEATURE_SWAP_INIT" Group="Advanced Features" Name="IsSwap" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_SwapENABLE"/>
        <PossibleValue Comment="" Value="UART_ADVFEATURE_SWAP_INIT"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="" Group="Advanced Features" Name="IsSwap" Type="list" Visible="false"/>
      
    <!-- -->
    <RefParameter Comment="Overrun State arg" DefaultValue="SMARTCARD_ADVFEATURE_OVERRUN_DISABLE" Group="Advanced Features" Name="OverrunDisable" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardOverrunDisableParam = SMARTCARD_ADVFEATURE_OVERRUN_DISABLE) &amp; (VirtualClockMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_ADVFEATURE_OVERRUN_DISABLE"/>
    </RefParameter> 
    <RefParameter Comment="Overrun State arg" DefaultValue="SMARTCARD_ADVFEATURE_OVERRUN_DISABLE" Group="Advanced Features" Name="OverrunDisable" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardOverrunDisableParam = SMARTCARD_ADVFEATURE_OVERRUN_DISABLE) &amp; (VirtualMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_ADVFEATURE_OVERRUN_DISABLE"/>
    </RefParameter> 
    <RefParameter Comment="Overrun State arg" DefaultValue="UART_ADVFEATURE_OVERRUN_DISABLE" Group="Advanced Features" Name="OverrunDisable" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_OverrunDisableENABLE"/>
        <PossibleValue Comment="Disable" Value="UART_ADVFEATURE_OVERRUN_DISABLE"/>
    </RefParameter>
    <RefParameter Comment="Overrun State arg" DefaultValue="null" Group="Advanced Features" Name="OverrunDisable" Type="list" Visible="false"/>
	
    
    <RefParameter Comment="Overrun" DefaultValue="ADVFEATURE_OVERRUN_ENABLE" Group="Advanced Features" Name="OverrunDisableParam" Type="list">
        <PossibleValue Comment="Disable" Value="ADVFEATURE_OVERRUN_DISABLE"/>
        <PossibleValue Comment="Enable" Value="ADVFEATURE_OVERRUN_ENABLE"/>
    </RefParameter>
	
    <RefParameter Comment="Overrun" DefaultValue="SMARTCARD_ADVFEATURE_OVERRUN_DISABLE" Group="Advanced Features" Name="SmartCardOverrunDisableParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualClockMode = VM_SMARTCARD) &amp; (OverrunDisableParam=ADVFEATURE_OVERRUN_DISABLE)"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_ADVFEATURE_OVERRUN_DISABLE"/>
    </RefParameter>
    <RefParameter Comment="Overrun" DefaultValue="SMARTCARD_ADVFEATURE_OVERRUN_ENABLE" Group="Advanced Features" Name="SmartCardOverrunDisableParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualClockMode = VM_SMARTCARD) &amp; (OverrunDisableParam=ADVFEATURE_OVERRUN_ENABLE)"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_ADVFEATURE_OVERRUN_ENABLE"/>
    </RefParameter>
    
    <RefParameter Comment="Overrun" DefaultValue="SMARTCARD_ADVFEATURE_OVERRUN_ENABLE" Group="Advanced Features" Name="SmartCardOverrunDisableParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualMode = VM_SMARTCARD)&amp; (OverrunDisableParam=ADVFEATURE_OVERRUN_ENABLE)"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_ADVFEATURE_OVERRUN_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="Overrun" DefaultValue="SMARTCARD_ADVFEATURE_OVERRUN_DISABLE" Group="Advanced Features" Name="SmartCardOverrunDisableParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualMode = VM_SMARTCARD)&amp; (OverrunDisableParam=ADVFEATURE_OVERRUN_DISABLE)"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_ADVFEATURE_OVERRUN_DISABLE"/>
    </RefParameter>
    
    <RefParameter Comment="Overrun" DefaultValue="UART_ADVFEATURE_OVERRUN_DISABLE" Group="Advanced Features" Name="UartOverrunDisableParam" Type="list">
        <Condition Diagnostic="" Expression="(OverrunDisableParam=ADVFEATURE_OVERRUN_DISABLE) &amp; !(VirtualClockMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Disable" Semaphore="$IpInstance_OverrunDisableENABLE" Value="UART_ADVFEATURE_OVERRUN_DISABLE"/>
    </RefParameter>
	
    <RefParameter Comment="CLOCK" DefaultValue="SMARTCARD_ADVFEATURE_RXOVERRUNDISABLE_INIT" Group="Advanced Features" Name="IsClockOverrunDisable" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardOverrunDisableParam = SMARTCARD_ADVFEATURE_OVERRUN_DISABLE) &amp; (VirtualClockMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="CLOCK" Value="SMARTCARD_ADVFEATURE_RXOVERRUNDISABLE_INIT"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="" Group="Advanced Features" Name="IsClockOverrunDisable" Type="list" Visible="false"/>
   
    <RefParameter Comment="SMARTCARD" DefaultValue="SMARTCARD_ADVFEATURE_RXOVERRUNDISABLE_INIT" Group="Advanced Features" Name="IsSmartCardOverrunDisable" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardOverrunDisableParam = SMARTCARD_ADVFEATURE_OVERRUN_DISABLE) &amp; (VirtualMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="SMARTCARD" Value="SMARTCARD_ADVFEATURE_RXOVERRUNDISABLE_INIT"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="" Group="Advanced Features" Name="IsSmartCardOverrunDisable" Type="list" Visible="false"/>
   
    <RefParameter Comment="" DefaultValue="UART_ADVFEATURE_RXOVERRUNDISABLE_INIT" Group="Advanced Features" Name="IsOverrunDisable" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_OverrunDisableENABLE"/>
        <PossibleValue Comment="" Value="UART_ADVFEATURE_RXOVERRUNDISABLE_INIT"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="" Group="Advanced Features" Name="IsOverrunDisable" Type="list" Visible="false"/>
      
    <!-- -->
    <RefParameter Comment="DMA State arg" DefaultValue="SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR" Group="Advanced Features" Name="DMADisableonRxError" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardDMADisableonRxErrorParam = SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR) &amp; (VirtualClockMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR"/>
    </RefParameter>  
    <RefParameter Comment="DMA State arg" DefaultValue="SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR" Group="Advanced Features" Name="DMADisableonRxError" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardDMADisableonRxErrorParam = SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR) &amp; (VirtualMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR"/>
    </RefParameter>  
    <RefParameter Comment="DMA State arg" DefaultValue="UART_ADVFEATURE_DMA_DISABLEONRXERROR" Group="Advanced Features" Name="DMADisableonRxError" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_DMADisableonRxErrorENABLE"/>
        <PossibleValue Comment="Disable" Value="UART_ADVFEATURE_DMA_DISABLEONRXERROR"/>
    </RefParameter>
    <RefParameter Comment="DMA State arg" DefaultValue="null" Group="Advanced Features" Name="DMADisableonRxError" Type="list" Visible="false"/>
	
    <RefParameter Comment="DMA on RX Error" DefaultValue="ADVFEATURE_DMA_ENABLEONRXERROR" Group="Advanced Features" Name="DMADisableonRxErrorParam" Type="list">
        <PossibleValue Comment="Disable" Value="ADVFEATURE_DMA_DISABLEONRXERROR"/>
        <PossibleValue Comment="Enable" Value="ADVFEATURE_DMA_ENABLEONRXERROR"/>
    </RefParameter>
    
    <RefParameter Comment="DMA on RX Error" DefaultValue="SMARTCARD_ADVFEATURE_DMA_ENABLEONRXERROR" Group="Advanced Features" Name="SmartCardDMADisableonRxErrorParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualClockMode = VM_SMARTCARD) &amp; (DMADisableonRxErrorParam=ADVFEATURE_DMA_ENABLEONRXERROR)"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_ADVFEATURE_DMA_ENABLEONRXERROR"/>
    </RefParameter>
    
    <RefParameter Comment="DMA on RX Error" DefaultValue="SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR" Group="Advanced Features" Name="SmartCardDMADisableonRxErrorParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualClockMode = VM_SMARTCARD) &amp; (DMADisableonRxErrorParam=ADVFEATURE_DMA_DISABLEONRXERROR)"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR"/>
    </RefParameter>
    
    <RefParameter Comment="DMA on RX Error" DefaultValue="SMARTCARD_ADVFEATURE_DMA_ENABLEONRXERROR" Group="Advanced Features" Name="SmartCardDMADisableonRxErrorParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualMode = VM_SMARTCARD) &amp; (DMADisableonRxErrorParam=ADVFEATURE_DMA_ENABLEONRXERROR)"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_ADVFEATURE_DMA_ENABLEONRXERROR"/>
    </RefParameter>
    <RefParameter Comment="DMA on RX Error" DefaultValue="SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR" Group="Advanced Features" Name="SmartCardDMADisableonRxErrorParam" Type="list">
        <Condition Diagnostic="" Expression="(VirtualMode = VM_SMARTCARD)&amp; (DMADisableonRxErrorParam=ADVFEATURE_DMA_DISABLEONRXERROR)"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR"/>
    </RefParameter>
    <RefParameter Comment="DMA on RX Error" DefaultValue="UART_ADVFEATURE_DMA_DISABLEONRXERROR" Group="Advanced Features" Name="UartDMADisableonRxErrorParam" Type="list">
        <Condition Diagnostic="" Expression="(DMADisableonRxErrorParam=ADVFEATURE_DMA_DISABLEONRXERROR)  &amp; !(VirtualMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Disable" Semaphore="$IpInstance_DMADisableonRxErrorENABLE" Value="UART_ADVFEATURE_DMA_DISABLEONRXERROR"/>
    </RefParameter>
	
    <RefParameter Comment="SMARTCARD IsDMADisableonRxError" DefaultValue="SMARTCARD_ADVFEATURE_DMADISABLEONERROR_INIT" Group="Advanced Features" Name="IsClockDMADisableonRxError" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardDMADisableonRxErrorParam = SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR) &amp; (VirtualClockMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="CLOCK" Value="SMARTCARD_ADVFEATURE_DMADISABLEONERROR_INIT"/>
    </RefParameter>
    <RefParameter Comment="IsDMADisableonRxError" DefaultValue="" Group="Advanced Features" Name="IsClockDMADisableonRxError" Type="list" Visible="false"/>
    <RefParameter Comment="SMARTCARD IsDMADisableonRxError" DefaultValue="SMARTCARD_ADVFEATURE_DMADISABLEONERROR_INIT" Group="Advanced Features" Name="IsSmartCardDMADisableonRxError" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardDMADisableonRxErrorParam = SMARTCARD_ADVFEATURE_DMA_DISABLEONRXERROR) &amp; (VirtualMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="SMARTCARD" Value="SMARTCARD_ADVFEATURE_DMADISABLEONERROR_INIT"/>
    </RefParameter>
    <RefParameter Comment="IsDMADisableonRxError" DefaultValue="" Group="Advanced Features" Name="IsSmartCardDMADisableonRxError" Type="list" Visible="false"/>
    <RefParameter Comment="" DefaultValue="UART_ADVFEATURE_DMADISABLEONERROR_INIT" Group="Advanced Features" Name="IsDMADisableonRxError" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_DMADisableonRxErrorENABLE"/>
        <PossibleValue Comment="" Value="UART_ADVFEATURE_DMADISABLEONERROR_INIT"/>
    </RefParameter>
    <RefParameter Comment="IsDMADisableonRxError" DefaultValue="" Group="Advanced Features" Name="IsDMADisableonRxError" Type="list" Visible="false"/>
    <!-- -->
    <RefParameter Comment="MSB Is Sent First arg" DefaultValue="SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE" Group="Advanced Features" Name="MSBFirst" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardMSBFirstParam = SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE) &amp; (VirtualClockMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="MSB Is Sent First arg" DefaultValue="SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE" Group="Advanced Features" Name="MSBFirst" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardMSBFirstParam = SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE) &amp; (VirtualMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="MSB Is Sent First arg" DefaultValue="UART_ADVFEATURE_MSBFIRST_ENABLE" Group="Advanced Features" Name="MSBFirst" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_MSBFirstENABLE"/>
        <PossibleValue Comment="Enable" Value="UART_ADVFEATURE_MSBFIRST_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="MSB Is Sent First arg" DefaultValue="null" Group="Advanced Features" Name="MSBFirst" Type="list" Visible="false"/>
	
    <RefParameter Comment="MSB First" DefaultValue="ADVFEATURE_MSBFIRST_DISABLE" Group="Advanced Features" Name="MSBFirstParam" Type="list">
        <PossibleValue Comment="Disable" Value="ADVFEATURE_MSBFIRST_DISABLE"/>
        <PossibleValue Comment="Enable" Value="ADVFEATURE_MSBFIRST_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="MSB First" DefaultValue="SMARTCARD_ADVFEATURE_MSBFIRST_DISABLE" Group="Advanced Features" Name="SmartCardMSBFirstParam" Type="list">
        <Condition Diagnostic="" Expression="((VirtualClockMode = VM_SMARTCARD) &amp; (MSBFirstParam=ADVFEATURE_MSBFIRST_DISABLE))"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_ADVFEATURE_MSBFIRST_DISABLE"/>
    </RefParameter>
    <RefParameter Comment="MSB First" DefaultValue="SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE" Group="Advanced Features" Name="SmartCardMSBFirstParam" Type="list">
        <Condition Diagnostic="" Expression="((VirtualClockMode = VM_SMARTCARD) &amp; (MSBFirstParam=ADVFEATURE_MSBFIRST_ENABLE))"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="MSB First" DefaultValue="SMARTCARD_ADVFEATURE_MSBFIRST_DISABLE" Group="Advanced Features" Name="SmartCardMSBFirstParam" Type="list">
        <Condition Diagnostic="" Expression="((VirtualMode = VM_SMARTCARD) &amp; (MSBFirstParam=ADVFEATURE_MSBFIRST_DISABLE))"/>
        <PossibleValue Comment="Disable" Value="SMARTCARD_ADVFEATURE_MSBFIRST_DISABLE"/>
    </RefParameter>
    <RefParameter Comment="MSB First" DefaultValue="SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE" Group="Advanced Features" Name="SmartCardMSBFirstParam" Type="list">
        <Condition Diagnostic="" Expression="((VirtualMode = VM_SMARTCARD) &amp; (MSBFirstParam=ADVFEATURE_MSBFIRST_ENABLE))"/>
        <PossibleValue Comment="Enable" Value="SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE"/>
    </RefParameter>
    <RefParameter Comment="MSB First" DefaultValue="UART_ADVFEATURE_MSBFIRST_ENABLE" Group="Advanced Features" Name="UartMSBFirstParam" Type="list">
        <Condition Diagnostic="" Expression="(MSBFirstParam=ADVFEATURE_MSBFIRST_ENABLE) &amp; !(VirtualMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="Enable" Semaphore="$IpInstance_MSBFirstENABLE" Value="UART_ADVFEATURE_MSBFIRST_ENABLE"/>
    </RefParameter>
	
    <RefParameter Comment="SMARTCARD IsMSBFirst" DefaultValue="SMARTCARD_ADVFEATURE_MSBFIRST_INIT" Group="Advanced Features" Name="IsClockMSBFirst" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardMSBFirstParam = SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE) &amp; (VirtualClockMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="CLOCK" Value="SMARTCARD_ADVFEATURE_MSBFIRST_INIT"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="" Group="Advanced Features" Name="IsClockMSBFirst" Type="list" Visible="false"/>
    <RefParameter Comment="SMARTCARD IsMSBFirst" DefaultValue="SMARTCARD_ADVFEATURE_MSBFIRST_INIT" Group="Advanced Features" Name="IsSmartCardMSBFirst" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="(SmartCardMSBFirstParam = SMARTCARD_ADVFEATURE_MSBFIRST_ENABLE) &amp; (VirtualMode = VM_SMARTCARD)"/>
        <PossibleValue Comment="CLOCK" Value="SMARTCARD_ADVFEATURE_MSBFIRST_INIT"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="" Group="Advanced Features" Name="IsSmartCardMSBFirst" Type="list" Visible="false"/>
    <RefParameter Comment="IsMSBFirst" DefaultValue="UART_ADVFEATURE_MSBFIRST_INIT" Group="Advanced Features" Name="IsMSBFirst" Type="list" Visible="false">
        <Condition Diagnostic="" Expression="$IpInstance_MSBFirstENABLE"/>
        <PossibleValue Comment="SMARTCARD" Value="UART_ADVFEATURE_MSBFIRST_INIT"/>
    </RefParameter>
    <RefParameter Comment="" DefaultValue="" Group="Advanced Features" Name="IsMSBFirst" Type="list" Visible="false"/>
    <!-- -->
    <RefParameter Comment="Auto Baudrate Mode" DefaultValue="UART_ADVFEATURE_AUTOBAUDRATE_ONSTARTBIT" Group="Advanced Features" Name="AutoBaudRateMode" Type="list">
        <Condition Diagnostic="" Expression="$IpInstance_UART_AutoBaudRate_Enable &amp; ($IpInstance_Usart_7B|$IpInstance_Irda_7B|$IpInstance_Uart_7B|DIE444|DIE440)"/>
        <PossibleValue Comment="ON START BIT" Value="UART_ADVFEATURE_AUTOBAUDRATE_ONSTARTBIT"/>
        <PossibleValue Comment="ON FALLING EDGE" Value="UART_ADVFEATURE_AUTOBAUDRATE_ONFALLINGEDGE"/>
    </RefParameter>
	
    <RefParameter Comment="Auto Baudrate Mode" DefaultValue="UART_ADVFEATURE_AUTOBAUDRATE_ONSTARTBIT" Group="Advanced Features" Name="AutoBaudRateMode" Type="list">
        <Condition Diagnostic="" Expression="$IpInstance_UART_AutoBaudRate_Enable"/>
        <PossibleValue Comment="ON START BIT" Value="UART_ADVFEATURE_AUTOBAUDRATE_ONSTARTBIT"/>
        <PossibleValue Comment="ON FALLING EDGE" Value="UART_ADVFEATURE_AUTOBAUDRATE_ONFALLINGEDGE"/>
        <PossibleValue Comment="ON 0X7F FRAME" Value="UART_ADVFEATURE_AUTOBAUDRATE_ON0X7FFRAME"/>
        <PossibleValue Comment="ON 0X55 FRAME" Value="UART_ADVFEATURE_AUTOBAUDRATE_ON0X55FRAME"/>
    </RefParameter>
    <RefParameter Comment="Auto Baudrate Mode" DefaultValue="null" Group="Advanced Features" Name="AutoBaudRateMode" Type="list" Visible="false"/>

	
	
    <RefMode Abstract="true" Name="usartBasic">
        <Parameter Name="BaudRate"/>
    </RefMode>
	
	
    <!-- RefMode for Asynchronous UART -->
    <RefMode BaseMode="usartBasic" HalMode="UART" Name="Asynchronous">
        <Condition Diagnostic="" Expression="$IpInstance_HardwareControl"/>
        <Parameter Name="VirtualMode">
            <PossibleValue>VM_ASYNC</PossibleValue>
        </Parameter>
        <!-- Basic Parameters -->
		
        <Parameter Name="WordLength"/>
        <Parameter Name="Parity"/>
        <Parameter Name="StopBits"/>
        <Parameter Name="HwFlowCtl"/>
        <!-- Advanced Parameters -->
        <Parameter Name="Mode"/>
        <Parameter Name="OverSampling"/>
        <Parameter Name="OneBitSampling"/>
        <!-- Advanced Features -->
        <Parameter Name="AutoBaudRateEnableParam"/>
        <Parameter Name="AutoBaudRateMode"/>
        <Parameter Name="TxPinLevelInvertParam"/>
        <Parameter Name="RxPinLevelInvertParam"/>
        <Parameter Name="DataInvertParam"/>
        <Parameter Name="SwapParam"/>
        <Parameter Name="OverrunDisableParam"/>
        <Parameter Name="DMADisableonRxErrorParam"/>
        <Parameter Name="MSBFirstParam"/>
    </RefMode>
    <RefMode BaseMode="usartBasic" HalMode="UART" Name="Asynchronous">
        <ConfigForMode>Uart_Init</ConfigForMode>
        <Parameter Name="VirtualMode">
            <PossibleValue>VM_ASYNC</PossibleValue>
        </Parameter>
        <!-- Basic Parameters -->
		
        <Parameter Name="WordLength"/>
        <Parameter Name="Parity"/>
        <Parameter Name="StopBits"/>
        <Parameter Name="HwFlowCtl"/>
        <!-- Advanced Parameters -->
        <Parameter Name="Mode"/>
        <Parameter Name="OverSampling"/>
        <Parameter Name="OneBitSampling"/>
        <!-- Advanced Features -->
        <Parameter Name="AutoBaudRateEnableParam"/>
        <Parameter Name="AutoBaudRateMode"/>
        <Parameter Name="TxPinLevelInvertParam"/>
        <Parameter Name="RxPinLevelInvertParam"/>
        <Parameter Name="DataInvertParam"/>
        <Parameter Name="SwapParam"/>
        <Parameter Name="OverrunDisableParam"/>
        <Parameter Name="DMADisableonRxErrorParam"/>
        <Parameter Name="MSBFirstParam"/>
    </RefMode>
	
    <!-- RefMode for 'Synchronous' USART -->
    <RefMode BaseMode="usartBasic" HalMode="USART" Name="Synchronous">
        <ConfigForMode>Usart_Init</ConfigForMode>
        <Parameter Name="VirtualMode">
            <PossibleValue>VM_SYNC</PossibleValue>
        </Parameter>
        <!-- Basic Parameters -->
	
        <Parameter Name="WordLength"/>
        <Parameter Name="Parity"/>
        <Parameter Name="StopBits"/>
        <!-- Advanced Parameters -->
        <Parameter Name="Mode"/>
        <!-- Clock Parameters -->
        <Parameter Name="CLKPolarity"/>
        <Parameter Name="CLKPhase"/>
        <Parameter Name="CLKLastBit"/>
    </RefMode>
	
    <!-- RefMode for 'Single Wire' UART -->
    <RefMode BaseMode="usartBasic" HalMode="UART" Name="Half_duplex(single_wire_mode)">
        <ConfigForMode>Uart_HalfDuplex_Init</ConfigForMode>
        <Parameter Name="VirtualMode">
            <PossibleValue>VM_ASYNC</PossibleValue>
        </Parameter>
        <!-- Basic Parameters -->
	
        <Parameter Name="WordLength"/>
        <Parameter Name="Parity"/>
        <Parameter Name="StopBits"/>
        <!--  Advanced Parameters -->
        <Parameter Name="Mode"/>
        <Parameter Name="OverSampling"/>
        <Parameter Name="OneBitSampling"/>
        <!-- Advanced Features -->
        <Parameter Name="AutoBaudRateEnableParam"/>
        <Parameter Name="AutoBaudRateMode"/>
        <Parameter Name="TxPinLevelInvertParam"/>
        <Parameter Name="RxPinLevelInvertParam"/>
        <Parameter Name="DataInvertParam"/>
        <Parameter Name="SwapParam"/>
        <Parameter Name="OverrunDisableParam"/>
        <Parameter Name="DMADisableonRxErrorParam"/>
        <Parameter Name="MSBFirstParam"/>
    </RefMode>
	
    <!-- RefMode for 'MultiProcessor Communication' UART -->
    <RefMode Abstract="true" BaseMode="usartBasic" Name="multiprocessor">
        <Parameter Name="WordLength"/>
        <Parameter Name="Parity"/>
        <Parameter Name="StopBits"/>
        <!--  Advanced Parameters -->
        <Parameter Name="Mode"/>
        <Parameter Name="OverSampling"/>
        <Parameter Name="OneBitSampling"/>
        <Parameter Name="WakeUpMethod"/>
        <Parameter Name="Address"/>
        <Parameter Name="AddressLength"/>
        <!-- Advanced Features -->
        <Parameter Name="AutoBaudRateEnableParam"/>
        <Parameter Name="AutoBaudRateMode"/>
        <Parameter Name="TxPinLevelInvertParam"/>
        <Parameter Name="RxPinLevelInvertParam"/>
        <Parameter Name="DataInvertParam"/>
        <Parameter Name="SwapParam"/>
        <Parameter Name="OverrunDisableParam"/>
        <Parameter Name="DMADisableonRxErrorParam"/>
        <Parameter Name="MSBFirstParam"/>
    </RefMode>
	
    <!-- RefMode for 'MultiProcessor Communication' UART -->
    <RefMode BaseMode="multiprocessor" HalMode="UART" Name="Multiprocessor_communication">
        <Condition Diagnostic="" Expression="WakeUpMethod=UART_WAKEUPMETHOD_ADDRESSMARK"/>
        <ConfigForMode>Uart_MultiProcessor_Ex_Init</ConfigForMode>
        <Parameter Name="VirtualMode">
            <PossibleValue>VM_ASYNC</PossibleValue>
        </Parameter>
    </RefMode>
	
    <RefMode BaseMode="multiprocessor" HalMode="UART" Name="Multiprocessor_communication">
        <ConfigForMode>Uart_MultiProcessor_Init</ConfigForMode>
        <Parameter Name="VirtualMode">
            <PossibleValue>VM_ASYNC</PossibleValue>
        </Parameter>
    </RefMode>
	
    <!-- RefModes for IRDA -->
    <RefMode BaseMode="usartBasic" HalMode="IRDA" Name="IrDA">
        <ConfigForMode>IrDa_Init</ConfigForMode>
        <Parameter Name="VirtualMode">
            <PossibleValue>VM_IRDA</PossibleValue>
        </Parameter>
        <!-- Basic Parameters -->
	
        <Parameter Name="WordLength"/>
        <Parameter Name="Parity"/>
        <!-- Advanced Parameters -->
        <Parameter Name="Mode"/>
        <Parameter Name="PowerMode"/>
        <Parameter Name="Prescaler"/>
    </RefMode>
	
    <!-- RefModes for LIN -->
    <RefMode BaseMode="usartBasic" HalMode="UART" Name="LIN">
        <ConfigForMode>Uart_Lin_Init</ConfigForMode>
        <Parameter Name="VirtualMode">
            <PossibleValue>VM_LIN</PossibleValue>
        </Parameter>
        <!-- Basic Parameters -->
		
        <Parameter Name="WordLength"/>
        <Parameter Name="Parity"/>
        <Parameter Name="StopBits"/>
        <!--  Advanced Parameters -->
        <Parameter Name="Mode"/>
        <Parameter Name="OverSampling"/>
        <Parameter Name="OneBitSampling"/>
        <Parameter Name="BreakDetectLength"/>
        <!-- Advanced Features -->
        <Parameter Name="AutoBaudRateEnableParam"/>
        <Parameter Name="AutoBaudRateMode"/>
        <Parameter Name="TxPinLevelInvertParam"/>
        <Parameter Name="RxPinLevelInvertParam"/>
        <Parameter Name="DataInvertParam"/>
        <Parameter Name="SwapParam"/>
        <Parameter Name="OverrunDisableParam"/>
        <Parameter Name="DMADisableonRxErrorParam"/>
        <Parameter Name="MSBFirstParam"/>
    </RefMode>
	
    <!-- RefModes for RS485 -->
	
    <RefMode HalMode="UART" Name="Hardware Flow Control (RS485)">
        <ConfigForMode>Uart_RS485_Init</ConfigForMode>
        <Parameter Name="VirtualMode">
            <PossibleValue>VM_ASYNC</PossibleValue>
        </Parameter>
        <!-- Basic Parameters -->
		
        <Parameter Name="UART_DEPolarity"/>
        <Parameter Name="UART_DEAssertionTime"/>
        <Parameter Name="UART_DEDeassertionTime"/>
	
    </RefMode>
	
    <!-- RefModes for SmartCard -->
    <RefMode Abstract="true" BaseMode="usartBasic" HalMode="SMARTCARD" Name="SmartCard">
        <ConfigForMode>SmartCard_Init</ConfigForMode>
        <Parameter Name="VirtualMode">
            <PossibleValue>VM_SMARTCARD</PossibleValue>
        </Parameter>
        <!-- Basic Parameters -->
		
        <Parameter Name="WordLength"/>
        <Parameter Name="Parity"/>
        <Parameter Name="StopBits"/>
        <!-- Advanced Parameters -->
        <Parameter Name="Mode"/>
        <Parameter Name="NACKState"/>
        <Parameter Name="GuardTime"/>
        <Parameter Name="TimeOutEnable"/>
        <Parameter Name="TimeOutValue"/>
        <Parameter Name="BlockLength"/>
        <Parameter Name="AutoRetryCount"/>
        <Parameter Name="OneBitSampling"/>
        <!-- Advanced Features -->
        <Parameter Name="TxPinLevelInvertParam"/>
        <Parameter Name="RxPinLevelInvertParam"/>
        <Parameter Name="DataInvertParam"/>
        <Parameter Name="SwapParam"/>
        <Parameter Name="OverrunDisableParam"/>
        <Parameter Name="DMADisableonRxErrorParam"/>
        <Parameter Name="MSBFirstParam"/>
        <Parameter Name="IsSmartCardTxPinLevelInvert"/>
        <Parameter Name="IsSmartCardRxPinLevelInvert"/>
        <Parameter Name="IsSmartCardDataInvert"/>
        <Parameter Name="IsSmartCardSwap"/>
        <Parameter Name="IsSmartCardOverrunDisable"/>
        <Parameter Name="IsSmartCardDMADisableonRxError"/>
        <Parameter Name="IsSmartCardMSBFirst"/>
    </RefMode>
	
	
    <!-- RefModes for SmartCard with Clock -->
    <RefMode BaseMode="usartBasic" HalMode="SMARTCARD" Name="SmartCard_With_Clock">
        <ConfigForMode>SmartCard_Init</ConfigForMode>
        <Parameter Name="VirtualMode">
            <PossibleValue>VM_SMARTCARD</PossibleValue>
        </Parameter>
        <Parameter Name="VirtualClockMode">
            <PossibleValue>VM_SMARTCARD</PossibleValue>
        </Parameter>
        <!-- Basic Parameters -->
		
        <Parameter Name="WordLength"/>
        <Parameter Name="Parity"/>
        <Parameter Name="StopBits"/>
        <!-- Advanced Parameters -->
        <Parameter Name="Mode"/>
        <Parameter Name="NACKState"/>
        <Parameter Name="GuardTime"/>
        <Parameter Name="TimeOutEnable"/>
        <Parameter Name="TimeOutValue"/>
        <Parameter Name="BlockLength"/>
        <Parameter Name="AutoRetryCount"/>
        <Parameter Name="OneBitSampling"/>
        <!-- Clock Parameters -->
        <Parameter Name="Prescaler"/>
        <Parameter Name="CalculateSpeed"/>
        <Parameter Name="CLKPolarity"/>
        <Parameter Name="CLKPhase"/>
        <Parameter Name="CLKLastBit"/>
        <!-- Advanced Features -->
        <Parameter Name="TxPinLevelInvertParam"/>
        <Parameter Name="RxPinLevelInvertParam"/>
        <Parameter Name="DataInvertParam"/>
        <Parameter Name="SwapParam"/>
        <Parameter Name="OverrunDisableParam"/>
        <Parameter Name="DMADisableonRxErrorParam"/>
        <Parameter Name="MSBFirstParam"/>
        <Parameter Name="IsClockTxPinLevelInvert"/>
        <Parameter Name="IsClockRxPinLevelInvert"/>
        <Parameter Name="IsClockDataInvert"/>
        <Parameter Name="IsClockSwap"/>
        <Parameter Name="IsClockOverrunDisable"/>
        <Parameter Name="IsClockDMADisableonRxError"/>
        <Parameter Name="IsClockMSBFirst"/>
    </RefMode>
	
	
    <!-- RefModes for Harwdware Flow Control -->
    <RefMode Name="CTS_Only"/>
	
    <RefMode Name="RTS_Only"/>
	
    <RefMode Name="CTS_RTS"/>
	
    <!-- Modes Description for USART/UART/IRDA/SmartCard -->
    <ModeLogicOperator Name="OR">
        <Mode Name="Mode">
            <ModeLogicOperator Name="XOR">
                <Mode Name="Asynchronous">
                    <SignalLogicalOp Name="AND">
                        <Signal Name="RX"/>
                        <Signal Name="TX"/>
                    </SignalLogicalOp>
                    <Semaphore>$IpInstance_Asynchronous</Semaphore>
                    <Semaphore>Asynchronous</Semaphore>
                </Mode>
                <Mode Name="Synchronous">
                    <SignalLogicalOp Name="AND">
                        <Signal Name="CK"/>
                        <Signal Name="RX"/>
                        <Signal Name="TX"/>
                    </SignalLogicalOp>
                </Mode>
                <Mode Name="Half_duplex(single_wire_mode)" UserName="Single Wire (Half-Duplex)">
                    <SignalLogicalOp Name="AND">
                        <Signal IOMode="AlternateFunctionOpenDrainAndPushPullDefaultOD" Name="TX"/>
                    </SignalLogicalOp>
                </Mode>
                <Mode Name="Multiprocessor_communication" UserName="Multiprocessor Communication">
                    <SignalLogicalOp Name="AND">
                        <Signal IOMode="AlternateFunctionOpenDrainAndPushPullDefaultOD" Name="RX"/>
                        <Signal IOMode="AlternateFunctionOpenDrainAndPushPullDefaultOD" Name="TX"/>
                    </SignalLogicalOp>
                </Mode>
                <Mode Name="IrDA" RemoveCondition="($IpNumber=4)|($IpNumber=5)|($IpNumber=6)|($IpNumber=7)|($IpNumber=8)|STM32F030CCTx|STM32F030RCTx">
                    <SignalLogicalOp Name="AND">
                        <Signal Name="RX"/>
                        <Signal Name="TX"/>
                    </SignalLogicalOp>
                </Mode>
                <Mode Name="LIN" RemoveCondition="($IpNumber=4)|($IpNumber=5)|($IpNumber=6)|($IpNumber=7)|($IpNumber=8)|STM32F030CCTx|STM32F030RCTx">
                    <SignalLogicalOp Name="AND">
                        <Signal Name="RX"/>
                        <Signal Name="TX"/>
                    </SignalLogicalOp>
                </Mode>
                <Mode Name="SmartCard" RemoveCondition="($IpNumber=4)|($IpNumber=5)|($IpNumber=6)|($IpNumber=7)|($IpNumber=8)|STM32F030CCTx|STM32F030RCTx">
                    <SignalLogicalOp Name="AND">
                        <Signal IOMode="AlternateFunctionOpenDrainAndPushPullDefaultOD" Name="TX"/>
                    </SignalLogicalOp>
                </Mode>
                <Mode Name="SmartCard_With_Clock" RemoveCondition="($IpNumber=4)|($IpNumber=5)|($IpNumber=6)|($IpNumber=7)|($IpNumber=8)|STM32F030CCTx|STM32F030RCTx" UserName="SmartCard with Card Clock">
                    <SignalLogicalOp Name="AND">
                        <Signal IOMode="AlternateFunctionOpenDrainAndPushPullDefaultOD" Name="TX"/>
                        <Signal Name="CK"/>
                    </SignalLogicalOp>
                </Mode>
                <Mode Name="ModbusCommunication" RemoveCondition="($IpNumber=4)|($IpNumber=5)|($IpNumber=6)|($IpNumber=7)|($IpNumber=8)|STM32F030CCTx|STM32F030RCTx" UserName="Modbus Communication">
                    <SignalLogicalOp Name="AND">
                        <Signal Name="TX"/>
                    </SignalLogicalOp>
                </Mode>
            </ModeLogicOperator>
        </Mode>
		
        <Mode Name="Hardware Flow Control (RS232)" RemoveCondition="($IpNumber=5)|($IpNumber=6)|($IpNumber=7)|($IpNumber=8)">
            <ModeLogicOperator Name="XOR">
                <Mode Name="CTS_Only" UserName="CTS Only">
                    <SignalLogicalOp Name="AND">
                        <Signal Name="CTS"/>
                    </SignalLogicalOp>
                    <Semaphore>$IpInstance_Clear</Semaphore>
                </Mode>
                <Mode Name="RTS_Only" UserName="RTS Only">
                    <SignalLogicalOp Name="AND">
                        <Signal Name="RTS"/>
                    </SignalLogicalOp>
                    <Semaphore>$IpInstance_Request</Semaphore>
                </Mode>
                <Mode Name="CTS_RTS" UserName="CTS/RTS">
                    <SignalLogicalOp Name="AND">
                        <Signal Name="CTS"/>
                        <Signal Name="RTS"/>
                    </SignalLogicalOp>
                    <Semaphore>$IpInstance_CTS_RTS</Semaphore>
                </Mode>
            </ModeLogicOperator>
            <Condition Diagnostic="Active only with Asynchronous Mode" Expression="$IpInstance_Asynchronous &amp; !$IpInstance_HardwareControl"/>
            <Semaphore>$IpInstance_FlowControl</Semaphore>
        </Mode>
        <!--
        <Mode Name = "SmartCard Clock">
                <ModeLogicOperator Name="OR">
                        <Mode Name="SmartCard_Clock" UserName="Clock for SmartCard">
                                <SignalLogicalOp Name="AND">
                                        <Signal Name="CK"/>
                                </SignalLogicalOp>
                        </Mode>
                </ModeLogicOperator>
                <Condition Expression="$IpInstance_SmartCard" Diagnostic="Active only with SmartCard Mode"/>
        </Mode>
        -->
		
        <Mode Name="Hardware Flow Control (RS485)">
            <ModeLogicOperator Name="XOR">
                <Mode Name="Hardware Flow Control (RS485)">
                    <SignalLogicalOp Name="AND">
                        <Signal Name="DE"/>
                    </SignalLogicalOp>
                </Mode>
            </ModeLogicOperator>
            <Condition Diagnostic="Active only with Asynchronous Mode" Expression="!$IpInstance_FlowControl &amp; $IpInstance_Asynchronous"/>
            <Semaphore>$IpInstance_HardwareControl</Semaphore>
        </Mode>
    </ModeLogicOperator>

    <!-- RefSignal for USART/UART/IRDA/SmartCard -->
    <RefSignal IOMode="AlternateFunctionPushPull" Name="CK"/>
    <RefSignal IOMode="AlternateFunctionPushPull" Name="CTS"/>
    <RefSignal IOMode="AlternateFunctionPushPull" Name="RTS"/>
    <RefSignal IOMode="AlternateFunctionPushPull" Name="DE"/>
    <RefSignal IOMode="AlternateFunctionOpenDrainAndPushPullDefaultPP" Name="RX"/>
    <RefSignal IOMode="AlternateFunctionOpenDrainAndPushPullDefaultPP" Name="TX"/>
    <Semaphore>$IpInstanceUsed_ForRCC</Semaphore>
</IP>
