Component: IO Expander (MCP23017) (Comms: System)
Author | Matrix TSL |
Version | 1.0 (Release) |
Category | Comms: System |
Contents
IO Expander (MCP23017) component
Provides 16 digital input/output pins arranged into two 8-bit ports using a I2C bus connection. Up to eight expanders can be connected to the same I2C peripheral by means of three address pins.
Examples
No additional examples
Downloadable macro reference
ReadPort
Reads a value to one of the ports with a mask.
Configures the masked bits to be inputs before reading the input value.
Parameters
- BYTE Port
- 0=PortA, 1=PortB
- BYTE Mask
- Allows port bits to be modified without effecting other bits, 255 = write full port.
Return value
ConfigureInversion
Configures the pin inversion for the two ports.
Disabled on all pins by default.
Parameters
- BYTE PortA
- Port A inversion sent as an 8-bit value, 0 = Disabled, 1 = Enabled
- BYTE PortB
- Port B inversion sent as an 8-bit value, 0 = Disabled, 1 = Enabled
Return value
- This call does not return a value
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.
Parameters
- BYTE Port
- 0=PortA, 1=PortB
- BYTE Pin
- Port pin to read. Range: 0-7
Return value
WritePortPin
Writes a single port pin on one of the ports.
Configures the pins to be an output before writing the input value.
Parameters
- BYTE Port
- 0=PortA, 1=PortB
- BYTE Pin
- Port pin to read. Range: 0-7
- BYTE Value
- Value to output on the selected pin. Range: 0-1
Return value
- This call does not return a value
WritePort
Writes a value to one of the ports with a mask.
Configures the masked bits to be outputs before writing the output value.
Parameters
- BYTE Port
- 0=PortA, 1=PortB
- BYTE Mask
- Allows port bits to be modified without effecting other bits, 255 = write full port.
- BYTE Value
- Value to write. Range 0-255
Return value
- This call does not return a value
ConfigurePullups
Configures the pullups for the two ports.
Disabled on all pins by default.
Parameters
- BYTE PortA
- Port A pull ups sent as an 8-bit value, 0 = Disabled, 1 = Enabled
- 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
ReadRegister
Reads an 8-bit value from a register on the I/O expander device.
Parameters
- BYTE Address
- Register address to write to. Range: 0-15
Return value
WriteRegister
Writes an 8-bit value to a register on the I/O expander device.
Parameters
- BYTE Address
- Register address to write to. Range: 0-15
- BYTE Value
- Value to write. Range: 0-255
Return value
- This call does not return a value
Initialise
No additional information
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
External Address
This property is of type Fixed list of ints and can be referenced with the variable name ExtAddress.
Selects the value of the three address pins for the MCP23S17.
Channel
This property is of type Fixed list of ints and can be referenced with the variable name cal_i2c1::CHANNEL.
Channel selection
Stop Delay
This property is of type True or false and can be referenced with the variable name cal_i2c1::StopDel.
On older microcontroller devices there is a potential for the I2C hardware channel to lock up if there is not
a 10ms delay between an I2C stop event and the next I2C start event.
Most modern microcontrollers will not have a problem so this property can be disabled to speed up the
I2C communications.
Baud Select
This property is of type Fixed list of ints and can be referenced with the variable name cal_i2c1::BAUD_LIST.
Baud rate option selector
Baud Rate
This property is of type Signed integer and can be referenced with the variable name cal_i2c1::BAUD.
Baud rate to be used
SDA
This property is of type Single digital pin and can be referenced with the variable name cal_i2c1::SDA.
Pin used for SDA (data signal)
SCL
This property is of type Single digital pin and can be referenced with the variable name cal_i2c1::SCL.
Pin used for SCL (clock signal)
Reset Pin
This property is of type Single digital pin and can be referenced with the variable name reset_pin.
No additional information
Label
This property is of type Line of text and can be referenced with the variable name label.
No additional information
Scope Traces
This property is of type True or false and can be referenced with the variable name cal_i2c1::ScopeTraces.
Selects if the scope traces are automatically generated or not
Console Data
This property is of type True or false and can be referenced with the variable name cal_i2c1::ConsoleData.
Selects if the console data is automatically generated or not
Injector
This property is of type Fixed list of ints and can be referenced with the variable name cal_i2c1::Injector.
No additional information