打印
[测量]

rn7302的读写问题

[复制链接]
4306|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhu51231|  楼主 | 2015-8-1 10:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最经搞一个产品,用到电度表芯片RN7302,在读数据的时候,读出的全部为1,有知道的吗,什么原因?
读取的相关程序如下:
uint32_t        readspi(uint16_t        spiaddr)
{
        uint8_t        dat,i,j,sw;
        uint32_t        rdata=0;
        spiaddr=0x130f;//读取bank1的3个字节地址0x0f,应该是0x00808080,作为检测程序用
        clrscsn;//拉低SCSN片选
        Delay_us(4);
        dat=spiaddr;//写地址0xf
        for(i=0;i<8;i++)
        {
                setsclk;//值1clk时钟
                if(dat&0x80)
                setsdi;//置1sdi//数据1写入RN7302
                else
                clrsdi;        //数据0写入RN7302
                Delay_us(4);
                clrsclk;        //置0clk时钟
                dat<<=1;
                Delay_us(4);               
        }
        dat=(spiaddr>>8)&0xf0;//写指令0x10
        for(i=0;i<8;i++)
        {
                setsclk;
                if(dat&0x80)
                setsdi;
                else
                clrsdi;
                Delay_us(4);
                clrsclk;       
                dat<<=1;       
                Delay_us(4);
        }       
        sw=((spiaddr>>8)&0x0f);//取出读取的字节数0x03
        rdata=0;
        for(j=0;j<sw;j++)
        {
                dat=0;
                for(i=0;i<8;i++)
                {
                        setsclk;
                        dat<<=1;
                        Delay_us(4);
                        clrsclk;       
                        if(sdo)//从RN7302的SDO读取数据
                        dat|=0x01;       
                        Delay_us(4);
                }                       
                rdata<<=8;
                rdata|=dat;//读出的数据是0x00ffffff
        }               
        dat=0;
        for(i=0;i<8;i++)//最后读取校验和
        {
                setsclk;
                dat<<=1;
                Delay_us(4);
                clrsclk;       
                if(sdo)
                dat|=0x01;       
                Delay_us(4);
        }
        cs=dat;//读出的数据都是0xff
        setscsn;
        return        rdata;
}


原理图.pdf

46.4 KB

相关下载

相关帖子

沙发
zhu51231|  楼主 | 2015-8-1 10:58 | 只看该作者
原理图中RSTN我接入一个IO口了,上电时是0,初始化成1,应该不会有问题吧?
问题究竟出在什么地方呢?立等,希望有用过的或锐能微的技术给予解答。

使用特权

评论回复
板凳
myeo2006| | 2015-8-13 10:55 | 只看该作者
你是哪个公司的,可以加我QQ60417039

使用特权

评论回复
地板
music1273| | 2017-5-4 14:03 | 只看该作者
我也遇到你说的那个问题了,你是怎么解决的呢?

使用特权

评论回复
5
ningling_21| | 2017-5-17 19:13 | 只看该作者
music1273 发表于 2017-5-4 14:03
我也遇到你说的那个问题了,你是怎么解决的呢?

硬件电路没问题吧

使用特权

评论回复
6
music1273| | 2017-10-20 12:00 | 只看该作者
ningling_21 发表于 2017-5-17 19:13
硬件电路没问题吧

是程序问题,度的时候时钟没加上

使用特权

评论回复
7
小白123456| | 2017-12-14 20:53 | 只看该作者
希望楼主大人分享一下7302写寄存器的程序359163032@qq.com

使用特权

评论回复
8
ningling_21| | 2017-12-19 17:58 | 只看该作者
小白123456 发表于 2017-12-14 20:53
希望楼主大人分享一下7302写寄存器的程序

遇到什么问题?

使用特权

评论回复
9
小白123456| | 2017-12-22 09:05 | 只看该作者

我不加外部电压时,读频率还是有值。这个需要用软件处理一下?还是我设置不对?

使用特权

评论回复
10
ningling_21| | 2017-12-22 09:08 | 只看该作者
小白123456 发表于 2017-12-22 09:05
我不加外部电压时,读频率还是有值。这个需要用软件处理一下?还是我设置不对? ...

初始化正常的前提下,可以软件把频率改为0

使用特权

评论回复
11
DaNan| | 2019-10-9 10:20 | 只看该作者
您好,有关锐能微RN7302的spi读出数据一直是1想问您一下

使用特权

评论回复
12
嵌入式小白白| | 2022-10-23 21:26 | 只看该作者
DaNan 发表于 2019-10-9 10:20
您好,有关锐能微RN7302的spi读出数据一直是1想问您一下

解决了吗,我也遇到了同样的问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

117

帖子

1

粉丝