Image not available
Illustrative purposes only
TMF8801-1BM
Photo Sensor, 2.5 m, I2C Digital, Time of Flight, 2.7V to 3.3V, PCB
⚠️ Reference pricing provided. In case of supply shortages, we will connect you with our trusted procurement partners to ensure your project's continuity.
- Manufacturer: AMS OSRAM GROUP
- Product type: Distance Photoelectric Sensors
- Sensor Output: I2C Digital
- Sensing Method: Time of Flight
- Connection Method: PCB
- Sensing Range Max: 2.5m
- Supply Voltage DC Max: 3.3V
- Supply Voltage DC Min: 2.7V
| Delivery and price | |
|---|---|
| Units per pack | 100 |
| Price | 2.87 € |
| Current stock | 1000+ |
| Lead time | 7 days |
## **Datasheet** DS000648 ## **TMF8801** ## **Time-of-Flight Sensor** v9-00 • 2021-Dec-21 ## **Abstract** The TMF8801 is a dToF (direct time of flight) optical distance sensor module achieving up to 2500mm target detection distance. Document Feedback TMF8801 Content Guide ## **Content Guide** |**1**|**General Description ...................... 3**| |---|---| |1.1|Key Benefits & Features ............................... 3| |1.2|Applications .................................................. 4| |1.3|Block Diagram .............................................. 4| |**2**|**Ordering Information .................... 5**| |**3**|**TMF8801 Module Description ....... 6**| |3.1<br>3.2|Pin Diagram .................................................. 6<br>Pin Description ............................................. 6| ## **4 Absolute Maximum Ratings ......... 8 5 Electrical Characteristics.............. 9** 5.1 Recommended Operating Conditions .......... 9 **6 Typical Operating Characteristics ............................ 10** |**6**|**Typical Operating**<br>**Characteristics ............................ 10**| |---|---| |**7**|**Functional Description................ 13**| |7.1|I²C Protocol ................................................. 13| |7.2|System Parameters .................................... 13| |7.3<br>7.4|I/O ............................................................... 14<br>Power Consumption ................................... 15| |7.5|Timing ......................................................... 16| |7.6|Algorithm Performance ............................... 17| |7.7|VCSEL ........................................................ 19| |7.8|Typical Optical Characteristics ................... 19| |**8**|**Register Description ................... 21**| |8.1|APPID Register (Address 0x00) ................. 21| |8.2|APPREV_MAJOR Register (Address| ||0x01) ........................................................... 21| |8.3|APPREQID Register (Address 0x02) ......... 21| |8.4|ENABLE Register (Address 0xE0) ............. 22| |8.5|INT_STATUS Register (Address 0xE1) ..... 22| |---|---| |8.6|INT_ENAB Register (Address 0xE2) .......... 23| |8.7|ID Register (Address 0xE3) ........................ 23| |8.8|REVID Register (Address 0xE4) ................ 24| |8.9|App0 Registers – appid=0xC0 .................... 24| |8.10|Bootloader Registers – appid=0x80 ........... 52| |**9**|**Application Information ............... 56**| |9.1|SPAD Options ............................................ 56| |9.2|Reference SPAD, TDC and Histogram ...... 57| |9.3|Schematic ................................................... 58| |9.4|PCB Layout................................................. 60| |9.5|PCB Pad Layout ......................................... 61| |**10**|**Package Drawings & Markings ... 62**| |**11**|**Tape & Reel Information .............. 63**| |**12**|**Soldering & Storage Information 64**| |12.1|Soldering Information ................................. 64| |12.2|Storage Information .................................... 65| |**13**|**Laser Eye Safety .......................... 67**| |**14**|**Revision Information ................... 68**| |**15**|**Legal Information ......................... 69**| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 2 Document Feedback TMF8801 General Description ## **1 General Description** The TMF8801 is a time-of-flight (TOF) sensor in a single modular package with associated VCSEL. The TOF device is based on SPAD, TDC and histogram technology. The device achieves 2500 mm detection range. ## 1.1 Key Benefits & Features The benefits and features of TMF8801, Time-of-Flight Sensor, are listed below: ## **Figure 1:** ## **Added Value of Using TMF8801** |**Benefits**|**Features**| |---|---| |Small footprint fits in the mobile phone bezel|Modular package - 2.2 mm x 3.6 mm x 1.0 mm| |Detecting central closest objects|21ºFOI| |Within 5 % of measurement (accuracy); no<br>multipath and no multiple object problems as<br>for iToF|Time-to-Digital Converter (TDC)<br>Direct Time-of-Flight Measurement| |Better accuracy detects reliably closest object<br>Minimum distance 20 mm<br>Maximum distance 2500 mm|Single Photon Avalanche Photodiode (SPAD)<br>Histogram based architecture| |No complex calibration|Dynamic cover glass calibration| |Compensates for dirt on glass|Reliable Operation under demanding use cases| |Improved accuracy over temperature and life|Reference SPAD| |Make better decisions|Distance and signal quality reported| |Class 1 Eye Safe|Fast VCSEL driver with protection| ||27 mA power consumption at 30 Hz operation| |Longer battery life|0.23 mA power consumption at 1 Hz<br>0.17 mA power consumption at 0.5 Hz| ||0.26 µA power-down current consumption (EN=0)| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 3 Document Feedback TMF8801 General Description ## 1.2 Applications The device is ideal for use in the mobile phone market with applications including: - Distance measurement for camera autofocus (Laser Detect Autofocus - LDAF) - Supporting low-power system operation by enabling high-power components (i.e. 3D camera) only when an object is in the detection range - Presence detection - Object detection - Collision avoidance ## 1.3 Block Diagram The functional blocks of this device are shown below: ## **Figure 2:** ## **Functional Blocks of TMF8801** **==> picture [447 x 172] intentionally omitted <==** **----- Start of picture text -----**<br> TMF8801<br>TOF Sensor Optics<br>EN<br>Driver VCSEL<br>GPIO1 Reflective<br>Control<br>INT GPIO0 Internal Surface<br>Host<br>SDA SPAD, Reflection<br>Data<br>SCL TDC and<br>Process Optical<br>Histogram<br>Filter<br>Cortex M0<br>Background<br>Light<br>VDD GND VDDC GNDC<br>**----- End of picture text -----**<br> Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 4 Document Feedback TMF8801 Ordering Information ## **2 Ordering Information** |**Ordering Code**|**Package**|**Marking**|**Delivery Form**|**Delivery Quantity**| |---|---|---|---|---| |TMF8801-1BM|Optical<br>Module|5-digit tracecode<br>(coded)|Tape & Reel<br>(7’’ reels)|500 pcs/reel| |TMF8801-1B|Optical<br>Module|5-digit tracecode<br>(coded)|Tape & Reel<br>(13’’ reels)|5000 pcs/reel| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 5 Document Feedback TMF8801 TMF8801 Module Description ## **3 TMF8801 Module Description** ## 3.1 Pin Diagram ## **Figure 3:** ## **Pin Locations Top Through View (not to scale)** |VDDC<br>GNDC<br>GPIO0<br>INT<br>SCL<br>SDA|2<br>3<br>4<br>5<br>6<br>11<br>10<br>9<br>8<br>7<br>1<br>12|VDDV<br>GNDV<br>GPIO1<br>EN<br>GND<br>VDD| |---|---|---| ## 3.2 Pin Description **Figure 4: Pin Description of TMF8801** |**Pin Number**|**Pin Name**|**Signal Type**|**Description**| |---|---|---|---| |1|VDDC|Supply|Charge pump supply voltage (3 V); add a| ||||capacitor GRM155R70J104KA01 (0402 X7R| ||||0.1 µF 6.3 V) to GND| |2|GNDC|Ground|Charge pump ground; connect all ground pins| ||||together| |3|GPIO0|I/O|General purpose input/output; default output| ||||low; leave open if not used| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 6 Document Feedback TMF8801 TMF8801 Module Description |**Pin Number**|**Pin Name**|**Signal Type**|**Description**| |---|---|---|---| |4|INT|Output|Interrupt. Open-drain output; connect to GND| ||||if not used| |5|SCL|Input|I²C Serial Clock| |6|SDA|I/O|I²C Serial Data| |7|VDD|Supply|Chip Supply voltage (3 V); add a capacitor| ||||GRM155R70J104KA01 (0402 X7R 0.1 µF| ||||6.3 V) to GND| |8|GND|Ground|Chip Ground; connect all ground pins| ||||together| |9|EN|Input|Enable input active high; setting to low forces| ||||the device into shutdown and all memory| ||||content is lost; connected to TMF8801 VDD if| ||||not connected to a host GPIO| |10|GPIO1|I/O|General purpose input/output; default output| ||||low; leave open if not used| |11|GNDV|Ground|VCSEL Ground; connect all ground pins| ||||together| |12|VDDV|Supply|VCSEL Supply voltage (3 V); add a capacitor| ||||GRM155R70J104KA01 (0402 X7R 0.1 µF| ||||6.3 V) to GND| (1) SDA, SCL, INT and EN have no diode to any VDD supply. Therefore even with VDD=0 V they do not block the interrupt line or I²C bus. (2) GPIO0 and GPIO1 are push/pull output and have a diode to VDD; therefore if VDD is not powered, GPIO0 and GPIO1 should not be driven from outside. Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 7 Document Feedback TMF8801 Absolute Maximum Ratings ## **4** ## **Absolute Maximum Ratings** Stresses beyond those listed under “Absolute Maximum Ratings” may cause permanent damage to the device. These are stress ratings only. Functional operation of the device at these or any other conditions beyond those indicated under “Operating Conditions” is not implied. Exposure to absolute maximum rating conditions for extended periods may affect device reliability. ## **Figure 5** ## **Absolute Maximum Ratings of TMF8801** |**Symbol**|**Parameter**|**Min**|||**Max**|**Unit**|**Comments**| |---|---|---|---|---|---|---|---| |**Electrical Parameters**|||||||| |VDDC,<br>VDDV, VDD|3 V Supply voltage|-0.3|||3.6|V|Connect pins VDDC,<br>VDDV, VDD on PCB with<br>very short connections| |GNDV,<br>GNDC, GND|<br>Ground|0.0|||0.0|V|Connect all GND pins on<br>PCB with very short<br>connections| |GPIO0,<br>GPIO1|Digital I/O terminal voltage|-0.3||VDD +<br>0.3 V max.<br>3.6 V||V|Protection diode to VDD| |INT, SCL,<br>SDA, EN|Digital I/O terminal voltage|-0.3|||3.6|V|No protection diodes to<br>any positive supply only<br>to ground| |I_SCR|Latch up immunity||±|100||mA|JEDEC JESD78D Nov<br>2011| |**Electrostatic Discharge**|||||||| |ESDHBM|Electrostatic Discharge HBM||± 2000|||V|JS-001-2014| |ESDCDM|Electrostatic Discharge CDM||±|500||V|JEDEC JESD22-C101F<br>Oct 2013| |**Temperature Ranges and Storage Conditions**|||||||| |TSTRG|Storage Temperature Range|-40|||85|°C|| |TBODY|Package Body Temperature||||260|°C|IPC/JEDEC J-STD-020(1)| |RHNC|Relative Humidity (non-<br>condensing)||||85|%|| ||||||||Represents a maximum| |MSL|Moisture Sensitivity Level|||3|||floor life time of 168h with<br>TAMB< 30 °C and < 60 %| ||||||||r.h.| (1) The reflow peak soldering temperature (body temperature) is specified according to IPC/JEDEC J-STD-020 “Moisture/Reflow Sensitivity Classification for Nonhermetic Solid State Surface Mount Devices.” Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 8 Document Feedback TMF8801 Electrical Characteristics ## **5 Electrical Characteristics** All limits are guaranteed. The parameters with Min and Max values are guaranteed with production tests or SQC (Statistical Quality Control) methods. ## 5.1 Recommended Operating Conditions Device parameters are guaranteed at nominal conditions unless otherwise noted. While the device is operational across the temperature range, functionality will vary with temperature. ## **Figure 6:** ## **Recommended Operating Conditions of TMF8801** |**Symbol**|**Parameter**|**Min**|**Typ**|**Max**|**Unit**|**Comment**| |---|---|---|---|---|---|---| |VDDV, VDDC, VDD|3 V supply voltage|2.7|3|3.3|V|| |Temperature Range|Free-air temperature|-30|25|70|°C|Operational| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 9 Document Feedback TMF8801 Typical Operating Characteristics ## **6 Typical Operating Characteristics** Following operating characteristics are measured with calibrated devices with full optical stack including glass and IR ink with >90 % transmissivity. The airgap is set to 0.38 mm. The ambient light is measured on the 1 m x 1 m target. A very diffuse scotch magic tape 810 is used for measurement with smudge. ## **Figure 7:** **350 Lux Fluorescent Light and 18% Grey Card** **==> picture [407 x 185] intentionally omitted <==** **----- Start of picture text -----**<br> 350Lux Fluorescent Light, Grey Card<br>Measured Distance vs. Target Distance [mm]<br>2500<br>2000<br>1500<br>1000<br>500<br>0<br>0 500 1000 1500 2000 2500<br>**----- End of picture text -----**<br> **Figure 8:** ## **350 Lux Fluorescent Light, 18% Grey Card and Smudge on Glass** **==> picture [399 x 170] intentionally omitted <==** **----- Start of picture text -----**<br> 350Lux Fluorescent Light, Smudge on glass (1 layer scotch magic tape<br>810), Grey Card, Measured Distance vs. Target Distance [mm]<br>2500<br>2000<br>1500<br>1000<br>500<br>0<br>0 500 1000 1500 2000 2500<br>**----- End of picture text -----**<br> Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 10 Document Feedback TMF8801 Typical Operating Characteristics ## **Figure 9:** ## **1.4 k Lux Halogen Light and 18% Grey Card** **==> picture [405 x 179] intentionally omitted <==** **----- Start of picture text -----**<br> 1.4kLux Halogen Light (10kLux sunlight equivalent), Grey Card<br>Measured Distance vs. Target Distance [mm]<br>1600<br>1400<br>1200<br>1000<br>800<br>600<br>400<br>200<br>0<br>0 200 400 600 800 1000 1200 1400 1600<br>**----- End of picture text -----**<br> ## **Figure 10: 14 k Lux Halogen Light and 18% Grey Card** **==> picture [433 x 196] intentionally omitted <==** **----- Start of picture text -----**<br> 14kLux Halogen Light (100kLux sunlight equivalent), Grey Card<br>Measured Distance vs. Target Distance [mm]<br>1000<br>900<br>800<br>700<br>600<br>500<br>400<br>300<br>200<br>100<br>0<br>0 100 200 300 400 500 600 700 800 900 1000<br>**----- End of picture text -----**<br> Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 11 Document Feedback TMF8801 Typical Operating Characteristics **Figure 11: Field of Illumination of VCSEL (FOI), X-Axis: ±10.4°, Y-Axis: ±10.31°, 1/e[2]** Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 12 Document Feedback TMF8801 Functional Description ## **7 Functional Description** ## 7.1 I²C Protocol The TMF8801 is controlled by an I²C bus, one interrupt pin and two GPIO pins. The device uses I²C serial communication protocol for communication. The device supports 7-bit chip addressing and standard, fast mode and fast mode plus modes. Read and Write transactions comply with the standard set by Philips (now NXP). For a complete description of the I²C protocol, please review the NXP I²C design specification. Internal to the device, an 8-bit buffer stores the register address location of the byte to read or write. This buffer auto-increments upon each byte transfer and is retained between transaction events (i.e. valid even after the master issues a STOP and the I²C bus is released). During consecutive Read transactions, the future/repeated I²C Read transaction may omit the memory address byte normally following the chip address byte; the buffer retains the last register address +1. A Write transaction consists of a START, CHIP-ADDRESSWRITE, REGISTER-ADDRESSWRITE, DATA BYTE(S), and STOP. Following each byte (9TH clock pulse) the slave places an ACKNOWLEDGE/NOT- ACKNOWLEDGE (ACK/NACK) on the bus. If NACK is transmitted by the slave, the master may issue a STOP. A Read transaction consists of a START, CHIP-ADDRESSWRITE, REGISTER-ADDRESS, RESTART, CHIP-ADDRESSREAD, DATA BYTE(S), and STOP. Following all but the final byte the master places an ACK on the bus (9TH clock pulse). Termination of the Read transaction is indicated by a NACK being placed on the bus by the master, followed by STOP. The default I²C address is 0x41. The address can be changed after power-up. Use the enable pin to enable only one device at a time to provide unique device addresses. ## 7.2 System Parameters The on-chip microprocessor is a Cortex M0 µP. Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 13 Document Feedback TMF8801 Functional Description ## **Figure 12: ARM M0 Parameters** |**Parameter**|**Min**|**Nom**|**Max**|**Units**|**Comment**| |---|---|---|---|---|---| ||||||The CPU can operate| ||||||with the RC oscillator| |µP Operating Frequency||5.37|86|MHz|directly or with a 16x<br>PLL; frequency tuning| ||||||adjusts the default| ||||||frequency to 4.7 MHz| |RAM|||32|kB|| |ROM|||32|kB|| |Max PLL Frequency||172||MHz|for 5.37 MHz RC clock| ## 7.3 I/O ## **Figure 13:** ## **Typical I/O Level Specification** |**Symbol**<br>**Parameter**|**Condition**<br>**Min**<br>**Typ**<br>**Max**<br>**Units**| |---|---| |ILEAK<br>SDA, SCL, GPIO0/1,<br>EN, INT|-5<br>5<br>µA| |VIH(1)<br>SDA, SCL, GPIO0/1,<br>EN|1.26<br>V| |VIL_I2C(1)<br>SDA, SCL|2.7 V<VDD<2.9 V,<br><400 kHz I²C speed<br>0.3<br>V<br>VDD >2.9 V,<br><400 kHz I²C speed<br>0.54<br>2.8 V<VDD<3.0 V,<br><1 MHz I²C speed<br>0.3<br>VDD>3.0 V,<br><1 MHz I²C speed<br>0.54| |VIL<br>GPIO0/1, EN|0.54<br>V| |VOL<br>SDA, GPIO0/1, INT|2 mA sink<br>0<br>0.36<br>V| ||4 mA sink<br>0<br>0.6<br>V| |IDRIVE_H<br>GPIO0/1|1 V applied on GPIO<br>3.6<br>mA| |IDRIVE_L<br>GPIO0/1|1 V applied on GPIO<br>3.9<br>mA| (1) The input high level VIH and low level VIL is defined to support a pull-up supply of 1.8 V ±5 % Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 14 Document Feedback TMF8801 Functional Description ## 7.4 Power Consumption All current consumption values include silicon process variation. Temperature and voltages are at nominal conditions (23 ºC and 2.8 V). ## **Figure 14: Power Consumption** |**Parameter**|**Condition**<br>**Min**<br>**Nom**<br>**Max**<br>**Units**<br>**Comment**| |---|---| |I_VDD Powerdown|Enable Pin<br>Low I²C Off<br>0.02<br>0.26<br>1<br>µA<br>State:<br>Powerdown| |I_VDD Standby CPU<br>Off, RAM On OSC Off,<br>pon=0<br>I²C Wakeup Only|85<br>µA<br>State:<br>Standby| |I_VDD Wait CPU Off,<br>RAM On, OSC On<br>5 MHz I²C On, Timer<br>Wakeup|140<br>µA<br>State:<br>Wait| |I_VDD Ranging<br>Processing CPU<br>Running at 80 MHz No<br>VCSEL,<br>No TDC|2.7<br>mA<br>State:<br>Histogram<br>processing| |I_VDD Ranging Active<br>CPU stopped<br>VCSEL_clk_div2=0<br>(default), TDCs running|32.5<br>mA<br>State:<br>Ranging active| |I_VDD Ranging Active<br>CPU stopped<br>VCSEL_clk_div2=1,<br>TDCs running|25.2<br>mA<br>State:<br>Ranging active| |I_VDD Ranging<br>Average power<br>consumption|30 Hz,33 ms<br>default<br>settings(1)<br>27<br>mA| ||1 Hz, Ranging<br>period =<br>1000 ms<br>0.23<br>mA<br>Firmware 3.0.19.0<br>or higher,<br>80 k iterations,<br>cmd_data6 = 0x23<br>(algorithm setting<br>for command 0x02<br>or 0x03)<br>0.5 Hz,<br>Ranging<br>period =<br>2000 ms<br>0.17<br>mA| |Peak VCSEL Current|230<br>mA| |Max VCSEL Duty Cycle|2<br>%| (1) Current is reduced to typ. 17.7 mA if iteration is set to 600 k instead of 900 k and output data rate is maintained at 30 Hz by setting repetition_period = 33 [ms] Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 15 Document Feedback TMF8801 Functional Description ## 7.5 Timing ## **7.5.1 Ranging Acquisition Timing** ## **Figure 15:** ## **Ranging Acquisition Timing** |**Parameter**|**Min**|**Nom**|**Max**|**Units**|**Comment**| |---|---|---|---|---|---| |Ranging Time Default Settings||33||ms|Varies with operational<br>mode| |Ranging Init (including<br>electrical calibration)||8||ms|Only done on startup and<br>if temperature changed<br>from last calibration| ||||209|ms|Programmable by the<br>interface| |Ranging Period|||1000 /<br>2000|ms|Additional modes added<br>with firmware 3.0.19.0 or<br>higher(1)| (1) For firmware 3.0.19.0 or higher, set register repetition_period (cmd_data2 for command 0x02 or 0x03) to 0xfe for 1000 ms ranging period and 0xff for 2000 ms ranging period. **Figure 16: Ranging Timing Diagram** Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 16 Document Feedback TMF8801 Functional Description ## **7.5.2 Reset Pin and Power-Up Timing** ## **Figure 17:** **Reset Pin and Power-Up Timing** |**Parameter**|**Min**|**Nom**|**Max**|**Units**|**Comment**| |---|---|---|---|---|---| |Power On (Boot Time)||3||ms|Does not include RAM<br>download time| |Enable high to ready for<br>measurement||8||ms|| |Standby to Active Time||<<1||ms|| |Active to Standby Time||<<1||ms|| |Enable Low to Power Down<br>Time||<<1||ms|| ## 7.6 Algorithm Performance As the performance of the algorithm is dependent on the ROM version, following section only applies for devices with order code TMF8801-1 **B** (and TMF8801-1 **B** M), calibrated and in-application oscillator calibration using the reference driver code and patched with the latest software patch from **ams** – contact **ams** to identify latest patch version. To achieve the full distance of 250 cm, the on chip oscillator needs to be tuned to 4.7 MHz. The TMF8801 is embedded in the application using a 0.38 mm airgap and a glass with an IR ink with >90 % transmissivity. The glass thickness is 0.5 mm. An additional mask on the opaque ink is implemented according to TMF8801 optical design guide (external document). ## **7.6.1 Calibration** To achieve the performance described in the next sections, a calibration of the algorithm needs to be performed (command = 0x0A). The TMF8801 shall be embedded in the final application and the cover glass including the IR ink needs to be assembled. The calibration test shall be done in a housing with minimal ambient light and no target within 40 cm in field of view of the TMF8801. The TMF8801 generates a calibration data set which is permanently stored on the host. On each power-up of the TMF8801 the calibration data set is sent by I²C to the TMF8801 prior to execution of any algorithms (commands=0x02 or 0x0B). Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 17 Document Feedback TMF8801 Functional Description ## **7.6.2 Algorithm Timings** The TMF8801 can adjust the number of iterations and detection threshold using registers. A default mode is defined having 900 k iterations and threshold=0. ## **Figure 18: Algorithm Timings** |**Parameter**|**Condition**|**Min**|**Nom**|**Max**|**Units**| |---|---|---|---|---|---| ||command=0x02 or 0x03||||| ||cmd_data6=0xA3,||||| |Default mode|cmd_data3=0x00,||33||ms| ||cmd_data1=0x03,||||| ||cmd_data0=0x84 (900 k iterations)||||| ## **7.6.3 Algorithm Performance Parameters** The algorithm reports distance information of the closest object in 1 mm steps. Using the timings described in 7.6.2 following performance is achieved: ## **Figure 19: Object Detection Algorithm Parameters** |**Parameter**|**Condition**<br>**Min**<br>**Nom**<br>**Max**<br>**Units**| |---|---| |Reflectivity of object<br>at 940 nm|Perpendicular to TMF8801<br>18<br>90<br>%| |Maximum distance<br>detection,<br>1.5 m x 1.5 m object|350 lux fluorescent on object, 18%<br>grey card<br>2500(1)<br>mm| ||360 lux halogen light on object(2),<br>88% white card<br>2500(1)<br>mm| ||360 lux halogen light on object(2),<br>18% grey card<br>1700<br>mm| ||1400 lux halogen light on object(3),<br>88% white card<br>1500<br>mm| ||1400 lux halogen light on object(4),<br>18% grey card<br>1250<br>mm| ||14000 lux halogen light on object(4),<br>18% grey card<br>550<br>mm| |Minimum distance<br>detection, 18 % grey<br>card, 20 cm x 26 cm|20<br>mm| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 18 Document Feedback TMF8801 Functional Description |**Parameter**|**Condition**<br>**Min**<br>**Nom**<br>**Max**<br>**Units**| |---|---| |Accuracy|Object distance ≥ 200 mm<br>±5<br>%| ||100 mm ≤ object distance < 200 mm<br>±10<br>mm| ||20 mm ≤ object distance < 100 mm<br>±15<br>mm| |Transition short to<br>long distance mode|200<br>mm| - (1) To achieve the full distance, the oscillator need to be tuned to 4.7 MHz. Use **ams** reference code to implement clock frequency tuning. Any target reported above 2500 mm should be considered as no object. - (2) 360 lux halogen light represents 2.5 k sunlight equivalent; light on object only. (3) 1400 lux halogen light represents 10 k sunlight equivalent; light on object only (4) 14000 lux halogen light represents 100 k sunlight equivalent; light on object only ## 7.7 VCSEL Internal protection ensures no single point of failure will cause the VCSEL to violate the Class 1 Laser Safety. - Laser Safety Class 1 - VCSEL Pulse Rep Rate 23 ns (43 MHz; 37.6 MHz if clock frequency tuned to 4.7MHz) If VCSEL_clk_div=1 the frequency is divided by two. ## 7.8 Typical Optical Characteristics - VCSEL Field of Illumination (FOI) 21º full width from 5% of maximum up to maximum 19º 1/e^2 - **●** TOF Sensor Field of View (FOV) 37º FWHM – for short distances 24º FWHM – for long distances The SPAD FoV angular response uses the full TMF8801 SPADs for short distances. The SPAD FoV is reduced when the TMF8801 operates in long distance since the SPAD array is reduced. This helps to improve ambient light tolerance. Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 19 Document Feedback TMF8801 Functional Description ## **Figure 20: FOI/FOV of TMF8801** ## 7.8.1 Filter Characteristics: - FWHM 56 nm - Passband Center Wavelength 940 nm - **●** Stopband Wavelengths 350 nm – 912 nm, 968 nm – 1100 nm Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 20 Document Feedback TMF8801 Register Description ## **8 Register Description** ## 8.1 APPID Register (Address 0x00) **Figure 21: APPID Register** |**Addr: 0x00**|**Addr: 0x00**||**APPID**|| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |||||Currently running application:| |7:0|appid|0|RW|0xC0 App0 – Measurement application running| |||||0x80 bootloader running| ## 8.2 APPREV_MAJOR Register (Address 0x01) **Figure 22: APPREV_MAJOR Register** |**Addr: 0x01**|**Addr: 0x01**||**APPREV_MAJOR**|**APPREV_MAJOR**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|apprevMajor|0|RW|Application major revision| ## 8.3 APPREQID Register (Address 0x02) **Figure 23: APPREQID Register** |**Addr :**|**0x02**||**APPREQID**|| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |||||Application that shall be started, set this to| |||||0x80 … bootloader| |7:0|appReqid|0|RW|0xC0 …. App0 – measurement application| |||||and wait until register 0x00 (APPID) shows this| |||||as application.| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 21 Document Feedback TMF8801 Register Description ## 8.4 ENABLE Register (Address 0xE0) **Figure 24: ENABLE Register** |**Addr: 0xE0**|**Addr: 0xE0**||**ENABLE**|| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |||||Write a '1' here to reset CPU. This generates global| |7|cpu_reset|0|RW_SC|reset, fully resetting CPU and all CPU registers. The bit| |||||resets itself, no need to explicitly clear it.| |||||CPU is ready to handle I²C - if this bit is zero, then only| |||||the registers 0xe0 and above are usable, the memory| |6|cpu_ready|0|RO|mapped I²C space is not used.<br>Bit gets set only explicitly by software, therefore a| |||||functional and running firmware is necessary for this bit| |||||to work.| |||||1=Activate oscillator 0=Ask cpu to go to standby| |||||Activating the oscillator is implemented in hardware.| |||||Whenever this register is '0' and a '1' is being written,| |||||the oscillator is being started and CPU receives a| |||||PON1 interrupt. It is implemented in the bootloader to| |||||execute a reset at this point, but the application goes to| |0|pon|1|R_PUSH|an IDLE state.<br>De-activating the oscillator is a software assisted| |||||process. It is important that the CPU powers down all| |||||modules properly before turning off the oscillator,| |||||therefore this is implemented in firmware. So writing a| |||||'0' to this register will trigger an internal CPU interrupt.| |||||The firmware, after powering down everything, sets the| |||||device into standby state.| ## 8.5 INT_STATUS Register (Address 0xE1) **Figure 25: INT_STATUS Register** |**Addr: 0xE1**|**Addr: 0xE1**||**INT_STATUS**|| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |||||Raw histogram available interrupt for App0; asserted| |||||when a raw histogram can be retrieved from I²C.| |1|int2|0|R_PUSH1|int2 status. If bis is asserted, and int2_enab is asserted| |||||as well, then the INT pin will be pulled low. Writing a '1'| |||||here will clear int1 condition.| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 22 Document Feedback TMF8801 Register Description |**Addr: 0xE1**|**Addr: 0xE1**||**INT_STATUS**|| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |||||Object detection interrupt for App0; asserted when a| |||||result from object detection is available| |||||int1 status. If bis is asserted, and int1_enab is asserted| |0|int1|0|R_PUSH1|as well, then the INT pin will be pulled low. Writing a '1'| |||||here will clear int1 condition.| |||||Note: An interrupt is raised on every result from object| |||||detection including no-target.| ## 8.6 INT_ENAB Register (Address 0xE2) **Figure 26: INT_ENAB Register** |**Addr: 0xE2**|**Addr: 0xE2**||**INT_ENAB**|**INT_ENAB**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |||||Raw histogram available interrupt for App0; asserted| |1|int2_enab|0|RW|when a raw histogram can be retrieved from I²C.<br>0=disabled, 1=enabled -> INT output is active if int2| |||||flag is "1"| |||||Object detection interrupt for App0; asserted when a| |0|int1_enab|0|RW|result from object detection is available<br>0=disabled, 1=enabled -> INT output is active if int1| |||||flag is "1"| ## 8.7 ID Register (Address 0xE3) **Figure 27: ID Register** |**Addr: 0xE3**|**Addr: 0xE3**||**ID**|| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |5:0|id|0|RO|Chip ID, reads 07h – do not rely on register bits 6 and<br>7 of this register.| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 23 Document Feedback TMF8801 Register Description ## 8.8 REVID Register (Address 0xE4) **Figure 28: REVID Register** |**Addr:**|**0xE4**||**REVID**|| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |2:0|rev_id|0|RO|Chip revision ID| ## 8.9 App0 Registers – appid=0xC0 Following registers are only available if appid=0xC0 (App0): ## **8.9.1 CMD_DATA9 Register (Address 0x06)** **Figure 29: CMD_DATA9 Register** |**Addr:**|**0x06**||**CMD_DATA9**|**CMD_DATA9**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|cmd_data9|0|W|Command data 9 – see COMMAND Register<br>(Address 0x10); for future extension of commands| ## **8.9.2 CMD_DATA8 Register (Address 0x07)** **Figure 30: CMD_DATA8 Register** |**Addr:**|**0x07**||**CMD_DATA8**|**CMD_DATA8**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|cmd_data8|0|W|Command data 8 – see COMMAND Register<br>(Address 0x10); for future extension of commands| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 24 Document Feedback TMF8801 Register Description ## **8.9.3 CMD_DATA7 Register (Address 0x08)** **Figure 31:** **CMD_DATA7 Register** |**Addr: 0x08**|**Addr: 0x08**||**CMD_DATA7**|**CMD_DATA7**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|cmd_data7|0|W|Command data 7 – see COMMAND Register<br>(Address 0x10)| ## **8.9.4 CMD_DATA6 Register (Address 0x09)** **Figure 32: CMD_DATA6 Register** |**Addr: 0x09**|**Addr: 0x09**||**CMD_DATA6**|**CMD_DATA6**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|cmd_data6|0|W|Command data 6 – see COMMAND Register<br>(Address 0x10)| ## **8.9.5 CMD_DATA5 Register (Address 0x0A)** **Figure 33: CMD_DATA5 Register** |**Addr: 0x0A**|**Addr: 0x0A**||**CMD_DATA5**|**CMD_DATA5**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|cmd_data5|0|W|Command data 5 – see COMMAND Register<br>(Address 0x10)| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 25 Document Feedback TMF8801 Register Description ## **8.9.6 CMD_DATA4 Register (Address 0x0B)** **Figure 34: CMD_DATA4 Register** |**Addr:**|**0x0B**||**CMD_DATA4**|**CMD_DATA4**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|cmd_data4|0|W|Command data 4 – see COMMAND Register<br>(Address 0x10)| ## **8.9.7 CMD_DATA3 Register (Address 0x0C)** **Figure 35: CMD_DATA3 Register** |**Addr: 0x0C**|**Addr: 0x0C**||**CMD_DATA3**|**CMD_DATA3**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|cmd_data3|0|W|Command data 3 – see COMMAND Register<br>(Address 0x10)| ## **8.9.8 CMD_DATA2 Register (Address 0x0D)** **Figure 36: CMD_DATA2 Register** |**Addr: 0x0D**|**Addr: 0x0D**||**CMD_DATA2**|**CMD_DATA2**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|cmd_data2|0|W|Command data 2 – see COMMAND Register<br>(Address 0x10)| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 26 Document Feedback TMF8801 Register Description ## **8.9.9 CMD_DATA1 Register (Address 0x0E)** ## **Figure 37:** **CMD_DATA1 Register** |**Addr: 0x0E**|**Addr: 0x0E**||**CMD_DATA1**|**CMD_DATA1**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|cmd_data1|0|W|Command data 1 – see COMMAND Register<br>(Address 0x10)| ## **8.9.10 CMD_DATA0 Register (Address 0x0F)** **Figure 38:** **CMD_DATA0 Register** |**Addr: 0x0F**|**Addr: 0x0F**||**CMD_DATA0**|**CMD_DATA0**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|cmd_data0|0|W|Command data 0 – see COMMAND Register<br>(Address 0x10)| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 27 Document Feedback TMF8801 Register Description ## **8.9.11 COMMAND Register (Address 0x10)** ## **Figure 39: COMMAND Register** |**Addr: 0x10**|**Addr: 0x10**|||**COMMAND**|**COMMAND**|| |---|---|---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|<br>**Description**||| |7:0|command|<br>0|RW||Direct the device to control or select contents of the registers from<br>0x20...0xDF|| |||||Setting|Meaning|| |||||0x00|No command|| ||||||Set flag to perform target distance measurement with 8 bytes of data|| ||||||containing where including setting of calibration (and algorithm state)|| ||||||configuration.|| ||||||**cmd_data7**= Bit mask which calibration/state data was downloaded from|| ||||||the host to TMF8801 prior to setting this command:|| ||||||**Bits**|**Definition**| |||||0x02||| ||||||0|dataFactoryCal: When 1 data from register 0x20 onward<br>includes factory calibration| |||||||dataAlgState: If set, also set dataFactoryCal=1. Data from| ||||||1|register 0x20 onwards includes factory calibration and| |||||||algorithm state.| ||||||**cmd_data6… cmd_data0**: Identical to command=0x03.|| ||||||Set flag to perform target distance measurement with 7 bytes of data|| ||||||containing where|| ||||||**cmd_data6**= Bit mask which algorithm is used|| ||||||**Bits**|**Definition**| ||||||0|Set to ‘1’| ||||||1|Set to ‘1’| ||||||2|VCSEL_clk_div2: If set, operates the VCSEL clock at half| |||||||frequency - see section 7.7 - and doubles the ranging active time| |||||||where the VCSEL is enabled. It is recommended to use together| |||||0x03||with spread_spectrum_mode=1.| ||||||3|Reserved; set to 0b.| ||||||4|algImmediateInterrupt – When 1 target distance measurement| |||||||will immediately report to the host an interrupt of the capturing| |||||||caused by a GPIO event; when 0, will only report to the host| |||||||when target distance measurement was finished| ||||||5|When 1 combine the capture of the short and long distance| |||||||histogram for maximum speed| ||||||6|Reserved; set to 0.| ||||||7|When 1 do not go to standby between measurements (faster| |||||||measurement times but higher current consumption)| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 28 Document Feedback TMF8801 Register Description |**Addr: 0x10**|**Addr: 0x10**|||**COMMAND**|| |---|---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|<br>**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**|<br>**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| ||||||spread_spectrum_mode: If set, avoids aliasing of objects into| |||||6|measurement range. Use together with VCSEL_clk_div2=1<br>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|| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 29 Document Feedback TMF8801 Register Description |**Addr: 0x10**|**Addr: 0x10**|||**COMMAND**|**COMMAND**|| |---|---|---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|<br>**Description**||| ||||||Perform|factory calibration in the final customer application including cover| |||||0x0A|glass, no ambient light and no target.|| ||||||The result from the factory calibration is stored from register 0x20 onwards|| ||||||(14 bytes).|| ||||||Set flag to download calibration (and algorithm state) configuration to|| ||||||TMF8801|| ||||||**cmd_data0**= Bit mask which calibration/state data was downloaded from|| ||||||the host|to TMF8801 prior to setting this command:| |||||0x0B|Bits|Definition| ||||||0|dataFactoryCal: when 1 data from register 0x20 onward includes| |||||||factory calibration| ||||||1|dataAlgState: if set, also set dataFactoryCal=1. Data from| |||||||register 0x20 onwards includes factory calibration and algorithm| |||||||state.| ||||||Set gpio|control setting without actually performing a measurement as| ||||||commands 0x02 or 0x03 would do:|| ||||||**cmd_data0**= 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| |||||0x0F||3 - Output: VCSEL pulse output<br>4 - Output low| |||||||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| |||||||4 - Output low| |||||||5 - Output high| |||||||6:15 – Reserved, do not use| ||||||Enable histogram readout; the internal state machine will stop when a|| ||||||histogram (e.g. calibration) is available and wait for readout by the host. If|| ||||||the selected histogram is readout, the host shall continue the state|| ||||||machine by sending command 0x32|| ||||||**cmd_data3**= Bitmask for the histograms to be readout:|| |||||0x30|**Bit**|**Definition**| ||||||0|Always set to ‘0’| ||||||1|Set to get electrical calibration histograms| ||||||2|Set to get optical calibration histogram| ||||||3|Always set to ‘0’| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 30 Document Feedback TMF8801 Register Description |**Addr: 0x10**|**Addr: 0x10**|||**COMMAND**|**COMMAND**| |---|---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|<br>**Description**|| ||||||4<br>Set to get short distance histograms| ||||||6:5<br>Always set to ‘00’| ||||||Set to get distance measurement histograms.| ||||||7<br>Bin 127 respectively bin 255 is used as scaling factor for this<br>type of histograms. The scaling factor is 0 for no scaling, 1 for| ||||||2x, 2 for 4x and so on.| ||||||**cmd_data2**= Set to 0x00| ||||||**cmd_data1**= = Bitmask for pileup correct histograms readout:| ||||||Bit<br>Definition| ||||||0<br>Set to get pileup corrected distance measurement histograms| ||||||1<br>Set to get pileup corrected sum histogram| ||||||2<br>Set bit 2 to get pileup corrected short distance histogram| ||||||7:3<br>Always set to 0| ||||||**cmd_data0**= set to 0x00| ||||||Once above bitmask is set, the device is programmed to stop when the| ||||||histogram is available. Set command=0x04 to actually perform the| ||||||measurement.| |||||0x32|After the host has readout the histogram, continue with internal processing.| ||||||Read out serial number – results see section 0| |||||0x47|Serial Number Readout| ||||||Change the I²C address of TMF8801| ||||||**cmd_data0**= Condition if I²C address is changed; program the GPIOs| ||||||input/output accordingly before using this feature (commands 0x02, 0x03| ||||||or 0x0F):| ||||||**Bit**<br>**Definition**| ||||||0<br>mask_gpio0| ||||||1<br>mask_goio1| ||||||2<br>value_gpio0| ||||||3<br>value_gpio1| |||||0x49|7:4<br>always set to 0| ||||||The I²C address change is executed only if| ||||||(mask_gpio1 & GPIO1) << 1 + (mask_gpio0 & GPIO0) == value_gpio1 <<| ||||||1 + value_gpio0| ||||||where GPIO1 and GPIO0 is the current status on pin GPIO1 and pin| ||||||GPIO0. If this conditional programming is not used, set cmd_data0 to| ||||||0x00.| ||||||**cmd_data1**= New I²C address| ||||||**Bit**<br>**Definition**| ||||||0<br>Set to ‘0’| ||||||7:1<br>New I²C address to be used| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 31 Document Feedback TMF8801 Register Description |**Addr: 0x10**|**Addr: 0x10**|||**COMMAND**|**COMMAND**| |---|---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|<br>**Description**|| ||||||Read 1 quarter of one histogram - copy histogram bits[4:2] to select| ||||||TDC0…TDC4, quarter bits[1:0] into 0x20..0x9f| |||||0x80..|NOTE: At the end of the transaction of read a quarter, the contents of the| |||||0x93|registers from 0x20-0x9F will be automatically updated, and the contents| ||||||of registers REGISTER_CONTENTS and TID will be updated| ||||||NOTE: At the end of a TDC, the TDC number will also auto increment.| ||||||Stop whatever you are doing as soon as possible and reenter the idle| |||||0xFF|state. The current state will not be interrupted and will require leaving the<br>current state processing to take effect. This command will stop continuous| ||||||measurement.| ## **8.9.12 PREVIOUS Register (Address 0x11)** ## **Figure 40: PREVIOUS Register** |**Addr:**|**0x11**||**PREVIOUS**|**PREVIOUS**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|previousCommand|0|RO|Previous command that was executed<br>(or current if continues mode is selected)| ## **8.9.13 APPREV_MINOR Register (Address 0x12)** **Figure 41: APPREV_MINOR Register** |**Addr:**|**0x12**|||**APPREV_MINOR**|**APPREV_MINOR**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||appRevMinor|0|RO|Application minor revision| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 32 Document Feedback TMF8801 Register Description ## **8.9.14 APPREV_PATCH Register (Address 0x13)** ## **Figure 42: APPREV_PATCH Register** |**Addr:**|**0x13**|||**APPREV_PATCH**|**APPREV_PATCH**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||appRevPatch|0|RO|Application patch number| ## **8.9.15 STATUS Register (Address 0x1D)** **Figure 43: STATUS Register** |**Addr: 0x1D**|**Addr: 0x1D**||**STATUS**||| |---|---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**|| |||||Current status|or current general operation| |7:0|status|0|RO|**Reading**|**Meaning**| |||||00h-0Fh|OK| |||||10h-FFh|Error| ## **8.9.16 REGISTER_CONTENTS Register (Address 0x1E)** **Figure 44: REGISTER_CONTENTS Register** |**Addr: 0x1E**|**Addr: 0x1E**||**REGISTER_CONTENTS**|**REGISTER_CONTENTS**|**REGISTER_CONTENTS**| |---|---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**|| |||||Current contents of the I²C RAM from 0x20 to 0xEF ;|| |||||the coding is|as follows:| |||||**Reading**|**Meaning**| |7:0|register_contents|<br>0|RO|0Ah|Calibration data| |||||47h|Serial number| |||||55h|Results for commands 0x02/0x03 and<br>0x04| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 33 Document Feedback TMF8801 Register Description |**Addr: 0x1E**|**Addr: 0x1E**||**REGISTER_CONTENTS**|**REGISTER_CONTENTS**|**REGISTER_CONTENTS**| |---|---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**|| ||||||Raw histogram data where| ||||||80h = TDC0, bin 0…63| ||||||81h = TDC0, bin 64…127| |||||80h-93h|82h = TDC0, bin 128..195<br>83h = TDC0, bin 196..255| ||||||84h = TDC1, bin 0…63| ||||||…| ||||||93h = TDC4, bin 196…255| ## **8.9.17 TID Register (Address 0x1F)** **Figure 45: TID Register** |**Addr: 0x1F**|**Addr: 0x1F**||**TID**|| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|tid|0|RO|Unique transaction ID, changes with every update of<br>register map by TOF| ## **8.9.18 Object Detection Results – If Register register_contents = 0x55 (commands 0x02, 0x03 or 0x04)** ## **RESULT_NUMBER Register (Address 0x20)** **Figure 46: RESULT_NUMBER Register** |**Addr: 0x20**|**Addr: 0x20**||**RESULT_NUMBER**|**RESULT_NUMBER**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|result_num|0|RO|Result number, incremented every time there is a<br>unique answer| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 34 Document Feedback TMF8801 Register Description ## **RESULT_INFO Register (Address 0x21)** ## **Figure 47: RESULT_INFO Register** |**Addr:**|**0x21**||**RESULT_INFO**|**RESULT_INFO**||| |---|---|---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**||| |5:0|reliability|0|RO|Reliability of object - valid range 0..63 where 63 is best||| |||||When algImmediateInterrupt == 1||| |||||Will indicate the status of the measurement:||| |||||**Reading**|**Meaning**|| |||||0|Short distance capture interrupted, using<br>previous short distance only result|| |||||1|Short distance capture interrupted, using<br>previous short and long distance result|| |||||2|Long distance capture interrupted, result<br>is from short distance algorithm only|| |7:6|measStatus|0|RO|3|Complete result (short and long distance<br>algorithm)|| |||||When algImmediateInterrupt == 0||| |||||Will indicate the status of the measurement:||| |||||**Reading**|**Meaning**|| |||||0|Measurement was not interrupted|| |||||1|Reserved|| |||||2|Measurement was interrupted (delay) by<br>GPIO interrupt|| |||||3|Reserved|| ## **DISTANCE_PEAK_0 Register (Address 0x22)** ## **Figure 48: DISTANCE_PEAK_0 Register** |**Addr: 0x22**|**Addr: 0x22**||**DISTANCE_PEAK_0**|**DISTANCE_PEAK_0**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|distance_peak[7:0]|0|RO|Distance to the peak in [mm] of the object, least<br>significant byte| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 35 Document Feedback TMF8801 Register Description ## **DISTANCE_PEAK_1 Register (Address 0x23)** ## **Figure 49: DISTANCE_PEAK_1** |**Addr: 0x23**|**Addr: 0x23**||**DISTANCE_PEAK_1**|**DISTANCE_PEAK_1**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|distance_peak[15:8]|0|RO|Distance to the peak in [mm] of the object,<br>most significant byte| The sys clock registers is a running timer information – this value is counting up (and wraps around to 0 again) as long as the internal clock is running. As it is derived from the internal RC oscillator and distance information is depending on its accuracy, it can be used to correct an algorithm result by comparing this clock with a more accurate clock inside the host. It is recommended to use several measurement cycles for this clock correction. For correctly updating of these registers by TMF8801, an I²C block read starting from address 0x1D until 0x27 shall be done. ## **SYS_CLOCK_0 Register (Address 0x24)** **Figure 50: SYS_CLOCK_0 Register** |**Addr:**|**0x24**||**SYS_CLOCK_0**|**SYS_CLOCK_0**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|sys_clock[7:0]|0|RO|System clock/time stamp in units of 0.2 µs| ## **SYS_CLOCK_1 Register (Address 0x25)** **Figure 51: SYS_CLOCK_1 Register** |**Addr:**|**0x25**|||**SYS_CLOCK_1**|**SYS_CLOCK_1**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||sys_clock[15:8]|0|RO|System clock/time stamp in units of 0.2 µs| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 36 Document Feedback TMF8801 Register Description ## **SYS_CLOCK_2 Register (Address 0x26)** ## **Figure 52:** **SYS_CLOCK_2 Register** |**Addr:**|**0x26**||**SYS_CLOCK_2**|**SYS_CLOCK_2**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|sys_clock[23:16]|0|RO|System clock/time stamp in units of 0.2 µs| ## **SYS_CLOCK_3 Register (Address 0x27)** **Figure 53: SYS_CLOCK_3 Register** |**Addr:**|**0x27**|||**SYS_CLOCK_3**|**SYS_CLOCK_3**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||sys_clock[31:24]|0|RO|System clock/time stamp in units of 0.2 µs| Algorithm state information is captured in the next registers. To allow resume of operation after poweroff, algorithm state can be stored temporarily inside the host and once after power-on of TMF8801 restored to resume operation. ## **STATE_DATA_0 Register (Address 0x28)** **Figure 54: STATE_DATA_0 Register** |**Addr: 0x28**|**Addr: 0x28**||**STATE_DATA_0**|**STATE_DATA_0**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|state_data_0|0|RO|Algorithm state data| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 37 Document Feedback TMF8801 Register Description ## **STATE_DATA_1 Register (Address 0x29)** **Figure 55: STATE_DATA_1 Register** |**Addr: 0x29**|**Addr: 0x29**||**STATE_DATA_1**|**STATE_DATA_1**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|state_data_1|0|RO|Algorithm state data| ## **STATE_DATA_2 Register (Address 0x2A)** **Figure 56: STATE_DATA_2 Register** |**Addr: 0x2A**|**Addr: 0x2A**||**STATE_DATA_2**|**STATE_DATA_2**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|state_data_2|0|RO|Algorithm state data| ## **STATE_DATA_3 Register (Address 0x2B)** **Figure 57: STATE_DATA_3 Register** |**Addr:**|**0x2B**||**STATE_DATA_3**|**STATE_DATA_3**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|state_data_3|0|RO|Algorithm state data| ## **STATE_DATA_4 Register (Address 0x2C)** **Figure 58: STATE_DATA_4 Register** |**Addr:**|**0x2C**||**STATE_DATA_4**|**STATE_DATA_4**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|state_data_4|0|RO|Algorithm state data| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 38 Document Feedback TMF8801 Register Description ## **STATE_DATA_5 Register (Address 0x2D)** ## **Figure 59:** ## **STATE_DATA_5 Register** |**Addr:**|**0x2D**|||**STATE_DATA_5**|**STATE_DATA_5**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||state_data_5|0|RO|Algorithm state data| ## **STATE_DATA_6 Register (Address 0x2E)** **Figure 60: STATE_DATA_6 Register** |**Addr:**|**0x2E**|||**STATE_DATA_6**|**STATE_DATA_6**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||state_data_6|0|RO|Algorithm state data| ## **STATE_DATA_7 Register (Address 0x2F)** **Figure 61: STATE_DATA_7 Register** |**Addr:**|**0x2F**|||**STATE_DATA_7**|**STATE_DATA_7**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||state_data_7|0|RO|Algorithm state data| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 39 Document Feedback TMF8801 Register Description ## **STATE_DATA_8_XTALK_MSB Register (Address 0x30)** ## **Figure 62:** **STATE_DATA_8 Register** |**Addr:**|**0x30**|||**STATE_DATA_8_XTALK_MSB**|**STATE_DATA_8_XTALK_MSB**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| ||||||Crosstalk peak value MSB byte; only valid| |7:0||xtalk_msb|0|RO|with minimal ambient light and no target<br>within 40 cm in field of view of the| ||||||TMF8801| ## **STATE_DATA_9_XTALK_LSB Register (Address 0x31)** **Figure 63: STATE_DATA_9 Register** |**Addr:**|**0x31**|||**STATE_DATA_9_XTALK_LSB**|**STATE_DATA_9_XTALK_LSB**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| ||||||Crosstalk peak value LSB byte; only| |7:0||xtalk_lsb|0|RO|valid with minimal ambient light and no<br>target within 40 cm in field of view of the| ||||||TMF8801| ## **STATE_DATA_10_TJ Register (Address 0x32)** ## **Figure 64:** **STATE_DATA_10_TEMPERATURE Register** |**Addr:**|**0x32**||**STATE_DATA_10_TJ**|**STATE_DATA_10_TJ**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |||||8-bit signed integer of the TMF8801| |7:0|temperature|0|RO|sensor DIE junction temperature in| |||||ºCelsius (e.g. “25” means 25 ºC)| Reference hits and object hits are used for information purposes of the target object and are only reported if a target is detected with the distance algorithm. Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 40 Document Feedback TMF8801 Register Description ## **REFERENCE_HITS_0 Register (Address 0x33)** ## **Figure 65:** ## **REFERENCE_HITS_0 Register** |**Addr:**|**0x33**||**REFERENCE_HITS_0**|**REFERENCE_HITS_0**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |||||Sum of the reference SPADs hits| |7:0|reference_hits[7:0]|0|RO|during the distance measurement; zero<br>if no object is detected or distance| |||||algorithm is not used| ## **REFERENCE_HITS_1 Register (Address 0x34)** **Figure 66: REFERENCE_HITS_1 Register** |**Addr: 0x34**|**Addr: 0x34**||**REFERENCE_HITS_1**|**REFERENCE_HITS_1**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |||||Sum of the reference SPADs hits during the| |7:0|reference_hits[15:8]|0|RO|distance measurement; zero if no object is| |||||detected or distance algorithm is not used| ## **REFERENCE_HITS_2 Register (Address 0x35)** **Figure 67: REFERENCE_HITS_2 Register** |**Addr: 0x35**|**Addr: 0x35**||**REFERENCE_HITS_2**|**REFERENCE_HITS_2**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |||||Sum of the reference SPADs hits during the| |7:0|reference_hits[23:16]|0|RO|distance measurement; zero if no object is| |||||detected or distance algorithm is not used| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 41 Document Feedback TMF8801 Register Description ## **REFERENCE_HITS_3 Register (Address 0x36)** ## **Figure 68:** ## **REFERENCE_HITS_3 Register** |**Addr:**|**0x36**||**REFERENCE_HITS_3**|**REFERENCE_HITS_3**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |||||Sum of the reference SPADs hits during the| |7:0|reference_hits[31:24]|0|RO|distance measurement; zero if no object is| |||||detected or distance algorithm is not used| ## **OBJECT_HITS_0 Register (Address 0x37)** **Figure 69: OBJECT_HITS_0 Register** |**Addr: 0x37**|**Addr: 0x37**||**OBJECT_HITS_0**|**OBJECT_HITS_0**|| |---|---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**|| |||||Sum of the object SPADs hits during the|| |7:0|object_hits[7:0]|0|RO|distance measurement; zero if no object is|| |||||detected or distance algorithm is no used|| ## **OBJECT_HITS_1 Register (Address 0x38)** **Figure 70: OBJECT_HITS_1 Register** |**Addr:**|**0x38**||**OBJECT_HITS_1**|**OBJECT_HITS_1**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |||||Sum of the object SPADs hits during the| |7:0|object_hits[15:8]|0|RO|distance measurement; zero if no object is| |||||detected or distance algorithm is no used| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 42 Document Feedback TMF8801 Register Description ## **OBJECT_HITS_2 Register (Address 0x39)** ## **Figure 71:** ## **OBJECT_HITS_2 Register** |**Addr:**|**0x39**|||**OBJECT_HITS_2**|**OBJECT_HITS_2**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| ||||||Sum of the object SPADs hits during the| |7:0||object_hits[23:16]|0|RO|distance measurement; zero if no object is| ||||||detected or distance algorithm is no used| ## **OBJECT_HITS_3 Register (Address 0x3A)** **Figure 72: OBJECT_HITS_3 Register** |**Addr:**|**0x3A**||**OBJECT_HITS_3**|**OBJECT_HITS_3**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |||||Sum of the object SPADs hits during the| |7:0|object_hits[31:24]|0|RO|distance measurement; zero if no object is| |||||detected or distance algorithm is no used| ## **8.9.19 Calibration and Algorithm State Data Exchange** These registers shall be pre-loaded by the host before command=0x02 or 0x0B is executed ## **FACTORY_CALIB_0 Register (Address 0x20)** ## **Figure 73: FACTORY_CALIB_0 Register** |**Addr:**|**0x20**||**FACTORY_CALIB_0**|**FACTORY_CALIB_0**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |||||Factory calibration data| |||||Bits [3:0] are format revision| |7:0|factory_calib_0|0|RW|Bits [7:4] are bits [3:0] of crosstalk<br>measurement; this is a summed value – for| |||||crosstalk specification according to ODG use| |||||xtalk_msb and xtalk_lsb.| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 43 Document Feedback TMF8801 Register Description ## **FACTORY_CALIB_1 Register (Address 0x21)** ## **Figure 74:** ## **FACTORY_CALIB_1 Register** |**Addr: 0x21**|**Addr: 0x21**||**FACTORY_CALIB_1**|**FACTORY_CALIB_1**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |||||Factory calibration data| |||||Bits [11:4] of crosstalk measurement; this is| |7:0|factory_calib_1|0|RW|a summed value – for crosstalk| |||||specification according to ODG use| |||||xtalk_msb and xtalk_lsb.| ## **FACTORY_CALIB_2 Register (Address 0x22)** **Figure 75: FACTORY_CALIB_2 Register** |**Addr:**|**0x22**||**FACTORY_CALIB_2**|**FACTORY_CALIB_2**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |||||Factory calibration data| |||||Bits [19:12] of crosstalk measurement; this| |7:0|factory_calib_2|0|RW|is a summed value – for crosstalk| |||||specification according to ODG use| |||||xtalk_msb and xtalk_lsb.| ## **FACTORY_CALIB_3 Register (Address 0x23)** **Figure 76: FACTORY_CALIB_3 Register** |**Addr:**|**0x23**|||**FACTORY_CALIB_3**|**FACTORY_CALIB_3**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||factory_calib_3|0|RW|Factory calibration data| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 44 Document Feedback TMF8801 Register Description ## **FACTORY_CALIB_4 Register (Address 0x24)** ## **Figure 77:** **FACTORY_CALIB_4 Register** |**Addr:**|**0x24**|||**FACTORY_CALIB_4**|**FACTORY_CALIB_4**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||factory_calib_4|0|RW|Factory calibration data| ## **FACTORY_CALIB_5 Register (Address 0x25)** **Figure 78: FACTORY_CALIB_5 Register** |**Addr:**|**0x25**|||**FACTORY_CALIB_5**|**FACTORY_CALIB_5**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||factory_calib_5|0|RW|Factory calibration data| ## **FACTORY_CALIB_6 Register (Address 0x26)** **Figure 79: FACTORY_CALIB_6 Register** |**Addr:**|**0x26**|||**FACTORY_CALIB_6**|**FACTORY_CALIB_6**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||factory_calib_6|0|RW|Factory calibration data| ## **FACTORY_CALIB_7 Register (Address 0x27)** **Figure 80: FACTORY_CALIB_7 Register** |**Addr:**|**0x27**||**FACTORY_CALIB_7**|**FACTORY_CALIB_7**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|factory_calib_7|0|RW|Factory calibration data| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 45 Document Feedback TMF8801 Register Description ## **FACTORY_CALIB_8 Register (Address 0x28)** ## **Figure 81:** ## **FACTORY_CALIB_8 Register** |**Addr:**|**0x28**|||**FACTORY_CALIB_8**|**FACTORY_CALIB_8**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||factory_calib_8|0|RW|Factory calibration data| ## **FACTORY_CALIB_9 Register (Address 0x29)** **Figure 82: FACTORY_CALIB_9 Register** |**Addr:**|**0x29**||**FACTORY_CALIB_9**|**FACTORY_CALIB_9**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|factory_calib_9|0|RW|Factory calibration data| ## **FACTORY_CALIB_10 Register (Address 0x2A)** **Figure 83: FACTORY_CALIB_10 Register** |**Addr:**|**0x2A**|||**FACTORY_CALIB_10**|**FACTORY_CALIB_10**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||factory_calib_10|0|RW|Factory calibration data| ## **FACTORY_CALIB_11 Register (Address 0x2B)** **Figure 84: FACTORY_CALIB_11 Register** |**Addr:**|**0x2B**|||**FACTORY_CALIB_11**|**FACTORY_CALIB_11**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||factory_calib_11|0|RW|Factory calibration data| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 46 Document Feedback TMF8801 Register Description ## **FACTORY_CALIB_12 Register (Address 0x2C)** ## **Figure 85:** ## **FACTORY_CALIB_12 Register** |**Addr:**|**0x2C**||**FACTORY_CALIB_12**|**FACTORY_CALIB_12**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|factory_calib_12|0|RW|Factory calibration data| ## **FACTORY_CALIB_13 Register (Address 0x2D)** ## **Figure 86:** ## **FACTORY_CALIB_13 Register** |**Addr:**|**0x2D**||**FACTORY_CALIB_13**|**FACTORY_CALIB_13**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|factory_calib_13|0|RW|Factory calibration data| If algorithm state data is sent to TMF8801 following registers shall be pre-loaded by the host before command=0x02 or 0x0B is executed. ## **Information** If only algorithm state data and no calibration data is sent to TMF8801, pre-load algorithm state data starting from address 0x20 instead of 0x2E. ## **STATE_DATA_WR_0 Register (Address 0x2E)** ## **Figure 87:** ## **STATE_DATA_WR_0 Register** |**Addr:**|**0x2E**||**STATE_DATA_WR_0**|**STATE_DATA_WR_0**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|state_data_wr_0|0|RW|Algorithm state data| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 47 Document Feedback TMF8801 Register Description ## **STATE_DATA_WR_1 Register (Address 0x2F)** ## **Figure 88:** **STATE_DATA_WR_1 Register** |**Addr:**|**0x2F**|||**STATE_DATA_WR_1**|**STATE_DATA_WR_1**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||state_data_wr_1|0|RW|Algorithm state data| ## **STATE_DATA_WR_2 Register (Address 0x30)** **Figure 89: STATE_DATA_WR_2 Register** |**Addr:**|**0x30**||**STATE_DATA_WR_2**|**STATE_DATA_WR_2**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|state_data_wr_2|0|RW|Algorithm state data| ## **STATE_DATA_WR_3 Register (Address 0x31)** **Figure 90:** **STATE_DATA_WR_3 Register** |**Addr:**|**0x31**|||**STATE_DATA_WR_3**|**STATE_DATA_WR_3**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||state_data_wr_3|0|RW|Algorithm state data| ## **STATE_DATA_WR_4 Register (Address 0x32)** **Figure 91:** **STATE_DATA_WR_4 Register** |**Addr:**|**0x32**||**STATE_DATA_WR_4**|**STATE_DATA_WR_4**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|state_data_wr_4|0|RW|Algorithm state data| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 48 Document Feedback TMF8801 Register Description ## **STATE_DATA_WR_5 Register (Address 0x33)** ## **Figure 92:** **STATE_DATA_WR_5 Register** |**Addr:**|**0x33**|||**STATE_DATA_WR_5**|**STATE_DATA_WR_5**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||state_data_wr_5|0|RW|Algorithm state data| ## **STATE_DATA_WR_6 Register (Address 0x34)** **Figure 93:** **STATE_DATA_WR_6 Register** |**Addr:**|**0x34**|||**STATE_DATA_WR_6**|**STATE_DATA_WR_6**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||state_data_wr_6|0|RW|Algorithm state data| ## **STATE_DATA_WR_7 Register (Address 0x35)** **Figure 94:** **STATE_DATA_WR_7 Register** |**Addr:**|**0x35**|||**STATE_DATA_WR_7**|**STATE_DATA_WR_7**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||state_data_wr_7|0|RW|Algorithm state data| ## **STATE_DATA_WR_8 Register (Address 0x36)** ## **Figure 95:** **STATE_DATA_WR_8 Register** |**Addr:**|**0x36**|||**STATE_DATA_WR_8**|**STATE_DATA_WR_8**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||state_data_wr_8|0|RW|Algorithm state data| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 49 Document Feedback TMF8801 Register Description ## **STATE_DATA_WR_9 Register (Address 0x37)** ## **Figure 96:** **STATE_DATA_WR_9 Register** |**Addr:**|**0x37**|||**STATE_DATA_WR_9**|**STATE_DATA_WR_9**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||state_data_wr_9|0|RW|Algorithm state data| ## **STATE_DATA_WR_10 Register (Address 0x38)** **Figure 97:** **STATE_DATA_WR_10 Register** |**Addr:**|**0x38**||**STATE_DATA_WR_10**|**STATE_DATA_WR_10**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|state_data_wr_10|0|RW|Algorithm state data| ## **8.9.20 Raw Histogram Output – If Register register_contents=0x80…0x93** ## **HISTOGRAM_START Register (Address 0x20)** **Figure 98: HISTOGRAM_START Register** |**Addr:**|**0x20**|||**HISTOGRAM_START**|**HISTOGRAM_START**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||hist_start|0|RW|Quarter of histogram first byte| …all bytes until… Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 50 Document Feedback TMF8801 Register Description ## **HISTOGRAM_END Register (Address 0x9F)** ## **Figure 99: HISTOGRAM_END Register** |**Addr:**|**0x9F**|||**HISTOGRAM_END**|**HISTOGRAM_END**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||hist_end|0|RW|Quarter of histogram last byte| ## **8.9.21 Serial Number Readout – If Register register_contents=0x47** ## **SERIAL_NUMBER_0 Register (Address 0x28)** ## **Figure 100:** **SERIAL_NUMBER_0 Register** |**Addr:**|**0x28**|||**SERIAL_NUMBER_0**|**SERIAL_NUMBER_0**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||serial_number_0|0|RW|Serial number byte 0| ## **SERIAL_NUMBER_1 Register (Address 0x29)** **Figure 101: SERIAL_NUMBER_1 Register** |**Addr:**|**0x29**|||**SERIAL_NUMBER_1**|**SERIAL_NUMBER_1**| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |7:0||serial_number_1|0|RW|Serial number byte 1| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 51 Document Feedback TMF8801 Register Description ## **IDENTIFICATION_NUMBER_0 (Address 0x2A)** ## **Figure 102:** ## **IDENTIFICATION_NUMBER_0 Register** |**Addr:**|**0x2A**||**IDENTIFICATION_NUMBER_0**|**IDENTIFICATION_NUMBER_0**|| |---|---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**|| |7:0|identification_number_0|0|RW|Identification number byte 0|| ## **IDENTIFICATION_NUMBER_1 (Address 0x2B)** ## **Figure 103:** ## **IDENTIFICATION_NUMBER_1 Register** |**Addr: 0x2B**|**Addr: 0x2B**||**IDENTIFICATION_NUMBER_1**|**IDENTIFICATION_NUMBER_1**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|identification_number_1|0|RW|Identification number byte 1| The binary concatenated number of serial_number_0: serial_number_1: identification_number_0: identification_number_1 registers result in a unique number. ## 8.10 Bootloader Registers – appid=0x80 Following registers are only available if appid=0x80 (Bootloader): ## **8.10.1 BL_CMD_STAT (Address 0x08)** ## **Figure 104:** ## **BL_CMD_STAT Register** |**Addr:**|**0x08**||**BL_CMD_STAT**|**BL_CMD_STAT**| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |||||Write: Bootloader Command – see section| |7:0|bl_cmd_stat|0|RW|Bootloader Commands<br>Read: Bootloader Status – anything else than| |||||0x00 means an error| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 52 Document Feedback TMF8801 Register Description ## **8.10.2 BL_SIZE (Address 0x09)** **Figure 105:** **BL_SIZE Register** |**Addr:**|**0x09**|||**BL_SIZE**|| |---|---|---|---|---|---| |**Field**||**Name**|**Rst**|**Type**|**Description**| |6:0||bl_size|0|RW|Data size in bytes| ## **8.10.3 BL_DATA (Address 0x0A-0x8A)** **Figure 106:** **BL_DATA Register** |**Addr: 0x0A-0x8A**|**Addr: 0x0A-0x8A**|||**BL_DATA**|**BL_DATA**| |---|---|---|---|---|---| |**Field**|**Name**||**Rst**|**Type**|**Description**| |7:0|bl_data0|… bl_data127|0|RW|Up to 128 data bytes for bootloader<br>commands| ## **8.10.4 BL_CSUM (Address 0x8B)** **Figure 107:** **BL_CSUM Register** |**Addr:**|**0x8B**||**BL_CSUM**|| |---|---|---|---|---| |**Field**|**Name**|**Rst**|**Type**|**Description**| |7:0|bl_csum|0|RW|Checksum for Sum(Command + Data Size +<br>Data itself) XOR 0xFF| ## **8.10.5 Bootloader Commands** The following commands (bl_cmd_stat) are supported by the bootloader: |**Command**|**Value**|**Meaning**| |---|---|---| |RAMREMAP_RESET|0x11|Remap RAM to Address 0 and Reset| |DOWNLOAD_INIT|0x14|Initialize for RAM download from host to TMF8801| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 53 Document Feedback TMF8801 Register Description |**Command**|**Value**|**Meaning**| |---|---|---| |W_RAM|0x41|Write RAM Region (Plain = not encoded into e.g. Intel Hex<br>Records)| |ADDR_RAM|0x43|Set the read/write RAM pointer to a given address| ## **RAMREMAP_RESET = Execute Program Downloaded to RAM** This command remaps the RAM to address 0 and performs a System reset (see also command RESET). Command is performed immediately without any delay. After this the application that is located in RAM will be running. If there is no valid application you will need to do a HW reset (toggle enable pin or power cycle). ## **Figure 108: RAMREMAP_RESET** |**Address**|**Value**|**Meaning**| |---|---|---| |BL_CMD_STAT|0x11|REMAP RAM to 0 and RESET| |BL_SIZE|0|No parameters| |BL_CSUM|0xEE|| ## **DOWNLOAD_INIT** This command is used to initialize the download HW for secure devices. ## **Figure 109: DOWNLOAD_INIT** |**Address**|**Value**|**Meaning**| |---|---|---| |BL_CMD_STAT|0x14|Initialize the HW for download from host to<br>TMF8801 RAM| |BL_SIZE|1|| |BL_DATA0|0..0xFF|Seed| |BL_CSUM|0..0xFF|| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 54 Document Feedback TMF8801 Register Description ## **W_RAM** This command writes the given data to a defined RAM region. Note that the RAM pointer has first to be set by the command ADDR_RAM. After the command is successfully executed the RAM pointer will point to the first byte after the written region. ## **Figure 110: W_RAM** |**Address**|**Value**|**Meaning**| |---|---|---| |BL_CMD_STAT|0x41|Write to main RAM| |BL_SIZE|0..0x80|Number of bytes to be written| |BL_DATA0|0..0xFF|1stbyte to be written| |BL_DATA1|0..0xFF|2ndbyte to be written| |…||| |BL_DATA127|0..0xFF|128thbyte to be written (only if size was 0x80)| |BL_CSUM|0..0xFF|The CSUM comes immediately after the data.| ## **ADDR_RAM** This command is to specify the RAM pointer location for the next R_RAM or W_RAM command. **Figure 111: ADDR_RAM** |**Address**|**Value**|**Meaning**| |---|---|---| |BL_CMD_STAT|0x43|Specify the address of the next RAM read or<br>write.| |BL_SIZE|2|| |BL_DATA0|0..0xFF|LSB of address in RAM| |BL_DATA1|0..0xFF|MSB of address in RAM| |BL_CSUM|0..0xFF|| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 55 Document Feedback TMF8801 Application Information ## **9 Application Information** ## 9.1 SPAD Options ## **9.1.1 Signal SPADs** Firmware can enable/disable SPADs in the array as needed. ## **Figure 112: Signal SPADs** ||**Min**|**Nom**|**Max**|**Comment**| |---|---|---|---|---| |1x SPADS|||72|| |10x Attenuated SPADs|||16|| |100x Attenuated SPADs|||16|| Physically there are 4x32=128 signal SPADs, but SPADs with too high dark count rate are disabled during production test. There are four TDCs (TDC1…TDC4) connected to the output of the SPADs. Each of the TDCs is connected to an array of 32 SPADs (SPADs with too high dark count rate are disabled). In distance mode the number of SPADs are reduced to typ. 40 SPADs to limit the FOV of the TMF8801. ## **9.1.2 Reference SPADs** ## **Figure 113: Reference SPADs** ||**Min**|**Nom**|**Max**|**Comment**| |---|---|---|---|---| |100x Attenuated SPADs|||9|| Due to the high light intensity form the VCSEL which is located very close to the reference SPADs and has no optical barrier like the signal SPADs only highly attenuated SPADs are used. Physically there are 12 reference SPADs, but SPADs with too high dark count rate are disabled during production test. There is one TDC (TDC0) connected to the output of the SPADs. Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 56 Document Feedback TMF8801 Application Information ## 9.2 Reference SPAD, TDC and Histogram There is an internal reference SPAD with associated TDC and histogram. This is used to determine the start time of each pulse. The reference SPAD is processed during calibration. The reference channel processing occurs internal to the device with no user interaction required. All histograms can be processed inside the TMF8801 and/or readout through the I²C interface. As the readout is constrained by the I²C speed and the I²C bus utilization (TMF8801 can support I²C speed up to 1 MHz), it is recommended to readout the histograms only for debugging purposes. Figure 114 shows a histogram obtained from TMF8801. The x-axis is scaled in bins, where the nominal bin size is 200 ps per bin and each TDC channel has 128 bins. Each TDC has two channels: The first channel is shown in bins 0…127, the second channel is shown in bins 128…255. The y-axis is scaled in counts represented by 16-bit values. The green line shows the reference histogram from TDC0 and its peak marks the reference or zero distance. The other four lines (blue, cyan, red and violet) are the histograms obtained from TDC1 to TDC4. A target at 20 cm is used to generate the peak around bin 20 respectively bin 148. ## **Figure 114: Histogram** Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 57 Document Feedback TMF8801 Application Information ## 9.3 Schematic The TMF8801 needs only 3 small 0402 external capacitors for operation: ## **Figure 115:** ## **TMF8801 Application Schematic** **==> picture [447 x 194] intentionally omitted <==** **----- Start of picture text -----**<br> 0.1µF/6V3 VDD<br>High<br>SYNC<br>Power GNDV VDDV<br>Illuminator TMF8801<br>VIO<br>GPIO1 Optics<br>GPIO0<br>Driver VCSEL<br>Reflective<br>EN Control<br>Internal Surface<br>INT<br>SPAD, Reflection<br>Host<br>SDA TDC and<br>SCL ProcessData Histogram OpticalFilter<br>Background<br>Light<br>VDD GND GNDC VDDC<br>VDD 2x<br>0.1µF/6V3<br>**----- End of picture text -----**<br> The SYNC signal connected to GPIO1 can be used to immediately interrupt the TMF8801 VCSEL operation if the high power illuminator is operating. It needs to be ensured that SYNC does not exceed the VDD supply of TMF8801 as otherwise an internal protection diode will start conducting. The VCSEL operation is controlled by setting cmd_data5 of command=0x02 or 0x03 according (see App0 registers). On SYNC assertion, the VCSEL is immediately switched off (typically after 10 µs), on SYNC de-assertion the VCSEL operation is resumed within >100 µs. GPIO0 can be used as a general GPIO output signal. The signals INT/SDA/SCL need an external pullup resistor to the VIO supply (typically 1.8 V). Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 58 Document Feedback TMF8801 Application Information ## **9.3.1 Operating Several TMF8801 on a Single I²C Bus** Several TMF8801 devices can share a single I²C bus if there are dedicated enable (EN) connections to each of these devices. ## **Figure 116:** ## **Sharing a Single I²C Bus for Operating Several TMF8801s** **==> picture [444 x 382] intentionally omitted <==** **----- Start of picture text -----**<br> TMF8801<br>TOF Sensor Optics<br>EN1<br>Driver VCSEL<br>GPIO1 Reflective<br>Control<br>GPIO0<br>Internal Surface<br>Host<br>SDA SPAD, Reflection<br>Data<br>SCL TDC and<br>Process Optical<br>Histogram<br>Filter<br>Cortex M0<br>Background<br>Light<br>TMF8801<br>TOF Sensor Optics<br>EN2<br>Driver VCSEL<br>GPIO1 Reflective<br>Control<br>INT2 GPIO0<br>Internal Surface<br>SDA SPAD, Reflection<br>Data<br>SCL TDC and<br>Process Optical<br>Histogram<br>Filter<br>Cortex M0<br>Background<br>Light<br>TMF8801<br>TOF Sensor Optics<br>EN3<br>Driver VCSEL<br>GPIO1 Reflective<br>Control<br>INT3 GPIO0 Internal Surface<br>SDA SPAD, Reflection<br>Data<br>SCL TDC and<br>Process Optical<br>Histogram<br>Filter<br>Cortex M0<br>Background<br>Light<br>INT1<br>**----- End of picture text -----**<br> The procedure to initialize the devices to different I²C addresses is as follows: **1.** Set EN1=0, EN2=0, EN3=0 (reset all devices) **2.** Set EN1=1 **3.** Upload firmware patch to first TMF8801 **4.** Reprogram I²C address for first TMF8801 using command=0x49 where cmd_data0=0 and cmd_data1=I²C address for first TMF8801 **5.** Set EN2=1 Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 59 Document Feedback TMF8801 Application Information **6.** Upload firmware patch to second TMF8801 **7.** Reprogram I²C address for second TMF8801 using command=0x49 where cmd_data0=0 and cmd_data1=I²C address for second TMF8801 **8.** Set EN3=1 **9.** Upload firmware patch to third TMF8801 **10.** Reprogram I²C address for third TMF8801 using command=0x49 where cmd_data0=0 and cmd_data1=I²C address for third TMF8801 **11.** If there are further devices, repeat last three steps accordingly. ## 9.4 PCB Layout **==> picture [388 x 304] intentionally omitted <==** **----- Start of picture text -----**<br> Figure 117:<br>PCB Layout Recommendation<br>GND PLANE<br>VDD VDD<br>©<br>VDDC VDDV<br>(0402)<br>GND : (0402) GNDC GNDV (0402) GND<br>GPIO0 GPIO0 GPIO1 GPIO1<br>INT INT EN EN<br>SCL SCL GND GND<br>i<br>SDA SDA VDD<br>(0402) VDD<br>©<br>VDD<br>C<br>VDDC VDDV<br>C C<br>**----- End of picture text -----**<br> Use GRM155R70J104KA01 (0402 X7R 0.1 µF 6.3 V) or capacitors with same or better performance for CVDDC, CVDD and CVDDV. Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 60 Document Feedback TMF8801 Application Information ## 9.5 PCB Pad Layout **Figure 118: PCB Pad Layout** - (1) All linear dimensions are in millimeters. - (2) Dimension tolerances are 0.05 mm unless otherwise noted. - (3) This drawing is subject to change without notice. Use the PCB pad layout as a recommendation only. The actual pad layout shall be optimized for the customer production line. Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 61 Document Feedback TMF8801 Package Drawings & Markings ## **10 Package Drawings & Markings** ## **Figure 119: Package Drawing** **==> picture [107 x 13] intentionally omitted <==** **----- Start of picture text -----**<br> RoHS Green<br>**----- End of picture text -----**<br> - (1) All linear dimensions are in millimeters. - (2) Contact finish is Au/Ni. - (3) This package contains no lead (Pb). - (4) This drawing is subject to change without notice. - (5) 5-digit tracecode is only on bottom side of the package. Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 62 Document Feedback TMF8801 Tape & Reel Information ## **11 Tape & Reel Information** ## **Figure 120:** ## **Tape and Reel Drawing** (1) All linear dimensions are in millimeters. Dimension tolerance is ± 0.10 mm unless otherwise noted. - (2) The dimensions on this drawing are for illustrative purposes only. Dimensions of an actual carrier may vary slightly. - (3) Symbols on drawing A0, B0, and K0 are defined in ANSI EIA Standard 481-B 2001. - (4) There are two reel sizes available (see section Ordering Information) - i) 7’’ reels: Each reel is 7 inch in diameter and contains 500 parts. - ii) 13’’ reels: Each reel is 13 inch in diameter and contains 5000 parts. - (5) **ams** packaging tape and reel conform to the requirements of EIA Standard 481-B. (6) In accordance with EIA standard, device pin 1 is located next to sprocket holes in the tape. (7) This drawing is subject to change without notice. Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 63 Document Feedback TMF8801 Soldering & Storage Information ## **12 Soldering & Storage Information** ## 12.1 Soldering Information The package has been tested and has demonstrated an ability to be reflow soldered to a PCB substrate. The solder reflow profile describes the expected maximum heat exposure of components during the solder reflow process of product on a PCB. Temperature is measured on top of component. The components should be limited to a maximum of three passes through this solder reflow profile. ## **Figure 121: Solder Reflow Profile Graph** ## **Figure 122: Solder Reflow Profile** |**Parameter**|**Reference**|**Device**| |---|---|---| |Average temperature gradient in preheating||2.5 °C/s| |Soak time|tsoak|2 to 3 minutes| |Time above 217 °C (T1)|t1|Max 90 s| Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 64 Document Feedback TMF8801 Soldering & Storage Information |**Parameter**|**Reference**|**Device**| |---|---|---| |Time above 230 °C (T2)|t2|Max 50 s| |Time above Tpeak– 10 °C (T3)|t3|Max 10 s| |Peak temperature in reflow|Tpeak|260 °C| |Temperature gradient in cooling||Max −5 °C/s| ## 12.2 Storage Information ## **12.2.1 Moisture Sensitivity** Optical characteristics of the device can be adversely affected during the soldering process by the release and vaporization of moisture that has been previously absorbed into the package. To ensure the package contains the smallest amount of absorbed moisture possible, each device is baked prior to being dry packed for shipping. Devices are dry packed in a sealed aluminized envelope called a moisture-barrier bag with silica gel to protect them from ambient moisture during shipping, handling, and storage before use. ## **Shelf Life** The calculated shelf life of the device in an unopened moisture barrier bag is 12 months from the date code on the bag when stored under the following conditions: - Shelf Life: 12 months - Ambient Temperature: <40 °C - Relative Humidity: <90 % Rebaking of the devices will be required if the devices exceed the 12 month shelf life or the Humidity Indicator Card shows that the devices were exposed to conditions beyond the allowable moisture region. ## **Floor Life** The module has been assigned a moisture sensitivity level of MSL 3. As a result, the floor life of devices removed from the moisture barrier bag is 168 hours from the time the bag was opened, provided that the devices are stored under the following conditions: - Floor Life: 168 hours - Ambient Temperature: <30 °C - Relative Humidity: <60 % If the floor life or the temperature/humidity conditions have been exceeded, the devices must be rebaked prior to solder reflow or dry packing. Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 65 Document Feedback TMF8801 Soldering & Storage Information ## **Rebaking Instructions** When the shelf life or floor life limits have been exceeded, rebake at 50 °C for 12 hours. Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 66 Document Feedback TMF8801 Laser Eye Safety ## **13 Laser Eye Safety** The TMF8801 is designed to meet the Class 1 laser safety limits including single faults in compliance with IEC / EN 60825-1:2014. This applies to the stand-alone device and the included software supplied by **ams** . In an end application system environment, the system may need to be tested to ensure it remains compliant. The system must not include any additional lens to concentrate the laser light or parameters set outside of the recommended operating conditions. Use outside of the recommended condition or any physical modification to the module during development could result in hazardous levels of radiation exposure. Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 67 Document Feedback TMF8801 Revision Information ## **14 Revision Information** |**Document Status**|**Product Status**|**Definition**| |---|---|---| |Product Preview|Pre-Development|<br>Information in this datasheet is based on product ideas in the planning phase| |||of development. All specifications are design goals without any warranty and| |||are subject to change without notice| |Preliminary Datasheet|Pre-Production|Information in this datasheet is based on products in the design, validation or| |||qualification phase of development. The performance and parameters shown| |||in this document are preliminary without any warranty and are subject to| |||change without notice| |Datasheet|Production|Information in this datasheet is based on products in ramp-up to full production| |||or full production which conform to specifications in accordance with the terms| |||of ams AG standard warranty as given in the General Terms of Trade| |Datasheet|Discontinued|Information in this datasheet is based on products which conform to| |(discontinued)||specifications in accordance with the terms of ams AG standard warranty as| |||given in the General Terms of Trade, but these products have been| |||superseded and should not be used for new designs| |**Changes from previous version to current revision v9-00**<br>**Page**||| |Added 0.23 mA / 0.17 mA lowest power consumption for ranging in figure 1<br>3||| |Clarified use of EN|pin if not connected to a host GPIO pin<br>7|| |Added additional I_VDD ranging parameter for firmware 3.0.19.0 or higher in<br>15||| |figure 14||| |Added 1 s and 2 s ranging period to||figure 15<br>16| |Updated figure 114|and text above|57| - Page and figure numbers for the previous version may differ from page and figure numbers in the current revision. - Correction of typographical errors is not explicitly mentioned. Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 68 Document Feedback TMF8801 Legal Information ## **15 Legal Information** ## **Copyrights & Disclaimer** Copyright ams AG, Tobelbader Strasse 30, 8141 Premstaetten, Austria-Europe. Trademarks Registered. All rights reserved. The material herein may not be reproduced, adapted, merged, translated, stored, or used without the prior written consent of the copyright owner. Devices sold by ams AG are covered by the warranty and patent indemnification provisions appearing in its General Terms of Trade. ams AG makes no warranty, express, statutory, implied, or by description regarding the information set forth herein. ams AG reserves the right to change specifications and prices at any time and without notice. Therefore, prior to designing this product into a system, it is necessary to check with ams AG for current information. This product is intended for use in commercial applications. Applications requiring extended temperature range, unusual environmental requirements, or high reliability applications, such as military, medical life-support or life-sustaining equipment are specifically not recommended without additional processing by ams AG for each application. This product is provided by ams AG “AS IS” and any express or implied warranties, including, but not limited to the implied warranties of merchantability and fitness for a particular purpose are disclaimed. ams AG shall not be liable to recipient or any third party for any damages, including but not limited to personal injury, property damage, loss of profits, loss of use, interruption of business or indirect, special, incidental or consequential damages, of any kind, in connection with or arising out of the furnishing, performance or use of the technical data herein. No obligation or liability to recipient or any third party shall arise or flow out of ams AG rendering of technical or other services. ## **RoHS Compliant & ams Green Statement** **RoHS Compliant:** The term RoHS compliant means that ams AG products fully comply with current RoHS directives. Our semiconductor products do not contain any chemicals for all 6 substance categories plus additional 4 substance categories (per amendment EU 2015/863), including the requirement that lead not exceed 0.1% by weight in homogeneous materials. Where designed to be soldered at high temperatures, RoHS compliant products are suitable for use in specified lead-free processes. **ams Green (RoHS compliant and no Sb/Br/Cl):** ams Green defines that in addition to RoHS compliance, our products are free of Bromine (Br) and Antimony (Sb) based flame retardants (Br or Sb do not exceed 0.1% by weight in homogeneous material) and do not contain Chlorine (Cl not exceed 0.1% by weight in homogeneous material). **Important Information:** The information provided in this statement represents ams AG knowledge and belief as of the date that it is provided. ams AG bases its knowledge and belief on information provided by third parties, and makes no representation or warranty as to the accuracy of such information. Efforts are underway to better integrate information from third parties. ams AG has taken and continues to take reasonable steps to provide representative and accurate information but may not have conducted destructive testing or chemical analysis on incoming materials and chemicals. ams AG and ams AG suppliers consider certain information to be proprietary, and thus CAS numbers and other limited information may not be available for release. ## **Headquarters** ams AG Tobelbader Strasse 30 8141 Premstaetten Austria, Europe Tel: +43 (0) 3136 500 0 ## Please visit our website at www.ams.com Buy our products or get free samples online at www.ams.com/Products Technical Support is available at www.ams.com/Technical-Support Provide feedback about this document at www.ams.com/Document-Feedback For sales offices, distributors and representatives go to www.ams.com/Contact For further information and requests, e-mail us at ams_sales@ams.com Datasheet • PUBLIC DS000648 • v9-00 • 2021-Dec-21 69 │ 69
Updated at February 9, 2023
About Novapart
Novapart is a B2B electronic component broker specialising in stock shortages and cost reduction. We source hard-to-find parts and identify compliant alternatives across a catalogue of 410,000+ components from 500+ manufacturers.
Learn more →Stock Shortage Specialist
When a component is unavailable, discontinued or has an unacceptable lead time, we tap into our network of vetted European and Asian distributors to source what you need — without compromising on quality or traceability.
Request a quote →Compliant Alternatives
We identify pin-to-pin, electrically equivalent substitutes that meet the same certifications (RoHS, AEC-Q100, REACH) as your original specification — validated against datasheets, not just part numbers. Often at a lower cost.
BOM Analysis service →