PixArt Optical Track Sensor, OTS, library initial release v1.0. Supports PAT9125, PAT9126, PAT9130, PAA5101. Future to support PAT9150.

Fork of Pixart_OTS by Hill Chen

Committer:
PixArtHC
Date:
Tue Mar 26 22:32:06 2019 +0000
Revision:
1:95917b856631
Parent:
0:2a85075b8467
* V1.1 library changes:;  * Add support to 5101 LD/LED switching.;  * Add support to PAT9150.;  * Fixed bug on loading initialization setting.;  * Optimized register read timing.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
PixArtHC 0:2a85075b8467 1 /* PixArt Optical Finger Navigation, OFN, sensor driver.
PixArtHC 0:2a85075b8467 2 * By PixArt Imaging Inc.
PixArtHC 0:2a85075b8467 3 * Primary Engineer: Hill Chen (PixArt USA)
PixArtHC 0:2a85075b8467 4 *
PixArtHC 0:2a85075b8467 5 * License: Apache-2.0; http://www.apache.org/licenses/LICENSE-2.0
PixArtHC 0:2a85075b8467 6 */
PixArtHC 0:2a85075b8467 7
PixArtHC 0:2a85075b8467 8 #pragma once
PixArtHC 0:2a85075b8467 9 #include "mbed.h"
PixArtHC 0:2a85075b8467 10 #include "Build_info.h"
PixArtHC 0:2a85075b8467 11 #include "Pixart_ComPort.h"
PixArtHC 0:2a85075b8467 12 #include "Pixart_OTS_GrabData.h"
PixArtHC 1:95917b856631 13 #include "Pixart_OTS_Task.h"
PixArtHC 0:2a85075b8467 14 #include "Pixart_OTS_InitSetting.h"
PixArtHC 0:2a85075b8467 15
PixArtHC 0:2a85075b8467 16 #include <vector>
PixArtHC 0:2a85075b8467 17 #include <string>
PixArtHC 0:2a85075b8467 18
PixArtHC 0:2a85075b8467 19 enum Pixart_OTS_Model
PixArtHC 0:2a85075b8467 20 {
PixArtHC 0:2a85075b8467 21 PIXART_OTS_MODEL_9125,
PixArtHC 0:2a85075b8467 22 PIXART_OTS_MODEL_9126,
PixArtHC 0:2a85075b8467 23 PIXART_OTS_MODEL_9150,
PixArtHC 0:2a85075b8467 24 PIXART_OTS_MODEL_9130,
PixArtHC 0:2a85075b8467 25 PIXART_OTS_MODEL_5101,
PixArtHC 0:2a85075b8467 26 };
PixArtHC 0:2a85075b8467 27
PixArtHC 0:2a85075b8467 28 struct Pixart_OTS_Register
PixArtHC 0:2a85075b8467 29 {
PixArtHC 0:2a85075b8467 30 uint8_t addr;
PixArtHC 0:2a85075b8467 31 uint8_t value;
PixArtHC 0:2a85075b8467 32 };
PixArtHC 0:2a85075b8467 33
PixArtHC 0:2a85075b8467 34
PixArtHC 0:2a85075b8467 35 class Pixart_OTS
PixArtHC 0:2a85075b8467 36 {
PixArtHC 0:2a85075b8467 37 public:
PixArtHC 1:95917b856631 38 Pixart_OTS(Serial &pc, Pixart_ComPort *comPort, Pixart_OTS_GrabData *grabData, Pixart_OTS_Task *task, const std::vector<Pixart_OTS_Register> &initRegisters, const std::string &model, const std::string &HwVer);
PixArtHC 0:2a85075b8467 39
PixArtHC 0:2a85075b8467 40 bool sensor_init();
PixArtHC 0:2a85075b8467 41 void periodic_callback();
PixArtHC 0:2a85075b8467 42 static int get_default_i2c_slave_address();
PixArtHC 0:2a85075b8467 43 std::string get_model() const;
PixArtHC 0:2a85075b8467 44 std::string get_HwVer() const;
PixArtHC 0:2a85075b8467 45
PixArtHC 0:2a85075b8467 46 private:
PixArtHC 0:2a85075b8467 47 Serial &m_pc;
PixArtHC 0:2a85075b8467 48 Pixart_ComPort *m_comPort;
PixArtHC 0:2a85075b8467 49 Pixart_OTS_GrabData *m_grabData;
PixArtHC 1:95917b856631 50 Pixart_OTS_Task *m_task;
PixArtHC 0:2a85075b8467 51 std::vector<Pixart_OTS_Register> m_initRegisters;
PixArtHC 0:2a85075b8467 52 std::string m_model;
PixArtHC 0:2a85075b8467 53 std::string m_HwVer;
PixArtHC 0:2a85075b8467 54
PixArtHC 0:2a85075b8467 55 int16_t m_totalX;
PixArtHC 0:2a85075b8467 56 int16_t m_totalY;
PixArtHC 0:2a85075b8467 57
PixArtHC 0:2a85075b8467 58 void print_build_info();
PixArtHC 0:2a85075b8467 59 };
PixArtHC 0:2a85075b8467 60
PixArtHC 0:2a85075b8467 61 Pixart_OTS* create_pixart_ots(Pixart_OTS_Model model, Serial &pc, I2C &i2c);
PixArtHC 0:2a85075b8467 62 Pixart_OTS* create_pixart_ots(Pixart_OTS_Model model, Serial &pc, SPI &spi, DigitalOut &cs);
PixArtHC 1:95917b856631 63 Pixart_OTS* create_pixart_ots(Pixart_OTS_Model model, Serial &pc, SPI &spi, DigitalOut &cs, DigitalOut &ldp_enl_pin);