⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cs5463.h

📁 著名的CS5463抄表模块
💻 H
字号:
/*Copyright(C) 2007,Huaruijie Co.Ltd.
文件名:	cs5463.h
版权:华瑞杰公司 2007
作者: 开发部 	zhw  
描述: 提供三片CS5463、一片CS5460A 电压数据采集和标定、温度和直流量的AD接口

文件记录:
1. 2007-01-24 zhw <Create> 在cs5460.c的基础上建立此文件
*/
#ifndef _ADC_CS5463H_
#define _ADC_CS5463H_

#include "basetype.h"

//#include "HRJ803.h"
#ifdef	  _CS5463_GLOBE_
#	define _CS5463_USE_ 
#else
#	define _CS5463_USE_	extern
#endif

typedef struct
{
     DWORD dwVACOffset;//电压通道AC OFFSET系数
	 DWORD dwVACGain;  //电压通道AC GAIN系数
     DWORD dwVDCOffset; //电压通道DC OFFSET系数

	 DWORD dwIACOffset;
     DWORD dwIACGain;
     DWORD dwIDCOffset;

	 DWORD dwPowerOffset;
     INT32 iPhaseOffset; //Configuration Register PC[6:0]  BIT6是符号位
	 DWORD dwPulseRateE;
}SADCoef;//标定结构
typedef struct 
{
    //以下用于温度传感器的测量
	INT32 dw100Value; //100欧姆电阻对应的AD值
	INT32 dw200Value; //200欧姆电阻对应的AD值
	DWORD dw100Real; //100欧姆电阻的精确值,
    DWORD dw200Real; //200欧姆电阻的精确值,
    //以下用于直流量的测量
	INT32 dw0Value;
	INT32 dw5Value;
	
}SCs5460Coef;//温度、直流量的AD标定结构

_CS5463_USE_ INT32 g_iAdcUpdateFlag;	//有效值数据更新标识,在中断内置位。请外部程序在使用后请清除,以便下次识别。
_CS5463_USE_ INT32 g_iAdcWaveUpdateFlag;	//波形数据更新标识,在中断内置位。请外部程序在使用后请清除,以便下次识别。
_CS5463_USE_ INT32 g_iAdcPulseUpdateFlag; //脉冲计数标识,在中断内置位。请外部程序在使用后请清除,以便下次识别。
_CS5463_USE_ BYTE byStartWaveSample;  //是否开始进行波形采样
//_CS5463_USE_ SCs5460Coef sCs5460Coef; //温度、直流量的标定系数
//**********************************接口函数************************************
void InitAdc(SADCoef *pADCoef,INT32 iChipSum); //pADCoef==NULL时,gain及offset采用CS5460A硬件复位时的默认参数
BOOL AdcVoltCal(SADCoef *pADCoef,INT32 iChipSum);//pADCoef==NULL时,gain及offset采用CS5460A硬件复位时的默认参数
BOOL IsMainPowerOff(void);//5V电源是否掉电
void InitAdc_cs5460(void); //初始化温度传感器、直流量的AD
void GetAdcValue_cs5460(DWORD *pdwValue); //获得直流量、温度的原始值

//*********************宏定义,外部函数不需要使用************

#define ADRST   P10		//P0.10 
#define ADCSA	P11		//P0.11 
#define ADCSB   P12		//P0.12 
#define ADCSC   P13		//P0.13 
#define ADCSO   P14		//P0.14 
#define ADRSTU5   P10		//P4.10 

#define ADINT	P11    //p2.11  EINT1
#define PFMON_INT P12  //P2.12  EINT2


//*****************cs5460的寄存器地址**开始******************
#define CONFR   0  //配置
#define IDCOFF  1 //电流通道DC偏移                  
#define IGN     2 //电流通道增益                    
#define VDCOFF  3 //电压通道DC偏移                  
#define VGN     4 //电压通道增益                    
#define CYCCONT 5 //一个计算周期的A/D转换数
#define PULRATE 6 //
#define IR      7//瞬时电流 
#define VR      8//瞬时电压 
#define PR      9//瞬时功率 
#define ER      10
#define IRMSR   11//电流有效值       
#define VRMSR   12  //电压有效值     
#define TBCR    13
#define POFFR   14 //功率偏移量
#define STATUSR 15  //状态
#define IACOFFR 16 //电流通道AC偏移  
#define VACOFFR 17 //电压通道AC偏移  
#define MASKR   26 //中断屏蔽
#define CTRLR   28 //控制
//*****************cs5460A的寄存器地址 **结束********************


//*****************cs5463的寄存器地址 **开始********************
//寄存器0页
#define CONFR   0   //配置
#define IDCOFF  1   //电流通道DC偏移
#define IGN     2   //电流通道增益
#define VDCOFF  3   //电压通道DC偏移
#define VGN     4   //电压通道增益
#define CYCCONT 5   //一个计算周期的A/D转换数
#define PULRATE 6   //设置E1、E2、E3的能量-脉冲速率****
#define IR      7  //瞬时电流
#define VR      8  //瞬时电压
#define PR      9  //瞬时功率
#define Pactive 10 //有功功率*****
#define IRMSR   11 //电流有效值
#define VRMSR   12   //电压有效值
#define FrequencyR  13 //电网周期****
#define POFFR   14    //功率偏移量
#define STATUSR 15   //状态
#define IACOFFR 16   //电流通道AC偏移
#define VACOFFR 17   //电压通道AC偏移
#define MODER   18  //操作模式
#define TR      19  //温度
#define Qavg    20  //平均无功功率(90°移相)
#define QR      21  //瞬时无功功率(90°移相)
#define Ipeak   22  //峰值电流
#define Vpeak   23  //峰值电压
#define Qtrig   24  //用功率三角形计算出的无功功率
#define PF      25  //功率因数
#define MASKR   26  //中断屏蔽
#define SR      27  //视在功率
#define CTRLR   28  //控制
#define PhR     29  //谐波有功功率
#define PfR     30  //基波有功功率
#define QfR     31  //基波无功功率
//寄存器1页
#define  Tgain   2  //温度传感器增益
#define  Toff    3  //温度传感器偏移
//寄存器2页
#define  VSAGcycle   6  //电压下跌持续时间
#define  VSAGlevel   7  //电压下跌电平
#define  ISAGcycle   10  //电流下跌持续时间
#define  ISAGlevle   11 //电流下跌电平
//**************cs5463的寄存器地址 **结束*********************//


//****************命令开始*************************//
#define STARTC   0XE8  //  continus computation cycle command
#define STARTS   0XE0  //  single computation cycle command
#define SYNC0    0XFE  //结束串口重新初始化
#define SYNC1    0XFF  //开始串口重新初始化
#define RESET    0XA0  //软件复位
#define STANDBY  0XA1  //暂停并进入等待模式,这种模式允许快速上电
#define SLEEP    0xA2  //暂停并进入睡眠模式,这种模式要求一个较长的上电时间
#define RESERVE  0xA3  //保留
//****************命令结束*************************//
#endif 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -