Difference between revisions of "Component: IO Expander (BL0155) (E-blocks 2)"

From Flowcode Help
Jump to navigationJump to search
Line 1: Line 1:
 
+
{| style="width:50%"
 
 
{| width="50%"
 
 
|-
 
|-
| width="20%" style="color: gray;" | Author
+
| width="20%" style="color:gray;" | Author
 
| Matrix TSL
 
| Matrix TSL
 
|-
 
|-
| width="20%" style="color: gray;" | Version
+
| width="20%" style="color:gray;" | Version
| 1.0 (Release)
+
| 1.0
 
|-
 
|-
| width="20%" style="color: gray;" | Category
+
| width="20%" style="color:gray;" | Category
 
| E-blocks 2
 
| E-blocks 2
 
|}
 
|}
  
  
 
+
==IO Expander component==
==[[File:Component Icon e565ab5d_bf80_4911_938a_75b226ca6f93.png|Image]] IO Expander (BL0155) component==
 
 
Provides 16 digital input/output pins arranged into two 8-bit E-block 2 ports using a SPI bus connection.
 
Provides 16 digital input/output pins arranged into two 8-bit E-block 2 ports using a SPI bus connection.
  
Before you can start reading or writing data to the different registers or ports, you need to use a macro to initialise the IO expander. There are component macros in flowcode 8 which allow you to write a value to a register on the expander, to write a value to an individual port or even to an individual pin on a port. You can also read values from all these places using component macros as well.
+
==Component Source Code==
  
