This is a library for the Texas Instruments PGA112

PGA122_Driver.h

Committer:
rvasquez6089
Date:
2019-01-21
Revision:
0:4cb6d8393e9d
Child:
1:b3fee6ce395f

File content as of revision 0:4cb6d8393e9d:

#ifndef PGA112_DRIVER_H
#define PGA112_DRIVER_H
#include "mbed.h"
#define CMD_WRITE 0x2A

#define GAIN_1    0x0
#define GAIN_2    0x1
#define GAIN_4    0x2
#define GAIN_8    0x3
#define GAIN_16   0x4
#define GAIN_32   0x5
#define GAIN_64   0x6
#define GAIN_128  0x7

#define CAL_1     0xC // Channel 12
#define CAL_2     0xD // Channel 13
#define CAL_3     0xE // Channel 14
#define CAL_4     0xF // Channel 15
#define VCAL_CH0  0x0 // channel 0
#define CH_1      0x1 // channel 1


/** This is library to drive the PGA112. Basic funcitons have been implemented.
*
*/

class PGA112
{
public:
  /** Create a PGA object
  * This takes a pointer object of an SPI bus. Becareful, this is not thread safe
  * and may cause hanging
  *
  *  @param SPI_BUS pointer to SPI object
  *  @param Chip_Select chip select line for the PGA. pointer plz
  */
  PGA112(SPI *SPI_BUS, DigitalOut *Chip_Select);
  /** This will set the gain for the PGA
  *  Please only use binary gains.....1,2,4,8,16,32,64,128
  *
  * @param gain_set parameter to set gain, see comment for acceptable gain values
  */
  void set_gain(int gain_set);
  /** Sets the channel selection
  *  CAL_1     0xC // Channel 12  GND
  *  CAL_2     0xD // Channel 13  0.9*Vcal
  *  CAL_3     0xE // Channel 14  0.1*Vcal
  *  CAL_4     0xF // Channel 15  Vref (2.5000 volts)
  *  VCAL_CH0  0x0 // channel 0   Vcal (5.0000 volts)
  *  CH_1      0x1 // channel 1
  *
  * @param channel_set the channel you want to select. See above table for values
  */
  void set_channel(int channel_set);
  /** Sets the channel to CAL1 channel which is connected to GND
  */
  void set_CAL1();
  /** Sets the channel to CAL2 channel which is connected to 0.9*Vcal (Vcal = 5)
  */
  void set_CAL2();
  /** Sets the channel to CAL3 channel which is connected to 0.1*Vcal (Vcal = 5)
  */
  void set_CAL3();
  /** Sets the channel to CAL4 channel which is connected to Vref (2.5V)
  */
  void set_CAL4();
private:
  SPI *PGA;
  DigitalOut *CS;
  int gain;
  int channel;
  char gain_chan;
};
#endif