ADI 技术
直播中

何羽衣

7年用户 225经验值
私信 关注
[问答]

请问ADE7953芯片下方的裸露焊盘是否接地?

受到警告
提示: 作者被禁止或删除 内容自动屏蔽

回帖(4)

沈汝

2018-8-9 08:06:49
接到GND上,AGND和DGND连接到一起
举报

何羽衣

2018-8-9 08:13:51
引用: 色色隐隐 发表于 2018-8-9 08:06
接到GND上,AGND和DGND连接到一起

你好,我现在读取 ADE7953 寄存器时,出现以下情况:

条件:输入信号为 220V @50Hz 交流电
1、信号周期问题
但如上图所示周期寄存器 period 读到的值为 32017 (并且数值跳跃较大,像 30481 等),依照数据手册在该输入条件下读到的数值应该是 4475 ± 1

2、单位问题
像电流、电压有效值,电压、电流峰值,功率,电能等参数,从相应的寄存器中读出后的数值单位是什么?
电流是 A,mA,uA;
电压是 V,mV,uV;
功率是 KW,W,mW;
或者说寄存器中的数值与实际测量的信号电气参数之间是一个什么样的换算关系?
等等这些,真是傻傻分不清
 
希望能帮我解答一下
举报

何羽衣

2018-8-9 08:21:40
引用: tvtsterwerw 发表于 2018-8-9 08:13
你好,我现在读取 ADE7953 寄存器时,出现以下情况:

条件:输入信号为 220V @50Hz 交流电

部分代码如下
 
while(1){LED0 = ~LED0;IRQStatusReadA = SPIRead4Bytes(RSTIRQSTATA);if((IRQStatusReadA&BIT18) == BIT18){printf("Energe: %drn",SPIRead4Bytes(AENERGYA));printf("  IRMS: %drn",SPIRead4Bytes(IRMSA));printf("  VRMS: %drn",SPIRead4Bytes(VRMS));printf(" VPEAK: %drn",SPIRead4Bytes(VPEAK));printf(" IPEAK: %drn",SPIRead4Bytes(IAPEAK));printf("PERIOD: %drn",SPIRead2Bytes(PERIOD));}}void ADE7953_Init(void){SPI1_Init();SPI1CS_Init();ADE7953CS = 0; /* 通信方式设置为 SPI */delay_ms(50);ADE7953_RST(); /* 软件复位 */delay_ms(50);ADE7953_ComLock(); /* 锁定通信方式 */delay_ms(50);/* 检测复位成功 */while((SPIRead4Bytes(RSTIRQSTATA) & BIT20) != BIT20){delay_ms(50);printf("ADE7953 resetting...rn");}{printf("ADE7953 OK!rn");}/* read the chip version number */printf("Version : %drn",SPIRead4Bytes(VERSION));/*For optimum performance, Register Address 0x120 must be configured by the user after powering up the ADE7953.*/SPIWrite1Byte(0x00FE,0xAD);SPIWrite2Bytes(0x0120,0x0030);/* 对 ADE7953 进行一些相关配置 */ADE7953Cfg();}void ADE7953Cfg(void){SPIWrite2Bytes(CONFIG,0x0004); /* HPF Enable (high pass filter) */SPIWrite4Bytes(AIGAIN,0x400000);SPIWrite4Bytes(AVGAIN,0x400000); /* 电压通道增益 */SPIWrite4Bytes(AWGAIN,0x400000);SPIWrite4Bytes(AVARGAIN,0x400000);SPIWrite4Bytes(AVAGAIN,0x400000);SPIWrite4Bytes(AIRMSOS,0x000000);SPIWrite4Bytes(AVRMSOS,0x000000); /* 电压通道有效值失调校正 */SPIWrite4Bytes(AWATTOS,0x000000);SPIWrite4Bytes(AVAROS,0x000000);SPIWrite4Bytes(AVAOS,0x000000);SPIWrite4Bytes(BIGAIN,0x400000); /* 电流通道 B 增益 */SPIWrite4Bytes(BWGAIN,0x400000); /* 电流通道 B,有功功率增益 */SPIWrite4Bytes(BVARGAIN,0x400000); /* 电流通道 B,无功功率增益 */SPIWrite4Bytes(BVAGAIN,0x400000); /* 电流通道 B,视在功率增益 */SPIWrite4Bytes(BIRMSOS,0x000000); /* 电流通道 B,有效值失调校正 */SPIWrite4Bytes(BWATTOS,0x000000); /* 电流通道 B,有功功率失调校正 */SPIWrite4Bytes(BVAROS,0x000000); /* 电流通道 B,无功功率失调校正 */SPIWrite4Bytes(BVAOS,0x000000); /* 电流通道 B,视在功率失调校正 */SPIWrite2Bytes(CFMODE,0x0000); /* CF output selection,CF1 and CF2 output is disabled */SPIWrite2Bytes(CF1DEN,0x003F); /* CF1 分频器分母 */SPIWrite2Bytes(CF2DEN,0x003F); /* CF2 分频器分母 */   SPIWrite4Bytes(OVLVL,0x4B0000);   /* 311mv at the input get pead read 0x3DB88C, times 1.2 get this */SPIWrite4Bytes(OILVL,0x4FFFFF); /* 过流值 */SPIWrite1Byte(SAGCYC,0xFF);   /* The SAGCYC register holds a maximum value of 255. *//* At 50 Hz, the maximum sag cycle time is 2.55 seconds */SPIWrite4Bytes(SAGLVL,0x200000);   /* 骤降电压 */SPIWrite2Bytes(ZXTOUT,0xFFFF); /* the maximum programmable timeout period is 4.58 seconds to zero-cross */SPIWrite1Byte(LCYCMODE,0x4F); /* 电流通道 A、B 有、无功线周期累计模式,所有寄存器读后复位 */SPIWrite2Bytes(LINECYC,0x00C8); /* 在线周期电能累计模式下半线周期数 200 *///SPIWrite4Bytes(IRQENA,0x140000);}
举报

何羽衣

2018-8-9 08:27:17
引用: tvtsterwerw 发表于 2018-8-9 08:21
部分代码如下
 
while(1){LED0 = ~LED0;IRQStatusReadA = SPIRead4Bytes(RSTIRQSTATA);if((IRQStatusReadA&BIT18) == BIT18){printf("Energe: %drn",SPIRead4Bytes(AENERGYA));printf("  IRMS: %drn",SPIRead4Bytes(IRMSA));printf("  VRMS: %drn",SPIRead4Bytes(VRMS));printf(" VPEAK: %drn",SPIRead4Bytes(VP ...

问题已解决
 
解决办法,官方给的代码的读函数内部有 1 Byte Dummy,去掉即可。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分