Difference between revisions of "Unit I2C"
Line 384: | Line 384: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| Called only during system startup | | Called only during system startup | ||
|- | |- | ||
Line 399: | Line 399: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! I2C |
| The I2C device to start | | The I2C device to start | ||
|- | |- | ||
− | ! | + | ! Rate |
− | | The clock rate to set for the device (0 to use the default rate | + | | The clock rate to set for the device (0 to use the default rate) |
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
Line 417: | Line 417: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! I2C |
| The I2C device to stop | | The I2C device to stop | ||
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
Line 432: | Line 432: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! I2C |
| The I2C device to read from | | The I2C device to read from | ||
|- | |- | ||
− | ! | + | ! Address |
| The slave address to read from (I2C_ADDRESS_INVALID to use the current address) | | The slave address to read from (I2C_ADDRESS_INVALID to use the current address) | ||
|- | |- | ||
− | ! | + | ! Buffer |
| Pointer to a buffer to receive the data | | Pointer to a buffer to receive the data | ||
|- | |- | ||
− | ! | + | ! Size |
| The size of the buffer | | The size of the buffer | ||
|- | |- | ||
− | ! | + | ! Count |
| The number of bytes read on return | | The number of bytes read on return | ||
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
Line 459: | Line 459: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! I2C |
| The I2C device to write to | | The I2C device to write to | ||
|- | |- | ||
− | ! | + | ! Address |
| The slave address to write to (I2C_ADDRESS_INVALID to use the current address) | | The slave address to write to (I2C_ADDRESS_INVALID to use the current address) | ||
|- | |- | ||
− | ! | + | ! Buffer |
| Pointer to a buffer of data to transmit | | Pointer to a buffer of data to transmit | ||
|- | |- | ||
− | ! | + | ! Size |
| The size of the buffer | | The size of the buffer | ||
|- | |- | ||
− | ! | + | ! Count |
| The number of bytes written on return | | The number of bytes written on return | ||
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
Line 486: | Line 486: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! I2C |
| The I2C device to write to and read from | | The I2C device to write to and read from | ||
|- | |- | ||
− | ! | + | ! Address |
| The slave address to write to (I2C_ADDRESS_INVALID to use the current address) | | The slave address to write to (I2C_ADDRESS_INVALID to use the current address) | ||
|- | |- | ||
− | ! | + | ! Initial |
| Pointer to the initial buffer to transmit | | Pointer to the initial buffer to transmit | ||
|- | |- | ||
− | ! | + | ! Len |
| The size of the initial buffer | | The size of the initial buffer | ||
|- | |- | ||
− | ! | + | ! Data |
| Pointer to a buffer to receive the data | | Pointer to a buffer to receive the data | ||
|- | |- | ||
− | ! | + | ! Size |
| The size of the data buffer | | The size of the data buffer | ||
|- | |- | ||
− | ! | + | ! Count |
| The number of bytes read on return | | The number of bytes read on return | ||
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
Line 519: | Line 519: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! I2C |
| The I2C device to write to | | The I2C device to write to | ||
|- | |- | ||
− | ! | + | ! Address |
| The slave address to write to (I2C_ADDRESS_INVALID to use the current address) | | The slave address to write to (I2C_ADDRESS_INVALID to use the current address) | ||
|- | |- | ||
− | ! | + | ! Initial |
| Pointer to the initial buffer to transmit | | Pointer to the initial buffer to transmit | ||
|- | |- | ||
− | ! | + | ! Len |
| The size of the initial buffer | | The size of the initial buffer | ||
|- | |- | ||
− | ! | + | ! Data |
| Pointer to a buffer of data to transmit | | Pointer to a buffer of data to transmit | ||
|- | |- | ||
− | ! | + | ! Size |
| The size of the data buffer | | The size of the data buffer | ||
|- | |- | ||
− | ! | + | ! Count |
| The number of bytes of data written on return | | The number of bytes of data written on return | ||
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
Line 552: | Line 552: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! I2C |
| The I2C device to get the clock rate from | | The I2C device to get the clock rate from | ||
|- | |- | ||
− | ! | + | ! Return |
| The clock rate in Hz or 0 on failure | | The clock rate in Hz or 0 on failure | ||
|- | |- | ||
Line 567: | Line 567: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! I2C |
| The I2C device to set the clock rate for | | The I2C device to set the clock rate for | ||
|- | |- | ||
− | ! | + | ! Rate |
| The clock rate to set in Hz | | The clock rate to set in Hz | ||
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
Line 585: | Line 585: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! I2C |
| The I2C device to get the slave address from | | The I2C device to get the slave address from | ||
|- | |- | ||
− | ! | + | ! Return |
| The slave address or I2C_ADDRESS_INVALID on failure | | The slave address or I2C_ADDRESS_INVALID on failure | ||
|- | |- | ||
Line 600: | Line 600: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! I2C |
| The I2C device to set the slave address for | | The I2C device to set the slave address for | ||
|- | |- | ||
− | ! | + | ! Address |
| The slave address to set | | The slave address to set | ||
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
Line 618: | Line 618: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! I2C |
| The I2C device to get properties from | | The I2C device to get properties from | ||
|- | |- | ||
− | ! | + | ! Properties |
| Pointer to a TI2CProperties structure to fill in | | Pointer to a TI2CProperties structure to fill in | ||
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
− | ! | + | ! Note |
| Replaced by I2CDeviceGetProperties for consistency | | Replaced by I2CDeviceGetProperties for consistency | ||
|- | |- | ||
Line 639: | Line 639: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! I2C |
| The I2C device to get properties from | | The I2C device to get properties from | ||
|- | |- | ||
− | ! | + | ! Properties |
| Pointer to a TI2CProperties structure to fill in | | Pointer to a TI2CProperties structure to fill in | ||
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
Line 657: | Line 657: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Return |
| Pointer to new I2C entry or nil if I2C could not be created | | Pointer to new I2C entry or nil if I2C could not be created | ||
|- | |- | ||
Line 669: | Line 669: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Size |
| Size in bytes to allocate for new I2C (Including the I2C entry) | | Size in bytes to allocate for new I2C (Including the I2C entry) | ||
|- | |- | ||
− | ! | + | ! Return |
| Pointer to new I2C entry or nil if I2C could not be created | | Pointer to new I2C entry or nil if I2C could not be created | ||
|- | |- | ||
Line 684: | Line 684: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 696: | Line 696: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 708: | Line 708: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 720: | Line 720: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 732: | Line 732: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 744: | Line 744: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 756: | Line 756: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 768: | Line 768: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 783: | Line 783: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 795: | Line 795: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Rate |
| The clock rate to set for the device (0 to use the default rate) | | The clock rate to set for the device (0 to use the default rate) | ||
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
Line 810: | Line 810: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
Line 822: | Line 822: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Address |
| The slave address to read from (I2C_ADDRESS_INVALID to use the current address) | | The slave address to read from (I2C_ADDRESS_INVALID to use the current address) | ||
|- | |- | ||
− | ! | + | ! Buffer |
| Pointer to a buffer to receive the data | | Pointer to a buffer to receive the data | ||
|- | |- | ||
− | ! | + | ! Size |
| The size of the buffer | | The size of the buffer | ||
|- | |- | ||
− | ! | + | ! Count |
| The number of bytes read on return | | The number of bytes read on return | ||
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
Line 846: | Line 846: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Address |
| The slave address to write to (I2C_ADDRESS_INVALID to use the current address) | | The slave address to write to (I2C_ADDRESS_INVALID to use the current address) | ||
|- | |- | ||
− | ! | + | ! Buffer |
| Pointer to a buffer of data to transmit | | Pointer to a buffer of data to transmit | ||
|- | |- | ||
− | ! | + | ! Size |
| The size of the buffer | | The size of the buffer | ||
|- | |- | ||
− | ! | + | ! Count |
| The number of bytes written on return | | The number of bytes written on return | ||
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
Line 870: | Line 870: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Address |
| The slave address to write to (I2C_ADDRESS_INVALID to use the current address) | | The slave address to write to (I2C_ADDRESS_INVALID to use the current address) | ||
|- | |- | ||
− | ! | + | ! Initial |
| Pointer to the initial buffer to transmit | | Pointer to the initial buffer to transmit | ||
|- | |- | ||
− | ! | + | ! Len |
| The size of the initial buffer | | The size of the initial buffer | ||
|- | |- | ||
− | ! | + | ! Data |
| Pointer to a buffer to receive the data | | Pointer to a buffer to receive the data | ||
|- | |- | ||
− | ! | + | ! Size |
| The size of the data buffer | | The size of the data buffer | ||
|- | |- | ||
− | ! | + | ! Count |
| The number of bytes read on return | | The number of bytes read on return | ||
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
Line 900: | Line 900: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Address |
| The slave address to write to (I2C_ADDRESS_INVALID to use the current address) | | The slave address to write to (I2C_ADDRESS_INVALID to use the current address) | ||
|- | |- | ||
− | ! | + | ! Initial |
| Pointer to the initial buffer to transmit | | Pointer to the initial buffer to transmit | ||
|- | |- | ||
− | ! | + | ! Len |
| The size of the initial buffer | | The size of the initial buffer | ||
|- | |- | ||
− | ! | + | ! Data |
| Pointer to a buffer of data to transmit | | Pointer to a buffer of data to transmit | ||
|- | |- | ||
− | ! | + | ! Size |
| The size of the data buffer | | The size of the data buffer | ||
|- | |- | ||
− | ! | + | ! Count |
| The number of bytes of data written on return | | The number of bytes of data written on return | ||
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
Line 930: | Line 930: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Return |
| The clock rate in Hz or 0 on failure | | The clock rate in Hz or 0 on failure | ||
|- | |- | ||
Line 942: | Line 942: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Rate |
| The clock rate to set in Hz | | The clock rate to set in Hz | ||
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
Line 957: | Line 957: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Return |
| The slave address or I2C_ADDRESS_INVALID on failure | | The slave address or I2C_ADDRESS_INVALID on failure | ||
|- | |- | ||
Line 969: | Line 969: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Address |
| The slave address to set | | The slave address to set | ||
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
Line 987: | Line 987: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 999: | Line 999: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,011: | Line 1,011: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,023: | Line 1,023: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,035: | Line 1,035: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,047: | Line 1,047: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,059: | Line 1,059: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,071: | Line 1,071: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 1,083: | Line 1,083: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- |
Revision as of 03:51, 20 April 2018
Return to Unit Reference
Contents
[hide]Description
Ultibo I2C interface unit
I2C (Inter-Integrated Circuit) is a serial bus for communication between peripheral components.
Originally invented by Phillips the I2C protocol is used by thousands of common chips that perform a wide range of tasks such as real time clocks, temperature and other sensors, small LCD displays and many more.
Each device is assigned a 7bit address which is used by the host (or master) to signal the device that a message written to the bus is intended for that device or that the host wants to read data from that device.
Speeds range from 10Kbps to 3.4Mbps although the typical speed is either 100Kbps or 400Kbps.
This unit implements the standardized interface for I2C devices and allows reading or writing to a specific address, setting a clock rate for the communication and determining device properties.
For the purpose of this interface a device is the I2C controller attached to the local system and may be either a master or a slave. Since the protocol does not include any form of enumeration or identification the interface does not attempt to represent the devices connected to the bus,any driver written to communicate with a connected I2C device should know (or allow configuration of) the address to read and write to and the specific message format required for that device. The Intel System Management Bus (SMBus) is a variation of the I2C bus and in certain cases the two are compatible with each other.
Constants
I2C_*
I2C_TYPE_*
I2C_STATE_*
I2C_FLAG_*
I2C_LOG_*
Type definitions
I2C properties
I2C enumeration callback
TI2CEnumerate = function(I2C:PI2CDevice; Data:Pointer):LongWord;
|
I2C notification callback
TI2CNotification = function(Device:PDevice; Data:Pointer; Notification:LongWord):LongWord;
|
I2C device start
TI2CDeviceStart = function(I2C:PI2CDevice;Rate:LongWord):LongWord;
|
I2C device stop
TI2CDeviceStop = function(I2C:PI2CDevice):LongWord;
|
I2C device read
TI2CDeviceRead = function(I2C:PI2CDevice; Address:Word; Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord;
|
I2C device write
TI2CDeviceWrite = function(I2C:PI2CDevice; Address:Word; Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord;
|
I2C device write read
TI2CDeviceWriteRead = function(I2C:PI2CDevice; Address:Word; Initial:Pointer; Len:LongWord; Data:Pointer; Size:LongWord; var Count:LongWord):LongWord;
|
I2C device write write
TI2CDeviceWriteWrite = function(I2C:PI2CDevice; Address:Word; Initial:Pointer; Len:LongWord; Data:Pointer; Size:LongWord; var Count:LongWord):LongWord;
|
I2C device get rate
TI2CDeviceGetRate = function(I2C:PI2CDevice):LongWord;
|
I2C device set rate
TI2CDeviceSetRate = function(I2C:PI2CDevice; Rate:LongWord):LongWord;
|
I2C device get address
TI2CDeviceGetAddress = function(I2C:PI2CDevice):Word;
|
I2C device set address
TI2CDeviceSetAddress = function(I2C:PI2CDevice; Address:Word):LongWord;
|
I2C device get properties
TI2CDeviceGetProperties = function(I2C:PI2CDevice; Properties:PI2CProperties):LongWord;
|
I2C device
Public variables
I2C logging
I2C_DEFAULT_LOG_LEVEL:LongWord = I2C_LOG_LEVEL_DEBUG;
|
Minimum level for I2C messages. Only messages with level greater than or equal to this will be printed. |
I2C_LOG_ENABLED:Boolean;
|
Function declarations
Initialization functions
I2C functions
function I2CDeviceStart(I2C:PI2CDevice; Rate:LongWord):LongWord;
function I2CDeviceStop(I2C:PI2CDevice):LongWord;
function I2CDeviceRead(I2C:PI2CDevice; Address:Word; Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord;
function I2CDeviceWrite(I2C:PI2CDevice; Address:Word; Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord;
function I2CDeviceWriteRead(I2C:PI2CDevice; Address:Word; Initial:Pointer; Len:LongWord; Data:Pointer; Size:LongWord; var Count:LongWord):LongWord;
function I2CDeviceWriteWrite(I2C:PI2CDevice; Address:Word; Initial:Pointer; Len:LongWord; Data:Pointer; Size:LongWord; var Count:LongWord):LongWord;
function I2CDeviceGetRate(I2C:PI2CDevice):LongWord;
function I2CDeviceSetRate(I2C:PI2CDevice; Rate:LongWord):LongWord;
function I2CDeviceGetAddress(I2C:PI2CDevice):Word;
function I2CDeviceSetAddress(I2C:PI2CDevice; Address:Word):LongWord;
function I2CDeviceProperties(I2C:PI2CDevice; Properties:PI2CProperties):LongWord; inline;
function I2CDeviceGetProperties(I2C:PI2CDevice; Properties:PI2CProperties):LongWord;
function I2CDeviceDestroy(I2C:PI2CDevice):LongWord;
function I2CDeviceRegister(I2C:PI2CDevice):LongWord;
function I2CDeviceDeregister(I2C:PI2CDevice):LongWord;
function I2CDeviceFindByName(const Name:String):PI2CDevice; inline;
function I2CDeviceFindByDescription(const Description:String):PI2CDevice; inline;
function I2CDeviceEnumerate(Callback:TI2CEnumerate; Data:Pointer):LongWord;
function I2CDeviceNotification(I2C:PI2CDevice; Callback:TI2CNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
RTL I2C functions
function SysI2CStart(Rate:LongWord):LongWord;
function SysI2CStop:LongWord;
function SysI2CRead(Address:Word; Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord;
function SysI2CWrite(Address:Word; Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord;
function SysI2CWriteRead(Address:Word; Initial:Pointer; Len:LongWord; Data:Pointer; Size:LongWord; var Count:LongWord):LongWord;
function SysI2CWriteWrite(Address:Word; Initial:Pointer; Len:LongWord; Data:Pointer; Size:LongWord; var Count:LongWord):LongWord;
function SysI2CSetRate(Rate:LongWord):LongWord;
function SysI2CGetAddress:Word;
function SysI2CSetAddress(Address:Word):LongWord;
I2C helper functions
function I2CDeviceGetDefault:PI2CDevice; inline;
function I2CDeviceSetDefault(I2C:PI2CDevice):LongWord;
function I2CDeviceCheck(I2C:PI2CDevice):PI2CDevice;
procedure I2CLog(Level:LongWord; I2C:PI2CDevice; const AText:String);
procedure I2CLogInfo(I2C:PI2CDevice; const AText:String); inline;
procedure I2CLogWarn(I2C:PI2CDevice; const AText:String); inline;
procedure I2CLogError(I2C:PI2CDevice; const AText:String); inline;
procedure I2CLogDebug(I2C:PI2CDevice; const AText:String); inline;
Return to Unit Reference