<?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="V4.0" IPType="peripheral" IpGroup="Connectivity" Name="SPI" Version="MPxx_spi2s2_v1_0_Cube" ns0:schemaLocation="http://mcd.rou.st.com/modules.php?name=mcu ../../../../../../../doc/V4/Development/Specifications/db/IP_Modes.xsd">
  	<About>SPI: Serial Peripheral Interface</About>
	
	<!-- Litte Orca -->
	<!-- Generic RefParameters for SPI --> 
	<RefParameter Comment="Instance" DefaultValue="SPI$Index" Name="Instance" Type="" Visible="false"/>
	
	<!-- Virtual Mode Parameter, to define RefParameter in function of NSS -->
	<RefParameter Comment="" DefaultValue="VM_NSSSOFT" Group="Basic Parameters" Name="VirtualNSS" Type="list" Visible="false">
		<PossibleValue Comment="" Value="VM_NSSSOFT"/>
		<PossibleValue Comment="" Value="VM_NSSHARD"/>
	</RefParameter>
	
	<!-- Virtual Type Parameter, to define RefParameter in function of Master/Slave -->
	<RefParameter Comment="" DefaultValue="VM_MASTER" Group="Basic Parameters" Name="VirtualType" Type="list" Visible="false">
		<PossibleValue Comment="" Value="VM_MASTER"/>
		<PossibleValue Comment="" Value="VM_SLAVE"/>
	</RefParameter>
	
	<RefParameter Comment="Mode" DefaultValue="SPI_MODE_SLAVE" Group="Basic Parameters" Name="Mode" Type="list" Visible="false">
		<PossibleValue Comment="Slave" Value="SPI_MODE_SLAVE"/>
		<PossibleValue Comment="Master" Value="SPI_MODE_MASTER"/>
	</RefParameter>
	
	<RefParameter Comment="Direction" DefaultValue="SPI_DIRECTION_2LINES" Group="Basic Parameters" Name="Direction" Type="list" Visible="false">
		<PossibleValue Comment="2 Lines Unidirectionnal" Value="SPI_DIRECTION_2LINES"/>
		<PossibleValue Comment="2 Lines with Receive only" Value="SPI_DIRECTION_2LINES_RXONLY"/>
                <PossibleValue Comment="2 Lines with Transmit only" Value="SPI_DIRECTION_2LINES_TXONLY"/>
		<PossibleValue Comment="1 Line Bidirectionnal" Value="SPI_DIRECTION_1LINE"/>
	</RefParameter>
	
	<RefParameter Comment="Frame Format" DefaultValue="SPI_TIMODE_DISABLE" Group="Basic Parameters" Name="TIMode" Type="list">
		<PossibleValue Comment="Motorola" Value="SPI_TIMODE_DISABLE"/>
		<PossibleValue Comment="TI" Condition="!(VirtualNSS = VM_NSSHARD)" Diagnostic="Hardware NSS signal must be enabled first" Value="SPI_TIMODE_ENABLE"/>
	</RefParameter>
	
	
	<RefParameter Comment="Data Size" DefaultValue="SPI_DATASIZE_4BIT" Group="Basic Parameters" Name="DataSize" Type="list">
		<Condition Expression="$IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3" Diagnostic=""/>
		<PossibleValue Comment="4 Bits"  Semaphore="$IpInstance_DATASIZE_BYTE"     Value="SPI_DATASIZE_4BIT"/>
		<PossibleValue Comment="5 Bits"  Semaphore="$IpInstance_DATASIZE_BYTE"     Value="SPI_DATASIZE_5BIT"/>
		<PossibleValue Comment="6 Bits"  Semaphore="$IpInstance_DATASIZE_BYTE"     Value="SPI_DATASIZE_6BIT"/>
		<PossibleValue Comment="7 Bits"  Semaphore="$IpInstance_DATASIZE_BYTE"     Value="SPI_DATASIZE_7BIT"/>
		<PossibleValue Comment="8 Bits"  Semaphore="$IpInstance_DATASIZE_BYTE"     Value="SPI_DATASIZE_8BIT"/>
		<PossibleValue Comment="9 Bits"  Semaphore="$IpInstance_DATASIZE_HALFWORD" Value="SPI_DATASIZE_9BIT"/>
		<PossibleValue Comment="10 Bits" Semaphore="$IpInstance_DATASIZE_HALFWORD" Value="SPI_DATASIZE_10BIT"/>
		<PossibleValue Comment="11 Bits" Semaphore="$IpInstance_DATASIZE_HALFWORD" Value="SPI_DATASIZE_11BIT"/>
		<PossibleValue Comment="12 Bits" Semaphore="$IpInstance_DATASIZE_HALFWORD" Value="SPI_DATASIZE_12BIT"/>
		<PossibleValue Comment="13 Bits" Semaphore="$IpInstance_DATASIZE_HALFWORD" Value="SPI_DATASIZE_13BIT"/>
		<PossibleValue Comment="14 Bits" Semaphore="$IpInstance_DATASIZE_HALFWORD" Value="SPI_DATASIZE_14BIT"/>
		<PossibleValue Comment="15 Bits" Semaphore="$IpInstance_DATASIZE_HALFWORD" Value="SPI_DATASIZE_15BIT"/>
		<PossibleValue Comment="16 Bits" Semaphore="$IpInstance_DATASIZE_HALFWORD" Value="SPI_DATASIZE_16BIT"/>
	  	<PossibleValue Comment="17 Bits" Semaphore="$IpInstance_DATASIZE_WORD"     Value="SPI_DATASIZE_17BIT"/>
		<PossibleValue Comment="18 Bits" Semaphore="$IpInstance_DATASIZE_WORD"     Value="SPI_DATASIZE_18BIT"/>
		<PossibleValue Comment="19 Bits" Semaphore="$IpInstance_DATASIZE_WORD"     Value="SPI_DATASIZE_19BIT"/>
		<PossibleValue Comment="20 Bits" Semaphore="$IpInstance_DATASIZE_WORD"     Value="SPI_DATASIZE_20BIT"/>
		<PossibleValue Comment="21 Bits" Semaphore="$IpInstance_DATASIZE_WORD"     Value="SPI_DATASIZE_21BIT"/>
		<PossibleValue Comment="22 Bits" Semaphore="$IpInstance_DATASIZE_WORD"     Value="SPI_DATASIZE_22BIT"/>
		<PossibleValue Comment="23 Bits" Semaphore="$IpInstance_DATASIZE_WORD"     Value="SPI_DATASIZE_23BIT"/>
		<PossibleValue Comment="24 Bits" Semaphore="$IpInstance_DATASIZE_WORD"     Value="SPI_DATASIZE_24BIT"/>
		<PossibleValue Comment="25 Bits" Semaphore="$IpInstance_DATASIZE_WORD"     Value="SPI_DATASIZE_25BIT"/>
		<PossibleValue Comment="26 Bits" Semaphore="$IpInstance_DATASIZE_WORD"     Value="SPI_DATASIZE_26BIT"/>
		<PossibleValue Comment="27 Bits" Semaphore="$IpInstance_DATASIZE_WORD"     Value="SPI_DATASIZE_27BIT"/>
		<PossibleValue Comment="28 Bits" Semaphore="$IpInstance_DATASIZE_WORD"     Value="SPI_DATASIZE_28BIT"/>
		<PossibleValue Comment="29 Bits" Semaphore="$IpInstance_DATASIZE_WORD"     Value="SPI_DATASIZE_29BIT"/>
		<PossibleValue Comment="30 Bits" Semaphore="$IpInstance_DATASIZE_WORD"     Value="SPI_DATASIZE_30BIT"/>
		<PossibleValue Comment="31 Bits" Semaphore="$IpInstance_DATASIZE_WORD"     Value="SPI_DATASIZE_31BIT"/>
		<PossibleValue Comment="32 Bits" Semaphore="$IpInstance_DATASIZE_WORD"     Value="SPI_DATASIZE_32BIT"/>	
	</RefParameter>
	
	<RefParameter Comment="Data Size" DefaultValue="SPI_DATASIZE_4BIT" Group="Basic Parameters" Name="DataSize" Type="list">
		<PossibleValue Comment="4 Bits"  Semaphore="$IpInstance_DATASIZE_BYTE"     Value="SPI_DATASIZE_4BIT"/>
		<PossibleValue Comment="5 Bits"  Semaphore="$IpInstance_DATASIZE_BYTE"     Value="SPI_DATASIZE_5BIT"/>
		<PossibleValue Comment="6 Bits"  Semaphore="$IpInstance_DATASIZE_BYTE"     Value="SPI_DATASIZE_6BIT"/>
		<PossibleValue Comment="7 Bits"  Semaphore="$IpInstance_DATASIZE_BYTE"     Value="SPI_DATASIZE_7BIT"/>
		<PossibleValue Comment="8 Bits"  Semaphore="$IpInstance_DATASIZE_BYTE"     Value="SPI_DATASIZE_8BIT"/>
		<PossibleValue Comment="9 Bits"  Semaphore="$IpInstance_DATASIZE_HALFWORD" Value="SPI_DATASIZE_9BIT"/>
		<PossibleValue Comment="10 Bits" Semaphore="$IpInstance_DATASIZE_HALFWORD" Value="SPI_DATASIZE_10BIT"/>
		<PossibleValue Comment="11 Bits" Semaphore="$IpInstance_DATASIZE_HALFWORD" Value="SPI_DATASIZE_11BIT"/>
		<PossibleValue Comment="12 Bits" Semaphore="$IpInstance_DATASIZE_HALFWORD" Value="SPI_DATASIZE_12BIT"/>
		<PossibleValue Comment="13 Bits" Semaphore="$IpInstance_DATASIZE_HALFWORD" Value="SPI_DATASIZE_13BIT"/>
		<PossibleValue Comment="14 Bits" Semaphore="$IpInstance_DATASIZE_HALFWORD" Value="SPI_DATASIZE_14BIT"/>
		<PossibleValue Comment="15 Bits" Semaphore="$IpInstance_DATASIZE_HALFWORD" Value="SPI_DATASIZE_15BIT"/>
		<PossibleValue Comment="16 Bits" Semaphore="$IpInstance_DATASIZE_HALFWORD" Value="SPI_DATASIZE_16BIT"/>
	</RefParameter>
	
	<RefParameter Comment="First Bit" DefaultValue="SPI_FIRSTBIT_MSB" Group="Basic Parameters" Name="FirstBit" Type="list">
		<Condition Diagnostic="" Expression="TIMode = SPI_TIMODE_DISABLE"/>
		<PossibleValue Comment="MSB First" Value="SPI_FIRSTBIT_MSB"/>
		<PossibleValue Comment="LSB First" Value="SPI_FIRSTBIT_LSB"/>
	</RefParameter>
	<RefParameter Comment="First Bit" DefaultValue="null" Group="Basic Parameters" Max="1" Min="0" Name="FirstBit" Type="integer" Visible="false"/>
	
	<!-- Clock RefParameters for SPI --> 
	<RefParameter Comment="Prescaler (for Baud Rate)" DefaultValue="SPI_BAUDRATEPRESCALER_2" Group="Clock Parameters" Name="BaudRatePrescaler" Type="list">
		<Condition Diagnostic="" Expression="($IpInstance_Slave &amp; (TIMode = SPI_TIMODE_ENABLE)) | $IpInstance_Master"/>
		<PossibleValue Comment="2"   Value="SPI_BAUDRATEPRESCALER_2"/>
		<PossibleValue Comment="4"   Value="SPI_BAUDRATEPRESCALER_4"/>
		<PossibleValue Comment="8"   Value="SPI_BAUDRATEPRESCALER_8"/>
		<PossibleValue Comment="16"  Value="SPI_BAUDRATEPRESCALER_16"/>
		<PossibleValue Comment="32"  Value="SPI_BAUDRATEPRESCALER_32"/>
		<PossibleValue Comment="64"  Value="SPI_BAUDRATEPRESCALER_64"/>
		<PossibleValue Comment="128" Value="SPI_BAUDRATEPRESCALER_128"/>
		<PossibleValue Comment="256" Value="SPI_BAUDRATEPRESCALER_256"/>
	</RefParameter>
	<RefParameter Comment="Prescaler (for Baud Rate)" DefaultValue="null" Group="Clock Parameters" Name="BaudRatePrescaler" Type="list" Visible="false"/>
	
	<RefParameter Comment="Baud Rate" DefaultValue="8000000" Group="Clock Parameters" Max="50000000" Min="0" Name="CalculateBaudRate" Type="string">
		<Description>Calculated Baudrate value based on SPI Clock source and Prescaler</Description>
		<Condition Diagnostic="" Expression="(($IpInstance_Slave &amp; (TIMode = SPI_TIMODE_ENABLE)) | $IpInstance_Master)"/>
	</RefParameter>
	
	<RefParameter Comment="Baud Rate" DefaultValue="null" Group="Clock Parameters" Max="50000000" Min="0" Name="CalculateBaudRate" Type="string" Visible="false"/>
		
	<RefParameter Comment="Clock Polarity (CPOL)" DefaultValue="SPI_POLARITY_LOW" Group="Clock Parameters" Name="CLKPolarity" Type="list">
		<Condition Diagnostic="" Expression="TIMode = SPI_TIMODE_DISABLE"/>
		<PossibleValue Comment="Low"  Value="SPI_POLARITY_LOW"/>
		<PossibleValue Comment="High" Value="SPI_POLARITY_HIGH"/>
	</RefParameter>
	<RefParameter Comment="Clock Polarity" DefaultValue="null" Group="Clock Parameters" Max="1" Min="0" Name="CLKPolarity" Type="integer" Visible="false"/>
	
	<RefParameter Comment="Clock Phase (CPHA)" DefaultValue="SPI_PHASE_1EDGE" Group="Clock Parameters" Name="CLKPhase" Type="list">
		<Description>1 Edge means the first clock transition is the first data capture edge (value 0) AND 2 Edge means the second clock transition is the first data capture edge (value 1)</Description>
		<Condition Diagnostic="" Expression="TIMode = SPI_TIMODE_DISABLE"/>
		<PossibleValue Comment="1 Edge" Value="SPI_PHASE_1EDGE"/>
		<PossibleValue Comment="2 Edge" Value="SPI_PHASE_2EDGE"/>
	</RefParameter>
	<RefParameter Comment="Clock Phase" DefaultValue="null" Group="Clock Parameters" Max="1" Min="0" Name="CLKPhase" Type="integer" Visible="false"/>
		
	
	<!-- Advanced RefParameters for SPI --> 
	<RefParameter Comment="CRC Calculation" DefaultValue="SPI_CRCCALCULATION_DISABLE" Group="Advanced Parameters" Name="CRCCalculation" Type="list">
		<PossibleValue Comment="Disabled" Value="SPI_CRCCALCULATION_DISABLE"/>
		<PossibleValue Comment="Enabled"  Value="SPI_CRCCALCULATION_ENABLE"/>
	</RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_32BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 32 Bits"  Value="SPI_CRC_LENGTH_32BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_31BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 31 Bits"  Value="SPI_CRC_LENGTH_31BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_30BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 30 Bits"  Value="SPI_CRC_LENGTH_30BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_29BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 29 Bits"  Value="SPI_CRC_LENGTH_29BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_28BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 28 Bits"  Value="SPI_CRC_LENGTH_28BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_27BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 27 Bits"  Value="SPI_CRC_LENGTH_27BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_26BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 26 Bits"  Value="SPI_CRC_LENGTH_26BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_25BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 25 Bits"  Value="SPI_CRC_LENGTH_25BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_24BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 24 Bits"  Value="SPI_CRC_LENGTH_24BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_23BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 23 Bits"  Value="SPI_CRC_LENGTH_23BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_22BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 22 Bits"  Value="SPI_CRC_LENGTH_22BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_21BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 21 Bits"  Value="SPI_CRC_LENGTH_21BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_20BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 20 Bits"  Value="SPI_CRC_LENGTH_20BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_19BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 19 Bits"  Value="SPI_CRC_LENGTH_19BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_18BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 18 Bits"  Value="SPI_CRC_LENGTH_18BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_17BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 17 Bits"  Value="SPI_CRC_LENGTH_17BIT"/>
        </RefParameter>
	
        <RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_16BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 16 Bits"  Value="SPI_CRC_LENGTH_16BIT"/>
               <PossibleValue Comment="CRC 32 Bits"  Value="SPI_CRC_LENGTH_32BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_16BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 16 Bits"  Value="SPI_CRC_LENGTH_16BIT"/>
        </RefParameter>

        <RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_15BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 15 Bits"  Value="SPI_CRC_LENGTH_15BIT"/>
               <PossibleValue Comment="CRC 30 Bits"  Value="SPI_CRC_LENGTH_30BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_15BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 15 Bits"  Value="SPI_CRC_LENGTH_15BIT"/>
        </RefParameter>

        <RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_15BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 15 Bits"  Value="SPI_CRC_LENGTH_15BIT"/>
        </RefParameter>

        <RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_14BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 14 Bits"  Value="SPI_CRC_LENGTH_14BIT"/>
               <PossibleValue Comment="CRC 28 Bits"  Value="SPI_CRC_LENGTH_28BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_14BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 14 Bits"  Value="SPI_CRC_LENGTH_14BIT"/>
        </RefParameter>

        <RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_13BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 13 Bits"  Value="SPI_CRC_LENGTH_13BIT"/>
               <PossibleValue Comment="CRC 26 Bits"  Value="SPI_CRC_LENGTH_26BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_13BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 13 Bits"  Value="SPI_CRC_LENGTH_13BIT"/>
        </RefParameter>

        <RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_12BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 12 Bits"  Value="SPI_CRC_LENGTH_12BIT"/>
               <PossibleValue Comment="CRC 24 Bits"  Value="SPI_CRC_LENGTH_24BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_12BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 12 Bits"  Value="SPI_CRC_LENGTH_12BIT"/>
        </RefParameter>

        <RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_11BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 11 Bits"  Value="SPI_CRC_LENGTH_11BIT"/>
               <PossibleValue Comment="CRC 22 Bits"  Value="SPI_CRC_LENGTH_22BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_11BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 11 Bits"  Value="SPI_CRC_LENGTH_11BIT"/>
        </RefParameter>

        <RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_10BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 10 Bits"  Value="SPI_CRC_LENGTH_10BIT"/>
               <PossibleValue Comment="CRC 20 Bits"  Value="SPI_CRC_LENGTH_20BIT"/>
               <PossibleValue Comment="CRC 30 Bits"  Value="SPI_CRC_LENGTH_30BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_10BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 10 Bits"  Value="SPI_CRC_LENGTH_10BIT"/>
        </RefParameter>

        <RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_9BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 9 Bits"  Value="SPI_CRC_LENGTH_9BIT"/>
               <PossibleValue Comment="CRC 18 Bits" Value="SPI_CRC_LENGTH_18BIT"/>
               <PossibleValue Comment="CRC 27 Bits" Value="SPI_CRC_LENGTH_27BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_9BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 9 Bits"  Value="SPI_CRC_LENGTH_9BIT"/>
        </RefParameter>

        <RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_8BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 8 Bits"  Value="SPI_CRC_LENGTH_8BIT"/>
               <PossibleValue Comment="CRC 16 Bits" Value="SPI_CRC_LENGTH_16BIT"/>
               <PossibleValue Comment="CRC 24 Bits" Value="SPI_CRC_LENGTH_24BIT"/>
               <PossibleValue Comment="CRC 32 Bits" Value="SPI_CRC_LENGTH_32BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_8BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 8 Bits"  Value="SPI_CRC_LENGTH_8BIT"/>
               <PossibleValue Comment="CRC 16 Bits" Value="SPI_CRC_LENGTH_16BIT"/>
        </RefParameter>

        <RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_7BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 7 Bits" Value="SPI_CRC_LENGTH_7BIT"/>
               <PossibleValue Comment="CRC 14 Bits" Value="SPI_CRC_LENGTH_14BIT"/>
               <PossibleValue Comment="CRC 21 Bits" Value="SPI_CRC_LENGTH_21BIT"/>
               <PossibleValue Comment="CRC 28 Bits" Value="SPI_CRC_LENGTH_28BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_7BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 7 Bits" Value="SPI_CRC_LENGTH_7BIT"/>
               <PossibleValue Comment="CRC 14 Bits" Value="SPI_CRC_LENGTH_14BIT"/>
        </RefParameter>

        <RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_6BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 6 Bits" Value="SPI_CRC_LENGTH_6BIT"/>
               <PossibleValue Comment="CRC 12 Bits" Value="SPI_CRC_LENGTH_12BIT"/>
               <PossibleValue Comment="CRC 18 Bits" Value="SPI_CRC_LENGTH_18BIT"/>
               <PossibleValue Comment="CRC 24 Bits" Value="SPI_CRC_LENGTH_24BIT"/>
               <PossibleValue Comment="CRC 30 Bits" Value="SPI_CRC_LENGTH_30BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_6BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 6 Bits" Value="SPI_CRC_LENGTH_6BIT"/>
               <PossibleValue Comment="CRC 12 Bits" Value="SPI_CRC_LENGTH_12BIT"/>
        </RefParameter>

        <RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_5BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 5 Bits"  Value="SPI_CRC_LENGTH_5BIT"/>
               <PossibleValue Comment="CRC 10 Bits" Value="SPI_CRC_LENGTH_10BIT"/>
               <PossibleValue Comment="CRC 15 Bits" Value="SPI_CRC_LENGTH_15BIT"/>
               <PossibleValue Comment="CRC 20 Bits" Value="SPI_CRC_LENGTH_20BIT"/>
               <PossibleValue Comment="CRC 25 Bits" Value="SPI_CRC_LENGTH_25BIT"/>
               <PossibleValue Comment="CRC 30 Bits" Value="SPI_CRC_LENGTH_30BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_5BIT)"/>
               <PossibleValue Comment="Aligned with the data size" Value="SPI_CRC_LENGTH_DATASIZE"/>
               <PossibleValue Comment="CRC 5 Bits"  Value="SPI_CRC_LENGTH_5BIT"/>
               <PossibleValue Comment="CRC 10 Bits" Value="SPI_CRC_LENGTH_10BIT"/>
               <PossibleValue Comment="CRC 15 Bits" Value="SPI_CRC_LENGTH_15BIT"/>
        </RefParameter>

        <RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_4BIT)"/>
               <PossibleValue Comment="CRC 8 Bits"  Value="SPI_CRC_LENGTH_8BIT"/>
               <PossibleValue Comment="CRC 12 Bits" Value="SPI_CRC_LENGTH_12BIT"/>
               <PossibleValue Comment="CRC 16 Bits" Value="SPI_CRC_LENGTH_16BIT"/>
               <PossibleValue Comment="CRC 20 Bits" Value="SPI_CRC_LENGTH_20BIT"/>
               <PossibleValue Comment="CRC 24 Bits" Value="SPI_CRC_LENGTH_24BIT"/>
               <PossibleValue Comment="CRC 28 Bits" Value="SPI_CRC_LENGTH_28BIT"/>
               <PossibleValue Comment="CRC 32 Bits" Value="SPI_CRC_LENGTH_32BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="SPI_CRC_LENGTH_DATASIZE" Group="Advanced Parameters" Name="CRCLength" Type="list">
               <Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6) &amp; (CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_4BIT)"/>
               <PossibleValue Comment="CRC 8 Bits"  Value="SPI_CRC_LENGTH_8BIT"/>
               <PossibleValue Comment="CRC 12 Bits" Value="SPI_CRC_LENGTH_12BIT"/>
               <PossibleValue Comment="CRC 16 Bits" Value="SPI_CRC_LENGTH_16BIT"/>
        </RefParameter>

	<RefParameter Comment="CRC Length" DefaultValue="null" Group="Advanced Parameters" Name="CRCLength" Type="list" Visible="false"/>

	<!-- SPI 1/2/3 (32bits) | Data Size 4bits, CRC Polynomial 5bits : bit[4]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x10:0xFFFFFFFF]" DefaultValue="0x10" Group="Advanced Parameters" Min="0x10" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_4BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 5bits, CRC Polynomial 6bits : bit[5]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x20:0xFFFFFFFF]" DefaultValue="0x20" Group="Advanced Parameters" Min="0x20" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_5BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 6bits, CRC Polynomial 7bits : bit[6]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x40:0xFFFFFFFF]" DefaultValue="0x40" Group="Advanced Parameters" Min="0x40" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_6BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 7bits, CRC Polynomial 8bits : bit[7]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x80:0xFFFFFFFF]" DefaultValue="0x80" Group="Advanced Parameters" Min="0x80" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_7BIT))"/>
	</RefParameter>
	
	<!-- SPI 1/2/3 (32bits) | Data Size 8bits, CRC Polynomial 9bits : bit[8]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x100:0xFFFFFFFF]" DefaultValue="0x107" Group="Advanced Parameters" Min="0x100" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_8BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 9bits, CRC Polynomial 10bits : bit[9]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x200:0xFFFFFFFF]" DefaultValue="0x200" Group="Advanced Parameters" Min="0x200" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_9BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 10bits, CRC Polynomial 11bits : bit[10]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x400:0xFFFFFFFF]" DefaultValue="0x400" Group="Advanced Parameters" Min="0x400" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_10BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 11bits, CRC Polynomial 12bits : bit[11]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x800:0xFFFFFFFF]" DefaultValue="0x800" Group="Advanced Parameters" Min="0x800" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_11BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 12bits, CRC Polynomial 13bits : bit[12]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x1000:0xFFFFFFFF]" DefaultValue="0x1000" Group="Advanced Parameters" Min="0x1000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_12BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 13bits, CRC Polynomial 14bits : bit[13]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x2000:0xFFFFFFFF]" DefaultValue="0x2000" Group="Advanced Parameters" Min="0x2000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_13BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 14bits, CRC Polynomial 15bits : bit[14]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x4000:0xFFFFFFFF]" DefaultValue="0x4000" Group="Advanced Parameters" Min="0x4000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_14BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 15bits, CRC Polynomial 16bits : bit[15]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x8000:0xFFFFFFFF]" DefaultValue="0x8000" Group="Advanced Parameters" Min="0x8000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_15BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 16bits, CRC Polynomial 17bits : bit[16]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x10000:0xFFFFFFFF]" DefaultValue="0x10000" Group="Advanced Parameters" Min="0x10000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_16BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 17bits, CRC Polynomial 18bits : bit[17]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x20000:0xFFFFFFFF]" DefaultValue="0x20000" Group="Advanced Parameters" Min="0x20000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_17BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 18bits, CRC Polynomial 19bits : bit[18]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x40000:0xFFFFFFFF]" DefaultValue="0x40000" Group="Advanced Parameters" Min="0x40000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_18BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 19bits, CRC Polynomial 20bits : bit[19]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x80000:0xFFFFFFFF]" DefaultValue="0x80000" Group="Advanced Parameters" Min="0x80000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_19BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 20bits, CRC Polynomial 21bits : bit[20]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x100000:0xFFFFFFFF]" DefaultValue="0x100000" Group="Advanced Parameters" Min="0x100000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_20BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 21bits, CRC Polynomial 22bits : bit[21]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x200000:0xFFFFFFFF]" DefaultValue="0x200000" Group="Advanced Parameters" Min="0x200000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_21BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 22bits, CRC Polynomial 23bits : bit[22]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x400000:0xFFFFFFFF]" DefaultValue="0x400000" Group="Advanced Parameters" Min="0x400000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_22BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 23bits, CRC Polynomial 24bits : bit[23]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x800000:0xFFFFFFFF]" DefaultValue="0x800000" Group="Advanced Parameters" Min="0x800000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_23BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 24bits, CRC Polynomial 25bits : bit[24]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x1000000:0xFFFFFFFF]" DefaultValue="0x1000000" Group="Advanced Parameters" Min="0x1000000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_24BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 25bits, CRC Polynomial 26bits : bit[25]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x2000000:0xFFFFFFFF]" DefaultValue="0x2000000" Group="Advanced Parameters" Min="0x2000000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_25BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 26bits, CRC Polynomial 27bits : bit[26]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x4000000:0xFFFFFFFF]" DefaultValue="0x4000000" Group="Advanced Parameters" Min="0x4000000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_26BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 27bits, CRC Polynomial 28bits : bit[27]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x8000000:0xFFFFFFFF]" DefaultValue="0x8000000" Group="Advanced Parameters" Min="0x8000000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_27BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 28bits, CRC Polynomial 29bits : bit[28]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x10000000:0xFFFFFFFF]" DefaultValue="0x10000000" Group="Advanced Parameters" Min="0x10000000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_28BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 29bits, CRC Polynomial 30bits : bit[29]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x20000000:0xFFFFFFFF]" DefaultValue="0x20000000" Group="Advanced Parameters" Min="0x20000000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_29BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 30bits, CRC Polynomial 31bits : bit[30]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x40000000:0xFFFFFFFF]" DefaultValue="0x40000000" Group="Advanced Parameters" Min="0x40000000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_30BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 31bits, CRC Polynomial 32bits : bit[31]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x80000000:0xFFFFFFFF]" DefaultValue="0x80000000" Group="Advanced Parameters" Min="0x80000000" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_31BIT))"/>
	</RefParameter>

	<!-- SPI 1/2/3 (32bits) | Data Size 32bits, CRC Polynomial 33 bits (CRC33_17 register set at initialization) -->
	<RefParameter Comment="CRC Polynomial [0x0:0xFFFFFFFF]" DefaultValue="0x0" Group="Advanced Parameters" Min="0x0" Max="0xFFFFFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_32BIT))"/>
	</RefParameter>

	<!-- SPI 4/5/6 (16bits) | Data Size 4bits, CRC Polynomial 5bits : bit[4]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x10:0xFFFF]" DefaultValue="0x10" Group="Advanced Parameters" Min="0x10" Max="0xFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_4BIT))"/>
	</RefParameter>

	<!-- SPI 4/5/6 (16bits) | Data Size 5bits, CRC Polynomial 6bits : bit[5]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x20:0xFFFF]" DefaultValue="0x20" Group="Advanced Parameters" Min="0x20" Max="0xFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_5BIT))"/>
	</RefParameter>

	<!-- SPI 4/5/6 (16bits) | Data Size 6bits, CRC Polynomial 7bits : bit[6]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x40:0xFFFF]" DefaultValue="0x40" Group="Advanced Parameters" Min="0x40" Max="0xFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_6BIT))"/>
	</RefParameter>

	<!-- SPI 4/5/6 (16bits) | Data Size 7bits, CRC Polynomial 8bits : bit[7]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x80:0xFFFF]" DefaultValue="0x80" Group="Advanced Parameters" Min="0x80" Max="0xFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_7BIT))"/>
	</RefParameter>
	
	<!-- SPI 4/5/6 (16bits) | Data Size 8bits, CRC Polynomial 9bits : bit[8]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x100:0xFFFF]" DefaultValue="0x107" Group="Advanced Parameters" Min="0x100" Max="0xFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_8BIT))"/>
	</RefParameter>

	<!-- SPI 4/5/6 (16bits) | Data Size 9bits, CRC Polynomial 10bits : bit[9]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x200:0xFFFF]" DefaultValue="0x200" Group="Advanced Parameters" Min="0x200" Max="0xFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_9BIT))"/>
	</RefParameter>

	<!-- SPI 4/5/6 (16bits) | Data Size 10bits, CRC Polynomial 11bits : bit[10]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x400:0xFFFF]" DefaultValue="0x400" Group="Advanced Parameters" Min="0x400" Max="0xFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_10BIT))"/>
	</RefParameter>

	<!-- SPI 4/5/6 (16bits) | Data Size 11bits, CRC Polynomial 12bits : bit[11]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x800:0xFFFF]" DefaultValue="0x800" Group="Advanced Parameters" Min="0x800" Max="0xFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_11BIT))"/>
	</RefParameter>

	<!-- SPI 4/5/6 (16bits) | Data Size 12bits, CRC Polynomial 13bits : bit[12]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x1000:0xFFFF]" DefaultValue="0x1000" Group="Advanced Parameters" Min="0x1000" Max="0xFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_12BIT))"/>
	</RefParameter>

	<!-- SPI 4/5/6 (16bits) | Data Size 13bits, CRC Polynomial 14bits : bit[13]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x2000:0xFFFF]" DefaultValue="0x2000" Group="Advanced Parameters" Min="0x2000" Max="0xFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_13BIT))"/>
	</RefParameter>

	<!-- SPI 4/5/6 (16bits) | Data Size 14bits, CRC Polynomial 15bits : bit[14]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x4000:0xFFFF]" DefaultValue="0x4000" Group="Advanced Parameters" Min="0x4000" Max="0xFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_14BIT))"/>
	</RefParameter>

	<!-- SPI 4/5/6 (16bits) | Data Size 15bits, CRC Polynomial 16bits : bit[15]:1 --> 
	<RefParameter Comment="CRC Polynomial [0x8000:0xFFFF]" DefaultValue="0x8000" Group="Advanced Parameters" Min="0x8000" Max="0xFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_15BIT))"/>
	</RefParameter>

	<!-- SPI 4/5/6 (16bits) | Data Size 16bits, CRC Polynomial 17bits (CRC33_17 register set at initialization) --> 
	<RefParameter Comment="CRC Polynomial [0x0:0xFFFF]" DefaultValue="0x0" Group="Advanced Parameters" Min="0x0" Max="0xFFFF" Name="CRCPolynomial" Type="integer">
		<Condition Diagnostic="" Expression="($IpNumber = 4 | $IpNumber = 5 | $IpNumber = 6 ) &amp; ((CRCCalculation = SPI_CRCCALCULATION_ENABLE) &amp; (DataSize = SPI_DATASIZE_16BIT))"/>
	</RefParameter>

	<RefParameter Comment="CRC Polynomial" DefaultValue="0x0" Group="Advanced Parameters" Min="" Max="" Name="CRCPolynomial" Type="integer" Visible="false"/>

	<RefParameter Comment="NSSP Mode" DefaultValue="SPI_NSS_PULSE_ENABLE" Group="Advanced Parameters" Name="NSSPMode" Type="list">
	 <Condition Diagnostic="" Expression="$IpInstance_Master &amp; (TIMode = SPI_TIMODE_DISABLE) &amp; (CLKPhase = SPI_PHASE_1EDGE) | (CLKPhase = SPI_PHASE_2EDGE)"/>
	 	<PossibleValue Comment="Enabled" Value="SPI_NSS_PULSE_ENABLE"/>
		<PossibleValue Comment="Disabled" Value="SPI_NSS_PULSE_DISABLE"/>
	</RefParameter>
	<RefParameter Comment="NSSP Mode" DefaultValue="SPI_NSS_PULSE_DISABLE" Name="NSSPMode" Type="list" Visible="false">
    	<PossibleValue Comment="Disabled" Value="SPI_NSS_PULSE_DISABLE"/>
    </RefParameter>
	
	<RefParameter Comment="NSS Signal Type" DefaultValue="SPI_NSS_HARD_OUTPUT" Group="Advanced Parameters" Name="NSS" Type="list">
		<Condition Diagnostic="" Expression="$IpInstance_NSSHARD_Output"/>
		<PossibleValue Comment="Output Hardware" Value="SPI_NSS_HARD_OUTPUT"/>
	</RefParameter>
	<RefParameter Comment="NSS Signal Type" DefaultValue="SPI_NSS_HARD_INPUT" Group="Advanced Parameters" Name="NSS" Type="list">
		<Condition Diagnostic="" Expression="$IpInstance_NSSHARD_Input"/>
		<PossibleValue Comment="Input Hardware" Value="SPI_NSS_HARD_INPUT"/>
	</RefParameter>
        <RefParameter Comment="NSS Signal Type" DefaultValue="SPI_NSS_SOFT" Group="Advanced Parameters" Name="NSS" Type="list">
		<PossibleValue Comment="Software" Value="SPI_NSS_SOFT"/>
	</RefParameter>
	<RefParameter Comment="NSS Signal Type" DefaultValue="SPI_NSS_SOFT" Group="Advanced Parameters" Name="NSS" Type="list" Visible="false">
            <PossibleValue Comment="Software" Value="SPI_NSS_SOFT"/>
    </RefParameter>
    
	<RefParameter Comment="Fifo Threshold" DefaultValue="SPI_FIFO_THRESHOLD_01DATA" Name="FifoThreshold" Type="list">
		<Condition Expression="$IpNumber = 1 | $IpNumber = 2 | $IpNumber = 3" Diagnostic=""/>
		<PossibleValue Comment="Fifo Threshold 01 Data" Value="SPI_FIFO_THRESHOLD_01DATA"/>
		<PossibleValue Comment="Fifo Threshold 02 Data" Value="SPI_FIFO_THRESHOLD_02DATA"/>
		<PossibleValue Comment="Fifo Threshold 03 Data" Value="SPI_FIFO_THRESHOLD_03DATA"/>
		<PossibleValue Comment="Fifo Threshold 04 Data" Value="SPI_FIFO_THRESHOLD_04DATA"/>
		<PossibleValue Comment="Fifo Threshold 05 Data" Value="SPI_FIFO_THRESHOLD_05DATA"/>
		<PossibleValue Comment="Fifo Threshold 06 Data" Value="SPI_FIFO_THRESHOLD_06DATA"/>
		<PossibleValue Comment="Fifo Threshold 07 Data" Value="SPI_FIFO_THRESHOLD_07DATA"/>
		<PossibleValue Comment="Fifo Threshold 08 Data" Value="SPI_FIFO_THRESHOLD_08DATA"/>
		<PossibleValue Comment="Fifo Threshold 09 Data" Value="SPI_FIFO_THRESHOLD_09DATA"/>
		<PossibleValue Comment="Fifo Threshold 10 Data" Value="SPI_FIFO_THRESHOLD_10DATA"/>
		<PossibleValue Comment="Fifo Threshold 11 Data" Value="SPI_FIFO_THRESHOLD_11DATA"/>
		<PossibleValue Comment="Fifo Threshold 12 Data" Value="SPI_FIFO_THRESHOLD_12DATA"/>
		<PossibleValue Comment="Fifo Threshold 13 Data" Value="SPI_FIFO_THRESHOLD_13DATA"/>
		<PossibleValue Comment="Fifo Threshold 14 Data" Value="SPI_FIFO_THRESHOLD_14DATA"/>
		<PossibleValue Comment="Fifo Threshold 15 Data" Value="SPI_FIFO_THRESHOLD_15DATA"/>
		<PossibleValue Comment="Fifo Threshold 16 Data" Value="SPI_FIFO_THRESHOLD_16DATA"/>
	</RefParameter>
        
	<RefParameter Comment="Fifo Threshold" DefaultValue="SPI_FIFO_THRESHOLD_01DATA" Name="FifoThreshold" Type="list">
	    <PossibleValue Comment="Fifo Threshold 01 Data" Value="SPI_FIFO_THRESHOLD_01DATA"/>
	    <PossibleValue Comment="Fifo Threshold 02 Data" Value="SPI_FIFO_THRESHOLD_02DATA"/>
	    <PossibleValue Comment="Fifo Threshold 03 Data" Value="SPI_FIFO_THRESHOLD_03DATA"/>
	    <PossibleValue Comment="Fifo Threshold 04 Data" Value="SPI_FIFO_THRESHOLD_04DATA"/>
	    <PossibleValue Comment="Fifo Threshold 05 Data" Value="SPI_FIFO_THRESHOLD_05DATA"/>
	    <PossibleValue Comment="Fifo Threshold 06 Data" Value="SPI_FIFO_THRESHOLD_06DATA"/>
	    <PossibleValue Comment="Fifo Threshold 07 Data" Value="SPI_FIFO_THRESHOLD_07DATA"/>
	    <PossibleValue Comment="Fifo Threshold 08 Data" Value="SPI_FIFO_THRESHOLD_08DATA"/>
	</RefParameter>

	<RefParameter Comment="Tx Crc Initialization Pattern" DefaultValue="SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN" Name="TxCRCInitializationPattern" Type="list">
	    <PossibleValue Comment="All Zero Pattern" Value="SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN"/>
	    <PossibleValue Comment="All One Pattern"  Value="SPI_CRC_INITIALIZATION_ALL_ONE_PATTERN"/>
	</RefParameter>

        <RefParameter Comment="Rx Crc Initialization Pattern" DefaultValue="SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN" Name="RxCRCInitializationPattern" Type="list">
            <PossibleValue Comment="All Zero Pattern" Value="SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN"/>
            <PossibleValue Comment="All One Pattern"  Value="SPI_CRC_INITIALIZATION_ALL_ONE_PATTERN"/>
        </RefParameter>

        <RefParameter Comment="Nss Polarity" DefaultValue="SPI_NSS_POLARITY_LOW" Name="NSSPolarity" Type="list">
            <PossibleValue Comment="Nss Polarity Low" Value="SPI_NSS_POLARITY_LOW"/>
            <PossibleValue Comment="Nss Polarity High" Value="SPI_NSS_POLARITY_HIGH"/>
        </RefParameter>

        <RefParameter Comment="Master Ss Idleness" DefaultValue="SPI_MASTER_SS_IDLENESS_00CYCLE" Name="MasterSSIdleness" Type="list">
            <Description>Specifies an extra delay, expressed in number of SPI clock cycle periods, inserted additionally between active edge of SS and first data transaction start in master mode.</Description>
            <Condition Diagnostic="" Expression="TIMode = SPI_TIMODE_DISABLE"/>
            <PossibleValue Comment="00 Cycle" Value="SPI_MASTER_SS_IDLENESS_00CYCLE"/>
            <PossibleValue Comment="01 Cycle" Value="SPI_MASTER_SS_IDLENESS_01CYCLE"/>
            <PossibleValue Comment="02 Cycle" Value="SPI_MASTER_SS_IDLENESS_02CYCLE"/>
            <PossibleValue Comment="03 Cycle" Value="SPI_MASTER_SS_IDLENESS_03CYCLE"/>
            <PossibleValue Comment="04 Cycle" Value="SPI_MASTER_SS_IDLENESS_04CYCLE"/>
            <PossibleValue Comment="05 Cycle" Value="SPI_MASTER_SS_IDLENESS_05CYCLE"/>
            <PossibleValue Comment="06 Cycle" Value="SPI_MASTER_SS_IDLENESS_06CYCLE"/>
            <PossibleValue Comment="07 Cycle" Value="SPI_MASTER_SS_IDLENESS_07CYCLE"/>
            <PossibleValue Comment="08 Cycle" Value="SPI_MASTER_SS_IDLENESS_08CYCLE"/>
            <PossibleValue Comment="09 Cycle" Value="SPI_MASTER_SS_IDLENESS_09CYCLE"/>
            <PossibleValue Comment="10 Cycle" Value="SPI_MASTER_SS_IDLENESS_10CYCLE"/>
            <PossibleValue Comment="11 Cycle" Value="SPI_MASTER_SS_IDLENESS_11CYCLE"/>
            <PossibleValue Comment="12 Cycle" Value="SPI_MASTER_SS_IDLENESS_12CYCLE"/>
            <PossibleValue Comment="13 Cycle" Value="SPI_MASTER_SS_IDLENESS_13CYCLE"/>
            <PossibleValue Comment="14 Cycle" Value="SPI_MASTER_SS_IDLENESS_14CYCLE"/>
            <PossibleValue Comment="15 Cycle" Value="SPI_MASTER_SS_IDLENESS_15CYCLE"/>
        </RefParameter>

        <RefParameter Comment="Master Inter Data Idleness" DefaultValue="SPI_MASTER_INTERDATA_IDLENESS_00CYCLE" Name="MasterInterDataIdleness" Type="list">
            <Description>Specifies minimum time delay (expressed in SPI clock cycles periods) inserted between two consecutive data frames in master mode This parameter can be a value of SPI Master Inter-Data Ideleness </Description>
            <Condition Diagnostic="" Expression="TIMode = SPI_TIMODE_DISABLE"/>
            <PossibleValue Comment="00 Cycle" Value="SPI_MASTER_INTERDATA_IDLENESS_00CYCLE"/>
            <PossibleValue Comment="01 Cycle" Value="SPI_MASTER_INTERDATA_IDLENESS_01CYCLE"/>
            <PossibleValue Comment="02 Cycle" Value="SPI_MASTER_INTERDATA_IDLENESS_02CYCLE"/>
            <PossibleValue Comment="03 Cycle" Value="SPI_MASTER_INTERDATA_IDLENESS_03CYCLE"/>
            <PossibleValue Comment="04 Cycle" Value="SPI_MASTER_INTERDATA_IDLENESS_04CYCLE"/>
            <PossibleValue Comment="05 Cycle" Value="SPI_MASTER_INTERDATA_IDLENESS_05CYCLE"/>
            <PossibleValue Comment="06 Cycle" Value="SPI_MASTER_INTERDATA_IDLENESS_06CYCLE"/>
            <PossibleValue Comment="07 Cycle" Value="SPI_MASTER_INTERDATA_IDLENESS_07CYCLE"/>
            <PossibleValue Comment="08 Cycle" Value="SPI_MASTER_INTERDATA_IDLENESS_08CYCLE"/>
            <PossibleValue Comment="09 Cycle" Value="SPI_MASTER_INTERDATA_IDLENESS_09CYCLE"/>
            <PossibleValue Comment="10 Cycle" Value="SPI_MASTER_INTERDATA_IDLENESS_10CYCLE"/>
            <PossibleValue Comment="11 Cycle" Value="SPI_MASTER_INTERDATA_IDLENESS_11CYCLE"/>
            <PossibleValue Comment="12 Cycle" Value="SPI_MASTER_INTERDATA_IDLENESS_12CYCLE"/>
            <PossibleValue Comment="13 Cycle" Value="SPI_MASTER_INTERDATA_IDLENESS_13CYCLE"/>
            <PossibleValue Comment="14 Cycle" Value="SPI_MASTER_INTERDATA_IDLENESS_14CYCLE"/>
            <PossibleValue Comment="15 Cycle" Value="SPI_MASTER_INTERDATA_IDLENESS_15CYCLE"/>
        </RefParameter>

        <RefParameter Comment="Master Receiver Auto Susp" DefaultValue="SPI_MASTER_RX_AUTOSUSP_DISABLE" Name="MasterReceiverAutoSusp" Type="list">
            <Description>Control continuous SPI transfer in master receiver mode and automatic management in order to avoid overrun condition.</Description>
            <PossibleValue Comment="Disable" Value="SPI_MASTER_RX_AUTOSUSP_DISABLE"/>
            <PossibleValue Comment="Enable" Value="SPI_MASTER_RX_AUTOSUSP_ENABLE"/>
        </RefParameter>

        <RefParameter Comment="Master Keep Io State" DefaultValue="SPI_MASTER_KEEP_IO_STATE_DISABLE" Name="MasterKeepIOState" Type="list">
            <Description>Control of Alternate function GPIOs state This parameter can be a value of Keep IO State </Description>
            <PossibleValue Comment="Master Keep Io State Disable" Value="SPI_MASTER_KEEP_IO_STATE_DISABLE"/>
            <PossibleValue Comment="Master Keep Io State Enable" Value="SPI_MASTER_KEEP_IO_STATE_ENABLE"/>
        </RefParameter>
        
         <RefParameter Comment="IO Swap" DefaultValue="SPI_IO_SWAP_DISABLE" Name="IOSwap" Type="list">
            <Description>Invert MISO/MOSI alternate functions.</Description>
            <PossibleValue Comment="Disabled" Value="SPI_IO_SWAP_DISABLE"/>
            <PossibleValue Comment="Enabled" Value="SPI_IO_SWAP_ENABLE"/>
        </RefParameter>
        
	<!-- RefModes for Hardware NSS -->
	<RefMode HalMode="SPI" Name="NSS_Signal_Hard_Input">
		<Parameter Name="VirtualNSS">
			<PossibleValue>VM_NSSHARD</PossibleValue>
		</Parameter>
	</RefMode>
        <RefMode HalMode="SPI" Name="NSS_Signal_Hard_Output">
		<Parameter Name="VirtualNSS">
			<PossibleValue>VM_NSSHARD</PossibleValue>
		</Parameter>
	</RefMode>

	<!-- RefModes for 'Full-Duplex Master' SPI -->
	<RefMode Name="Full_Duplex_Master">
		<ConfigForMode>Spi_Init</ConfigForMode>
		<!-- Selected Mode Fixed Parameters -->
		<Parameter Name="VirtualType">
			<PossibleValue>VM_MASTER</PossibleValue>
		</Parameter>
		<Parameter Name="Mode">
			<PossibleValue>SPI_MODE_MASTER</PossibleValue>
		</Parameter>
		<Parameter Name="Direction">
			<PossibleValue>SPI_DIRECTION_2LINES</PossibleValue>
		</Parameter>
		<!-- Selected Mode User Generic Parameters -->
		<Parameter Name="TIMode"/>
		<Parameter Name="DataSize"/>
		<Parameter Name="FirstBit"/>
		<!-- Selected Mode User Clock Parameters -->
		<Parameter Name="BaudRatePrescaler"/>
		<Parameter Name="CalculateBaudRate"/>
		<Parameter Name="CLKPolarity"/>
		<Parameter Name="CLKPhase"/>
		<!-- Selected Mode User Advanced Parameters -->
		<Parameter Name="CRCCalculation"/>
		<Parameter Name="CRCLength"/>
		<Parameter Name="CRCPolynomial"/>
		<Parameter Name="NSSPMode"/> 
		<Parameter Name="NSS"/>
                <Parameter Name="FifoThreshold"/>
                <Parameter Name="TxCRCInitializationPattern"/>
                <Parameter Name="RxCRCInitializationPattern"/>
                <Parameter Name="NSSPolarity"/>
                <Parameter Name="MasterSSIdleness"/>
                <Parameter Name="MasterInterDataIdleness"/>
                <Parameter Name="MasterReceiverAutoSusp"/>
                <Parameter Name="MasterKeepIOState"/>
                <Parameter Name="IOSwap"/>
	</RefMode>
	
	<!-- RefModes for 'Full-Duplex Slave' SPI -->
	<RefMode Name="Full_Duplex_Slave">
		<ConfigForMode>Spi_Init</ConfigForMode>
		<!-- Selected Mode Fixed Parameters -->
		<Parameter Name="VirtualType">
			<PossibleValue>VM_SLAVE</PossibleValue>
		</Parameter>
		<Parameter Name="Mode">
			<PossibleValue>SPI_MODE_SLAVE</PossibleValue>
		</Parameter>
		<Parameter Name="Direction">
			<PossibleValue>SPI_DIRECTION_2LINES</PossibleValue>
		</Parameter>
		<!-- Selected Mode User Generic Parameters -->
		<Parameter Name="TIMode"/>
		<Parameter Name="DataSize"/>
		<Parameter Name="FirstBit"/>
		<!-- Selected Mode User Clock Parameters -->
		<Parameter Name="BaudRatePrescaler"/>
		<Parameter Name="CalculateBaudRate"/>
		<Parameter Name="CLKPolarity"/>
		<Parameter Name="CLKPhase"/>
		<!-- Selected Mode User Advanced Parameters -->
		<Parameter Name="CRCCalculation"/>
		<Parameter Name="CRCLength"/>
		<Parameter Name="CRCPolynomial"/>
		<Parameter Name="NSSPMode"/>
		<Parameter Name="NSS"/>
                <Parameter Name="FifoThreshold"/>
                <Parameter Name="TxCRCInitializationPattern"/>
                <Parameter Name="RxCRCInitializationPattern"/>
                <Parameter Name="NSSPolarity"/>
                <Parameter Name="MasterSSIdleness"/>
                <Parameter Name="MasterInterDataIdleness"/>
                <Parameter Name="MasterReceiverAutoSusp"/>
                <Parameter Name="MasterKeepIOState"/>
                <Parameter Name="IOSwap"/>
	</RefMode>
	
	<!-- RefModes for 'Half-Duplex Master' SPI -->
	<RefMode Name="Simplex_Bidirectional_Master">
		<ConfigForMode>Spi_Init</ConfigForMode>
		<!-- Selected Mode Fixed Parameters -->
		<Parameter Name="VirtualType">
			<PossibleValue>VM_MASTER</PossibleValue>
		</Parameter>
		<Parameter Name="Mode">
			<PossibleValue>SPI_MODE_MASTER</PossibleValue>
		</Parameter>
		<Parameter Name="Direction">
			<PossibleValue>SPI_DIRECTION_1LINE</PossibleValue>
		</Parameter>
		<!-- Selected Mode User Generic Parameters -->
		<Parameter Name="TIMode"/>
		<Parameter Name="DataSize"/>
		<Parameter Name="FirstBit"/>
		<!-- Selected Mode User Clock Parameters -->
		<Parameter Name="BaudRatePrescaler"/>
		<Parameter Name="CalculateBaudRate"/>
		<Parameter Name="CLKPolarity"/>
		<Parameter Name="CLKPhase"/>
		<!-- Selected Mode User Advanced Parameters -->
		<Parameter Name="CRCCalculation"/>
		<Parameter Name="CRCLength"/>
		<Parameter Name="CRCPolynomial"/>
		<Parameter Name="NSSPMode"/>
		<Parameter Name="NSS"/>
                <Parameter Name="FifoThreshold"/>
                <Parameter Name="TxCRCInitializationPattern"/>
                <Parameter Name="RxCRCInitializationPattern"/>
                <Parameter Name="NSSPolarity"/>
                <Parameter Name="MasterSSIdleness"/>
                <Parameter Name="MasterInterDataIdleness"/>
                <Parameter Name="MasterReceiverAutoSusp"/>
                <Parameter Name="MasterKeepIOState"/>
                <Parameter Name="IOSwap"/>
	</RefMode>
	
	<!-- RefModes for 'Half-Duplex Slave' SPI -->
	<RefMode Name="Simplex_Bidirectional_Slave">
		<ConfigForMode>Spi_Init</ConfigForMode>
		<!-- Selected Mode Fixed Parameters -->
		<Parameter Name="VirtualType">
			<PossibleValue>VM_SLAVE</PossibleValue>
		</Parameter>
		<Parameter Name="Mode">
			<PossibleValue>SPI_MODE_SLAVE</PossibleValue>
		</Parameter>
		<Parameter Name="Direction">
			<PossibleValue>SPI_DIRECTION_1LINE</PossibleValue>
		</Parameter>
		<!-- Selected Mode User Generic Parameters -->
		<Parameter Name="TIMode"/>
		<Parameter Name="DataSize"/>
		<Parameter Name="FirstBit"/>
		<!-- Selected Mode User Clock Parameters -->
		<Parameter Name="BaudRatePrescaler"/>
		<Parameter Name="CalculateBaudRate"/>
		<Parameter Name="CLKPolarity"/>
		<Parameter Name="CLKPhase"/>
		<!-- Selected Mode User Advanced Parameters -->
		<Parameter Name="CRCCalculation"/>
		<Parameter Name="CRCLength"/>
		<Parameter Name="CRCPolynomial"/>
		<Parameter Name="NSSPMode"/>
		<Parameter Name="NSS"/>
                <Parameter Name="FifoThreshold"/>
                <Parameter Name="TxCRCInitializationPattern"/>
                <Parameter Name="RxCRCInitializationPattern"/>
                <Parameter Name="NSSPolarity"/>
                <Parameter Name="MasterSSIdleness"/>
                <Parameter Name="MasterInterDataIdleness"/>
                <Parameter Name="MasterReceiverAutoSusp"/>
                <Parameter Name="MasterKeepIOState"/>
                <Parameter Name="IOSwap"/>
	</RefMode>
	
	<!-- RefModes for 'Receive Only Master' SPI -->
	<RefMode Name="RX_Only_Simplex_Unidirect_Master">
		<ConfigForMode>Spi_Init</ConfigForMode>
		<!-- Selected Mode Fixed Parameters -->
		<Parameter Name="VirtualType">
			<PossibleValue>VM_MASTER</PossibleValue>
		</Parameter>
		<Parameter Name="Mode">
			<PossibleValue>SPI_MODE_MASTER</PossibleValue>
		</Parameter>
		<Parameter Name="Direction">
			<PossibleValue>SPI_DIRECTION_2LINES_RXONLY</PossibleValue>
		</Parameter>
		<!-- Selected Mode User Generic Parameters -->
		<Parameter Name="TIMode"/>
		<Parameter Name="DataSize"/>
		<Parameter Name="FirstBit"/>
		<!-- Selected Mode User Clock Parameters -->
		<Parameter Name="BaudRatePrescaler"/>
		<Parameter Name="CalculateBaudRate"/>
		<Parameter Name="CLKPolarity"/>
		<Parameter Name="CLKPhase"/>
		<!-- Selected Mode User Advanced Parameters -->
		<Parameter Name="CRCCalculation"/>
		<Parameter Name="CRCLength"/>
		<Parameter Name="CRCPolynomial"/>
		<Parameter Name="NSSPMode"/>
		<Parameter Name="NSS"/>
                <Parameter Name="FifoThreshold"/>
                <Parameter Name="TxCRCInitializationPattern"/>
                <Parameter Name="RxCRCInitializationPattern"/>
                <Parameter Name="NSSPolarity"/>
                <Parameter Name="MasterSSIdleness"/>
                <Parameter Name="MasterInterDataIdleness"/>
                <Parameter Name="MasterReceiverAutoSusp"/>
                <Parameter Name="MasterKeepIOState"/>
                <Parameter Name="IOSwap"/>
	</RefMode>

        <!-- RefModes for 'Receive Only Slave' SPI -->
	<RefMode Name="RX_Only_Simplex_Unidirect_Slave">
		<ConfigForMode>Spi_Init</ConfigForMode>
		<!-- Selected Mode Fixed Parameters -->
		<Parameter Name="VirtualType">
			<PossibleValue>VM_SLAVE</PossibleValue>
		</Parameter>
		<Parameter Name="Mode">
			<PossibleValue>SPI_MODE_SLAVE</PossibleValue>
		</Parameter>
		<Parameter Name="Direction">
			<PossibleValue>SPI_DIRECTION_2LINES_RXONLY</PossibleValue>
		</Parameter>
		<!-- Selected Mode User Generic Parameters -->
		<Parameter Name="TIMode"/>
		<Parameter Name="DataSize"/>
		<Parameter Name="FirstBit"/>
		<!-- Selected Mode User Clock Parameters -->
		<Parameter Name="BaudRatePrescaler"/>
		<Parameter Name="CalculateBaudRate"/>
		<Parameter Name="CLKPolarity"/>
		<Parameter Name="CLKPhase"/>
		<!-- Selected Mode User Advanced Parameters -->
		<Parameter Name="CRCCalculation"/>
		<Parameter Name="CRCLength"/>
		<Parameter Name="CRCPolynomial"/>
		<Parameter Name="NSSPMode"/>
		<Parameter Name="NSS"/>
                <Parameter Name="FifoThreshold"/>
                <Parameter Name="TxCRCInitializationPattern"/>
                <Parameter Name="RxCRCInitializationPattern"/>
                <Parameter Name="NSSPolarity"/>
                <Parameter Name="MasterSSIdleness"/>
                <Parameter Name="MasterInterDataIdleness"/>
                <Parameter Name="MasterReceiverAutoSusp"/>
                <Parameter Name="MasterKeepIOState"/>
                <Parameter Name="IOSwap"/>
	</RefMode>
	
	<!-- RefModes for 'Transmit Only Master' SPI -->
	<RefMode Name="TX_Only_Simplex_Unidirect_Master">
		<ConfigForMode>Spi_Init</ConfigForMode>
		<!-- Selected Mode Fixed Parameters -->
		<Parameter Name="VirtualType">
			<PossibleValue>VM_MASTER</PossibleValue>
		</Parameter>
		<Parameter Name="Mode">
			<PossibleValue>SPI_MODE_MASTER</PossibleValue>
		</Parameter>
		<Parameter Name="Direction">
			<PossibleValue>SPI_DIRECTION_2LINES_TXONLY</PossibleValue>
		</Parameter>
		<!-- Selected Mode User Generic Parameters -->
		<Parameter Name="TIMode"/>
		<Parameter Name="DataSize"/>
		<Parameter Name="FirstBit"/>
		<!-- Selected Mode User Clock Parameters -->
		<Parameter Name="BaudRatePrescaler"/>
		<Parameter Name="CalculateBaudRate"/>
		<Parameter Name="CLKPolarity"/>
		<Parameter Name="CLKPhase"/>
		<!-- Selected Mode User Advanced Parameters -->
		<Parameter Name="CRCCalculation"/>
		<Parameter Name="CRCLength"/>
		<Parameter Name="CRCPolynomial"/>
		<Parameter Name="NSSPMode"/>
		<Parameter Name="NSS"/>
                <Parameter Name="FifoThreshold"/>
                <Parameter Name="TxCRCInitializationPattern"/>
                <Parameter Name="RxCRCInitializationPattern"/>
                <Parameter Name="NSSPolarity"/>
                <Parameter Name="MasterSSIdleness"/>
                <Parameter Name="MasterInterDataIdleness"/>
                <Parameter Name="MasterReceiverAutoSusp"/>
                <Parameter Name="MasterKeepIOState"/>
                <Parameter Name="IOSwap"/>
	</RefMode>
	
	<!-- RefModes for 'Transmit Only Slave' SPI -->
	<RefMode Name="TX_Only_Simplex_Unidirect_Slave">
		<ConfigForMode>Spi_Init</ConfigForMode>
		<!-- Selected Mode Fixed Parameters -->
		<Parameter Name="VirtualType">
			<PossibleValue>VM_SLAVE</PossibleValue>
		</Parameter>
		<Parameter Name="Mode">
			<PossibleValue>SPI_MODE_SLAVE</PossibleValue>
		</Parameter>
		<Parameter Name="Direction">
			<PossibleValue>SPI_DIRECTION_2LINES_TXONLY</PossibleValue>
		</Parameter>
		<!-- Selected Mode User Generic Parameters -->
		<Parameter Name="TIMode"/>
		<Parameter Name="DataSize"/>
		<Parameter Name="FirstBit"/>
		<!-- Selected Mode User Clock Parameters -->
		<Parameter Name="BaudRatePrescaler"/>
		<Parameter Name="CalculateBaudRate"/>
		<Parameter Name="CLKPolarity"/>
		<Parameter Name="CLKPhase"/>
		<!-- Selected Mode User Advanced Parameters -->
		<Parameter Name="CRCCalculation"/>
		<Parameter Name="CRCLength"/>
		<Parameter Name="CRCPolynomial"/>
		<Parameter Name="NSSPMode"/>
		<Parameter Name="NSS"/>
                <Parameter Name="FifoThreshold"/>
                <Parameter Name="TxCRCInitializationPattern"/>
                <Parameter Name="RxCRCInitializationPattern"/>
                <Parameter Name="NSSPolarity"/>
                <Parameter Name="MasterSSIdleness"/>
                <Parameter Name="MasterInterDataIdleness"/>
                <Parameter Name="MasterReceiverAutoSusp"/>
                <Parameter Name="IOSwap"/>
	</RefMode>
	
	
	
	<!-- ModeLogicOperator for SPI -->
	<ModeLogicOperator Name="OR">
		<Mode Name="Mode">
            <ModeLogicOperator Name="XOR">
				<Mode Name="Full_Duplex_Master" UserName="Full-Duplex Master">
					<SignalLogicalOp Name="AND">
					<Signal Name="MISO"/>
					<Signal Name="MOSI"/>
					<Signal Name="SCK"/>
					</SignalLogicalOp>
					<Semaphore>$IpInstance_DmaTransmit</Semaphore>
					<Semaphore>$IpInstance_DmaReceive</Semaphore>
					<Semaphore>$IpInstance_Master</Semaphore>
				</Mode>
				<Mode Name="Full_Duplex_Slave" UserName="Full-Duplex Slave">
					<ContextCondition Diagnostic="Not available in this context" Expression="$IpInstance_CUBE"/>
					<SignalLogicalOp Name="AND">
					<Signal IOMode="AlternateFunctionOpenDrainAndPushPullDefaultPPWildcat" Name="MISO"/>
					<Signal Name="MOSI"/>
					<Signal Name="SCK"/>
					</SignalLogicalOp>
					<Semaphore>$IpInstance_DmaTransmit</Semaphore>
					<Semaphore>$IpInstance_DmaReceive</Semaphore>
					<Semaphore>$IpInstance_Slave</Semaphore>
				</Mode>
            	<Mode Name="Simplex_Bidirectional_Master" UserName="Half-Duplex Master">
					<SignalLogicalOp Name="AND">
					<Signal Name="MOSI"/>
					<Signal Name="SCK"/>
					</SignalLogicalOp>
					<Semaphore>$IpInstance_DmaTransmit</Semaphore>
					<Semaphore>$IpInstance_DmaReceive</Semaphore>
					<Semaphore>$IpInstance_Master</Semaphore>
				</Mode>
            	<Mode Name="Simplex_Bidirectional_Slave" UserName="Half-Duplex Slave">
					<ContextCondition Diagnostic="Not available in this context" Expression="$IpInstance_CUBE"/>
					<SignalLogicalOp Name="AND">
					<Signal IOMode="AlternateFunctionOpenDrainAndPushPullDefaultPPWildcat" Name="MISO"/>
					<Signal Name="SCK"/>
					</SignalLogicalOp>
					<Semaphore>$IpInstance_DmaTransmit</Semaphore>
					<Semaphore>$IpInstance_DmaReceive</Semaphore>
					<Semaphore>$IpInstance_Slave</Semaphore>
				</Mode>
            	<Mode Name="RX_Only_Simplex_Unidirect_Master" UserName="Receive Only Master">
            		<!-- SPI is in 'Full-Duplex' Mode, but only 'Master In' line is on pinout -->
					<SignalLogicalOp Name="AND">
					<Signal Name="MISO"/> 	 
					<Signal Name="SCK"/>
					</SignalLogicalOp>
					<Semaphore>$IpInstance_DmaReceive</Semaphore>
					<Semaphore>$IpInstance_Master</Semaphore>
		</Mode>
            	<Mode Name="RX_Only_Simplex_Unidirect_Slave" UserName="Receive Only Slave">
            		<!-- SPI is in 'Full-Duplex' Mode, but only 'Slave In' line is on pinout -->
					<ContextCondition Diagnostic="Not available in this context" Expression="$IpInstance_CUBE"/>
					<SignalLogicalOp Name="AND">
					<Signal Name="MOSI"/>	
					<Signal Name="SCK"/>
					</SignalLogicalOp>
					<Semaphore>$IpInstance_DmaReceive</Semaphore>
					<Semaphore>$IpInstance_Slave</Semaphore>
				</Mode>
            	<Mode Name="TX_Only_Simplex_Unidirect_Master" UserName="Transmit Only Master">
            		<!-- SPI is in 'Full-Duplex' Mode, but only 'Master Out' line is on pinout -->
					<SignalLogicalOp Name="AND">
					<Signal Name="MOSI"/>
					<Signal Name="SCK"/>
					</SignalLogicalOp>
					<Semaphore>$IpInstance_DmaTransmit</Semaphore>
					<Semaphore>$IpInstance_Master</Semaphore>
		</Mode>
            	<Mode Name="TX_Only_Simplex_Unidirect_Slave" UserName="Transmit Only Slave">
            		<!-- SPI is in 'Full-Duplex' Mode, but only 'Slave Out' line is on pinout -->
					<ContextCondition Diagnostic="Not available in this context" Expression="$IpInstance_CUBE"/>
					<SignalLogicalOp Name="AND">
					<Signal IOMode="AlternateFunctionOpenDrainAndPushPullDefaultPPWildcat" Name="MISO"/>
					<Signal Name="SCK"/>
					</SignalLogicalOp>
					<Semaphore>$IpInstance_DmaTransmit</Semaphore>
					<Semaphore>$IpInstance_Slave</Semaphore>
					<Semaphore>$IpInstance_Transmit</Semaphore>
				</Mode>
			</ModeLogicOperator>
			<Semaphore>$IpInstance$noContext</Semaphore>
			
		</Mode>
		
		<Mode Name="NSS_Signal" UserName="Hardware NSS Signal">
			<ModeLogicOperator Name="XOR">
				<Mode Name="NSS_Signal_Hard_Input" UserName="Hardware NSS Input Signal">
					<ContextCondition Diagnostic="Not available in this context" Expression="$IpInstance_CUBE"/>
					<SignalLogicalOp Name="AND">
					<Signal Name="NSS"/>
					</SignalLogicalOp>
                    <Semaphore>$IpInstance_NSSHARD_Input</Semaphore>
				</Mode>
			
				<Mode Name="NSS_Signal_Hard_Output" UserName="Hardware NSS Output Signal">
					<ContextCondition Diagnostic="Not available in this context" Expression="$IpInstance_CUBE"/>
					<SignalLogicalOp Name="AND">
					<Signal Name="NSS"/>
					</SignalLogicalOp>
                    <Semaphore>$IpInstance_NSSHARD_Output</Semaphore>
                    <Condition Diagnostic="$IpInstance must be in Master mode" Expression="$IpInstance_Master"/>
				</Mode>
			</ModeLogicOperator>
			<Condition Diagnostic="$IpInstance must be have a valid Mode" Expression="$IpInstance"/>
		</Mode>
	</ModeLogicOperator>
	
	<Condition Diagnostic="I2S$IpNumber must be disabled" Expression="!I2S$IpNumber"/>
    <Semaphore>$IpInstanceUsed_ForRCC</Semaphore>
	<!-- RefSignal for SPI -->
	<RefSignal IOMode="AlternateFunctionPushPullMediumSpeedDefault" Name="MISO"/>
	<RefSignal IOMode="AlternateFunctionPushPullMediumSpeedDefault" Name="MOSI"/>
	<RefSignal IOMode="AlternateFunctionPushPullMediumSpeedDefault" Name="SCK"/>
	<RefSignal IOMode="AlternateFunctionPushPullMediumSpeedDefault" Name="NSS"/>
</IP>
