MLX90640 32x24 IR array Datasheet 1. Features and Benefits 2. Application Examples Small size, low cost 32x24 pixels IR array High precision non-contact temperature measurements Easy to integrate Industry standard four lead TO39 package Factory calibrated Noise Equivalent Temperature Difference (NETD) 0.1K RMS @1Hz refresh rate I2C compatible digital interface Programmable refresh rate 0.5Hz...64Hz 3.3V supply voltage Intrusion / Movement detection Presence detection / Person localization Temperature sensing element for intelligent building air conditioning Thermal Comfort sensor in automotive Air Conditioning control system Microwave ovens Current consumption less than 23mA Industrial temperature control of moving parts 2 FOV options - 55x35 and 110x75 Visual IR thermometers Operating temperature -40C / 85C Driver software for MCU available at: https://github.com/melexis/mlx90640library.git Target temperature -40C / 300C Complies with RoHS regulations 3. Description The MLX90640 is a fully calibrated 32x24 pixels thermal IR array in an industry standard 4-lead TO39 package with digital interface. The MLX90640 contains 768 FIR pixels. An ambient sensor is integrated to measure the ambient temperature of the chip and supply sensor to measure the VDD. The outputs of all sensors IR, Ta and VDD are 2 stored in internal RAM and are accessible through I C. Figure 1 Block diagram MLX90640 32x24 IR array Datasheet Contents 1. Features and Benefits ................................................................ ................................................................................................ ............................................................................................ ............................................................ 1 2. Application Examples................................................................ ................................................................................................ ............................................................................................. ............................................................. 1 3. Description Description ................................................................ ................................................................................................ ................................................................................................ ............................................................................ ............................................ 1 4. Ordering Information ................................................................ ................................................................................................ ............................................................................................ ............................................................ 6 5. Glossary of Terms ................................................................ ................................................................................................ ................................................................................................ .................................................................. .................................. 7 6. Pin Definitions and Descriptions ................................................................ ................................................................................................ ............................................................................ ............................................ 8 7. Absolute Maximum Ratings ................................................................ ................................................................................................ ................................................................................... ................................................... 8 8. General Electrical Specifications ................................................................ ................................................................................................ ............................................................................ ............................................ 9 9. False pixel correction................................................................ ................................................................................................ ........................................................................................... ........................................................... 10 10. Detailed General Description................................................................ ................................................................................................ ............................................................................. ............................................. 10 10.1. Pixel position ................................................................................................................................... 10 10.2. Communication protocol ............................................................................................................... 11 10.2.1. Low level ................................................................................................................................... 11 10.3. Measurement mode ....................................................................................................................... 12 10.4. Refresh rate..................................................................................................................................... 12 10.5. Measurement flow ......................................................................................................................... 13 10.6. Reading patterns............................................................................................................................. 14 10.7. Address map ................................................................................................................................... 16 10.7.1. Internal registers....................................................................................................................... 16 10.7.2. RAM ........................................................................................................................................... 18 10.7.3. EEPROM .................................................................................................................................... 19 11. Calculating Object Temperature ................................................................ ................................................................................................ ........................................................................ ........................................ 22 11.1. Restoring calibration data from EERPOM ..................................................................................... 22 11.1.1. Restoring the VDD sensor parameters .................................................................................... 22 11.1.2. Restoring the Ta sensor parameters ....................................................................................... 22 , .................................................................................................. 24 11.1.3. Restoring the offset .................................................................................................................. 23 11.1.4. Restoring the Sensitivity 11.1.5. Restoring the Kv(i,j) coefficient ................................................................................................ 25 11.1.6. Restoring the Kta(i,j) coefficient .............................................................................................. 25 11.1.7. Restoring the GAIN coefficient (common for all pixels) ......................................................... 26 11.1.8. Restoring the KsTa coefficient (common for all pixels) .......................................................... 26 REVISION 11 - 3 AUGUST 2018 Page 2 of 60 MLX90640 32x24 IR array Datasheet 11.1.9. Restoring corner temperatures (common for all pixel).......................................................... 26 11.1.10. Restoring the KsTo coefficient (common for all pixels) ........................................................ 27 11.1.11. Restoring sensitivity correction coefficients for each temperature range ......................... 27 11.1.12. Restoring the Sensitivity ............................................................................................... 28 11.1.13. Restoring the offset of the Compensation Pixel (CP) ........................................................... 28 11.1.14. Restoring the Kv CP coefficient .............................................................................................. 28 11.1.15. Restoring the Kta CP coefficient ............................................................................................ 28 11.1.16. Restoring the TGC coefficient ................................................................................................ 29 11.1.17. Restoring the resolution control coefficient ......................................................................... 29 11.2. Temperature Calculation................................................................................................................ 30 11.2.1. Example Input Data .................................................................................................................. 30 11.2.2. Temperature calculation .......................................................................................................... 35 12. Performance graphs ................................................................ ................................................................................................ .......................................................................................... .......................................................... 47 12.1. Accuracy .......................................................................................................................................... 47 Startup time ............................................................................................................................................. 49 12.1.1. First valid data........................................................................................................................... 49 12.1.2. Thermal behavior...................................................................................................................... 49 12.2. Noise performance and resolution ................................................................................................ 50 12.3. Field of view (FOV) .......................................................................................................................... 52 13. 13. Application information ................................................................ ................................................................................................ ..................................................................................... ..................................................... 53 13.1. Electrical considerations ................................................................................................................ 53 13.2. Using the device in "image mode" ................................................................................................ 54 14. Application Comments ................................................................ ................................................................................................ ...................................................................................... ...................................................... 54 15. Mechanical drawings ................................................................ ................................................................................................ ......................................................................................... ......................................................... 56 15.1. FOV 55............................................................................................................................................ 56 15.2. FOV 110 ......................................................................................................................................... 57 15.3. Device marking ............................................................................................................................... 58 16. Standard Information ................................................................ ................................................................................................ ........................................................................................ ........................................................ 59 17. ESD Precautions................................................................ ................................................................................................ ................................................................................................ ................................................................. ................................. 59 18. Revision history table ................................................................ ................................................................................................ ........................................................................................ ........................................................ 59 19. Contact ................................................................ ................................................................................................ ................................................................................................ .............................................................................. .............................................. 60 20. Disclaimer ................................................................ ................................................................................................ ................................................................................................ .......................................................................... .......................................... 60 REVISION 11 - 3 AUGUST 2018 Page 3 of 60 MLX90640 32x24 IR array Datasheet Tables Table 1 Ordering information .......................................................................................................................................................... 6 Table 2 Glosarry of terms ................................................................................................................................................................ 7 Table 3 Pin definition ...................................................................................................................................................................... 8 Table 4 Absolute maximum ratings ................................................................................................................................................. 8 Table 5 Electrical specification ........................................................................................................................................................ 9 Table 6 Priorities of subpage controls (0x0800D) ............................................................................................................................17 Table 7 Configuration parameters memory ....................................................................................................................................19 Table 8 EEPROM to registers mapping ............................................................................................................................................19 Table 9 EEPROM overview (words) .................................................................................................................................................20 Table 10 Calibration parameters memory (EEPROM - bits) ..............................................................................................................21 Table 11 Calculation example input data ........................................................................................................................................30 Table 12 Calculation example calibration data ................................................................................................................................34 Table 13 XOR truth table................................................................................................................................................................42 Table 14 Noise performance ..........................................................................................................................................................51 Table 15 Available FOV options ......................................................................................................................................................52 Table 16 Revision history ...............................................................................................................................................................60 Figures Figure 1 Block diagram ................................................................................................................................................................... 1 Figure 2 MLX90640 Overview and pin description ........................................................................................................................... 8 Figure 3 Pixel in the whole FOV ......................................................................................................................................................10 2 Figure 4 I C write command format (default SA=0x33 is used) ........................................................................................................11 2 Figure 5 I C read command format (default SA=0x33 is used) .........................................................................................................11 Figure 6 Refresh rate timing ...........................................................................................................................................................12 Figure 7 Recommended measurement flow ...................................................................................................................................13 Figure 8 TV mode reading pattern (only highlighted cells are updated) ...........................................................................................15 Figure 9 Chess reading pattern (only highlighted cells are updated) ................................................................................................15 Figure 10 MXL90640 memory map .................................................................................................................................................16 Figure 11 Status register (0x8000) bits meaning .............................................................................................................................16 Figure 12 Control register1 (0x800D) bits meaning .........................................................................................................................17 2 Figure 13 I C configuration register (0x800F) bits meaning .............................................................................................................18 Figure 14 RAM memory map (Chess pattern mode) - factory default mode ....................................................................................18 Figure 15 RAM memory map (Interleaved mode) ...........................................................................................................................18 Figure 16 To calculation flow .........................................................................................................................................................35 Figure 17 Absolute temperature accuracy - MLX90640BAA (left) and MLX90640BAB (right) ...........................................................47 Figure 18 Different accuracy zones depending on device type (BAA on the left and BAB on the right) .............................................48 Figure 19 MLX90640BAx noise vs refresh rate for different device types .........................................................................................50 Figure 20 MLX90640BAA noise vs pixel and refresh rate at 1Hz and 2Hz .........................................................................................50 Figure 21 MLX90640BAA noise vs pixel and refresh rate at 4Hz, 8Hz and 16Hz ................................................................................50 Figure 22 MLX90640BAB noise vs pixel and refresh rate at 1Hz and 2Hz .........................................................................................51 Figure 23 MLX90640BAB noise vs pixel and refresh rate at 4Hz, 8Hz and 16Hz ................................................................................51 Figure 24: Field Of View measurement ...........................................................................................................................................52 Figure 25 MLX90640 electrical connections ....................................................................................................................................53 Figure 26 Calculation flow in thermal image mode .........................................................................................................................54 Figure 27 Mechanical drawing of 55 FOV device ............................................................................................................................56 REVISION 11 - 3 AUGUST 2018 Page 4 of 60 MLX90640 32x24 IR array Datasheet Figure 28 Mechanical drawing of 110 FOV device ..........................................................................................................................57 REVISION 11 - 3 AUGUST 2018 Page 5 of 60 MLX90640 32x24 IR array Datasheet 4. Ordering Information Product Temperature Package Option Code Custom Configuration Packing Form Definition MLX90640 E SF BAA 000 TU 32x24 IR array MLX90640 E SF BAB 000 TU 32x24 IR array Legend: Temperature Code: Package Code: E: -40C to 85C "SF" for TO39 package Option Code: xAx - TGC is disabled and may not be changed Option Code: xxA - FOV = 110x75 xxB - FOV = 55x35 Custom configuration Packing Form: Ordering Example: 000 - standard product "TU" - Tubes "MLX90640ESF-BAA-000-TU" Table 1 Ordering information REVISION 11 - 3 AUGUST 2018 Page 6 of 60 MLX90640 32x24 IR array Datasheet 5. Glossary of Terms TC POR Temperature Coefficient (in ppm/C) Power On Reset IR Infra-Red Ta Ambient Temperature - the temperature of the TO39 package IR data Infrared data (raw data from ADC proportional to IR energy received by the sensor) ADC Analog To Digital Converter TGC Temperature Gradient Coefficient FOV Field Of View nFOV Field Of View of the N-th pixel 2 IC Inter-Integrated Circuit communication protocol SDA Serial Data SCL Serial Clock LSB Least Significant Bit MSB Most Significant Bit Fps Frames per Second - data refresh rate MD Master Device SD Slave Device ASP Analog Signal Processing DSP Digital Signal Processing ESD Electro Static Discharge EMC Electro Magnetic Compatibility CP Compensation Pixel NC Not Connected NA Not Applicable TBD To Be Defined Table 2 Glosarry of terms REVISION 11 - 3 AUGUST 2018 Page 7 of 60 MLX90640 32x24 IR array Datasheet 6. Pin Definitions and Descriptions Pin # Name Description 1 SDA I2C serial data (input / output) 2 VDD Positive supply 3 GND Negative supply (Ground) 4 SCL I2C serial clock (input only) Table 3 Pin definition Figure 2 MLX90640 Overview and pin description 7. Absolute Maximum Ratings Parameter Symbol Min. Typ. Max. Unit V Supply Voltage (over voltage) VDD 5 Supply Voltage (operating max voltage) VDD 3.6 Reverse Voltage (each pin) Operating Temperature Storage Temperature ESD sensitivity (AEC Q100 002) SDA DC sink current -0.3 V TAMB -40 +85 C TST -40 +125 C 4 Remark Not in plastic tubes kV 40 mA Table 4 Absolute maximum ratings Exceeding the absolute maximum ratings may cause permanent damage. Exposure to absolute maximum-rated conditions for extended periods may affect device reliability. REVISION 11 - 3 AUGUST 2018 Page 8 of 60 MLX90640 32x24 IR array Datasheet 8. General Electrical Specifications Electrical Parameter Symbol Min. Typ. Max. Unit Supply Voltage VDD 3 3.3 3.6 V Supply Current IDD 15 20 25 mA VPOR_UP 2.2 2.6 V VDD rising 2.55 V VDD falling POR level up analog POR level down analog POR hysteresis VPOR_DOWN VPOR_hys 50 Default I2C address 0x01 Input high voltage (SDA, SCL) VIH Input low voltage (SDA, SCL) VLOW SDA output low voltage 0x33 Condition mV 0xFF V Over Ta and VDD 0.3*VDD V Over Ta and VDD VOL 0.4 V Over Ta and VDD ISINK=3mA SDA leakage ISDA_leak 10 A VSDA=3.6V, Ta=85C SCL leakage ISCL_leak 10 A VSCL=3.6V, Ta=85C SDA capacitance CSDA 10 pF SCL capacitance CSCL 10 pF Acknowledge setup time TSUAC(MD) 0.45 s Acknowledge hold time TDUAC(MD) 0.45 s Acknowledge setup time TSUAC(SD) 0.45 s Acknowledge hold time TDUAC(SD) 0.45 s 1 MHz 10 times I2C clock frequency 0.7*VDD FI2C 0.4 EEPROM erase/write cycles Write cell time TWRITE 5 ms Table 5 Electrical specification NOTE: For best performance it is recommended to keep the supply voltage as accurate and stable as possible to 3.3V 0.1V NOTE 2: When a data in EEPROM cell to be changed an erase (write 0x0000) must be done prior to writing the new value. After each write at least 5ms delay is needed in order to writing process to take place. NOTE 3: Slave address 0x00 must be avoided. REVISION 11 - 3 AUGUST 2018 Page 9 of 60 MLX90640 32x24 IR array Datasheet 9. False pixel correction The imager can have up to 4 defective pixels, with either no output or out of specification temperature reading. 2 These pixels are identified in the EEPROM table of the sensor and can be read out through the I C. The defective pixel result can be replaced by an interpolation of its neighboring pixels. 10. Detailed General Description 10.1. Pixel position Col 3 Col 2 Col 1 Col 32 The array consists of 768 IR sensors (also called pixels). Each pixel is identified with its row and column position as Pix(i,j) where i is its row number (from 1 to 24) and j is its column number (from 1 to 32) Row 1 Row 2 Row 3 VDD 0 Row 24 SDA GND SCL Reference tab Figure 3 Pixel in the whole FOV REVISION 11 - 3 AUGUST 2018 Page 10 of 60 MLX90640 32x24 IR array Datasheet 10.2. Communication protocol 2 The device use I C protocol with support of FM+ mode (up to 1MHz clock frequency) and can be only slave on the bus. 2 The SDA and SCL ports are 5V tolerant and the sensor can be directly connected to a 5V I C network. The slave address is programmable and can have up to 127 different slave addresses. 10.2.1. Low level 10.2.1.1. Start / Stop conditions Each communication session is initiated by a START condition and ends with a STOP condition. A START condition is initiated by a HIGH to LOW transition of the SDA while a STOP is generated by a LOW to HIGH transition. Both changes must be done while the SCL is HIGH. 10.2.1.2. Device addressing The master is addressing the slave device by sending a 7-bit slave address after the START condition. The first seven bits are th dedicated for the address and the 8 is Read/Write (R/W) bit. This bit indicates the direction of the transfer: * Read (HIGH) means that the master will read the data from the slave * Write (LOW) means that the master will send data to the slave 10.2.1.3. Acknowledge th During the 9 clock following every byte transfer the transmitter releases the SDA line. The receiver acknowledges (ACK) receiving the byte by pulling SDA line to low or does not acknowledge (NoACK) by letting the SDA `HIGH'. 10.2.1.4. I2C command format Slave address MSByte address SDA 2 I C write S 0 1 1 LSByte address 0 0 1 1 W A A MSByte data A LSByte data A A P SCL 2 Figure 4 I C write command format (default SA=0x33 is used) Slave address Slave address 2 MSByte address SDA I C read S 0 1 1 0 0 1 1 W A LSByte address A MSByte data A S 0 1 1 0 0 1 1 R A LSByte data A NAK P SCL 2 Figure 5 I C read command format (default SA=0x33 is used) REVISION 11 - 3 AUGUST 2018 Page 11 of 60 MLX90640 32x24 IR array Datasheet 10.3. Measurement mode In this mode the measurements are constantly running. Depending on the selected frame rate Fps in the control register, the data for IR pixels and Ta will be updated in the RAM each second. In this mode the external microcontroller has full access to the internal registers and memories of the device. 10.4. Refresh rate The refresh rate is configured by "Control register 1" (0x800D) i.e. if "Refresh rate control" = 011 that each 250ms a new subpage data is available in the RAM. 4Hz this would mean NOTE: It is possible to program the desired refresh rate into device EEPROM eliminating the necessity to reconfigure the device every time it is powered on. The corresponding EEPROM cell is at address 0x240C (see Table 8) Which subpage is updated is indicated by the "Last measured subpage" field. It is important to read both subpages as the necessary information for the Ta calculations is only available by combining the data from both subpages i.e. the Ta is refreshed with an update speed twice as low as the one set in "Refresh rate control". When a complete new data set (subpage) is available, a dedicated bit is set to indicate this - bit 3 "New data available in RAM" in "Status register" (0x8000). It is up to the customer to reset the bit once the data has been read. Set bit "New data available in RAM" Subpage 0 Subpage 0 Subpage 1 250ms 250ms Subpage 1 250ms 250ms Refresh rate control = 011b (4Hz) Figure 6 Refresh rate timing REVISION 11 - 3 AUGUST 2018 Page 12 of 60 MLX90640 32x24 IR array Datasheet 10.5. Measurement flow Following measurement flow is recommended: Measurement Flow 0.5 Hz 1 Hz 2 Hz POR Wait 80ms + delay determined by the refresh rate Just once after POR 64 Hz 4 sec 2 sec 1 sec .... 0.03125 sec Extract calibration data from EEPROM and store in RAM Yes Absolute temp measurement? No Wait app 4 min Sub frame "0" Read meas data Clear bit "New data available in RAM" - Bit3 in 0x8000 Calculate the temperature of the sub frame "0" Image processing decision making Yes Step mode ? No Set Start Of Measurement - Bit5 in 0x8000 Wait time determined by RR - 20% No Is "New data available in RAM" set Yes Sub frame "1" Read meas data Clear bit "New data available in RAM" - Bit3 in 0x8000 Calculate the temperature of the sub frame "1" Image processing decision making Yes Step mode ? No Set Start Of Measurement - Bit5 in 0x8000 Wait time determined by RR - 20% Yes Is "New data available in RAM" set No Figure 7 Recommended measurement flow REVISION 11 - 3 AUGUST 2018 Page 13 of 60 MLX90640 32x24 IR array Datasheet 10.6. Reading patterns The array frame is divided in two subpages and depending of bit 12 in "Control register 1" (0x800D) - "Reading pattern" there are two modes of the pixel arrangement: Chess pattern mode (factory default) TV interleave mode NOTE1: As a standard the MLX90640 is calibrated in Chess pattern mode, this results in better fixed pattern noise behaviour of the sensor when in chess pattern mode. For best results Melexis advices to use chess pattern mode. NOTE2: Please make sure a proper configuration of the subpage control bit is done. See: Table 6 Priorities of subpage controls REVISION 11 - 3 AUGUST 2018 Page 14 of 60 MLX90640 32x24 IR array Datasheet Subpage 0 --> 0x8000 = 0xXXX8 0x0400 Subpage 1 --> 0x8000 = 0xXXX9 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 0x0400 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 0x0420 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 0x0420 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 0x0440 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 0x0440 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 0x0460 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 0x0460 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 0x0480 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 0x0480 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 0x04A0 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 0x04A0 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 0x04C0 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 0x04C0 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 0x04E0 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 0x04E0 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 0x0500 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 0x0500 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 0x0520 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 0x0520 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 0x0540 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 0x0540 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 0x0560 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 0x0560 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 0x0580 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 0x0580 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 0x05A0 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 0x05A0 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 0x05C0 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 0x05C0 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 0x05E0 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 0x05E0 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 0x0600 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 0x0600 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 0x0620 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 0x0620 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 0x0640 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 0x0640 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 0x0660 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 0x0660 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 0x0680 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 0x0680 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 0x06A0 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 0x06A0 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 0x06C0 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 0x06C0 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 0x06E0 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 0x06E0 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 Figure 8 TV mode reading pattern (only highlighted cells are updated) Subpage 0 --> 0x8000 = 0xXXX8 0x0400 Subpage 1 --> 0x8000 = 0xXXX9 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 0x0400 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 0x0420 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 0x0420 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 0x0440 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 0x0440 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 0x0460 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 0x0460 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 0x0480 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 0x0480 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 0x04A0 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 0x04A0 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 0x04C0 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 0x04C0 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 0x04E0 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 0x04E0 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 0x0500 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 0x0500 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 0x0520 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 0x0520 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 0x0540 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 0x0540 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 0x0560 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 0x0560 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 0x0580 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 0x0580 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 0x05A0 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 0x05A0 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 0x05C0 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 0x05C0 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 0x05E0 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 0x05E0 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 0x0600 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 0x0600 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 0x0620 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 0x0620 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 0x0640 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 0x0640 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 0x0660 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 0x0660 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 0x0680 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 0x0680 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 0x06A0 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 0x06A0 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 0x06C0 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 0x06C0 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 0x06E0 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 0x06E0 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 Figure 9 Chess reading pattern (only highlighted cells are updated) REVISION 11 - 3 AUGUST 2018 Page 15 of 60 MLX90640 32x24 IR array Datasheet 10.7. Address map 0x0000 ROM 0x03FF 0x0400 RAM 0x07FF 0x2400 EEPROM 0x273F 0x8000 Registers (MLX reserved) 0x800C 0x800D Registers 0x8010 0x8011 Registers (MLX reserved) 0x8016 Figure 10 MXL90640 memory map 10.7.1. Internal registers B12 B11 B10 B9 B8 B7 B6 B5 - - - - - - - - - - - B4 B3 B2 B1 B0 Last measured subpage controlled by MLX90641 B13 New data available in RAM B14 Melexis reserved B15 Enable overwrite There are a few internal registers that are customer accessible through which the device performance can be customized: Status register - 0x8000 0 0 0 Measurement of subpage 0 has been measured 0 0 1 Measurement of subpage 1 has been measured 0 1 0 Melxis reserved 0 1 1 Melxis reserved 1 0 0 Melxis reserved 1 0 1 Melxis reserved 1 1 0 Melxis reserved 1 1 1 Melxis reserved 0 No new data is available in RAM (must be reset be the customer) 1 A new data is available in RAM 0 Data in RAM overwrite is disabled 1 Data in RAM overwrite is enabled Melexis reserved Figure 11 Status register (0x8000) bits meaning REVISION 11 - 3 AUGUST 2018 Page 16 of 60 MLX90640 32x24 IR array B7 B6 B5 B4 B3 B2 B1 B0 Enable subpages mode B8 Melexis reserved B9 Enable data hold B10 Select subpage B11 Reading pattern B12 Refresh rate control B13 Resolution control B14 Melexis reserved B15 Enable subpages repeat Datasheet 0 - - - Transfer the data into storage RAM only if en_overwrite = 1 (check 0x8000) 0 Toggles between subpage "0" and subpage "1" if Enable subpages mode = "1" (default) 1 Select subpage determines which subpage to be measured if Enable subpages mode = "1" 0 0 0 Subpage 0 is selected (default) 0 0 1 Subpage 1 is selected 0 1 0 Not Applicable 0 1 1 Not Applicable 1 0 0 Not Applicable 1 0 1 Not Applicable 1 1 0 Not Applicable 1 1 1 Not Applicable IR refresh rate = 0.5Hz IR refresh rate = 1Hz 0 1 0 IR refresh rate = 2Hz (default) 0 1 1 IR refresh rate = 4Hz 1 0 0 IR refresh rate = 8Hz 1 0 1 IR refresh rate = 16Hz 1 1 0 IR refresh rate = 32Hz 1 1 1 IR refresh rate = 64Hz 0 0 ADC set to 16 bit resolution 0 1 ADC set to 17 bit resolution 1 0 ADC set to 18 bit resolution (default) 1 1 ADC set to 19 bit resolution Chess pattern (default) Subpade mode is activated (default) Keep this bit = "0" (default) Transfer the data into storage RAM at each measured frame (default) 0 1 1 No subpages, only one page will be measured 1 1 0 0 Interleaved (TV) mode 0 0 0 0 0 Control register 1 - 0x800D Melexis reserved Figure 12 Control register1 (0x800D) bits meaning Enable subpage mode (Bit 0) Enable subpage repeat (Bit 3) Select subpage (Bit 4) Working mode 0 0 - measure subpage 0 only 0 1 - measure subpage 0 only 1 0 - 1 1 0 measure subpage 0 only 1 1 1 measure subpage 1 only 0 1 0 1... Table 6 Priorities of subpage controls (0x0800D) REVISION 11 - 3 AUGUST 2018 Page 17 of 60 MLX90640 32x24 IR array B3 B2 B1 B0 B7 B6 B5 B4 B3 B2 B1 B0 FM+ disable B4 I2C threshold levels B5 SDA driver current limit control B6 Melexis reserved B7 Melexis reserved Datasheet 0 - - - - - - - - - - - - I2C configuration register - 0x800F 0 FM+ mode enabled (default) 1 FM+ mode disabled 0 VDD reffered threshold (normal mode) (default) 1 1.8V reffered threshold (1.8V mode) 0 SDA driver current limit is ON (default) 1 SDA driver current limit is OFF Melexis reserved Melexis reserved 2 Figure 13 I C configuration register (0x800F) bits meaning 10.7.2. RAM 1 2 ... ... 31 32 0x041F 0x0420 33 0x0400 34 ... ... 63 64 0x043F 0x0440 65 66 ... ... 95 96 0x045F 0x0460 ... 0x06A0 0x047F ... 0x06BF ... 0x06C0 705 706 ... ... 735 736 0x06DF 0x06E0 737 738 ... ... 767 768 0x06FF 0x0700 0x0700=Ta_Vbe, 0x0708=CP(SP 0), 0x070A=GAIN Melexis reserved 0x071F 0x0720 0x0720=Ta_PTAT, 0x0728=CP(SP1), 0x072A=VDDpix Melexis reserved 0x073F Subpage 0 Subpage 1 Figure 14 RAM memory map (Chess pattern mode) - factory default mode 0x0400 Pixels 1...32 (subpage 0) 0x041F 0x0420 Pixels 33...64 (subpage 1) 0x043F 0x0440 Pixels 65...96 (subpage 0) 0x045F 0x0460 ... 0x06A0 ... 0x047F ... 0x06BF 0x06C0 Pixels 705...736 (subpage 0) 0x06DF 0x06E0 0x06FF Pixels 737...768 (subpage 1) 0x0700 0x0700=Ta_Vbe, 0x0708=CP(SP 0), 0x070A=GAIN Melexis reserved 0x071F 0x0720 0x0720=Ta_PTAT, 0x0728=CP(SP1), 0x072A=VDDpix Melexis reserved 0x073F Figure 15 RAM memory map (Interleaved mode) REVISION 11 - 3 AUGUST 2018 Page 18 of 60 MLX90640 32x24 IR array Datasheet 10.7.3. EEPROM The EEPROM is used to store the calibration constants and the configuration parameters of the device EEPROM address Access Meaning 0x2400 Melexis Melexis reserved 0x2401 Melexis Melexis reserved 0x2402 Melexis Melexis reserved 0x2403 Melexis Configuration register 0x2404 Melexis Melexis reserved 0x2405 Melexis Melexis reserved 0x2406 Melexis Melexis reserved 0x2407 Melexis Device ID1 0x2408 Melexis Device ID2 0x2409 Melexis Device ID3 0x240A Melexis Device Options 0x240B Melexis Melexis reserved 0x240C Customer Control register_1 0x240D Customer Control register_2 0x240E Customer I2CConfReg 0x240F Customer Melexis reserved / I2C_Address Table 7 Configuration parameters memory After POR the device read dedicated EEPROM cells and transfers their content to into the control and configuration register of the device. This way the device is configured and prepared for operation. The relation between EEPROM and register address is shown here after (explanation of the bit meaning can be found in section 10.7.1 Internal registers: EEPROM address Register address Access Name Data [hex] 0x240C 0x800D Customer Control_register_1 1901 0x240D 0x800E Customer Control_register_2 0000 0x240E 0x800F Customer I2CConfReg 0000 0x240F 0x8010 Customer Melexis internal use (8 bit) I2C_Address (8bit) BE33 Table 8 EEPROM to registers mapping REVISION 11 - 3 AUGUST 2018 Page 19 of 60 MLX90640 32x24 IR array Datasheet Address 0x2400 0x2410 0x2420 0x2430 0x2440 0x2450 0x2460 0x2470 0x2480 0x2490 0x24A0 0x24B0 0x24C0 0x24D0 0x24E0 0x24F0 0x2500 0x2510 0x2520 0x2530 0x2540 0x2550 0x2560 0x2570 0x2580 0x2590 0x25A0 0x25B0 0x25C0 0x25D0 0x25E0 0x25F0 0x2600 0x2610 0x2620 0x2630 0x2640 0x2650 0x2660 0x2670 0x2680 0x2690 0x26A0 0x26B0 0x26C0 0x26D0 0x26E0 0x26F0 0x2700 0x2710 0x2720 0x2730 0 1 2 3 4 5 6 7 8 9 A B Osc Trim Ana Trim MLX Conf reg MLX MLX MLX ID 1 ID 2 ID 3 MLX MLX Scale OCC Pix os avg OCC_row_01...24 (6 x 4 x 3bit+sign) Scale ACC Pix avg ACC_row_01...24 (6 x 4 x 3bit+sign) GAIN PTAT_25 Kv, Kt ptat Kv Vdd_25 Kv_avg MLX C D Cont reg 1 Cont reg 2 E F I2C conf I2C add OCC_column_01...32 (8 x 4 x 3bit+sign) ACC_column_01...32 (8 x 4 x 3bit+sign) Kta_avg Kv, Kta Sca ACP 1,2 Off - CP1,2 Kv, Kta Cp KsTa, TGC KsTo 4, 3 KsTo 2, 1 CT 4, 3 768 x Offset, , Kta, Outlier Table 9 EEPROM overview (words) REVISION 11 - 3 AUGUST 2018 Page 20 of 60 MLX90640 32x24 IR array Datasheet Address \ bit 0x2410 0x2411 0x2412 0x2413 0x2414 0x2415 0x2416 0x2417 0x2418 0x2419 0x241A 0x241B 0x241C 0x241D 0x241E 0x241F 0x2420 0x2421 0x2422 0x2423 0x2424 0x2425 0x2426 0x2427 0x2428 0x2429 0x242A 0x242B 0x242C 0x242D 0x242E 0x242F 0x2430 0x2431 0x2432 0x2433 0x2434 0x2435 0x2436 0x2437 0x2438 0x2439 0x243A 0x243B 0x243C 0x243D 0x243E 0x243F 0x2440 0x2441 ... 0x245E 0x245F 0x2460 0x2461 ... 0x273E 0x273F 15 14 13 12 11 10 9 8 7 6 5 4 scale_Occ_col 3 2 1 0 (Alpha PTAT - 8)*4 scale_Occ_row scale_Occ_rem OCC row 4 OCC row 3 OCC row 2 OCC row 1 OCC row 8 OCC row 7 OCC row 6 OCC row 5 OCC row 12 OCC row 11 OCC row 10 OCC row 9 OCC row 16 OCC row 15 OCC row 14 OCC row 13 OCC row 20 OCC row 19 OCC row 18 OCC row 17 OCC row 24 OCC row 23 OCC row 22 OCC row 21 OCC column 4 OCC column 3 OCC column 2 OCC column 1 OCC column 5 Pix_os_average OCC column 8 OCC column 7 OCC column 6 OCC column 12 OCC column 11 OCC column 10 OCC column 9 OCC column 16 OCC column 15 OCC column 14 OCC column 13 OCC column 20 OCC column 19 OCC column 18 OCC column 17 OCC column 24 OCC column 23 OCC column 22 OCC column 21 OCC column 28 OCC column 27 OCC column 26 OCC column 25 OCC column 32 OCC column 31 OCC column 30 OCC column 29 Alpha scale - 30 Scale_ACC_row Scale_ACC_column Scale_ACC_remnand ACC row 4 ACC row 3 ACC row 2 ACC row 1 ACC row 8 ACC row 7 ACC row 6 ACC row 5 ACC row 12 ACC row 11 ACC row 10 ACC row 9 ACC row 16 ACC row 15 ACC row 14 ACC row 13 ACC row 20 ACC row 19 ACC row 18 ACC row 17 ACC row 24 ACC row 23 ACC row 22 ACC row 21 ACC column 4 ACC column 3 ACC column 2 ACC column 1 ACC column 5 Pix_sensitivity_average ACC column 8 ACC column 7 ACC column 6 ACC column 12 ACC column 11 ACC column 10 ACC column 9 ACC column 16 ACC column 15 ACC column 14 ACC column 13 ACC column 20 ACC column 19 ACC column 18 ACC column 17 ACC column 24 ACC column 23 ACC column 22 ACC column 21 ACC column 28 ACC column 27 ACC column 26 ACC column 25 ACC column 32 ACC column 31 ACC column 30 ACC column 29 GAIN PTAT_25 Kv_PTAT Kt_PTAT Kv_Vdd Vdd_25 Kv_avg_RowOdd-ColumnOdd Kv_avg_RowEven-ColumnOdd Kv_avg_RowOdd-ColumnEven Kv_avg_RowEven-ColumnEven IL_CHESS_C3 - 5 bits IL_CHESS_C2 - 5 bits IL_CHESS_C1 - 6 bits Kta_avg_RowOdd-ColumnOdd Kta_avg_RowEven-ColumnOdd Kta_avg_RowOdd-ColumnEven Kta_avg_RowEven-ColumnEven MLX Res control calib Kv_scale Kta_scale_1 Kta_scale_2 Alpha (CP subpage_1 / CP subpage_0 - 1)*2^7 Alpha CP subpage_0 Offset (CP subpage_1 - CP subpage_0) Offset CP subpage_0 Kv_CP Kta_CP KsTa*2^13 TGC (4)*2^7 KsTo range 2 (0C...CT1C) KsTo range 1 (<0C) KsTo range 4 (CT2C...) KsTo range 3 (CT1C...CT2C) MLX temp step x 10 CT4 CT3 KsTo Scale offset - 8 Offset pixel (1, 1) pixel (1, 1) Kta (1, 1) Outlier Offset pixel (1, 2) pixel (1, 2) Kta (1, 2) Outlier ... ... ... ... Offset pixel (1, 31) pixel (1, 31) Kta (1, 31) Outlier Offset pixel (1, 32) pixel (1, 32) Kta (1, 32) Outlier Offset pixel (2, 1) pixel (2, 1) Kta (2, 1) Outlier Offset pixel (2, 2) pixel (2, 2) Kta (2, 2) Outlier ... ... ... ... Offset pixel (24, 31) pixel (24, 31) Kta (24, 31) Outlier Offset pixel (24, 32) pixel (24, 32) Kta (24, 32) Outlier Table 10 Calibration parameters memory (EEPROM - bits) NOTE 1: EEPROM addresses from 0x2440...0x273F contain the individual pixel calibration information and may not be equal to 0x0000. In case any pixel data is equal to 0x0000 this means that this particular pixels has failed and the calculation for To should not be trusted and avoided. Depending on the application, the To value for such pixels can be replaced with a default value such as -273.15C, can be equal to Ta or one calculate an average value from the adjacent pixels. NOTE 2: The LSB for EEPROM addresses from 0x2440...0x273F indicate if all pixel parameters are within the calibration specification. If this bit is set i.e. = "1" this would mean that at least one of the calibration parameters for this particular pixel is outside the calibration specifications and the pixel is considered as Outlier i.e. the sensor accuracy is not guaranteed by the calibration. Depending on the application one may have to choose to replace the measurement results of such pixel by an average of the temperature indicated by the adjacent pixels. NOTE 3: The maximum number of deviating pixels is 4 (please check False pixel correction) REVISION 11 - 3 AUGUST 2018 Page 21 of 60 MLX90640 32x24 IR array Datasheet 11. Calculating Object Temperature 11.1. Restoring calibration data from EERPOM NOTE: All data in the EEPROM is coded as two's complement (unless otherwise noted) In the example we are restoring the calibration data for pixel (12, 16) 11.1.1. Restoring the VDD sensor parameters Following formula is used to calculate the VDD of the sensor: = If = 0 2433 & 0 2 00 > 127 2" #$$%" = = 0 2433 & 0 00 #$$%" = (#$$%" - 256) 2" - 2 - 256 ( 11.1.2. Restoring the Ta sensor parameters Following formula is used to calculate the Ta of the sensor: )* = ,-./. 012 7 -./.89 : ,-./. , +345 ;.-./. Where: -./. 0 2432 & 0 2> = If -./. ?-./. = = If ?-./. # = = + 25, C -./. -./. 2 % > 31 =00 -./. 0 2432 & 0 03 ?-./. ?-./. 2( > 511 = ?-./. = -./. - 64 ?-./. - 1024 @AB 0 072A - #$$%" #C?D?89 = 0 2431 REVISION 11 - 3 AUGUST 2018 Page 22 of 60 MLX90640 32x24 IR array Datasheet If #C?D?89 > 32767 #C?D?012 = E Where: #C?D?89 = #C?D?89 - 65536 #C?D? L2 #C?D? AFGIC?D? + #JK #C?D? = @AB 0 0720 If #C?D? > 32767 #JK = @AB 0 0700 If #JK > 32767 #JK = #JK - 65536 0 2410 & 0 2% AFGIC?D?_KK = AFGIC?D? = #C?D? = #C?D? - 65536 000 AFGIC?D?_KK +8 2% 11.1.3. Restoring the offset GO PQ RST (O, U) = VWWXYZ*[SR*\S + V==R]^_ 2P a0bc1de + V==f]ghijk 2P a0bcadblmn + oWWXYZ(O, U) 2P a0bc1cmn0n2 VWWXYZ*[SR*\S = 0 2411 If VWWXYZ*[SR*\S > 32767 V==R]^38 = KK >p%q q & >p >>> %38 If V==R]^38 > 7 V==rf*gS1de = V==f]ghij3t = (i.e. the four most significant bits, signed) V==R]^38 = V==R]^38 - 16 KK >p%q > & >p> >> %s (unsigned) KK >p%q J & >p >>> %38 If V==f]ghij3t > 7 V==rf*gSadblmn = oWWXYZ(12,16) = VWWXYZ*[SR*\S = VWWXYZ*[SR*\S - 65536 (i.e. the four most significant bits, signed) V==f]ghij3t = V==f]ghij3t - 16 KK >p%q > & >p>> > %u KK >p%"D & >p >> %3v If oWWXYZ(12,16) > 31 V==rf*gS1cmn0n2 = (unsigned) (i.e. the six most significant bits, signed) oWWXYZ(12,16) = oWWXYZ(12,16) - 64 0 2410 & 0 000 (unsigned) 11.1.3.1. Restoring the offset in case of Interleaved reading pattern To compensate the IR data for interleaved reading pattern following formula is used: GO PQ (O, U) = GO \*wj (O, U) + xyzKQQ{| (2 xyCD??K}~ - 1) - xyzKQQ{8 =o*Y*XOo**SRj - GO REVISION 11 - 3 AUGUST 2018 PQ RST 1 + ?*(w,...) ()* - )*>) 1 + (w,...) # -# > Page 23 of 60 MLX90640 32x24 IR array Datasheet Highlighted in yellow parameters are extracted here after. As a default the device is factory calibrated in Chess pattern mode thus the best performance will be when a Chess pattern is used. However some customers may choose to use the device in interleaved mode which will degrade the device performance. In this case a correction can be applied to restore to some extend the performance. Once the IR data is compensated the calculation for To is done using default flow. The goal of this correction is to equalize the offset of the pixels due to the different pattern reading modes. We can achieve this by using several correction coefficients stored into the device EEPROM extracted and decoded as follows: xyzKQQ{3 KK = 0 2435 & 0 003F If xyzKQQ{3 KK > 31 xyzKQQ{3 = xyzKQQ{3 KK = xyzKQQ{3 KK - 64 xyzKQQ{3KK 2q xyzKQQ{8 KK = 0 2435 & 0 07C0 2 If xyzKQQ{8 KK > 15 yzKQQ{8 = xyzKQQ{8 KK = xyzKQQ{8 KK - 32 xyzKQQ{8KK 2 xyzKQQ{| KK = 0 2435 & 0 F800 2 If xyzKQQ{| KK > 15 xyzKQQ{| = xyzKQQ{| KK = xyzKQQ{| KK - 32 xyzKQQ{|KK 2( The above calculated parameters have to be applied as a correction for the offset of each individual pixel. We do need additional patterns in order to make these calculations and the formula to calculate those patterns are as shown below depending on the pixels number: xyCD??K}~ = O*Z wpSgnlmOEc1 7 (% - O*Z + wj _*cbnlmOEc1 Z3 |8 % :2 GO YFjhi*SR - 3 GO YFjhi*SR - 2 GO YFjhi*SR GO YFjhi*SR - 1 =o*Y*XOo**SRj = *O*Z E L - O*Z E L + O*Z E L - O*Z E L` (1 - 2 xyCD??K}~ ) 4 4 4 4 11.1.4. Restoring the Sensitivity '(w,...) = "1c"c1cnac *D1de % _ (,) /{{ a0bc /{{ a0bc /{{ a0bc adblmn *" _*cb (w,...)% 1de *Dadblmn % 1cmn0n2 k - % a0bc Where (calculating for pixel (12,16)) : 'RSTSRSjfS = 'rf*gS = 0 2421 0 2420 & 0 2% REVISION 11 - 3 AUGUST 2018 000 + 30 Page 24 of 60 MLX90640 32x24 IR array Datasheet A==R]^38 = KK >p%q%q & >p >>> %38 If A==R]^38 > 7 A==rf*gS1de = A==f]ghij3t = (i.e. the four most significant bits, signed) A==R]^38 = A==R]^38 - 16 KK >p%q%> & >p> >> %s KK >p%q%-- & >p >>> %38 If A==f]ghij3t > 7 A==rf*gSadblmn = 'wpSg (12,16) = (unsigned) (i.e. the four most significant bits, signed ) A==f]ghij3t = A==f]ghij3t - 16 KK >p%q%> & >p>> > %u (unsigned) KK >p%" & >p>(> %u If 'wpSg (12,16) > 31 A==rf*gS1cmn0n2 = 'wpSg (12,16) = 'wpSg (12,16) - 64 0 2420 & 0 000F (unsigned) 11.1.5. Restoring the Kv(i,j) coefficient (w,...) depend on the pixel position in the array i.e. if the pixel row and column is odd or even If row number is ODD (1, 3, 5...23) and column number is ODD (1, 3, 5...31) then If row number is EVEN (2, 4, 6...24) and column number is ODD (1, 3, 5...31) then If row number is ODD (1, 3, 5...23) and column number is EVEN (2, 4, 6...32) then If row number is EVEN (2, 4, 6...24) and column number is EVEN (2, 4, 6...32) then If ( %, ) = (w,...) >7 ;,(_,k) 5, a0bc % (w,...) = (w,...) - 16 (w,...) (w,...) (w,...) = (w,...) KK >p%q(q & >p>>> = = %38 KK >p%q(q & >p>>> %s KK >p%q(q & >p>>> = %u 0 2434 & 0 000F (signed) Where: a0bc = KK >p%q( %s & >p>>> (unsigned) 11.1.6. Restoring the Kta(i,j) coefficient ?*( %, ) = Where: ?*( %, )_KK 5 ;.0_TM{_ +;.0(38,3t)_ 2 .0 a0bc_8 2 = KK >p%"D 5.0 a0bc_3 % & >p>>> If ?*( %, )_KK > 3 REVISION 11 - 3 AUGUST 2018 (signed) )I(12,16)_ = )I(12,16)_ -8 Page 25 of 60 MLX90640 32x24 IR array Datasheet ?*_}_KK depends on the pixel position in the array i.e. if the pixel row and column is odd or even If row number is ODD (1, 3, 5...23) and column number is ODD (1, 3, 5...31) then ?*_}_KK = If row number is EVEN (2, 4, 6...24) and column number is ODD (1, 3, 5...31) then ?*_}_KK = If row number is ODD (1, 3, 5...23) and column number is EVEN (2, 4, 6...32) then ?*_}_KK = If row number is EVEN (2, 4, 6...24) and column number is EVEN (2, 4, 6...32) then ?*_}_KK = If ?*_}_KK > 127 ?* a0bc_3 ?* a0bc_8 = = )I_@=_ KK >p%q( & >p>>> + %u = )I_@=_ 8 (unsigned) - 256 0 2436 & 0 FF00 28 0 2436 & 0 00FF 0 2437 & 0 28 00 0 2437 & 0 00FF 0 2438 & 0 000F (unsigned) 11.1.7. Restoring the GAIN coefficient (common for all pixels) GAIN = 0 2430 (signed) If GAIN > 32767 GAIN = GAIN - 65536 11.1.8. Restoring the KsTa coefficient (common for all pixels) X?* = ;r.0_ %3| Where: X?*_KK = KK >p%q( %s & >p>> If X?*_KK > 127 (signed) X?*_KK = X?*_KK - 256 11.1.9. Restoring corner temperatures (common for all pixel) The information regarding corner temperatures is stored into device EEPROM and is restored as follows: ZYG = =)3 = =)4 = 0 243F & 0 3000 10 2% 0 243F & 0 00F0 ZYG 2q 0 243F & 0 0F00 ZYG + =)3 2 Or we can construct the temperatures for the ranges as follows: CT1=-40C (hard codded) < Range 1 > CT2=0C (hard codded) < Range 2 > CT3 < Range 3 > CT4 < Range 4 REVISION 11 - 3 AUGUST 2018 Page 26 of 60 MLX90640 32x24 IR array Datasheet 11.1.10. Restoring the KsTo coefficient (common for all pixels) X?] = Where: 2 Where: X?]% = X?] _KK ;r.d a0bc X?] a0bc = 0 243F & 0 000F + 8 (unsigned) X?] 0 243D & 0 00FF(signed) _KK = If X?] ;r.d8_ % 5 .d a0bc _KK > 127 X?] _KK = X?] _KK - 256 Where: X?]%_KK = X?]( = Where: X?]q = Where: 2 %s If X?]%_KK > 127 X?](_KK ;r.d a0bc X?](_KK = 2 KK >p%q( & >p>> X?]%_KK = X?]%_KK - 256 0 243E & 0 00FF(signed) If X?](_KK > 127 X?]q_KK ;r.d a0bc X?]q_KK = (signed) KK >p%q( & >p>> %s If X?]q_KK > 127 X?](_KK = X?](_KK - 256 (signed) X?]q_KK = X?]q_KK - 256 11.1.11. Restoring sensitivity correction coefficients for each temperature range AFGIf]RR10nc3 = 1 1 + X)o1 0 - (-40) AFGIf]RR10nc8 = 1 AFGIf]RR10nc| = 1 + X)o2 (=)3 - 0) AFGIf]RR10ncu = 1 + X)o2 (=)3 - 0) 1 + X)o3 (=)4 - =)3) REVISION 11 - 3 AUGUST 2018 Page 27 of 60 MLX90640 32x24 IR array Datasheet 11.1.12. Restoring the Sensitivity Please note that there are two sensitivities for the compensation pixel - one for each subpage 'C_rh**\S_> = KK >p%q( & >p>( % - a0bc_{- 'C_rh**\S_ = 'C_rh**\S_> 1 + Where: 0 2420 & 0 2% 'rf*gS_C = =(R)_(R)1/(R)0R*w] = C_C _C>_R*w] %- 000 KK >p%q( & >p >> %3v If =(R)_(R)1/(R)0R*w] > 31 + 27 (signed) =(R)_(R)1/(R)0R*w] = =(R)_(R)1/(R)0R*w] - 64 11.1.13. Restoring the offset of the Compensation Pixel (CP) Please note that there are two offsets for the compensation pixel - one for each subpage VWW_=(R)rh**\S_> = 0 243A & 0 03 If VWW_=(R)rh**\S_> > 511 (signed) VWW_=(R)rh**\S_> = VWW_=(R)rh**\S_> - 1024 VWW_=(R)rh**\S_ = VWW_=(R)rh**\S_> + VWW_=(R)rh**\S_ _ Sg* Where: VWW_=(R)rh**\S_ _ Sg* = KK >p%q(D & >p >> If VWW_=(R)rh**\S_ %3v _ Sg* > 31 (signed) VWW_=(R)rh**\S_ _ Sg* = VWW_=(R)rh**\S_ _ Sg* - 64 11.1.14. Restoring the Kv CP coefficient {- = a0bc ;,{-_ 5 % , a0bc = KK >p%q( %s & >p>>> (unsigned) (the same one as for the (w,...) coefficients) Where: {-_ = If KK >p%q(-- & >p>> {-_ %s > 127 (signed) {-_ = {-_ - 256 11.1.15. Restoring the Kta Kta CP coefficient ?*{- = ;.0{-_ % 5.0 a0bc_3 REVISION 11 - 3 AUGUST 2018 Page 28 of 60 MLX90640 32x24 IR array Datasheet ?* a0bc_3 = KK >p%q( Where: ?*{-_ %u = If & >p>>> + 8 (unsigned) (the same one as for the 0 243B & 0 00FF (signed) ?*{-_ > 127 ?*{-_ = ?*{-_ ?*(w,...) coefficients) - 256 11.1.16. Restoring the TGC coefficient )= = Where: ? %9 )=KK = 0 243C & 0 00FF (signed) If )=KK > 127 )=KK = )=KK - 256 NOTE 1: In a MLX90640ESF-BAx-000-TU device, the TGC coefficient is set to 0 and must not be changed. NOTE 2: In a MLX90640ESF-BCx-000-TU device, the EEPROM contains a typical value for the TGC coefficient but the user may choose to adjust the value such to best fit for a specific application. Using the TGC increases noise in the temperature calculations which can be reduced by external filtering (averaging) of the CP sensor data. By making the TGC coefficient "0" the gradients compensation is bypassed. 11.1.17. Restoring Restoring the resolution control coefficient @YXoFZOo*KK = KK >p%q( REVISION 11 - 3 AUGUST 2018 & >p(>>> %38 (unsigned) Page 29 of 60 MLX90640 32x24 IR array Datasheet 11.2. Temperature Calculation 11.2.1. Example Input Data 11.2.1.1. Example Measurement Data Input data name Input data value Object temperature 80C Emissivity () 1 Control register 1 (Resctrl) 0x0901 (2 decimal) RAM[0x056F] (pix(12,16) data) 0x0261 (609) Vbe - RAM[0x0700] 0x4BF2 (19442) CP subpage 0 - RAM[0x0708] 0xFFCA (-54) CP subpage 1 - RAM[0x0728] 0xFFC8 (-56) GAIN - RAM[0x070A] 0x1881 (6273) PTAT - RAM[0x0720] 0x06AF (1711) VDD - RAM[0x072A] 0xCCC5 (-13115) Table 11 Calculation example input data 11.2.1.2. Example Calibration Data Data EEPROM address Calibration parameter name Parameter value Decoded value 0x2410 K_PTAT - 4 bits Scale_OCC_row - 4 bits Scale_OCC_column - 4 bits Scale_OCC_remnand - 4 bits 0x4210 K_PTAT = 9 Scale_OCC_row = 2 Scale_OCC_column = 1 Scale_OCC_remnand = 0 0x2411 Pix_os_average - 16 bits 0xFFBB Pix_os_average = -69 0x2412 OCC_rows_04 - 4 bits OCC_rows_03 - 4 bits OCC_rows_02 - 4 bits OCC_rows_01 - 4 bits 0x0202 OCC_rows_04 = 0 OCC_rows_03 = 2 OCC_rows_02 =0 OCC_rows_01 = 2 0x2413 OCC_rows_08 - 4 bits OCC_rows_07 - 4 bits OCC_rows_06 - 4 bits OCC_rows_05 - 4 bits 0xF202 OCC_rows_08 = -1 OCC_rows_07 = 2 OCC_rows_06 = 0 OCC_rows_05 = 2 0x2414 OCC_rows_12 - 4 bits OCC_rows_11 - 4 bits 0xF2F2 OCC_rows_12 = -1 OCC_rows_11 = 2 REVISION 11 - 3 AUGUST 2018 Page 30 of 60 MLX90640 32x24 IR array Datasheet OCC_rows_10 - 4 bits OCC_rows_09 - 4 bits OCC_rows_10 = -1 OCC_rows_09 = 2 0x2415 OCC_rows_16 - 4 bits OCC_rows_15 - 4 bits OCC_rows_14 - 4 bits OCC_rows_13 - 4 bits 0xE2E2 OCC_rows_16 = -2 OCC_rows_15 = 2 OCC_rows_14 = -2 OCC_rows_13 = 2 0x2416 OCC_rows_20 - 4 bits OCC_rows_19 - 4 bits OCC_rows_18 - 4 bits OCC_rows_17 - 4 bits 0xD1E1 OCC_rows_20 = -3 OCC_rows_19 = 1 OCC_rows_18 = -2 OCC_rows_17 = 1 0x2417 OCC_rows_24 - 4 bits OCC_rows_23 - 4 bits OCC_rows_22 - 4 bits OCC_rows_21 - 4 bits 0xB1D1 OCC_rows_24 = -5 OCC_rows_23 = 1 OCC_rows_22 = -3 OCC_rows_21 = 1 0x2418 OCC_column_04 - 4 bits OCC_column_03 - 4 bits OCC_column_02 - 4 bits OCC_column_01 - 4 bits 0xF10F OCC_column_04 = -1 OCC_column_03 = 1 OCC_column_02 = 0 OCC_column_01 = -1 0x2419 OCC_column_08 - 4 bits OCC_column_07 - 4 bits OCC_column_06 - 4 bits OCC_column_05 - 4 bits 0xF00F OCC_column_08 = -1 OCC_column_07 = 0 OCC_column_06 = 0 OCC_column_05 = -1 0x241A OCC_column_12 - 4 bits OCC_column_11 - 4 bits OCC_column_10 - 4 bits OCC_column_09 - 4 bits 0xE0EF OCC_column_12 = -2 OCC_column_11 = 0 OCC_column_10 = -2 OCC_column_09 = -1 0x241B OCC_column_16 - 4 bits OCC_column_15 - 4 bits OCC_column_14 - 4 bits OCC_column_13 - 4 bits 0xE0EF OCC_column_16 = -2 OCC_column_15 = 0 OCC_column_14 = -2 OCC_column_13 = -1 0x241C OCC_column_20 - 4 bits OCC_column_19 - 4 bits OCC_column_18 - 4 bits OCC_column_17 - 4 bits 0xE1E1 OCC_column_20 = -2 OCC_column_19 = 1 OCC_column_18= -2 OCC_column_17 = 1 0x241D OCC_column_24 - 4 bits OCC_column_23 - 4 bits OCC_column_22 - 4 bits OCC_column_21 - 4 bits 0xF3F2 OCC_column_24 = -1 OCC_column_23 = 3 OCC_column_22= -1 OCC_column_21 = 2 0x241E OCC_column_28 - 4 bits OCC_column_27 - 4 bits OCC_column_26 - 4 bits OCC_column_25 - 4 bits 0xF404 OCC_column_28 = -1 OCC_column_27 = 4 OCC_column_26= 0 OCC_column_25 = 4 0x241F OCC_column_32 - 4 bits OCC_column_31 - 4 bits 0xE504 OCC_column_32 = -2 OCC_column_31 = 5 REVISION 11 - 3 AUGUST 2018 Page 31 of 60 MLX90640 32x24 IR array Datasheet OCC_column_30 - 4 bits OCC_column_29 - 4 bits OCC_column_30= 0 OCC_column_29 = 4 0x2420 Alpha scale - 4 bits Scale_ACC_row - 4 bits Scale_ACC_column - 4 bits Scale_ACC_remnand - 4 bits 0x79A6 Alpha scale = 37 Scale_ACC_row = 9 Scale_ACC_column = 10 Scale_ACC_remnand = 6 0x2421 Pix_sensitivity_average - 16 bits 0x2F44 Pix_sensitivity_average = 8.80391E-08 0x2422 ACC_rows_04 - 4 bits ACC_rows_03 - 4 bits ACC_rows_02 - 4 bits ACC_rows_01 - 4 bits 0xFFDD ACC_rows_04 = -1 ACC_rows_03 = -1 ACC_rows_02 = -3 ACC_rows_01 = -3 0x2423 ACC_rows_08 - 4 bits ACC_rows_07 - 4 bits ACC_rows_06 - 4 bits ACC_rows_05 - 4 bits 0x2210 ACC_rows_08 = 2 ACC_rows_07 = 2 ACC_rows_06 = 1 ACC_rows_05 = 0 0x2424 ACC_rows_12 - 4 bits ACC_rows_11 - 4 bits ACC_rows_10 - 4 bits ACC_rows_09 - 4 bits 0x3333 ACC_rows_12 = 3 ACC_rows_11 = 3 ACC_rows_10 = 3 ACC_rows_09 = 3 0x2425 ACC_rows_16 - 4 bits ACC_rows_15 - 4 bits ACC_rows_14 - 4 bits ACC_rows_13 - 4 bits 0x2233 ACC_rows_16 = 2 ACC_rows_15 = 2 ACC_rows_14 = 3 ACC_rows_13 = 3 0x2426 ACC_rows_20 - 4 bits ACC_rows_19 - 4 bits ACC_rows_18 - 4 bits ACC_rows_17 - 4 bits 0xEF01 ACC_rows_20 = -2 ACC_rows_19 = -1 ACC_rows_18 = 0 ACC_rows_17 = 1 0x2427 ACC_rows_24 - 4 bits ACC_rows_23 - 4 bits ACC_rows_22 - 4 bits ACC_rows_21 - 4 bits 0x9ACC ACC_rows_24 = -7 ACC_rows_23 = -6 ACC_rows_22 = -4 ACC_rows_21 = -4 0x2428 ACC_column_04 - 4 bits ACC_column_03 - 4 bits ACC_column_02 - 4 bits ACC_column_01 - 4 bits 0xEEDC ACC_column_04 = -1 ACC_column_03 = -1 ACC_column_02 = -2 ACC_column_01 = -3 0x2429 ACC_column_08 - 4 bits ACC_column_07 - 4 bits ACC_column_06 - 4 bits ACC_column_05 - 4 bits 0x10FF ACC_column_08 = 1 ACC_column_07 = 0 ACC_column_06 = -1 ACC_column_05 = -1 0x242A ACC_column_12 - 4 bits ACC_column_11 - 4 bits ACC_column_10 - 4 bits ACC_column_09 - 4 bits 0x2221 ACC_column_12 = 2 ACC_column_11 = 2 ACC_column_10 = 2 ACC_column_09 = 1 REVISION 11 - 3 AUGUST 2018 Page 32 of 60 MLX90640 32x24 IR array Datasheet 0x242B ACC_column_16 - 4 bits ACC_column_15 - 4 bits ACC_column_14 - 4 bits ACC_column_13 - 4 bits 0x3333 ACC_column_16 = 3 ACC_column_15 = 3 ACC_column_14 = 3 ACC_column_13 = 3 0x242C ACC_column_20 - 4 bits ACC_column_19 - 4 bits ACC_column_18 - 4 bits ACC_column_17 - 4 bits 0x2333 ACC_column_20 = 2 ACC_column_19 = 3 ACC_column_18= 3 ACC_column_17 = 3 0x242D ACC_column_24 - 4 bits ACC_column_23 - 4 bits ACC_column_22 - 4 bits ACC_column_21 - 4 bits 0x0112 ACC_column_24 = 0 ACC_column_23 = 1 ACC_column_22= 1 ACC_column_21 = 2 0x242E ACC_column_28 - 4 bits ACC_column_27 - 4 bits ACC_column_26 - 4 bits ACC_column_25 - 4 bits 0xEEFF ACC_column_28 = -2 ACC_column_27 = -2 ACC_column_26= -1 ACC_column_25 = -1 0x242F ACC_column_32 - 4 bits ACC_column_31 - 4 bits ACC_column_30 - 4 bits ACC_column_29 - 4 bits 0xBBDD ACC_column_32 = -5 ACC_column_31 = -5 ACC_column_30= -3 ACC_column_29 = -3 0x2430 GAIN 0x18EF GAIN = 6383 0x2431 PTAT_25 0x2FF1 PTAT_25 = 12273 0x2432 Kv_PTAT - 6 bits Kt_PTAT - 10 bits 0x5952 Kv_PTAT = 0.005371094 Kt_PTAT = 42.25 0x2433 K_Vdd - 8 bits Vdd_25 - 8 bits 0x9D68 K_Vdd = -3168 Vdd_25 = -13056 0x2434 Kv_avg_RO_CO - 4 bits Kv_avg_RE_CO - 4 bits Kv_avg_RO_CE - 4 bits Kv_avg_RE_CE - 4 bits 0x5454 Kv_avg_RO_CO = 5 Kv_avg_RE_CO = 4 Kv_avg_RO_CE = 5 Kv_avg_RE_CE = 4 0x2435 IL_CHESS_C3 - 5 bits IL_CHESS_C2 - 5 bits IL_CHESS_C1 - 6 bits 0x0994 IL_CHESS_C3 = 0.125 IL_CHESS_C2 = 3 IL_CHESS_C1 = 1.25 0x2436 Kta_avg_RO_CO - 8 bits Kta_avg_RE_CO - 8 bits 0x6956 Kta_avg_RO_CO = 105 Kta_avg_RE_CO = 86 0x2437 Kta_avg_RO_CE - 8 bits Kta_avg_RE_CE - 8 bits 0x5354 Kta_avg_RO_CE = 83 Kta_avg_RE_CE = 84 0x2438 Resolution_control_cal - 2 bits Kv_scale - 4 bits Kta_scale_1 - 4 bits Kta_scale_1 - 4 bits 0x2363 Resolution_control_cal = 2 Kv_scale = 3 Kta_scale_1 = 14 Kta_scale_1 = 3 0x2439 CP_SP_1/SP_0_ratio - 6 bits 0xE446 CP_SP_1/SP_0_ratio = -0.0546875 REVISION 11 - 3 AUGUST 2018 Page 33 of 60 MLX90640 32x24 IR array Datasheet Alpha_CP_SP_0 - 10 bits Alpha_CP_SP_0 = 4.0745362639427E-09 0x243A CP_off_delta (SP_1 - SP_0) - 6 bits Offset_CP_SP_0 - 10 bits 0xFBB5 CP_off_delta (SP_1 - SP_0) = -2 Offset_CP_SP_0 = -75 0x243B Kv_CP - 8 bits Kta_CP - 8 bits 0x044B Kv_CP = 0.5 Kta_CP = 0.00457763671875 0x243C KsTa - 8 bits TGC - 8 bits 0xF020 KsTa = -0.001953125 TGC = 1 0x243D KsTo2 (0C...CT3C) - 8 bits KsTo1 (<0C) - 8 bits 0x9797 KsTo2 (0C...CT3C) = -0.0008010864 KsTo1 (<0C) = -0.0008010864 0x243E KsTo4 (CT4C...) - 8 bits KsTo3 (CT3C...CT4C) - 8 bits 0x9797 KsTo4 (CT4C...) = -0.0008010864 KsTo3 (CT3C...CT4C) = -0.0008010864 0x243F Step - 2 bits CT4 - 4 bits CT3 - 4 bits KsTo_scale - 4 bits 0x2889 Step = 20C CT4 = 320C CT3 = 160C KsTo_scale = 17 Table 12 Calculation example calibration data REVISION 11 - 3 AUGUST 2018 Page 34 of 60 MLX90640 32x24 IR array Datasheet 11.2.2. Temperature calculation After the parameters restore the temperature calculation is done using following calculation flow (assuming that the EEPROM data are already extracted): Supply voltage value calculation (common for all pixels) - 11.2.2.2 Ambient temperature calculation (common for all pixels) - 11.2.2.3 Gain compensation - 11.2.2.5.1 IR data compensation - offset, VDD and Ta - 11.2.2.5.3 IR data Emissivity compensation - 11.2.2.5.4 IR data gradient compensation - 11.2.2.7 Normalizing to sensitivity - 11.2.2.8 Calculating To - 11.2.2.9 Image (data) processing Figure 16 To calculation flow For this example we calculate the temperature of pixel (12, 16) i.e. row=12 and the column=16. Values marked with green are extracted from device EEPROM Values marked with grey are final parameter values or are values to be used for next calculations 11.2.2.1. Resolution restore The device is calibrated with default resolution setting = 2 (corresponding to ADC resolution set to 18bit see Fig 11) i.e. if the one choose to change the ADC resolution setting to a different one a correction of the data must be done. First we must restore the resolution at which the device has been calibrated which is stored at EERPOM 0x2438. @YXoFZOo*f]RR = %TMc dbl2_dn %TMc dbl2_dnTM Where: @YXoFZOo*KK = KK >p%q( @YXoFZOo*}K = & >p(>>> %38 = }D >p >>* & >p>>> REVISION 11 - 3 AUGUST 2018 %3v >p%(( & >p(>>> = %38 = 0 0002 = 2 (unsigned) >p > & >p>>> %3v = 0 0002 = 2 (unsigned) Page 35 of 60 MLX90640 32x24 IR array Datasheet @YXoFZOo*f]RR = %TMc dbl2_dn %TMc dbl2_dnTM = %8 %8 =1 In case the ADC resolution is changed the one must multiply the @YXoFZOo*f]RR coefficient with the RAM data for VDD only. Please note that the data for Vbe, PTAT and IR pixels (including CP) must not be changed. 11.2.2.2. Supply voltage value calculation (common for all pixels) # = }Sr]ghw]jad11 }D >p>%D 7 89 ;, +# > Where: Constants calculation of the EEPROM stored values (can be done just once after POR) 0 2433 & 0 2 = 00 If 157 > 127 = 0 9$68 & 0 2 = 00 = 157 - 256 = -99 = 0 009$ = 157 2" = -99 32 = -3168 #%" = 0 2433 & 0 00 #%" = (#%" - 256) 2" - 2 = 0 9$68 & 0 00 ( VDD calculations: = 0 0068 = 104 = -152 32 - 8192 = -13056 @AB 0 072A = 0 ===5 = 52421 # = 7 ( If 52883 > 32767 "7(7 (>") 7( + 3.3 = 7" 7( @AB 0 072A = 52421 - 65536 = -13115 LSB + 3.3 0.0186 + 3.3 3.319# 11.2.2.3. Ambient temperature calculation (common for all pixels) )* = ,-./. 012 7 -./.89 : ,-./. , +345 ;.-./. Where: -./. -./. ?-./. ?-./. # = + 25, C 0 2432 & 0 2> = If 22 < 31 = = -./. 2 % = -./. = 22 0 2432 & 0 03 ?-./. 2( = = 0 5952 & 0 2> 22 = 0.005371094 4096 If 338 < 511 = =00 ?-./. =00 = 0 5952 & 0 03 = 338 = 0 0016 = 22 = 0 0152 = 338 338 = 42.25 8 @AB 0 072A - #%" REVISION 11 - 3 AUGUST 2018 Page 36 of 60 MLX90640 32x24 IR array Datasheet @AB 0 072A = 0 ===5 = 52421 # = If 52421 > 32767 @AB 0 072A = 52421 - 65536 = -13115 LSB -13115 - (-13056) -59 = 0.018623737 -3168 -3168 #C?D?89 = 0 2431 = 0 2 If 12273 < 32767 #C?D?012 = E Where: 1 = 12273 #C?D?89 = 12273 #C?D? L2 #C?D? AFGIC?D? + #JK #C?D? = @AB 0 0720 = 0x06AF = 1711 If 1711 < 32767 #C?D? = 1711 #JK = @AB 0 0700 = 0x4BF2 = 19442 If 19442 < 32767 0 2410 & 0 2% AFGIC?D?_KK = AFGIC?D? = #C?D?012 = E )* = )* = 000 = 0 4210 & 0 2% AFGIC?D?_KK 4 +8= +8= 9 2% 4 #C?D? L2 #C?D? AFGIC?D? + #JK ,-./. 012 7 -./.89 : ,-./. , +345 #JK = 19442 ;.-./. + 25 ,C 38s-|.9-A98 7 %%( 34v.vv9|-3vAu v.v3st8|-|- q%.%" = E 000 = 0 4000 16384 = =4 % 2 4096 1711 L2 1711 9 + 19442 = 12873.57952 + 25 = 14.18440152 + 25 39.184 C 11.2.2.4. Gain parameter calculation (common for all pixels) \*wj = AxA @AB 0 070A @AB 0 070A = 0 1881 = 6273 AxA = \*wj = If 6273 < 32767 @AB 0 070A = 6273 If 6383 < 32767 AxA = 6383 0 2430 = 0 18 6383 = 1.01753546947234 6273 REVISION 11 - 3 AUGUST 2018 = 6383 Page 37 of 60 MLX90640 32x24 IR array Datasheet Please note that this value is updated every frame and it is the same for all pixels including CP regardless the subpage number 11.2.2.5. Pixel data calculations The pixel addressing is following the pattern as described in Reading pattern shown in Fig 5: 11.2.2.5.1. Gain compensation The first step of the data processing on raw IR data is always the gain compensation, regardless of pixel or subpage number. GO \*wj (12, 16) = @AB GO YF IZI @AB 0 056 GO \*wj (12, 16) GO PQ RST (12,16) \*wj = 0 0261 = 609 = @AB 0 056 @AB 0 056 If 609 < 32767 \*wj = 609 = 609 1.01753546947234 = 619.679100908656 11.2.2.5.2. Offset calculation = VWWXYZ*[SR*\S + V==R]^38 2P a0bc1de + V==f]ghij3t 2P a0bcadblmn + oWWXYZ(12,16) 2P a0bc1cmn0n2 VWWXYZ*[SR*\S = 0 2411 = 0 If 65467 > 32767 AA = 65467 VWWXYZ*[SR*\S = 65467 - 65536 = -69 As the row=12, we select EEPROM cell 0x2414 ( OCC_rows_12...08 (4 x 4bit)) and extract the four most significant bits corresponding to parameter OCC_rows_12. If another row number is selected, the corresponding OCC parameter must be selected. V==R]^38 = KK >p%q q & >p >>> %38 If 15 > 7 V==rf*gS1de = = >p % % & >p >>> %38 = 0 000 = 15 V==R]^38 = 15 - 16 = -1 KK >p%q > & >p> >> %s = >pq% > & >p> >> %s = 0 0002 = 2 Please note that V==rf*gS1de is a common parameter for all V==R]^_ calculation As the column=16, we select EEPROM cell 0x2425 ( OCC_column_16...13 (4 x 4bit)) and extract the four most significant bits corresponding to parameter OCC_columns_16. If another column number is selected, the corresponding OCC parameter must be selected. V==f]ghij3t = KK >p%q J & >p >>> If 14 > 7 V==rf*gSadblmn = %38 = >pK>K & >p >>> %38 V==f]ghij3t = 14 - 16 = -2 KK >p%q > & >p>> > %u = >pq% > & >p>> > %u = 0 000 = 14 = 0 0001 = 1 Please note that V==rf*gSadblmn is a common parameter for all V==f]ghijk calculation REVISION 11 - 3 AUGUST 2018 Page 38 of 60 MLX90640 32x24 IR array Datasheet oWWXYZ(12,16) = If 2 < 31 GO KK >p%"D >p> D> & >p >> %3v oWWXYZ(12,16) = 2 V==rf*gS1cmn0n2 = PQ RST (12,16) = & >p >> %3v = 0 0002 0 2410 & 0 000 = 0 4210 & 0 000 = 0 0000 = 0 = -69 + (-1) 2% + (-2) 2 + 2 2> = -69 - 4 - 4 + 2 = -75 11.2.2.5.3. IR data compensation - offset, VDD and Ta GO PQ (12, 16) ?*( %, ) Where: = \*wj (12,16) = GO - GO PQ RST 5.0(38,3t) _AA & v*vvvA ;.0_TM{_ * % = ?*( %, )_KK 8 5.0 a0bc_3 KK >p%"D If 0 < 3 % % & >p>>> ?*( %, )_KK 1 + 5.0 = ?*( %, ) a0bc_8 >p> D> & >p>>> % =0 ()* - )*> ) 1 + ( %, ) # -# > = 0 0000 = 0 As row and column numbers are even then ?*_}_KK = ?* a0bc_3 = 0 2437 & 0 00FF = 0x5354 & 0x00FF = 0x0054 = 84 If 84 < 127 ?*( %, ) ?* a0bc_8 = = q*> %| %3u KK >p%q( %u ?*_}_KK & >p>>> = 84 +8= >p%(( & >p>>> %u + 8 = 0 0006 + 8 = 6 + 8 = 14 0 2438 & 0 000F = 0 2363 & 0 000 = 0 0003 = 3 = q ( q = 0.005126953125 As row and column numbers are even: (w,...) = If ( %, ) = 0 2434 & 0 000F = 0 5454 & 0 000 = 0 0004 = 4 (w,...) ;,(_,k) 5, a0bc % Where: GO GO ( %, ) = <7 a0bc = PQ (12, 16) =4 (signed) KK >p%q( ;,(_,k) 5 % , a0bc PQ (12, 16) (w,...) = q %| %s & >p>>> = = 0.5 q = >p%(( & >p>>> %s = 0 0003 = 3 = 619.679100908656 - (-75) 1 + 0.005126953125 (39.184 - 25) 1 + 0.5 (3.319 - 3.3) = 700.882495690877 REVISION 11 - 3 AUGUST 2018 Page 39 of 60 MLX90640 32x24 IR array Datasheet 11.2.2.5.4. IR data Emissivity compensation Emissivity compensation: For the example we assume Emissivity = 1. Note that the Emissivity coefficient is user defined and it is not stored in the device EEPROM) #A}( %, )m_ _A_2AE_{CE-EE/.E = wpCE ( %, ) I = >>. %q"> = 700.882495690877 11.2.2.6. CP data calculations 11.2.2.6.1. Compensating the GAIN of CP pixel GO GO GO GO \*wj_C_QC> = @AB 0 0708 @AB 0 0708 = 0 \*wj_C_QC> \*wj_C_QC =A = 65482 If 65482 > 32767 @AB 0 0708 = 65482 - 65536 = -54 = -54 1.001753546947234 = -54.9469153515065 = @AB 0 0728 @AB 0 0728 = 0 \*wj_C_QC \*wj \*wj =8 = 65480 If 65480 > 32767 @AB 0 0728 = 65480 - 65536 = -56 = -56 1.001753546947234 = -56.9819862904511 NOTE: In order to limit the noise in the final To calculation it is advisable to filter the CP readings at this point of calculation. A good practice would be to apply a Moving Average Filter with length of 16 or higher. 11.2.2.6.2. Compensating offset, Ta and VDD of CP pixel GO PQ_C_QC> = GO \*wj_C_QC> - VWW_=(R)rh**\S_> 1 + ?*_C ()* - )*> ) 1 + _C # -# > The value of the offset for compensating pixel for the subpage 1 depends on the reading pattern. In case the chess reading pattern mode is used following formula is to be applied: GO PQ_C_QC = GO \*wj_C_QC - VWW_=(R)rh**\S_ 1 + ?*_C ()* - )*> ) 1 + _C # -# > In case of interleaved mode is used following formula is to be applied: GO PQ_C_QC = GO \*wj_C_QC - VWW_=(R)rh**\S_ + xyzKQQ ) 1 + ?*_C ()* - )*> ) 1 + _C # -# > The correction parameter (highlighted in yellow) is extracted in Error! Reference source not found. Where: VWW_=(R)rh**\S_> = If 949 > 511 0 243A & 0 03 =0 AA5 & 0 03 VWW_=(R)rh**\S_> = 949 - 1024 = -75 VWW_=(R)rh**\S_ = VWW_=(R)rh**\S_> + VWW_=(R)rh**\S_ REVISION 11 - 3 AUGUST 2018 = 0 03A5 = 949 _ Sg* Page 40 of 60 MLX90640 32x24 IR array Datasheet VWW_=(R)rh**\S_ Where: _ Sg* If 62 > 31 ?*{- = ;.0{-_ % 5.0 a0bc ?* a0bc_3 ;,{-_ 5 % , a0bc = = a0bc_3 ?*{-_ = KK >p%q(D & >p >> %3v VWW_=(R)rh**\S_ = _ Sg* VWW_=(R)rh**\S_ = -75 + (-2) = -77 Where: {- = {-_ = = q %| %s = %3v = 0 003 = 62 = 62 - 64 = -2 = 0.00457763671875 KK >p%q( %u & >p>>> + 8 = 14 (unsigned) (the same one as for the 0 243B & 0 00FF = 0 044A &0 00 If 75 < 127 KK >p%q( Where: = " %3u >p JJ" & >p >> = 0.5 & >p>>> = ?*{-_ >p%(( & >p>>> %s KK >p%q(-- & >p>> %s If 4 < 127 = 75 = {-_ coefficients) = 0 0003 = 3 (unsigned) (the same one as for the >p>qqJ & >p>> =4 = 0 004A = 75 ?*(w,...) %s (w,...) coefficients) = 0 0004 = 4 GO PQ_C_QC> = -54.9469153515065 - (-75) 1 + 0.00457763671875 (39.184 - 25) 1 + 0.5 (3.319 - 3.3) GO PQ_C_QC = -56.9819862904511 - (-77) 1 + 0.00457763671875 (39.184 - 25) 1 + 0.5 (3.319 - 3.3) GO GO PQ_C_QC> PQ_C_QC = 25.6666575059956 = 21.6315865670509 11.2.2.7. IR data gradient compensation As stated in "Reading patterns" the device can work in two different readings modes (Chess pattern - the default one and IL (Interleave mode)). Depending on the device measurement mode and GO YFjhi*SR = 1 ... 768 we can define a pattern which will help us to automatically switch between both subpages. - In case of Chess pattern is selected please use following expression: - In case of Interleaved pattern please use following expression: GO YFjhi*SR - 1 O*Z E L GO YFjhi*SR - 1 GO YFjhi*SR - 1 32 (R)IZZY** = IO*Z E L - O*Z I I 2I o* *(GO YFjhi*SR - 1) - O*Z E L 2` 32 2 2 REVISION 11 - 3 AUGUST 2018 Page 41 of 60 MLX90640 32x24 IR array Datasheet GO YFjhi*SR - 1 O*Z E L GO YFjhi*SR - 1 32 (R)IZZY** = IO*Z E L - O*Z I I 2I 32 2 Where the O*Z function is giving the truncated whole number without fractional component of the result. Where o* is exclusive or or exclusive disjunction is a logical operation that outputs true only when inputs differ. The truth table is as follows: Input 1 Input 2 Output 0 0 0 0 1 1 1 0 1 1 1 0 Table 13 XOR truth table Example: Let's assume that the GO YFjhi*SR = 368 (12 16) 368 - 1 O*Z 368 - 1 368 - 1 32 (R)IZZY** = O*Z E L - O*Z N 2N o* +(368 - 1) - O*Z E L 2: 32 2 2 If we are in chess mode: O*Z(11.46875) (R)IZZY** = +O*Z(11.46875) - O*Z + : 2: o*(367 - O*Z(183.5) 2) 2 11 (R)IZZY** = E11 - O*Z E L 2L o*(367 - 183 2) = (11 - 5 2) o*(1) = (1) o*(1) = 0 2 If we are in IL mode: 368 - 1 O*Z 368 - 1 O*Z(11.46875) 32 (R)IZZY** = O*Z E L - O*Z N 2N = +O*Z(11.46875) - O*Z + : 2: 2 32 2 #A}( 11 (R)IZZY** = E11 - O*Z E L 2L = (11 - 5 2) = 1 2 %, ){CE-EE/.E )= = Where: #A}( ? %9 = (% (% )=KK = = #A}( =1 %, )m_ _A_2AE_{CE-EE/.E 0 243C & 0 00FF = 0 If 32 < 127 %, ){CE-EE/.E )=KK = 32 - )= (1 - (R)IZZY**) GO PQ_C_QC> + (R)IZZY** GO PQ_C_QC 020 & 0 00FF = 0 0020 = 32 = 700.882495690877 - 1 21.6315865670509 = 679.250909123826 REVISION 11 - 3 AUGUST 2018 Page 42 of 60 MLX90640 32x24 IR array Datasheet 11.2.2.8. Normalizing to sensitivity 'f]i( %, ) = +'( 'C_rh**\S_> = %, ) - )= E(1 - (R)IZZY**) 'C = KK >p%q( & >p>( % - a0bc_{- = >pKqq & >p>( 'C_rh**\S_ = 'C_rh**\S_> 1 + % - a0bc_{- C_C _C>102_d %- 'C_rh**\S_ = 3.85171006200835 - 09 Where: 0 2420 & 0 2% 'rf*gS_C = =(R)_(R)1_(R)0R*w] = X?* = ;r.0_ %3| '( %, ) Where: 7 %3| X?*_KK = Where: = KK >p%q( & >p >> %3v If 57 > 31 = %s & >p>> If 240 > 127 A==R]^38 = %|u 0 79A6 & 0 2% >pKqq & >p >> %3v = -0.001953125 "1c"c1cnac *D1de38 % 'rf*gS = >pKqq & >p>( = >p >%> & >p>> %s 000 %38 = A==rf*gSadblmn = 'wpSg (12,16) = + 30 = 000 7 %- + 27 = 0 0007 + 27 = 34 = 0 0039 = 57 %s = 0 242B & 0 2% %38 000 KK >p%q%> & >p>> > = + 30 = 0 0007 + 30 = 37 = 0 0009 = 9 0 3333 & 0 2% >pD & >p>> > %u 000 = 0 0003 = 3 = 0 000A = 10 0 258F & 0 03F0 0 08A0 & 0 03F0 = = 0 000A = 10 2q 2q If 10 < 31 REVISION 11 - 3 AUGUST 2018 = %s 000 = 0 0003 = 3 >pD & >p> >> A==f]ghij3t = 3 %u 0 79A6 & 0 2% >p(((( & >p >>> A==R]^38 = 3 KK >p%q%> & >p> >> If 3 > 7 = 4.07453626394272 - 09 /{{ a0bc /{{ a0bc /{{ a0bc adblmn *" _*cb ( %, )% 1de *Dadblmn % 1cmn0n2 3t - % a0bc KK >p%q%q & >p >>> A==f]ghij3t = %|u ()* - )*> ) X?*_KK = 240 - 256 = -16 0 2420 & 0 2% A==rf*gS1de = >p>>q r?* = 0 00 0 = 240 (common for all pixels) 0 2421 = 0 2 44 = 12100 If 3 < 7 = = 4.07453626394272 - 09 1 + + 27 = = + (R)IZZY** 'C_rh**\S_ L: 1 + =(R)_(R)1_(R)0R*w] = 57 - 64 = -7 KK >p%q( 'RSTSRSjfS = 000 lOE 0cv 'wpSg (12,16) = 10 Page 43 of 60 MLX90640 32x24 IR array Datasheet '( A==rf*gS1cmn0n2 = = %, ) 'f]i( 'f]i( % >>*(%A *(%3v * >%t %, ) %, ) 'f]i( = +'( %|- %, ) 0 2420 & 0 000F = 0 79A6 & 0 000F = 0 0006 = 6 = 1.26223312690854 - 07 - )= E(1 - (R)IZZY**) 'C lOE 0cv + (R)IZZY** 'C_rh**\S_ L: 1 + r?* ()* - )*> ) = 1.26223312690854 - 07 - 1 (1 - 0) 4.07453626394272 - 09 + 0 3.85171006200835 - 09 1 + -0.001953125 (39.184 - 25) %, ) = 1.1876487360496 - 07 11.2.2.9. Calculating To for basic temperature range (0C...CT3 C) r?]% = ; .d8_ % 5 .d a0bc Where: = X?]%_KK = 7 >" %3- = -0.00080108642578125 KK >p%q( & >p>> %s If 151 > 127 X?] a0bc = = >p & >p>> %s = 0 0097 = 151 X?]%_KK = 151 - 256 = -105 0 243F & 0 000F + 8 = 0 2889 & 0 000F + 8 = 0 0009 + 8 = 17 As the IR signal received by the sensor has two components: 1. IR signal emitted by the object 2. IR signal reflected from the object (the source of this signal is surrounding environment of the sensor) In order to compensate correctly for the emissivity and achieve best accuracy we need to know the surrounding temperature which is responsible for the second component of the IR signal namely the reflected part - )R . In case this )R temperature is not available and cannot be provided it might be replaced by )R )* - 8. Let's assume )R = 31C. )*;q = ()* + 273.15)q = (39.184 + 273.15)q = 312.334q = 9516495632.56 )R;q = ()R + 273.15)q = (31 + 273.15)q = 304.15q = 8557586214.66 )*7R = )R;q - p( p( p( %, ) %, ) = )R;q - )*;q 8557586214.66 - 9516495632.56 = 8557586214.66 - = 9516495632.56 O 1 r?]% O'f]i( u %, ) ( #A}( %, ) %, ) + 'f]i( %, ) q )*7R = -0.00080108642578125 O(1.1876487360496 - 07)( 679.250909123826 + (1.1876487360496 - 07)q 9516495632.56 u = -3.34259382357449 - 08 #A}( %, u )P(12,16) = O 'f]i(12,16) (1 - )P( %, ){CE-EE/.E =O u ){CE-EE/.E r?]% 273.15) + p(12,16) + )I-* - 273.15 679.250909123826 + 9516495632.56 - 273.15 1.1876487360496 - 07 (1 - (-0.00080108642578125) 273.15) + -3.34259382357449 - 08 )P(12,16) = 80.363312506592 80.36 , C REVISION 11 - 3 AUGUST 2018 Page 44 of 60 MLX90640 32x24 IR array Datasheet 11.2.2.9.1. Calculations for extended temperature ranges In order to extent the object temperature range and get the best possible accuracy an additional calculation cycle is needed. We can identify 4 object temperature ranges (each temperature range has its own so called Corner Temperature - CT which is the temperature at which the range starts): - Object temperature range 1 = Object temperature range 2 = Object temperature range 3 = Object temperature range 4 = -40C ... 0C (Corner temperature for this range is -40C and cannot be changed) 0C ... CT3C (Corner temperature for this range is 0C and cannot be changed) CT3C ... CT4C CT4C ... In order to be able to carry out temperature calculation for the ranges outside of temperature range 2 (To = 0C...CT3) an additional parameters are needed and must be extracted from the device EEPROM. Those parameters are: - So called corner temperature (CTx) i.e. the value of temperature at the beginning of the range. Please note that the corner temperatures for range 1 is fixed to -40C and corner temperatures for range 2 is fixed to 0C while CT3 and CT4 are adjustable Sensitivity slope for each range - KsTox )P(p,O) calculated in 11.2.2.9 - 11.2.2.9.1.1. Restoring corner temperatures The information regarding corner temperatures is stored into device EEPROM and is restored as follows: 0 243F & 0 3000 0 2889 & 0 3000 10 = 10 = 0 0002 10 = 2 10 = 20= 2% 2% ZYG = 0 243F & 0 00F0 0 2889 & 0 00F0 ZYG = 20 = 0 0008 20 = 8 20 = 160= 2q 2q =)3 = 0 243F & 0 0F00 0 2889 & 0 0F00 ZYG + =)3 = 20 + 160 = 0 0008 20 + 160 = 8 20 + 160 = 320= 2 2 =)4 = Or we can construct the temperatures for the ranges as follows: CT1=-40C < Range 1 > CT2=0C < Range 2 > CT3=160C < Range 3 > CT4=320C < Range 4 11.2.2.9.1.2. Restoring the sensitivity slope for each range X?] a0bc = 17 has been extracted in 11.1.10 X?] = Where: X?]( = Where: 2 X?] _KK ;r.d a0bc X?] 2 _KK = = -105 = -0.00080108642578125 2 If X?] X?](_KK ;r.d a0bc = X?](_KK = 0 243D & 0 00FF = 0 9797 & 0 00FF = 0 0097 = 151 (signed) _KK > 127 X?] _KK = X?] _KK -105 = -0.00080108642578125 2 - 256 = 151 - 256 = -105 0 243E & 0 00FF = 0 9797 & 0 00FF = 0 0097 = 151 (signed) REVISION 11 - 3 AUGUST 2018 Page 45 of 60 MLX90640 32x24 IR array Datasheet X?]q = Where: 2 If X?](_KK > 127 X?]q_KK ;r.d a0bc = X?]q_KK = X?](_KK = X?](_KK - 256 = 151 - 256 = -105 -105 = -0.00080108642578125 2 KK >p%q( & >p>> %s If X?]q_KK > 127 = >p & >p>> %s = 0 0097 = 151 (signed) X?]q_KK = X?]q_KK - 256 = 151 - 256 = -105 Now we can calculate sensitivity correction coefficients for each temperature range: AFGIf]RR10nc3 = 1 1 + X)o1 0 - (-40) AFGIf]RR10nc8 = 1 = 1 1 - 0.00080108642578125 0 - (-40) = 1.033104231 AFGIf]RR10nc| = 1 + X)o2 (=)3 - 0) = 1 - 0.00080108642578125 (160 - 0) = 0.871826172 AFGIf]RR10ncu = 1 + X)o2 (=)3 - 0) 1 + X)o3 (=)4 - =)3) AFGIf]RR10ncu = 1 - 0.00080108642578125 (160 - 0) 1 - 0.00080108642578125 (320 - 160) AFGIf]RR10ncu = 0.76008087418 11.2.2.9.1.3. Extended To range calculation The input parameter for this calculation is the object temperature calculated in 11.2.2.9 If )P( %, ) < 0C we are in range 1 and we will use the parameters ( X?] , AFGIf]RR10nc3 and =)1 = -40=) If 0C < )P( %, ) < CT3C we are in range 2 and we will use the parameters ( X?]% , AFGIf]RR10nc8 and =)2 = 0=) If CT3C < )P( %, ) )Pc*210_10nc ( %, ) If CT4C < )P( %, ) < CT4C we are in range 3 and we will use the parameters ( X?]( , AFGIf]RR10nc| and =)3 = 160=) we are in range 4 and we will use the parameters ( X?]q , AFGIf]RR10ncu and =)4 = 320=) #A}( %, ){CE-EE/.E u =O + )I-* - 273.15 'f]i(12,16) AyGIOo***I*UYU 1 + X?]U ()P(12,16) - CTX ) REVISION 11 - 3 AUGUST 2018 Page 46 of 60 MLX90640 32x24 IR array Datasheet 12. Performance graphs 12.1. Accuracy All accuracy specifications apply under settled isothermal conditions only. Furthermore, the accuracy is only valid if the object fills the FOV of the sensor completely. Parameter definitions: Frame accuracy is defined as average value of the all (768) pixels in the frame or for frame * can be expressed as: ) ] _W*IY(*) = 1 a )] (, *) 768 ia *IY IOO*IOa = )] _W*IY(*) - )*R\S Non-uniformity is defined as the maximum deviation of each individual pixel reading vs. the absolute accuracy. Ao* a*OWo*OZa = BAUa)] () - ) ] _W*IY(*)a Pixel absolute accuracy is defined as: )P *ffhR*fO(j) = *IY IOO*IOa + Ao* a*OWo*OZa To, C 400C To, C 400C 300C 300C Contact MLX Contact MLX Contact MLX TBD TBD TBD TBD Frame Accuracy 1C Uniformity zone1 1C Uniformity zone2 2C TBD TBD TBD TBD 200C 200C 100C 100C Frame Accuracy 2C NU zone11C 2%*|To-Ta| NU zone22C 2%*|To-Ta| NU zone33C 2%*|To-Ta| Frame accuracy 1C Non-uniformity zone1 0.5C Non-uniformity zone2 1C Non-uniformity zone3 2C 2%*|To-Ta| Frame accuracy 2C NU zone11C 2%*|To-Ta| NU zone22C 2%*|To-Ta| NU zone33C 2%*|To-Ta| Ta, C 0C -40C -40C Ta, C 0C TBD Frame Accuracy 5C Non-uniformity 2%*|To-Ta| TBD TBD -40C 0C 50C 85C -40C 0C 50C 85C Figure 17 Absolute temperature accuracy - MLX90640BAA (left) and MLX90640BAB (right) Example: If we assume that the sensor (BAA type, zone 1) is measuring a target at 80C that would mean that there should be no pixel with error bigger than: )P *ffhR*fO(j) = *IY IOO*IOa + Ao* a*OWo*OZa = 1 0.5 = 1.5= NOTE: For best performance it is recommended to keep the supply voltage as accurate and stable as possible to 3.3V 0.1V REVISION 11 - 3 AUGUST 2018 Page 47 of 60 MLX90640 32x24 IR array Datasheet Zone 3 Zone 3 Zone 1 Zone 3 Zone 2 MLX90640BAA Zone 1 Zone 3 Zone 2 MLX90640BAB Figure 18 Different accuracy zones depending on device type (BAA on the left and BAB on the right) REVISION 11 - 3 AUGUST 2018 Page 48 of 60 MLX90640 32x24 IR array Datasheet Startup time 12.1.1. First valid data After POR the first valid data is available after (depending on the selected refresh rate) )[*gw )[*gw _ ** = 40 + 500, ms _ ** which is calculated as: (Example refresh rate is 2Hz - the default value) It is always subpage 0 to be measured first after POR then subpage 1 and so on alternating. NOTE: In case one changes the refresh rate on the fly (by writing new values into device register (0x800D)) the settings will take place only after the subpage under measurement is finished. Default Set 8Hz Vdd 40ms 2Hz Subpage 0 Active 2Hz refresh rate Subpage 1 Subpage 0 8Hz refresh rate start 12.1.2. Thermal behavior Although electrically the device is set and running there is thermal stabilization time necessary before the device can reach the specified accuracy - up to 4 min. REVISION 11 - 3 AUGUST 2018 Page 49 of 60 MLX90640 32x24 IR array Datasheet 12.2. Noise performance and resolution There are two bits in the configuration register that allow changing the resolution of the MLX90640 measurements. Increasing the resolution decreases the quantization noise and improves the overall noise performance. Measurement conditions for the noise are: To=Ta=25C NOTE: Due to the nature of the thermal infrared radiation, it is normal that the noise will decrease for high temperature and increase for lower temperatures Figure 19 MLX90640BAx noise vs refresh rate for different device types Not all pixels have the same noise performance. Because of the optical performance of the integrated lens, it is normal that the pixels in the corner of the frame are noisier in comparison with the sensors in the middle. The graphs bellow show the distribution of the noise performance versus the pixel position in the frame (pixel number) Figure 20 MLX90640BAA noise vs pixel and refresh rate at 1Hz and 2Hz Figure 21 MLX90640BAA noise vs pixel and refresh rate at 4Hz, 8Hz and 16Hz REVISION 11 - 3 AUGUST 2018 Page 50 of 60 MLX90640 32x24 IR array Datasheet Figure 22 MLX90640BAB noise vs pixel and refresh rate at 1Hz and 2Hz Figure 23 MLX90640BAB noise vs pixel and refresh rate at 4Hz, 8Hz and 16Hz NETD (K) 1Hz RMS noise (temperature equivalent), all pixels MLX90640 Average Min Standard deviation BAA 0.14 0.1 0.05 BAB 0.25 0.2 0.05 Table 14 Noise performance REVISION 11 - 3 AUGUST 2018 Page 51 of 60 MLX90640 32x24 IR array Datasheet 12.3. Field of view (FOV) Point heat source Sensitivity 100% 50% Field Of View Angle of incidence Rotated sensor Figure 24: Field Of View measurement The specified FOV is calculated for the wider direction, in this case for the 32 pixels. FOV MLX90640-ESF-BAA MLX90640-ESF-BAB X direction Y direction Typ 110 55 Typ 75 35 Central pointing from normal (X & Y direction) Max 5 3 Table 15 Available FOV options REVISION 11 - 3 AUGUST 2018 Page 52 of 60 MLX90640 32x24 IR array Datasheet 13. Application information 13.1. Electrical considerations Figure 25 MLX90640 electrical connections As the MLX90640Bxx is fully I2C compatible it allows to have a system in which the MCU may be supplied with VDD=2.6V...5V while the sensor it's self is supplied from separate supply VDD1=3.3V (or even left with no supply i.e. VDD=0V), with the I2C connection running at supply voltage of the MCU. REVISION 11 - 3 AUGUST 2018 Page 53 of 60 MLX90640 32x24 IR array Datasheet 13.2. Using the device in "image mode" In some applications may not be necessary to calculate the temperature but rather to have just and image (for instance in machine vision systems). In this case it is not necessary to carry out all calculations which would save computation time or allow the one to use weaker CPU. In order to get thermal image only following computation flow is to be used: Supply voltage value calculation (common for all pixels) - 11.2.2.2 Ambient temperature calculation (common for all pixels) - 11.2.2.3 Gain compensation - 11.2.2.5.1 IR data compensation - offset, VDD and Ta - 11.2.2.5.3 IR data gradient compensation - 11.2.2.7 Normalizing to sensitivity - 11.2.2.8 Image (data) processing Figure 26 Calculation flow in thermal image mode 14. Application Comments Significant contamination at the optical input side (sensor filter) might cause unknown additional filtering/distortion of the optical signal and therefore result in unspecified errors. IR sensors are inherently susceptible to errors caused by thermal gradients. There are physical reasons for these phenomena and, in spite of the careful design of the MLX90640Bxx, it is recommended not to subject the MLX90640Bxx to heat transfer and especially transient conditions. The MLX90640Bxx is designed and calibrated to operate as a non-contact thermometer in settled conditions. Using the thermometer in a very different way will result in unknown results. 2 Capacitive loading on an I C can degrade the communication. Some improvement is possible with use of current sources compared to resistors in pull-up circuitry. Further improvement is possible with specialized commercially available bus accelerators. With the MLX90640Bxx additional improvement is possible by increasing the pull-up current (decreasing the 2 2 pull-up resistor values). Input levels for I C compatible mode have higher overall tolerance than the I C specification, but the 2 output low level is rather low even with the high-power I C specification for pull-up currents. Another option might be to go 2 for a slower communication (clock speed), as the MLX90640Bxx implements Schmidt triggers on its inputs in I C compatible mode and is therefore not really sensitive to rise time of the bus (it is more likely the rise time to be an issue than the fall 2 time, as far as the I C systems are open drain with pull-up). REVISION 11 - 3 AUGUST 2018 Page 54 of 60 MLX90640 32x24 IR array Datasheet Power dissipation within the package may affect performance in two ways: by heating the "ambient" sensitive element significantly beyond the actual ambient temperature, as well as by causing gradients over the package that will inherently cause thermal gradient over the cap Power supply decoupling capacitor is needed as with most integrated circuits. MLX90640Bxx is a mixed-signal device with sensors, small signal analog part, digital part and I/O circuitry. In order to keep the noise low power supply switching noise needs to be decoupled. High noise from external circuitry can also affect noise performance of the device. In many applications a 100nF SMD plus 1F ceramic capacitors close to the Vdd and Vss pins would be a good choice. It should be noted that not only the trace to the Vdd pin needs to be short, but also the one to the Vss pin. Using MLX90640Bxx with short pins improves the effect of the power supply decoupling. Check www.melexis.com for most recent application notes about MLX90640Bxx. REVISION 11 - 3 AUGUST 2018 Page 55 of 60 MLX90640 32x24 IR array Datasheet 15. Mechanical drawings 15.1. FOV 55 55 Figure 27 Mechanical drawing of 55 FOV device REVISION 11 - 3 AUGUST 2018 Page 56 of 60 MLX90640 32x24 IR array Datasheet 15.2. FOV 11 110 Figure 28 Mechanical drawing of 110 FOV device REVISION 11 - 3 AUGUST 2018 Page 57 of 60 MLX90640 32x24 IR array Datasheet 15.3. Device marking The MLX90640 is laser marked with 10 symbols as follows. 0 A A xxxxx xx Laser marking 2 digits Split number 5 digits LOT number 0 A FOV = 110 B FOV = 55 A Device without thermal gradient compensation (TGC = 0 and may not be changed) C Device with thermal gradient compensation (TGC = -4...+3.98) MLX90640 Example: "0CA1010218" - Device type MLX90640BAA from lot 10102, sub LOT split 18 and Thermal Gradient Compensation activated. REVISION 11 - 3 AUGUST 2018 Page 58 of 60 MLX90640 32x24 IR array Datasheet 16. Standard Information Our products are classified and qualified regarding soldering technology, solderability and moisture sensitivity level according to standards in place in Semiconductor industry. For further details about test method references and for compliance verification of selected soldering method for product integration, Melexis recommends reviewing on our web site the General Guidelines soldering recommendation. For all soldering technologies deviating from the one mentioned in above document (regarding peak temperature, temperature gradient, temperature profile etc.), additional classification and qualification tests have to be agreed upon with Melexis. For package technology embedding trim and form post-delivery capability, Melexis recommends consulting the dedicated trim & forming recommendation application note: lead trimming and forming recommendations Melexis is contributing to global environmental conservation by promoting lead free solutions. For more information on qualifications of RoHS compliant products (RoHS = European directive on the Restriction Of the use of certain Hazardous Substances) please visit the quality page on our website: http://www.melexis.com/en/quality-environment 17. ESD Precautions Electronic semiconductor products are sensitive to Electro Static Discharge (ESD). Always observe Electro Static Discharge control procedures whenever handling semiconductor products. 18. Revision history table 25/07/2016 Initial release 15/12/2016 Calibration data stored into EEPROM, pixel reading modes explained 17/01/2017 Some errors fixed 07/02/2017 Some calculations errors fixed 24/02/2017 Noise, FOV and accuracy graphs added, some inaccuracies fixed 02/03/2017 Overall rearranged , some typo and grammar mistakes fixed 18/05/2017 Two's complement for IR data from RAM and CP, added outlier identification in EEPROM , added application information 07/07/2017 Slave address changed to 0x240F, default mode is chess, CP RAM address changed 0x0709 -> 0x0708 and 0x0729 -> 0x0728, resolution control included in calculations, PCB under TO can removed 30/08/2017 Laser marking added, Max number of fail pixels added, Measurement flow (continuous and step mode) added, FOV definitions updated 10/10/2017 Added a note regarding CP averaging. Add dimension tolerances in mechanical drawings. Spelling errors corrected REVISION 11 - 3 AUGUST 2018 Page 59 of 60 MLX90640 32x24 IR array Datasheet 11/04/2018 Updated accuracy table including BAB version, CP for different subpages, compensation for different reading patterns, extended temperature ranges calculations. 03/08/2018 Added: github driver link, ESD = 2kV 4kV, Step mode removed, Internal register tables updated Table 16 Revision history 19. Contact For the latest version of this document, go to our website at www.melexis.com. For additional information, please contact our Direct Sales team and get help for your specific needs: Europe, Africa Telephone: +32 13 67 04 95 Email : sales_europe@melexis.com Americas Telephone: +1 603 223 2362 Email : sales_usa@melexis.com Asia Email : sales_asia@melexis.com 20. Disclaimer The information furnished by Melexis herein ("Information") is believed to be correct and accurate. Melexis disclaims (i) any and all liability in connection with or arising out of the furnishing, performance or use of the technical data or use of the product(s) as described herein ("Product") (ii) any and all liability, including without limitation, special, consequential or incidental damages, and (iii) any and all warranties, express, statutory, implied, or by description, including warranties of fitness for particular purpose, noninfringement and merchantability. No obligation or liability shall arise or flow out of Melexis' rendering of technical or other services. The Information is provided "as is" and Melexis reserves the right to change the Information at any time and without notice. Therefore, before placing orders and/or prior to designing the Product into a system, users or any third party should obtain the latest version of the relevant information to verify that the information being relied upon is current. Users or any third party must further determine the suitability of the Product for its application, including the level of reliability required and determine whether it is fit for a particular purpose. The Information is proprietary and/or confidential information of Melexis and the use thereof or anything described by the Information does not grant, explicitly or implicitly, to any party any patent rights, licenses, or any other intellectual property rights. This document as well as the Product(s) may be subject to export control regulations. Please be aware that export might require a prior authorization from competent authorities. The Product(s) are intended for use in normal commercial applications. Unless otherwise agreed upon in writing, the Product(s) are not designed, authorized or warranted to be suitable in applications requiring extended temperature range and/or unusual environmental requirements. High reliability applications, such as medical life-support or lifesustaining equipment are specifically not recommended by Melexis. The Product(s) may not be used for the following applications subject to export control regulations: the development, production, processing, operation, maintenance, storage, recognition or proliferation of 1) chemical, biological or nuclear weapons, or for the development, production, maintenance or storage of missiles for such weapons: 2) civil firearms, including spare parts or ammunition for such arms; 3) defence related products, or other material for military use or for law enforcement; 4) any applications that, alone or in combination with other goods, substances or organisms could cause serious harm to persons or goods and that can be used as a means of violence in an armed conflict or any similar violent situation. The Products sold by Melexis are subject to the terms and conditions as specified in the Terms of Sale, which can be found at https://www.melexis.com/en/legal/terms-andconditions. This document supersedes and replaces all prior information regarding the Product(s) and/or previous versions of this document. Melexis NV (c) - No part of this document may be reproduced without the prior written consent of Melexis. (2016) ISO/TS 16949 and ISO14001 Certified REVISION 11 - 3 AUGUST 2018 Page 60 of 60