久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3458|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

ADE7758 SPI讀寫(xiě)問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:266943 發(fā)表于 2018-4-4 16:27 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
想做一個(gè)ADE7758的SPI通信驅(qū)動(dòng)程序,用的STVD軟件庫(kù)函數(shù),模擬SPi讀寫(xiě)ADE7758寄存器,程序如下:
void SPI_Write(unsigned char type,unsigned long int wdata,unsigned char databit)   
{   
    unsigned char loop = 0;   

    type = type & 0x7F;   
    type = type | 0x80;  
                GPIO_WriteLow(SCLK); //時(shí)鐘
                GPIO_WriteLow(NCS); //片選信號(hào)
    for(loop = 0; loop < 8; loop++)   
    {   
                  GPIO_WriteHigh(SCLK);  
                        nop();   
                        if(type&0x80)
                    GPIO_WriteHigh(DIN);
      else        
                    GPIO_WriteLow(DIN);         
                  nop();   
                        GPIO_WriteLow(SCLK);   
                        nop();   
                        type = (type << 1);
                         nop();
    }//end of for()   
    delayus(10);
    for(loop = 0; loop < databit; loop++)   
    {   
      GPIO_WriteHigh(SCLK);   
                        nop();   
                        if(wdata&0x800000)//24位
                          GPIO_WriteHigh(DIN);
                  else        
                    GPIO_WriteLow(DIN);         
                        nop();   
                        GPIO_WriteLow(SCLK);   
                        nop();   
                        wdata = (wdata << 1);
                         nop();
                        
    }//end of for()   
     GPIO_WriteHigh(NCS);  
}//end of write7758()   

unsigned long SPI_Read(unsigned char type,unsigned char databit)   
{   
    unsigned char loop;   
    unsigned long  rtdata = 0;   
    type = type & 0x7F;   
    type = type | 0x00;  
                 GPIO_WriteLow(SCLK);
                  GPIO_WriteLow(NCS);
    for(loop = 0;loop < 8;loop ++)   
    {   
                  GPIO_WriteHigh(SCLK);   
      nop();   
      if(type&0x80)
                  GPIO_WriteHigh(DIN);
      else        
                  GPIO_WriteLow(DIN);        
      nop();   
      GPIO_WriteLow(SCLK);   
      nop();   
      type = (type << 1);
                         nop();
    }   
                delayus(10);   
    for(loop = 0;loop < databit;loop ++)   
    {                   rtdata = (rtdata << 1);
                        GPIO_WriteHigh(SCLK);   
      nop();   
         
      if(GPIO_ReadInputPin(DOUT))
                          rtdata |=0x01;   
      nop();   
      GPIO_WriteLow(SCLK);   
      nop();  
               
    }   
         GPIO_WriteHigh(NCS);
    return(rtdata);  
               
}//end of read7758()

同時(shí)讀寫(xiě)3個(gè)電壓增益寄存器,寄存器為有符號(hào)12位
    SPI_Write(0x24,0x055500,16);   //寫(xiě)相位A的電壓增益寄存器   
    SPI_Write(0x25,0x055500,16);   //寫(xiě)相位B的電壓增益寄存器   
    SPI_Write(0x26,0x055500,16);   //寫(xiě)相位C的電壓增益寄存器   

    DATA[0]= SPI_Read(0x24,16);
    DATA[1]= SPI_Read(0x25,16);
    DATA[2]= SPI_Read(0x26,16);

仿真了一下得的結(jié)果不一樣
DATA[0]=1365
DATA[1]=1195
DATA[2]=1365
A、C相數(shù)是對(duì)的,B相不對(duì),讀電流增益寄存器正好相反B相是對(duì)的,AC錯(cuò)了,是時(shí)序有問(wèn)題還是其他原因,求幫助。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:287575 發(fā)表于 2018-4-4 18:09 | 只看該作者
SPI_Write(0x24,0x055500,16);   //寫(xiě)相位A的電壓增益寄存器
if(wdata&0x800000)//24位
你到底是16位還是24位,ADE7758我沒(méi)用,但類(lèi)似的芯片都是24位,三個(gè)字節(jié)
應(yīng)該是SPI_Write(0x24,0x055500,24);既然讀寫(xiě)都是三字節(jié),就沒(méi)必要帶形參了,直接SPI_Write(ADDR, DATA)
回復(fù)

使用道具 舉報(bào)

板凳
ID:266943 發(fā)表于 2018-4-7 08:50 | 只看該作者
寄存器有8位、12位,16位,24位四種電壓增益寄存器是12位,按照16位寫(xiě),高位開(kāi)始寫(xiě),SPI_Write(0x24,0x055500,16)是向12位寄存器寫(xiě)入數(shù)值0x555,我對(duì)三個(gè)同類(lèi)型寄存器進(jìn)行寫(xiě)入讀取操作,讀出來(lái)結(jié)果不一樣,就是想問(wèn)問(wèn)可能是什么原因
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品一区二三区不卡 | 羞羞视频在线网站观看 | 日本一区二区三区精品视频 | 久久精品国产久精国产 | 四季久久免费一区二区三区四区 | 日韩快播电影 | 欧美a在线 | 天天干天天谢 | 欧美一区二区三区在线观看 | 天天看天天爽 | 一区二区三区免费 | 亚洲欧洲在线观看视频 | 99久久久国产精品免费消防器 | 在线免费看91 | 亚洲国产成人精品女人久久久 | 男女网站免费观看 | 区一区二在线观看 | 99这里只有精品视频 | 成人网av | 亚洲精选一区二区 | 蜜桃精品视频在线 | 性高湖久久久久久久久3小时 | 精品久久一区二区三区 | 国产一级特黄真人毛片 | 欧美最猛黑人xxxⅹ 粉嫩一区二区三区四区公司1 | 欧美日韩网站 | 免费观看一级毛片 | 99久久中文字幕三级久久日本 | 99精品一区二区 | 涩涩视频在线观看免费 | 99亚洲精品 | 伊人伊人| 国产乱码精品一品二品 | 中文字幕精品一区 | 欧美国产亚洲一区二区 | 精品国产一区二区国模嫣然 | 日本三级黄视频 | caoporn地址 | 日日操夜夜操视频 | 婷婷亚洲综合 | 99国产精品久久久久老师 |