You also need to ensure that all pins in flowcode are connected to the equivalent ones on your E-blocks 2 upstream board for it to work when you compile it to the chip.
+
Please click here for the component source code: [https://www.flowcode.co.uk/wikicopy/componentsource/FC_Comp_Source_EBlocks2_IOEXP_BL0155.fcfx FC_Comp_Source_EBlocks2_IOEXP_BL0155.fcfx]
  
==Examples==
+
==Detailed description==
''<span style="color:red;">No additional examples</span>''
 
  
 +
''No detailed description exists yet for this component''
  
==Downloadable macro reference==
+
==Examples==
  
===<span style="font-weight: normal;"><u><tt>ReadPort</tt></u></span>===
 
Reads a value to one of the ports with a mask.
 
  
Configures the masked bits to be inputs before reading the input value.
+
''<span style="color:red;">No additional examples</span>''
  
'''Parameters'''
 
  
:[[Variable Types|BYTE]] ''Port''
+
==Downloadable macro reference==
::0=PortA, 1=PortB
 
  
:[[Variable Types|BYTE]] ''Mask''
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
::Allows port bits to be modified without effecting other bits, 255 = write full port.
+
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadPort'''
 +
|-
 +
| colspan="2" | Reads a value to one of the ports with a mask. Configures the masked bits to be inputs before reading the input value.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Port
 +
|-
 +
| colspan="2" | 0=PortA, 1=PortB&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Mask
 +
|-
 +
| colspan="2" | Allows port bits to be modified without effecting other bits, 255 = write full port.&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
  
'''Return value'''
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ConfigureInversion'''
 +
|-
 +
| colspan="2" | Configures the pin inversion for the two ports.  Disabled on all pins by default.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | PortA
 +
|-
 +
| colspan="2" | Port A inversion sent as an 8-bit value, 0 = Disabled, 1 = Enabled&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | PortB
 +
|-
 +
| colspan="2" | Port B inversion sent as an 8-bit value, 0 = Disabled, 1 = Enabled&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
:[[Variable Types|BYTE]]
 
  
 +
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadPortPin'''
 +
|-
 +
| colspan="2" | Reads a single port pin from one of the ports. Configures the pins to be an input before reading the input value. Returns 0 or 1 corresponding to the value on the port pin.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Port
 +
|-
 +
| colspan="2" | 0=PortA, 1=PortB&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Pin
 +
|-
 +
| colspan="2" | Port pin to read. Range: 0-7&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
===<span style="font-weight: normal;"><u><tt>ConfigureInversion</tt></u></span>===
 
Configures the pin inversion for the two ports.
 
  
Disabled on all pins by default.
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WritePortPin'''
 +
|-
 +
| colspan="2" | Writes a single port pin on one of the ports. Configures the pins to be an output before writing the input value. &nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Port
 +
|-
 +
| colspan="2" | 0=PortA, 1=PortB&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Pin
 +
|-
 +
| colspan="2" | Port pin to read. Range: 0-7&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Value
 +
|-
 +
| colspan="2" | Value to output on the selected pin. Range: 0-1&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
'''Parameters'''
 
  
:[[Variable Types|BYTE]] ''PortA''
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
::Port A inversion sent as an 8-bit value, 0 = Disabled, 1 = Enabled
+
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WritePort'''
 +
|-
 +
| colspan="2" | Writes a value to one of the ports with a mask. Configures the masked bits to be outputs before writing the output value.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Port
 +
|-
 +
| colspan="2" | 0=PortA, 1=PortB&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Mask
 +
|-
 +
| colspan="2" | Allows port bits to be modified without effecting other bits, 255 = write full port.&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Value
 +
|-
 +
| colspan="2" | Value to write. Range 0-255&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
:[[Variable Types|BYTE]] ''PortB''
 
::Port B inversion sent as an 8-bit value, 0 = Disabled, 1 = Enabled
 
  
 +
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ConfigurePullups'''
 +
|-
 +
| colspan="2" | Configures the pullups for the two ports. Disabled on all pins by default.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | PortA
 +
|-
 +
| colspan="2" | Port A pull ups sent as an 8-bit value, 0 = Disabled, 1 = Enabled&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | PortB
 +
|-
 +
| colspan="2" | Port B pull ups sent as an 8-bit value, 0 = Disabled, 1 = Enabled&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
'''Return value'''
 
  
:''This call does not return a value''
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 +
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadRegister'''
 +
|-
 +
| colspan="2" | Reads an 8-bit value from a register on the I/O expander device.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Address
 +
|-
 +
| colspan="2" | Register address to write to. Range: 0-15&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
  
===<span style="font-weight: normal;"><u><tt>ReadPortPin</tt></u></span>===
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
Reads a single port pin from one of the ports.
+
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WriteRegister'''
 +
|-
 +
| colspan="2" | Writes an 8-bit value to a register on the I/O expander device.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Address
 +
|-
 +
| colspan="2" | Register address to write to. Range: 0-15&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Value
 +
|-
 +
| colspan="2" | Value to write. Range: 0-255&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
Configures the pins to be an input before reading the input value.
 
  
Returns 0 or 1 corresponding to the value on the port pin.
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
+
|-
'''Parameters'''
+
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
:[[Variable Types|BYTE]] ''Port''
+
|-
::0=PortA, 1=PortB
+
| colspan="2" | &nbsp;
 
+
|-
:[[Variable Types|BYTE]] ''Pin''
+
|-
::Port pin to read. Range: 0-7
+
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 
+
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
+
|}
'''Return value'''
 
  
:[[Variable Types|BYTE]]
 
  
 
===<span style="font-weight: normal;"><u><tt>WritePortPin</tt></u></span>===
 
Writes a single port pin on one of the ports.
 
 
Configures the pins to be an output before writing the input value.
 
 
'''Parameters'''
 
 
:[[Variable Types|BYTE]] ''Port''
 
::0=PortA, 1=PortB
 
 
:[[Variable Types|BYTE]] ''Pin''
 
::Port pin to read. Range: 0-7
 
 
:[[Variable Types|BYTE]] ''Value''
 
::Value to output on the selected pin. Range: 0-1
 
 
 
'''Return value'''
 
 
:''This call does not return a value''
 
 
 
===<span style="font-weight: normal;"><u><tt>WritePort</tt></u></span>===
 
