FLI R
ADK
Ge tt in g S ta rt ed
The information contained herein does not contain technology as
defined by EAR,15 CFR772, is publicly available, and therefore
not subject to EAR.
10
4.4
Sending Commands to the ADK over i2C
Currently the Boson camera core of the ADK will only communicate via UART. The GMSL
adapter board in the ADK has a i2C to UART FIFO transceiver that will allow you to send byte
array commands to the Boson. In practice the I2C to UART buffer limits the amount of data
you can send to the Boson at any one time to 128 bytes. The I2C to UART transceiver has the
8-bit address 0xD8.
The standard cycle for sending I2C commands to the boson is:
1)
Turn off the transmitter on the I2C to UART transceiver.
a.
Write value 0x02 to register 0x09 to device 0xD8.
2)
Send a series of I2C commands to the FIFO buffer.
a.
For each
value
in command byte array. Write
value
to register 0x00 to device 0xD8
3)
Turn on the transmitter on the I2C to UART transceiver
–
this flushes the FIFO buffer to the
Boson.
a.
Write value 0x02 to register 0x09 to device 0xD8.
Note: there are example i2cWrite, i2cRead, and sendCommand functions for a teensy board
connected to the Maxim deserializer in
Sample I2C Functions For Teensy SOC
To generate the command byte arrays to send to the Boson, customers can use the rawBoson
tool provided through FLIR on GitHub at
https://github.com/FLIR/rawBoson
with the Boson SDK documentation/Software IDD. The Software IDD describe the command
the Boson will accept, and the rawBoson tool can packetize the message properly with a CRC
code and start and stop flag. Documentation on how the CRC code and complete bytes need
to be created and formatted will be provided at request. We recommend using this tool to
determine the corresponding byte array to send for a desired command.
UART TX and RX FIFO are both 128 bytes, so large packets (like chunks of a camera firmware
update) can overflow the FIFO if chunk size is not limited to ~64 bytes (in case the FIFO is
not cleared between two successive large messages). Most if not all SDK UART commands
do not exceed 64 bytes so this isn’t a
problem in practice except for file transfer.
Note it’s
possible to update the camera firmware over GMSL, it will just take a while to send all the
data over to the Boson.
Below is an example of turning the window heater on and off. Note that since the transmitter
on the I2C to UART transceiver is not turned off these commands are written directly to the
boson.
Turn Heater OFF
–
the heater is off by default
Set GPIO state register on ADK side to configure heater
off