Component: I2C Slave (Comms: Interface)
Author | Matrix Ltd. |
Version | 1.3 (Release) |
Category | Comms: Interface |
Contents
I2C Slave component
Generic Two Wire I2C Communications Interface
Examples
PIC16F1937 Examples
The slave device is connected to a bank of switches, the master device to a bank of LEDs. The value of the switches is passed to the master LEDs. Master Read Example
Slave Switches Example The slave device is connected to a bank of LEDs, the master device to a bank of switches. The value of the switches is passed to the slave LEDs. Master Send Example
Arduino Uno Examples
Example program showing how to use the I2C Slave on an AVR Arduino device. I2C Slave Arduino Uno Example
ECIO40P Examples
Example program showing how to use the I2C Slave on an ECIO40P device. Master Example
Downloadable macro reference
ReceiveByte
Receives a byte from the I²C bus.
Returns the data received, and sends either Ack or Nak
Set parameter Last as: 1=Last=Nak, 0=Ack=More
Parameters
- BYTE Last
- Used to signify the last byte when streaming incoming data. 0=Not last byte, 1=Last Byte
Return value
TransmitByte
Sends a byte on the I²C bus. Returns the acknowledge if any.
0 represents that data was acknowledged and 1 represents no acknowledge was detected.
Parameters
- BYTE Data
- Data byte to send on the I²C bus.
Return value
Check_Status
Returns the Slave Status.
Bit 0 = 1 Indicates address/data byte available in the buffer to read
Bit 5 = 1 Indicates that the last byte received or transmitted was data (else address)
Parameters
- This macro has no parameters
Return value
Initialise
Enables the I²C hardware and performs some initialization.
Should be called at the start of the program or at least before any of the other I²C functions are called.
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
Channel
This property is of type Fixed list of ints and can be referenced with the variable name cal_i2c::CHANNEL.
Channel selection
Baud Select
This property is of type Fixed list of ints and can be referenced with the variable name cal_i2c::BAUD_LIST.
Baud rate option selector
Baud Rate
This property is of type Signed integer and can be referenced with the variable name cal_i2c::BAUD.
Baud rate to be used
Stop Delay
This property is of type True or false and can be referenced with the variable name cal_i2c::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.
Slave Address
This property is of type Unsigned integer and can be referenced with the variable name Slave_Address.
No additional information
Mask
This property is of type Unsigned integer and can be referenced with the variable name Mask.
0 - don't care;
1 - perform match;
So address of 0x30 and mask of 0xF0 will allow the slave to respond to addresses of 0x30, 0x31, 0x32, …, 0x3F
SDA
This property is of type Single digital pin and can be referenced with the variable name cal_i2c::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_i2c::SCL.
Pin used for SCL (clock signal)
Label
This property is of type Line of text and can be referenced with the variable name label.
Label shown on the comms flasher on the simulation panel.
Scope Traces
This property is of type True or false and can be referenced with the variable name cal_i2c::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_i2c::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_i2c::Injector.
No additional information