Fermion TMF8801 ToF Distance Ranging Sensor (20-2500mm) - Datasheet

Table Of Contents
Document Feedback
TMF8801
Register Description
Datasheet PUBLIC
DS000648 v8-00 • 2021-Jul-08
69 29
Addr: 0x10
COMMAND
Field
Name
Rst
Type
Description
cmd_data5 = Bits for GPIO control
Bits
Definition
3:0
GPIO0 settings
0 Input
1 - Input: active low disables collection, immediately abandoning
current measurement. Returning to high restarts new
measurement
2 - Input: active high disables collection, immediately
abandoning current measurement. Returning to low restarts new
measurement
3 - Output: VCSEL pulse output see cmd_data4
4 - Output low (default after startup)
5 - Output high
6:15 Reserved, do not use
7:4
GPIO1 settings
0 - Input
1 - Input: active low disables collection, immediately abandoning
current measurement. Returning to high restarts new
measurement
2 - Input: active high disables collection, immediately
abandoning current measurement. Returning to low restarts new
measurement
3 - Output: VCSEL pulse output see cmd_data4
4 - Output low (default after startup)
5 - Output high
6:15 Reserved, do not use
cmd_data4 = If cmd_data5 enables VCSEL pulse output for GPIO0 and/or
GPIO1, cmd_data4 sets its timings as follows:
Value
Meaning
0
No signal
1
GPIOx, rises 0 µs time before VCSEL pulse starts
2
GPIOx rises 100 µs before VCSEL pulse
3
GPIOx rises 200 µs before VCSEL pulse and so on
The falling edge of GPIOx happens at the same time the VCSEL stops
emitting light.
cmd_data3 = Object detection threshold and spread spectrum mode
Bits
Definition
5:0
Object detection threshold use 0 as default value
6
spread_spectrum_mode: If set, avoids aliasing of objects into
measurement range. Use together with VCSEL_clk_div2=1
otherwise maximum distance is reduced and false objects at far
distance can occur.
7
Set to ‘0’
cmd_data2 = repetition_period in mSec, use 0 for single measurement; if
the repetition period is set lower than the ranging time for this mode, the
TMF8801 runs at it maximum possible speed (best effort approach).
cmd_data1 = Number of iterations, low byte; 1 LSB=1 k
cmd_data0 = Number of iterations, high byte; 1 LSB=1 k*256
Once a measurement is finished, the interrupt is asserted if it is enabled by
int1_enab. Additionally the transaction ID tid is updated