User Tools

Site Tools


ffc:cm:api_i2c

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
ffc:cm:api_i2c [2021/12/08 21:54] – external edit 127.0.0.1ffc:cm:api_i2c [2022/03/29 17:17] (current) – external edit 127.0.0.1
Line 5: Line 5:
  
 ====Links==== ====Links====
-[[link|Here is a link]]\\ +Click here for the [[ffc:cm:api-osc|Laser Driver API Command List]]\\ 
-[[link|Here is a another]]\\+Click here for the [[ffc:cm:quickstartFFC-CM Quickstart Guide]]\\
  
 ====I2C interface==== ====I2C interface====
Line 12: Line 12:
 The Gen2 Laser Driver is compatable with I2C Fast Mode 400 kbit/s speed and uses 7 bit addressing with the address determined by the board’s installation position on the pump laser board.. The Gen2 Laser Driver is compatable with I2C Fast Mode 400 kbit/s speed and uses 7 bit addressing with the address determined by the board’s installation position on the pump laser board..
 Little Endian (least significant byte first) data format is used for multi-byte data types.  Little Endian (least significant byte first) data format is used for multi-byte data types. 
 +
 +The [[ffc:cm:api-ld|command API]] outlines the command set for an individual laser driver board.
 +I2C protocols use unique addresses for each device on the I2C bus allowing many devices to share the same two wires.
 +For Vescent products, each command is no longer than 8 bytes as outlined in the [[ffc:cm:api_i2c#I2C Format|I2C Format]] section. When multiple laser driver boards are in the system, they are identified by the address which is determined by their position on the Pump Board. 
 +The Command index byte referenced in the description of each command is the one that follows the address byte.
 +The address byte determines which board answers the command. The channel argument which follows the command index (second byte) determines if the command is for the temperature channel (0) or the laser driver current channel (1)
 +
 +For example, the command ''26 17 0 3''  gives it the API command in position 17 with arguments 0 and 3 to the board located at address 26. It is essentially the same as sending the ''control 0 3'' to whichever board is at the address in the first byte.
  
 ====I2C Addresses==== ====I2C Addresses====
Line 80: Line 88:
 The parameters are defined by their position using the two bit values shown here: The parameters are defined by their position using the two bit values shown here:
  
-<color blue>#define</color> <color CMD_ARG0_UINT8 (CMD_UINT8 << 6)\\ +<color blue>#define</color> <color #ec37e1> CMD_ARG0_UINT8 </color> (<color #ec37e1>CMD_UINT8</color> << 6)\\ 
-<color blue>#define</color> CMD_ARG0_UINT16 (CMD_UINT16 << 6)\\ +<color blue>#define</color> <color #ec37e1> CMD_ARG0_UINT16 </color> (<color #ec37e1>CMD_UINT16</color> << 6)\\ 
-<color blue>#define</color> CMD_ARG0_INT16 (CMD_INT16 << 6)\\ +<color blue>#define</color> <color #ec37e1> CMD_ARG0_INT16</color> (<color #ec37e1>CMD_INT16</color> << 6)\\ 
-<color blue>#define</color> CMD_ARG0_FLOAT (CMD_FLOAT << 6)\\+<color blue>#define</color> <color #ec37e1> CMD_ARG0_FLOAT</color> (<color #ec37e1>CMD_FLOAT</color> << 6)\\
  
-<color blue>#define</color> CMD_ARG1_UINT8 (CMD_UINT8 << 4)\\ +<color blue>#define</color> <color #ec37e1> CMD_ARG1_UINT8</color> (<color #ec37e1>CMD_UINT8</color> << 4)\\ 
-<color blue>#define</color> CMD_ARG1_UINT16 (CMD_UINT16 << 4)\\ +<color blue>#define</color> <color #ec37e1> CMD_ARG1_UINT16</color> (<color #ec37e1>CMD_UINT16</color> << 4)\\ 
-<color blue>#define</color> CMD_ARG1_INT16 (CMD_INT16 << 4)\\ +<color blue>#define</color> <color #ec37e1> CMD_ARG1_INT16</color> (<color #ec37e1>CMD_INT16</color> << 4)\\ 
-<color blue>#define</color> CMD_ARG1_FLOAT (CMD_FLOAT << 4)\\+<color blue>#define</color> <color #ec37e1> CMD_ARG1_FLOAT</color> (<color #ec37e1>CMD_FLOAT</color> << 4)\\
  
-<color blue>#define</color> CMD_ARG2_UINT8 (CMD_UINT8 << 2)\\ +<color blue>#define</color> <color #ec37e1> CMD_ARG2_UINT8</color> (<color #ec37e1>CMD_UINT8</color> << 2)\\ 
-<color blue>#define</color> CMD_ARG2_UINT16 (CMD_UINT16 << 2)\\ +<color blue>#define</color> <color #ec37e1> CMD_ARG2_UINT16</color> (<color #ec37e1>CMD_UINT16</color> << 2)\\ 
-<color blue>#define</color> CMD_ARG2_INT16 (CMD_INT16 << 2)\\ +<color blue>#define</color> <color #ec37e1> CMD_ARG2_INT16</color> (<color #ec37e1>CMD_INT16</color> << 2)\\ 
-<color blue>#define</color> CMD_ARG2_FLOAT (CMD_FLOAT << 2)\\+<color blue>#define</color> <color #ec37e1> CMD_ARG2_FLOAT</color> (<color #ec37e1>CMD_FLOAT</color> << 2)\\
  
-<color blue>#define</color> CMD_ARG3_UINT8 CMD_UINT8\\ +<color blue>#define</color> <color #ec37e1> CMD_ARG3_UINT8</color> <color #ec37e1>CMD_UINT8</color>\\ 
-<color blue>#define</color> CMD_ARG3_UINT16 CMD_UINT16\\ +<color blue>#define</color> <color #ec37e1> CMD_ARG3_UINT16</color> <color #ec37e1>CMD_UINT16</color>\\ 
-<color blue>#define</color> CMD_ARG3_INT16 CMD_INT16\\ +<color blue>#define</color> <color #ec37e1> CMD_ARG3_INT16</color> <color #ec37e1>CMD_INT16</color>\\ 
-<color blue>#define</color> CMD_ARG3_FLOAT CMD_FLOAT\\+<color blue>#define</color> <color #ec37e1> CMD_ARG3_FLOAT</color> <color #ec37e1>CMD_FLOAT</color>\\
  
  
 Where the bits are set according to these **Basic Types**: Where the bits are set according to these **Basic Types**:
  
-<color blue>#define</color> CMD_UINT8 0x00\\ +<color blue>#define</color> <color #ec37e1> CMD_UINT8</color> 0x00\\ 
-<color blue>#define</color> CMD_UINT16 0x01\\ +<color blue>#define</color> <color #ec37e1> CMD_UINT16</color> 0x01\\ 
-<color blue>#define</color> CMD_INT16 0x02\\ +<color blue>#define</color> <color #ec37e1> CMD_INT16</color> 0x02\\ 
-<color blue>#define</color> CMD_FLOAT 0x03\\ +<color blue>#define</color> <color #ec37e1> CMD_FLOAT</color> 0x03\\ 
-<color blue>#define</color> CMD_RAW         0x04  (string of up to 8 bytes)\\ +<color blue>#define</color> <color #ec37e1> CMD_RAW</color>         0x04  (string of up to 8 bytes)\\ 
-<color blue>#define</color> CMD_STATUS 0x05\\ +<color blue>#define</color> <color #ec37e1> CMD_STATUS</color> 0x05\\ 
-<color blue>#define</color> CMD_ASCII 0x06\\ +<color blue>#define</color> <color #ec37e1> CMD_ASCII</color> 0x06\\ 
-<color blue>#define</color> CMD_TEST 0x07\\ +<color blue>#define</color> <color #ec37e1> CMD_TEST</color> 0x07\\ 
-<color blue>#define</color> CMD_UINT32 0x08\\ +<color blue>#define</color> <color #ec37e1> CMD_UINT32</color> 0x08\\ 
-<color blue>#define</color> CMD_NO_ARGS 0xFF\\ +<color blue>#define</color> <color #ec37e1> CMD_NO_ARGS</color> 0xFF\\ 
-<color blue>#define</color> CMD_NONE 0xFF\\+<color blue>#define</color> <color #ec37e1> CMD_NONE</color> 0xFF\\
  
 Note **Basic Types** define the return type  Note **Basic Types** define the return type 
  
ffc/cm/api_i2c.1639000460.txt.gz · Last modified: 2021/12/08 21:54 by 127.0.0.1