<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<!DOCTYPE featureDefinitions SYSTEM "../featureDefinitions.dtd">
<featureDefinitions name="SPI" iconName="SPI" helpIndex="">
	<userControlGroup name="none" caption="none">
		<userControlSubGroup name="none" caption="none">
			<userControl name="applyButton">
				<dialogConfig type="applyButton" caption="none"></dialogConfig>
				<userAction name="apply">
					<claimResource type="register" registerField="OWN_SPI%instance%" value="0"></claimResource>
					<claimResource type="pin" pin="SDI%instance%" polarity="Inp"></claimResource>
				</userAction>
			</userControl>
		</userControlSubGroup>
	</userControlGroup>
	<userControlGroup name="communicationSettings" caption="Communication Settings">
		<userControlSubGroup name="none" caption="none">
			<userControl name="enable">
				<dialogConfig type="CK" caption="Enable on Startup"></dialogConfig>
				<userAction name="enable">
					<claimResource type="register" instance="%instance%" registerField="SPIEN" value="1"></claimResource>
				</userAction>
				<userAction name="disable">
					<claimResource type="register" instance="%instance%" registerField="SPIEN" value="0"></claimResource>
				</userAction>
			</userControl>
			<userControl name="enableSDOx">
				<dialogConfig type="CK" caption="Enable Data Out on SDO pin"></dialogConfig>
				<userAction name="disable">
					<claimResource type="register" instance="%instance%" registerField="DISSDO" value="1"></claimResource>
				</userAction>
				<userAction name="enable">
					<claimResource type="register" instance="%instance%" registerField="DISSDO" value="0"></claimResource>
					<claimResource type="pin" pin="SDO%instance%" polarity="Out"></claimResource>
				</userAction>
			</userControl>
			<userControl name="interruptEnable" enableForInt="SPI%instance%">
				<dialogConfig type="CK" caption="Enable Interrupt on Startup" />
				<userAction name="enable">
					<claimResource type="register" registerField="SPI%instance%IE" value="1" />
				</userAction>
				<userAction name="disable">
					<claimResource type="register" registerField="SPI%instance%IE" value="0" />
				</userAction>
			</userControl>
			<userControl name="InterruptPriority" priorityForInt="SPI%instance%">
				<dialogConfig type="CB" range="7" caption="Interrupt Priority">
					<selection name="PriorityLevelTo%index%" value="%index%"></selection>
				</dialogConfig>
				<userAction>
					<claimResource type="register" registerField="SPI%instance%IP" method="PriorityLevel3Bit"></claimResource>
				</userAction>
			</userControl>
			<userControl name="idleClockState">
				<dialogConfig type="CB" caption="Idle Clock Polarity">
					<selection name="low" value="IDLE state is low"></selection>
					<selection name="high" value="IDLE state is high"></selection>
				</dialogConfig>
				<userAction name="high">
					<claimResource type="register" instance="%instance%" registerField="CKP" value="1"></claimResource>
				</userAction>
				<userAction name="low">
					<claimResource type="register" instance="%instance%" registerField="CKP" value="0"></claimResource>
				</userAction>
			</userControl>
			<userControl name="transmitClockEdge">
				<dialogConfig type="CB" caption="Transmit Clock Edge">
					<selection name="low" value="Idle clock to Active"></selection>
					<selection name="high" value="Active clock to Idle"></selection>
				</dialogConfig>
				<userAction name="high">
					<claimResource type="register" instance="%instance%" registerField="CKE" value="1"></claimResource>
				</userAction>
				<userAction name="low">
					<claimResource type="register" instance="%instance%" registerField="CKE" value="0"></claimResource>
				</userAction>
			</userControl>
			<userControl name="SPIMode">
				<dialogConfig type="CB" caption="SPI Mode">
					<selection name="MasterFrmSyncDis" value="Master/FrameSyncDisabled"></selection>
					<selection name="SlaveFrmSyncDis" value="Slave/FrameSyncDisabled"></selection>
					<selection name="SlaveFrmSyncDisSlaveSelEnb" value="Slave/FrameSyncDisabled/SlaveSelectEnabled"></selection>
					<selection name="MasterFrmSyncEnbFrameMasterMode" value="Master/FrameSyncEnabled/FrameMasterMode"></selection>
					<selection name="MasterFrmSyncEnbFrameSlaveMode" value="Master/FrameSyncEnabled/FrameSlaveMode"></selection>
					<selection name="SlaveFrmSyncEnbFrameMasterMode" value="Slave/FrameSyncEnabled/FrameMasterMode"></selection>
					<selection name="SlaveFrmSyncEnbFrameSlaveMode" value="Slave/FrameSyncEnabled/FrameSlaveMode"></selection>
				</dialogConfig>
				<userAction name="MasterFrmSyncDis">
					<claimResource type="register" instance="%instance%" registerField="SSEN" value="0"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="MSTEN" value="1"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="FRMEN" value="0"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="SPIFSD" value="0"></claimResource>
					<claimResource type="pin" pin="SCK%instance%" polarity="Out"></claimResource>
				</userAction>
				<userAction name="SlaveFrmSyncDis">
					<claimResource type="register" instance="%instance%" registerField="SSEN" value="0"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="MSTEN" value="0"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="FRMEN" value="0"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="SPIFSD" value="1"></claimResource>
					<claimResource type="pin" pin="SCK%instance%" polarity="Inp"></claimResource>
				</userAction>
				<userAction name="SlaveFrmSyncDisSlaveSelEnb">
					<claimResource type="register" instance="%instance%" registerField="SSEN" value="1"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="MSTEN" value="0"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="FRMEN" value="0"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="SPIFSD" value="1"></claimResource>
					<claimResource type="pin" pin="SCK%instance%" polarity="Inp"></claimResource>
					<claimResource type="pin" pin="SS%instance%-L" polarity="Inp"></claimResource>
				</userAction>
				<userAction name="MasterFrmSyncEnbFrameMasterMode">
					<claimResource type="register" instance="%instance%" registerField="SSEN" value="0"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="MSTEN" value="1"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="FRMEN" value="1"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="SPIFSD" value="0"></claimResource>
					<claimResource type="pin" pin="SCK%instance%" polarity="Out"></claimResource>
				</userAction>
				<userAction name="MasterFrmSyncEnbFrameSlaveMode">
					<claimResource type="register" instance="%instance%" registerField="SSEN" value="0"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="MSTEN" value="1"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="FRMEN" value="1"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="SPIFSD" value="1"></claimResource>
					<claimResource type="pin" pin="SCK%instance%" polarity="Out"></claimResource>
				</userAction>
				<userAction name="SlaveFrmSyncEnbFrameMasterMode">
					<claimResource type="register" instance="%instance%" registerField="SSEN" value="0"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="MSTEN" value="0"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="FRMEN" value="1"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="SPIFSD" value="0"></claimResource>
					<claimResource type="pin" pin="SCK%instance%" polarity="Inp"></claimResource>
				</userAction>
				<userAction name="SlaveFrmSyncEnbFrameSlaveMode">
					<claimResource type="register" instance="%instance%" registerField="SSEN" value="0"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="MSTEN" value="0"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="FRMEN" value="1"></claimResource>
					<claimResource type="register" instance="%instance%" registerField="SPIFSD" value="1"></claimResource>
					<claimResource type="pin" pin="SCK%instance%" polarity="Inp"></claimResource>
				</userAction>
			</userControl>
			<userControl name="operateDuringIdle">
				<dialogConfig type="CB" caption="CPU Idle Operation">
					<selection name="continueOnIdle" value="Continue"></selection>
					<selection name="stopOnIdle" value="Stop"></selection>
				</dialogConfig>
				<userAction name="stopOnIdle">
					<claimResource type="register" instance="%instance%" registerField="SPISIDL" value="1"></claimResource>
				</userAction>
				<userAction name="continueOnIdle">
					<claimResource type="register" instance="%instance%" registerField="SPISIDL" value="0"></claimResource>
				</userAction>
			</userControl>
			<userControl name="dataFormat">
				<dialogConfig type="CB" caption="Data Format">
					<selection name="byteWide" value="Data is byte wide (8bit)"></selection>
					<selection name="wordWide" value="Data is word wide (16bit)"></selection>
				</dialogConfig>
				<userAction name="byteWide">
					<claimResource type="register" instance="%instance%" registerField="MODE16" value="0"></claimResource>
				</userAction>
				<userAction name="wordWide">
					<claimResource type="register" instance="%instance%" registerField="MODE16" value="1"></claimResource>
				</userAction>
			</userControl>
			<userControl name="FrameSyncPulsePolarity">
				<dialogConfig type="CB" caption="Frame Sync Pulse Polarity">
					<selection name="activeHigh" value="Active High"></selection>
					<selection name="activeLow" value="Active Low"></selection>
				</dialogConfig>
				<userAction name="activeHigh">
					<claimResource type="register" instance="%instance%" registerField="SPIFPOL" value="1"></claimResource>
				</userAction>
				<userAction name="activeLow">
					<claimResource type="register" instance="%instance%" registerField="SPIFPOL" value="0"></claimResource>
				</userAction>
			</userControl>
			<userControl name="FrameSyncPulseEdge">
				<dialogConfig type="CB" caption="Frame Sync Pulse Edge Select">
					<selection name="activeHigh" value="Active High"></selection>
					<selection name="activeLow" value="Active Low"></selection>
				</dialogConfig>
				<userAction name="activeHigh">
					<claimResource type="register" instance="%instance%" registerField="SPIFPOL" value="1"></claimResource>
				</userAction>
				<userAction name="activeLow">
					<claimResource type="register" instance="%instance%" registerField="SPIFPOL" value="0"></claimResource>
				</userAction>
			</userControl>
			<userControl name="enableEnhancedBuffer">
				<dialogConfig type="CK" caption="Enable Enhanced Buffer">
				</dialogConfig>
				<userAction name="enable">
					<claimResource type="register" instance="%instance%" registerField="SPIBEN" value="1"></claimResource>
				</userAction>
				<userAction name="disable">
					<claimResource type="register" instance="%instance%" registerField="SPIBEN" value="0"></claimResource>
				</userAction>
			</userControl>
		</userControlSubGroup>
		<userControlSubGroup name="masterSettings" caption="Master Settings">
			<userControl name="dataInputPhase">
				<dialogConfig type="CB" caption="Data Input Sample Instant">
					<selection name="middle" value="Middle of data output time"></selection>
					<selection name="end" value="End of data output time"></selection>
				</dialogConfig>
				<userAction name="end">
					<claimResource type="register" instance="%instance%" registerField="SMP" value="1"></claimResource>
				</userAction>
				<userAction name="middle">
					<claimResource type="register" instance="%instance%" registerField="SMP" value="0"></claimResource>
				</userAction>
			</userControl>
			<userControl type="readOnly" name="baudRate">
				<dialogConfig type="general" caption="Baud Rate"></dialogConfig>
				<userAction></userAction>
			</userControl>
			<userControl name="prescaleA">
				<dialogConfig type="CB" caption="Primary Prescaler">
					<selection name="setTo64" value="1:64"></selection>
					<selection name="setTo16" value="1:16"></selection>
					<selection name="setTo4" value="1:4"></selection>
					<selection name="setTo1" value="1:1"></selection>
				</dialogConfig>
				<userAction name="setTo1">
					<claimResource type="register" instance="%instance%" registerField="PPRE" value="11"></claimResource>
				</userAction>
				<userAction name="setTo4">
					<claimResource type="register" instance="%instance%" registerField="PPRE" value="10"></claimResource>
				</userAction>
				<userAction name="setTo16">
					<claimResource type="register" instance="%instance%" registerField="PPRE" value="01"></claimResource>
				</userAction>
				<userAction name="setTo64">
					<claimResource type="register" instance="%instance%" registerField="PPRE" value="00"></claimResource>
				</userAction>
			</userControl>
			<userControl name="prescaleB">
				<dialogConfig type="CB" caption="Secondary Prescaler">
					<selection name="setTo1" value="1:1"></selection>
					<selection name="setTo2" value="2:1"></selection>
					<selection name="setTo3" value="3:1"></selection>
					<selection name="setTo4" value="4:1"></selection>
					<selection name="setTo5" value="5:1"></selection>
					<selection name="setTo6" value="6:1"></selection>
					<selection name="setTo7" value="7:1"></selection>
					<selection name="setTo8" value="8:1"></selection>
				</dialogConfig>
				<userAction name="setTo1">
					<claimResource type="register" instance="%instance%" registerField="SPRE" value="111"></claimResource>
				</userAction>
				<userAction name="setTo2">
					<claimResource type="register" instance="%instance%" registerField="SPRE" value="110"></claimResource>
				</userAction>
				<userAction name="setTo3">
					<claimResource type="register" instance="%instance%" registerField="SPRE" value="101"></claimResource>
				</userAction>
				<userAction name="setTo4">
					<claimResource type="register" instance="%instance%" registerField="SPRE" value="100"></claimResource>
				</userAction>
				<userAction name="setTo5">
					<claimResource type="register" instance="%instance%" registerField="SPRE" value="011"></claimResource>
				</userAction>
				<userAction name="setTo6">
					<claimResource type="register" instance="%instance%" registerField="SPRE" value="010"></claimResource>
				</userAction>
				<userAction name="setTo7">
					<claimResource type="register" instance="%instance%" registerField="SPRE" value="001"></claimResource>
				</userAction>
				<userAction name="setTo8">
					<claimResource type="register" instance="%instance%" registerField="SPRE" value="000"></claimResource>
				</userAction>
			</userControl>
			<userControl name="enableInternalSPIclock">
				<dialogConfig type="CK" caption="Enable Internal SPI Clock">
				</dialogConfig>
				<userAction name="enable">
					<claimResource type="register" instance="%instance%" registerField="DISSCK" value="0"></claimResource>
				</userAction>
				<userAction name="disable">
					<claimResource type="register" instance="%instance%" registerField="DISSCK" value="1"></claimResource>
				</userAction>
			</userControl>
		</userControlSubGroup>
	</userControlGroup>
</featureDefinitions>
