完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
接到GND上,AGND和DGND连接到一起
|
|
|
|
你好,我现在读取 ADE7953 寄存器时,出现以下情况: 条件:输入信号为 220V @50Hz 交流电 1、信号周期问题 但如上图所示周期寄存器 period 读到的值为 32017 (并且数值跳跃较大,像 30481 等),依照数据手册在该输入条件下读到的数值应该是 4475 ± 1 2、单位问题 像电流、电压有效值,电压、电流峰值,功率,电能等参数,从相应的寄存器中读出后的数值单位是什么? 电流是 A,mA,uA; 电压是 V,mV,uV; 功率是 KW,W,mW; 或者说寄存器中的数值与实际测量的信号电气参数之间是一个什么样的换算关系? 等等这些,真是傻傻分不清 希望能帮我解答一下 |
|
|
|
部分代码如下 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);} |
|
|
|
tvtsterwerw 发表于 2018-8-9 08:21 问题已解决 解决办法,官方给的代码的读函数内部有 1 Byte Dummy,去掉即可。 |
|
|
|
只有小组成员才能发言,加入小组>>
1013 浏览 2 评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1401 浏览 2 评论
ADP5092 SYS端口为2.09V,但是REG_OUT为0是什么原因?
1949 浏览 1 评论
ad7193差分输入ain1与ain2差是正值时,读到电压与实际值误差小,但为负值值,误差就变的很大
4278 浏览 2 评论
9069 浏览 1 评论
ADC3442采集,分析数据出现有规则毛刺,请问是哪方面的问题啊?
1573浏览 3评论
AD7190状态寄存器一直是0x80,连续转换模式下RDY不拉低
1703浏览 2评论
1015浏览 2评论
1688浏览 2评论
给ADUM4223 增加信号驱动15V电压就不正常, 波动很大会被烧是什么情况?
1404浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-30 20:50 , Processed in 0.762307 second(s), Total 54, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号