已回答假定已回答

ADE7880 SPI通讯和读取数据问题

lanxin 在 2015-5-6 詢問的問題
最後回覆由Quanff於2017-11-17提供

专家们好,我现在用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

結果