Writes a value to one of the ports with a mask.
 
 
Configures the masked bits to be outputs before writing the output value.
 
 
'''Parameters'''
 
 
:[[Variable Types|BYTE]] ''Port''
 
::0=PortA, 1=PortB
 
 
:[[Variable Types|BYTE]] ''Mask''
 
::Allows port bits to be modified without effecting other bits, 255 = write full port.
 
 
:[[Variable Types|BYTE]] ''Value''
 
::Value to write. Range 0-255
 
 
 
'''Return value'''
 
 
:''This call does not return a value''
 
 
 
===<span style="font-weight: normal;"><u><tt>ConfigurePullups</tt></u></span>===
 
Configures the pullups for the two ports.
 
 
Disabled on all pins by default.
 
 
'''Parameters'''
 
 
:[[Variable Types|BYTE]] ''PortA''
 
::Port A pull ups sent as an 8-bit value, 0 = Disabled, 1 = Enabled
 
 
:[[Variable Types|BYTE]] ''PortB''
 
::Port B pull ups sent as an 8-bit value, 0 = Disabled, 1 = Enabled
 
 
 
'''Return value'''
 
 
:''This call does not return a value''
 
 
 
===<span style="font-weight: normal;"><u><tt>ReadRegister</tt></u></span>===
 
Reads an 8-bit value from a register on the I/O expander device.
 
 
'''Parameters'''
 
 
:[[Variable Types|BYTE]] ''Address''
 
::Register address to write to. Range: 0-15
 
 
 
'''Return value'''
 
 
:[[Variable Types|BYTE]]
 
 
 
===<span style="font-weight: normal;"><u><tt>WriteRegister</tt></u></span>===
 
Writes an 8-bit value to a register on the I/O expander device.
 
 
'''Parameters'''
 
 
:[[Variable Types|BYTE]] ''Address''
 
::Register address to write to. Range: 0-15
 
 
:[[Variable Types|BYTE]] ''Value''
 
::Value to write. Range: 0-255
 
 
 
'''Return value'''
 
 
:''This call does not return a value''
 
 
 
===<span style="font-weight: normal;"><u><tt>Initialise</tt></u></span>===
 
''<span style="color:red;">No additional information</span>''
 
 
 
 
'''Parameters'''
 
 
:''This macro has no parameters''
 
 
 
'''Return value'''
 
 
:''This call does not return a value''
 
 
 
 
==Simulation macro reference==
 
 
''This component does not contain any simulation macros''
 
  
  
 
==Property reference==
 
==Property reference==
<span style="font-weight: normal;"><u>Channel</u></span>
 
  
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''cal_spi1::CHANNEL''.
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
+
|-
SPI Channel selector
+
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
 
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''  
<span style="font-weight: normal;"><u>Prescale</u></span>
+
|-
 
+
|-
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''cal_spi1::PR_SCALE''.
+
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 
+
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | SPI Communications
Prescale option selector
+
|-
 
+
|-
<span style="font-weight: normal;"><u>MOSI</u></span>
+
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
+
| width="90%" | External Address
This property is of type ''Single digital pin'' and can be referenced with the variable name ''cal_spi1::MOSI''.
+
|-
 
+
| colspan="2" | Selects the value of the three address pins for the MCP23S17.&nbsp;
SPI Data Out Pin SDO - Also Known as Master Out Slave In (MOSI) when used in Master mode.
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
<span style="font-weight: normal;"><u>MISO</u></span>
+
| width="90%" | Channel
 
+
|-
This property is of type ''Single digital pin'' and can be referenced with the variable name ''cal_spi1::MISO''.
+
| colspan="2" | SPI Channel selector&nbsp;
 
+
|-
SPI Data In Pin SDI - Also Known as Master In Slave Out (MISO) when used in Master mode.
+
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
+
| width="90%" | Prescale
<span style="font-weight: normal;"><u>CLK</u></span>
+
|-
 
