ADI 技术
直播中

胡雄相

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

ADE7880 SPI通讯和读取数据不正常

专家们好,我现在用ADE7880和单片机进行SPI通讯,参照
*SPI dirver
*SPI0 of LPC2134 --- ADE7858
* SSpin must be toggled three times high to low to make ADE7858 using SPI port
*2008-10-08
这个7858的SPI通讯程序,时序上应该没有错,目前我主要是用来测试SPI通讯问题,因此只加了A相电压,我想读取其有效值即AVRMS寄存器(地址0X43C1)内容,可是不管我加电压(220V),和不加电压读取的数都是不变,输出为16777215,总是这个数,我是32位读取,是4个字节,如果单独一个一个显示全部是255,相当于全1. 专家们可不可以给我提供一个SPI测试程序,我用的是AVR328的8位单片机,本身带有SPI。(我的程序思想:启动SPI,使能ADE7880,选择PMS0工作模式,然后启动RUN,通过SPI读取AVRMS数据,用串口输出数据
目前我没有找到这个读取不正常的具体原因因此有以下问题请教。
1、怎么判断ADE7880是否正常工作。也就是最小系统运行正常。
2、我原来设计的时候忽略了电压配置问题,单片机电源是5V,跟ADE7880(我是采用3.3V)进行通讯PM0、PM1都是直接跟单片机引脚相连的。这样会不会烧坏ADE7880,不过现在已对威廉希尔官方网站 进行改动。
3、我们进行SPI通讯前要做那些必要的配置。
4、单片机SPI本身有一个数据模式配置有四种
  • SPI_MODE0(上升沿采样,下降沿置位,SCK闲置时为0),
  • SPI_MODE1(上升沿置位,下降沿采样,SCK闲置时为0),
  • SPI_MODE2(下降沿采样,上升沿置位,SCK闲置时为1),
  • SPI_MODE3(下降沿置位,上升沿采样,SCK闲置时为1)。
不知道这个要用哪一个才能跟ADE7880保持一致,不过我四种都试过,一样没有效果。
非常能得到专家解答,如果也在做这方面的研究设计的可以Q我以互相帮忙。Q1535208556

回帖(4)

沈汝

2018-9-30 14:55:45
受到警告
提示: 作者被禁止或删除 内容自动屏蔽
举报

潘佼佼

2018-9-30 15:09:32
有沒有與ade7880連接起來。
可以讀下列幾個暫存器
#define ADE7880_VERSION 0xE707   //ADE7880的晶片版本,回傳值固定是01
#define ADE7880_LASTADD 0xE9FE   //ADE7880是否有動作不正常,回傳上一次動作成功的暫存器地址
我是這樣來判斷ade7880是否正常起來。
举报

李桢

2018-9-30 15:18:26
引用: ureuswerwr 发表于 2018-9-30 21:15
有沒有與ade7880連接起來。
可以讀下列幾個暫存器
#define ADE7880_VERSION 0xE707   //ADE7880的晶片版本,回傳值固定是01

我对寄存器写完之后,再读取该寄存器的值,跟写入的一致,但是读保存上次成功地址的寄存器始终为0.请问这是什么问题呢?
举报

沈汝

2018-9-30 15:35:55
1.确保VDD加上了3.3V,检查AVDD和DVDD是否有2.5V输出,检查Vref是否有1.2V输出,测量之前需要把PSM0拉高,PSM1拉低。
2.电平不匹配建议使用电平转换,或直接换成3.3V的MCU
3.通讯之前需要把PSM0拉高,PSM1拉低。

楼上也说的很对,先读有默认值的寄存器检查通讯是否正常。
举报

更多回帖

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