Maxim Integrated / Mbed OS MAXREFDES220#

Dependencies:   USBDevice max32630fthr

Committer:
Shaun Kelsey
Date:
Thu May 24 14:45:27 2018 -0700
Revision:
6:85ac8bf9955e
Parent:
0:da5f5b56060a
Add LEDStatus and EventStats

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Shaun Kelsey 0:da5f5b56060a 1 #include "MaximSensor.h"
Shaun Kelsey 0:da5f5b56060a 2 #include "Peripherals.h"
Shaun Kelsey 0:da5f5b56060a 3
Shaun Kelsey 0:da5f5b56060a 4 /* PUBLIC FUNCTION DECLARATIONS */
Shaun Kelsey 0:da5f5b56060a 5 /**
Shaun Kelsey 0:da5f5b56060a 6 * @brief Reads from register.
Shaun Kelsey 0:da5f5b56060a 7 * @details Reads specific Maxim Sensor register via SPI bus.
Shaun Kelsey 0:da5f5b56060a 8 *
Shaun Kelsey 0:da5f5b56060a 9 * @param[in] reg Beginning address of a register to be read.
Shaun Kelsey 0:da5f5b56060a 10 * @param[out] data Buffer space to save result value.
Shaun Kelsey 0:da5f5b56060a 11 * @param[in] len Number of consecutive bytes to be read.
Shaun Kelsey 0:da5f5b56060a 12 *
Shaun Kelsey 0:da5f5b56060a 13 * @returns 0 on success, negative error code on failure.
Shaun Kelsey 0:da5f5b56060a 14 */
Shaun Kelsey 0:da5f5b56060a 15 int MaximSensor::readRegister(uint8_t reg, uint8_t *data, int len){
Shaun Kelsey 0:da5f5b56060a 16 pr_err("Empty function is called");
Shaun Kelsey 0:da5f5b56060a 17 return -1;
Shaun Kelsey 0:da5f5b56060a 18 }
Shaun Kelsey 0:da5f5b56060a 19
Shaun Kelsey 0:da5f5b56060a 20 /**
Shaun Kelsey 0:da5f5b56060a 21 * @brief Writes data to Maxim Sensor register.
Shaun Kelsey 0:da5f5b56060a 22 * @details Writes data to specific Maxim Sensor register via SPI bus.
Shaun Kelsey 0:da5f5b56060a 23 *
Shaun Kelsey 0:da5f5b56060a 24 * @param[in] reg Address of a register to be wrote.
Shaun Kelsey 0:da5f5b56060a 25 * @param[in] data Data to write on register.
Shaun Kelsey 0:da5f5b56060a 26 *
Shaun Kelsey 0:da5f5b56060a 27 * @returns 0 on success, negative error code on failure.
Shaun Kelsey 0:da5f5b56060a 28 */
Shaun Kelsey 0:da5f5b56060a 29 int MaximSensor::writeRegister(uint8_t reg, const uint8_t data){
Shaun Kelsey 0:da5f5b56060a 30 pr_err("Empty function is called");
Shaun Kelsey 0:da5f5b56060a 31 return -1;
Shaun Kelsey 0:da5f5b56060a 32 }
Shaun Kelsey 0:da5f5b56060a 33
Shaun Kelsey 0:da5f5b56060a 34 /**
Shaun Kelsey 0:da5f5b56060a 35 * @brief Get Maxim Sensor part and revision info.
Shaun Kelsey 0:da5f5b56060a 36 * @details Reads Maxim Sensor part and revision info from device.
Shaun Kelsey 0:da5f5b56060a 37 *
Shaun Kelsey 0:da5f5b56060a 38 * @param[in] reg Beginning address of a register to be read.
Shaun Kelsey 0:da5f5b56060a 39 * @param[out] data Buffer space to save result value.
Shaun Kelsey 0:da5f5b56060a 40 * @param[in] len Number of consecutive bytes to be read.
Shaun Kelsey 0:da5f5b56060a 41 *
Shaun Kelsey 0:da5f5b56060a 42 * @returns 0 on success, negative error code on failure.
Shaun Kelsey 0:da5f5b56060a 43 */
Shaun Kelsey 0:da5f5b56060a 44 int MaximSensor::get_part_info(uint8_t *part_id, uint8_t *rev_id){
Shaun Kelsey 0:da5f5b56060a 45 pr_err("Empty function is called");
Shaun Kelsey 0:da5f5b56060a 46 return -1;
Shaun Kelsey 0:da5f5b56060a 47 }
Shaun Kelsey 0:da5f5b56060a 48
Shaun Kelsey 0:da5f5b56060a 49 /**
Shaun Kelsey 0:da5f5b56060a 50 * @brief Enables Maxim Sensor.
Shaun Kelsey 0:da5f5b56060a 51 * @details Enable IRQ, enable LEDs, enable AGC
Shaun Kelsey 0:da5f5b56060a 52 *
Shaun Kelsey 0:da5f5b56060a 53 * @param[in] enable Any value to enable, 0 to disable.
Shaun Kelsey 0:da5f5b56060a 54 *
Shaun Kelsey 0:da5f5b56060a 55 * @returns 0 on success, negative error code on failure.
Shaun Kelsey 0:da5f5b56060a 56 */
Shaun Kelsey 0:da5f5b56060a 57 int MaximSensor::sensor_enable(int enable){
Shaun Kelsey 0:da5f5b56060a 58 pr_err("Empty function is called");
Shaun Kelsey 0:da5f5b56060a 59 return -1;
Shaun Kelsey 0:da5f5b56060a 60 }
Shaun Kelsey 0:da5f5b56060a 61
Shaun Kelsey 0:da5f5b56060a 62 /**
Shaun Kelsey 0:da5f5b56060a 63 * @brief Enables AGC.
Shaun Kelsey 0:da5f5b56060a 64 * @details Enable Maxim Sensor automatic gain controller.
Shaun Kelsey 0:da5f5b56060a 65 * AGC automatically adjusts sampling rates and LED currents to save energy.
Shaun Kelsey 0:da5f5b56060a 66 *
Shaun Kelsey 0:da5f5b56060a 67 * @param[in] agc_enable Any value to enable, 0 to disable.
Shaun Kelsey 0:da5f5b56060a 68 *
Shaun Kelsey 0:da5f5b56060a 69 * @returns 0 on success, negative error code on failure.
Shaun Kelsey 0:da5f5b56060a 70 */
Shaun Kelsey 0:da5f5b56060a 71 int MaximSensor::agc_enable(int agc_enable){
Shaun Kelsey 0:da5f5b56060a 72 pr_err("Empty function is called");
Shaun Kelsey 0:da5f5b56060a 73 return -1;
Shaun Kelsey 0:da5f5b56060a 74 }
Shaun Kelsey 0:da5f5b56060a 75
Shaun Kelsey 0:da5f5b56060a 76 /**
Shaun Kelsey 0:da5f5b56060a 77 * @brief Get sensor part name.
Shaun Kelsey 0:da5f5b56060a 78 *
Shaun Kelsey 0:da5f5b56060a 79 * @returns Sensor part name string.
Shaun Kelsey 0:da5f5b56060a 80 */
Shaun Kelsey 0:da5f5b56060a 81 const char *MaximSensor::get_sensor_part_name(){
Shaun Kelsey 0:da5f5b56060a 82 pr_err("Empty function is called");
Shaun Kelsey 0:da5f5b56060a 83 return "";
Shaun Kelsey 0:da5f5b56060a 84 }
Shaun Kelsey 0:da5f5b56060a 85 #if 0
Shaun Kelsey 0:da5f5b56060a 86 int dump_registers(addr_val_pair *reg_values) {
Shaun Kelsey 0:da5f5b56060a 87 pr_err("Empty function is called");
Shaun Kelsey 0:da5f5b56060a 88 return 0;
Shaun Kelsey 0:da5f5b56060a 89 }
Shaun Kelsey 0:da5f5b56060a 90 #endif
Shaun Kelsey 0:da5f5b56060a 91 /**
Shaun Kelsey 0:da5f5b56060a 92 * @brief Get sensor name.
Shaun Kelsey 0:da5f5b56060a 93 *
Shaun Kelsey 0:da5f5b56060a 94 * @returns Sensor name string.
Shaun Kelsey 0:da5f5b56060a 95 */
Shaun Kelsey 0:da5f5b56060a 96 const char *MaximSensor::get_sensor_name(){
Shaun Kelsey 0:da5f5b56060a 97 pr_err("Empty function is called");
Shaun Kelsey 0:da5f5b56060a 98 return "";
Shaun Kelsey 0:da5f5b56060a 99 }
Shaun Kelsey 0:da5f5b56060a 100
Shaun Kelsey 0:da5f5b56060a 101 int MaximSensor::MS_Max30001_ECG_InitStart(uint8_t En_ecg, uint8_t Openp, uint8_t Openn,
Shaun Kelsey 0:da5f5b56060a 102 uint8_t Pol, uint8_t Calp_sel, uint8_t Caln_sel,
Shaun Kelsey 0:da5f5b56060a 103 uint8_t E_fit, uint8_t Rate, uint8_t Gain,
Shaun Kelsey 0:da5f5b56060a 104 uint8_t Dhpf, uint8_t Dlpf){
Shaun Kelsey 0:da5f5b56060a 105 pr_err("Empty function is called");
Shaun Kelsey 0:da5f5b56060a 106 return -1;
Shaun Kelsey 0:da5f5b56060a 107 }
Shaun Kelsey 0:da5f5b56060a 108
Shaun Kelsey 0:da5f5b56060a 109 int MaximSensor::MS_Max30001_ECG_Stop(){
Shaun Kelsey 0:da5f5b56060a 110 pr_err("Empty function is called");
Shaun Kelsey 0:da5f5b56060a 111 return -1;
Shaun Kelsey 0:da5f5b56060a 112 }
Shaun Kelsey 0:da5f5b56060a 113
Shaun Kelsey 0:da5f5b56060a 114 int MaximSensor::MS_Max30001_RtoR_InitStart(uint8_t En_rtor, uint8_t Wndw, uint8_t Gain,
Shaun Kelsey 0:da5f5b56060a 115 uint8_t Pavg, uint8_t Ptsf, uint8_t Hoff,
Shaun Kelsey 0:da5f5b56060a 116 uint8_t Ravg, uint8_t Rhsf, uint8_t Clr_rrint){
Shaun Kelsey 0:da5f5b56060a 117 pr_err("Empty function is called");
Shaun Kelsey 0:da5f5b56060a 118 return -1;
Shaun Kelsey 0:da5f5b56060a 119 }
Shaun Kelsey 0:da5f5b56060a 120
Shaun Kelsey 0:da5f5b56060a 121 int MaximSensor::MS_Max30001_RtoR_Stop(){
Shaun Kelsey 0:da5f5b56060a 122 pr_err("Empty function is called");
Shaun Kelsey 0:da5f5b56060a 123 return -1;
Shaun Kelsey 0:da5f5b56060a 124 }
Shaun Kelsey 0:da5f5b56060a 125
Shaun Kelsey 0:da5f5b56060a 126 // Max30001 Interrupt Assignment Function
Shaun Kelsey 0:da5f5b56060a 127 int MaximSensor::MS_max30001_INT_assignment(uint8_t en_enint_loc, uint8_t en_eovf_loc, uint8_t en_fstint_loc,
Shaun Kelsey 0:da5f5b56060a 128 uint8_t en_dcloffint_loc, uint8_t en_bint_loc, uint8_t en_bovf_loc,
Shaun Kelsey 0:da5f5b56060a 129 uint8_t en_bover_loc, uint8_t en_bundr_loc, uint8_t en_bcgmon_loc,
Shaun Kelsey 0:da5f5b56060a 130 uint8_t en_pint_loc, uint8_t en_povf_loc, uint8_t en_pedge_loc,
Shaun Kelsey 0:da5f5b56060a 131 uint8_t en_lonint_loc, uint8_t en_rrint_loc, uint8_t en_samp_loc,
Shaun Kelsey 0:da5f5b56060a 132 uint8_t intb_Type, uint8_t int2b_Type){
Shaun Kelsey 0:da5f5b56060a 133 pr_err("Empty function is called");
Shaun Kelsey 0:da5f5b56060a 134 return -1;
Shaun Kelsey 0:da5f5b56060a 135 }
Shaun Kelsey 0:da5f5b56060a 136
Shaun Kelsey 0:da5f5b56060a 137 int MaximSensor::MS_max30001readRegister(uint8_t addr, uint32_t *return_data){
Shaun Kelsey 0:da5f5b56060a 138 pr_err("Empty function is called");
Shaun Kelsey 0:da5f5b56060a 139 return -1;
Shaun Kelsey 0:da5f5b56060a 140 }
Shaun Kelsey 0:da5f5b56060a 141
Shaun Kelsey 0:da5f5b56060a 142 int MaximSensor::MS_max30001writeRegister(uint8_t addr, uint32_t data){
Shaun Kelsey 0:da5f5b56060a 143 pr_err("Empty function is called");
Shaun Kelsey 0:da5f5b56060a 144 return -1;
Shaun Kelsey 0:da5f5b56060a 145 }
Shaun Kelsey 0:da5f5b56060a 146
Shaun Kelsey 0:da5f5b56060a 147 int MaximSensor::MS_max30001sync(){
Shaun Kelsey 0:da5f5b56060a 148 pr_err("Empty MS_max30001sync is called");
Shaun Kelsey 0:da5f5b56060a 149 return -1;
Shaun Kelsey 0:da5f5b56060a 150 }