+
| colspan="2" | Prescale option selector&nbsp;
This property is of type ''Single digital pin'' and can be referenced with the variable name ''cal_spi1::CLK''.
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
SPI Clock Pin CLK - The Clock signal is driven by the SPI master.
+
| width="90%" | MOSI
 
+
|-
<span style="font-weight: normal;"><u>CS / SS</u></span>
+
| colspan="2" | SPI Data Out Pin SDO - Also Known as Master Out Slave In (MOSI) when used in Master mode.&nbsp;
 
+
|-
This property is of type ''Single digital pin'' and can be referenced with the variable name ''cal_spi1::SS''.
+
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
 
+
| width="90%" | MISO
Chip Select / Slave Select Pin  
+
|-
 
+
| colspan="2" | SPI Data In Pin SDI - Also Known as Master In Slave Out (MISO) when used in Master mode.&nbsp;
Master Mode: General purpose output pin used to select the remote SPI device.
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
Slave Mode: Hardware chip select pin input used to select the SPI device.
+
| width="90%" | CLK
 
+
|-
<span style="font-weight: normal;"><u>Reset Pin</u></span>
+
| colspan="2" | SPI Clock Pin CLK - The Clock signal is driven by the SPI master.&nbsp;
 
+
|-
This property is of type ''Single digital pin'' and can be referenced with the variable name ''reset_pin''.
+
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
 
+
| width="90%" | CS / SS
''<span style="color:red;">No additional information</span>''
+
|-
 
+
| colspan="2" | Chip Select / Slave Select Pin Master Mode: General purpose output pin used to select the remote SPI device. Slave Mode: Hardware chip select pin input used to select the SPI device. &nbsp;
 
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
<span style="font-weight: normal;"><u>Label</u></span>
+
| width="90%" | Reset Pin
 
+
|-
This property is of type ''Line of text'' and can be referenced with the variable name ''label''.
+
| colspan="2" | &nbsp;
 
+
|-
''<span style="color:red;">No additional information</span>''
+
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 
+
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Simulation
 
+
|-
 
+
|-
<span style="font-weight: normal;"><u>Scope Traces</u></span>
+
| width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
 
+
| width="90%" | Label
This property is of type ''True or false'' and can be referenced with the variable name ''cal_spi1::ScopeTraces''.
+
|-
 
+
| colspan="2" | &nbsp;
Selects if the scope traces are automatically generated or not
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
<span style="font-weight: normal;"><u>Console Data</u></span>
+
| width="90%" | Show Comms Flasher
 
+
|-
This property is of type ''True or false'' and can be referenced with the variable name ''cal_spi1::ConsoleData''.
+
| colspan="2" | &nbsp;
 
+
|-
Selects if the console data is automatically generated or not
+
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
 
+
| width="90%" | Scope Traces
<span style="font-weight: normal;"><u>Injector</u></span>
+
|-
 
+
| colspan="2" | Selects if the scope traces are automatically generated or not&nbsp;
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''cal_spi1::Injector''.
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
''<span style="color:red;">No additional information</span>''
+
| width="90%" | Console Data
 +
|-
 +
| colspan="2" | Selects if the console data is automatically generated or not&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 +
| width="90%" | API
 +
|-
 +
| colspan="2" | &nbsp;
 +
|}

Revision as of 14:40, 16 January 2023

Author Matrix TSL
Version 1.0
Category E-blocks 2


IO Expander component

Provides 16 digital input/output pins arranged into two 8-bit E-block 2 ports using a SPI bus connection.

Component Source Code

Please click here for the component source code: FC_Comp_Source_EBlocks2_IOEXP_BL0155.fcfx

Detailed description

No detailed description exists yet for this component

Examples

No additional examples


Downloadable macro reference

