2017-05-06 14:50:18 +00:00
|
|
|
|
/**************************************************************************
|
|
|
|
|
* Драйвер для INA219
|
|
|
|
|
**************************************************************************/
|
|
|
|
|
#ifndef _INA219DRV_H_
|
|
|
|
|
#define _INA219DRV_H_
|
|
|
|
|
#include "ina219/ina219.h"
|
|
|
|
|
#include "device.h"
|
|
|
|
|
#include "timer_api.h"
|
|
|
|
|
#include "driver/i2c_drv.h"
|
|
|
|
|
|
|
|
|
|
typedef struct _ina219data {
|
|
|
|
|
signed short voltage; // Voltage, 1mV
|
|
|
|
|
signed short current; // Current, 50uA?
|
|
|
|
|
signed short power; // Power, 1mW
|
|
|
|
|
unsigned short shunt; // 10uV
|
|
|
|
|
} INA219DATA, *PINA219DATA;
|
|
|
|
|
|
|
|
|
|
typedef struct _ina219drv {
|
|
|
|
|
unsigned char status;
|
|
|
|
|
unsigned char addr;
|
|
|
|
|
signed char init;
|
|
|
|
|
unsigned char tmp;
|
|
|
|
|
unsigned short config; // регистр конфигурации INA219
|
|
|
|
|
unsigned short calibration; // коэф. шунта для INA219
|
|
|
|
|
unsigned int count;
|
|
|
|
|
unsigned int errs;
|
|
|
|
|
gtimer_t timer;
|
|
|
|
|
union { // буфер
|
|
|
|
|
unsigned char uc[4];
|
|
|
|
|
unsigned short us[2];
|
|
|
|
|
signed short ss[2];
|
|
|
|
|
unsigned int ui;
|
|
|
|
|
} buf_i2c;
|
2017-09-22 07:44:42 +00:00
|
|
|
|
i2c_drv_t i2c;
|
2017-05-06 14:50:18 +00:00
|
|
|
|
} INA219DRV, *PINA219DRV;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define INA219_I2C_PIN_SDA PC_4
|
|
|
|
|
#define INA219_I2C_PIN_SCL PC_5
|
|
|
|
|
#define INA219_I2C_BUS_CLK 300000 //hz
|
|
|
|
|
#define INA219_TIMER TIMER3 // используемый таймер
|
|
|
|
|
|
|
|
|
|
#endif // _INA219DRV_H_
|