Component: IO Expander (MCP23017) (Comms: System)

From Flowcode Help
Jump to navigationJump to search


Author Matrix TSL
Version 1.0 (Release)
Category Comms: System


Image 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

BYTE


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

BYTE


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

BYTE


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