Fc9-comp-macro.png ReadPort
Reads a value to one of the ports with a mask. Configures the masked bits to be inputs before reading the input value. 
Fc9-u8-icon.png - BYTE Port
0=PortA, 1=PortB 
Fc9-u8-icon.png - BYTE Mask
Allows port bits to be modified without effecting other bits, 255 = write full port. 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png ConfigureInversion
Configures the pin inversion for the two ports. Disabled on all pins by default. 
Fc9-u8-icon.png - BYTE PortA
Port A inversion sent as an 8-bit value, 0 = Disabled, 1 = Enabled 
Fc9-u8-icon.png - BYTE PortB
Port B inversion sent as an 8-bit value, 0 = Disabled, 1 = Enabled 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png ReadPortPin
Reads a single port pin from one of the ports. Configures the pins to be an input before reading the input value. Returns 0 or 1 corresponding to the value on the port pin. 
Fc9-u8-icon.png - BYTE Port
0=PortA, 1=PortB 
Fc9-u8-icon.png - BYTE Pin
Port pin to read. Range: 0-7 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png WritePortPin
Writes a single port pin on one of the ports. Configures the pins to be an output before writing the input value.  
Fc9-u8-icon.png - BYTE Port
0=PortA, 1=PortB 
Fc9-u8-icon.png - BYTE Pin
Port pin to read. Range: 0-7 
Fc9-u8-icon.png - BYTE Value
Value to output on the selected pin. Range: 0-1 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png WritePort
Writes a value to one of the ports with a mask. Configures the masked bits to be outputs before writing the output value. 
Fc9-u8-icon.png - BYTE Port
0=PortA, 1=PortB 
Fc9-u8-icon.png - BYTE Mask
Allows port bits to be modified without effecting other bits, 255 = write full port. 
Fc9-u8-icon.png - BYTE Value
Value to write. Range 0-255 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png ConfigurePullups
Configures the pullups for the two ports. Disabled on all pins by default. 
Fc9-u8-icon.png - BYTE PortA
Port A pull ups sent as an 8-bit value, 0 = Disabled, 1 = Enabled 
Fc9-u8-icon.png - BYTE PortB
Port B pull ups sent as an 8-bit value, 0 = Disabled, 1 = Enabled 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png ReadRegister
Reads an 8-bit value from a register on the I/O expander device. 
Fc9-u8-icon.png - BYTE Address
Register address to write to. Range: 0-15 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png WriteRegister
Writes an 8-bit value to a register on the I/O expander device. 
Fc9-u8-icon.png - BYTE Address
Register address to write to. Range: 0-15 
Fc9-u8-icon.png - BYTE Value
Value to write. Range: 0-255 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png Initialise
 
Fc9-void-icon.png - VOID Return



Property reference

Fc9-prop-icon.png Properties
Fc9-conn-icon.png SPI Communications
Fc9-type-16-icon.png External Address
Selects the value of the three address pins for the MCP23S17. 
Fc9-type-16-icon.png Channel
SPI Channel selector 
Fc9-type-16-icon.png Prescale
Prescale option selector 
Fc9-type-5-icon.png MOSI
SPI Data Out Pin SDO - Also Known as Master Out Slave In (MOSI) when used in Master mode. 
Fc9-type-5-icon.png MISO
SPI Data In Pin SDI - Also Known as Master In Slave Out (MISO) when used in Master mode. 
Fc9-type-5-icon.png CLK
SPI Clock Pin CLK - The Clock signal is driven by the SPI master. 
Fc9-type-5-icon.png CS / SS
Chip Select / Slave Select Pin Master Mode: General purpose output pin used to select the remote SPI device. Slave Mode: Hardware chip select pin input used to select the SPI device.  
Fc9-type-5-icon.png Reset Pin
 
Fc9-conn-icon.png Simulation
Fc9-type-10-icon.png Label
 
Fc9-type-7-icon.png Show Comms Flasher
 
Fc9-type-7-icon.png Scope Traces
Selects if the scope traces are automatically generated or not 
Fc9-type-7-icon.png Console Data
Selects if the console data is automatically generated or not 
Fc9-type-16-icon.png API