激情综合丁香-激情综合六月-激情综合婷婷亚洲图片-激情综合图区-激情综合网五月


主題:EM9280-SPI通信問(wèn)題

  共有97787人關(guān)注過(guò)本帖    
帥哥喲,離線(xiàn),有人找我嗎?
jagict
1樓 信息 | 搜索 | 郵箱


加好友 發(fā)短信
EM9280-SPI通信問(wèn)題  發(fā)帖心情 Post By:2013-11-1 16:33:00   [只看該作者]

請(qǐng)教,我要實(shí)現(xiàn)主控板與一個(gè)外接AD芯片AD7949的SPI通信,按照例程上的SPI程序打開(kāi)SPI設(shè)備沒(méi)有報(bào)錯(cuò),writefile與readfile也沒(méi)有報(bào)錯(cuò),writefile發(fā)送AD芯片需要的寄存器配置數(shù)據(jù),readfile查看RxBuffer的數(shù)據(jù),一直都是0,好像是通信不成功,DEBUG口輸出如下信息:
SPI_Opened SPI:-792216736
mxs_spi_txrx_pio-W: timeout on waiting CRTL0_RUN cleared
mxs_spi_txrx_pio-R: timeout on waiting FIFO_EMPTY

請(qǐng)問(wèn)可能的問(wèn)題在哪里? 第一次調(diào)試SPI,請(qǐng)大家?guī)兔Γ瑫簳r(shí)無(wú)示波器看波形。

  單帖管理 | 引用 | 回復(fù) 回到頂部
x10
2樓


  發(fā)帖心情 Post By:2013-11-1 17:05:00   [只看該作者]

有沒(méi)有先跑跑我們的例子程序,把SPI_DOUT與SPI_DIN短接,例子程序是一個(gè)環(huán)回測(cè)試,程序能正常運(yùn)行嗎?

  單帖管理 | 引用 | 回復(fù) 回到頂部
x10
3樓


  發(fā)帖心情 Post By:2013-11-1 17:17:00   [只看該作者]

另外,你手上這張板子是Linux-2.6.35的,還是Linux-3.9.7?

  單帖管理 | 引用 | 回復(fù) 回到頂部
帥哥喲,離線(xiàn),有人找我嗎?
jagict
4樓 信息 | 搜索 | 郵箱


加好友 發(fā)短信
  發(fā)帖心情 Post By:2013-11-1 17:28:00   [只看該作者]

板子是燒寫(xiě)wince系統(tǒng)的,我試試能不能成功,沒(méi)有短接的話(huà)例子程序也是一樣的輸出信息。

  單帖管理 | 引用 | 回復(fù) 回到頂部
zxw
5樓


  發(fā)帖心情 Post By:2013-11-1 17:33:00   [只看該作者]

有沒(méi)有示波器看看時(shí)序?qū)Σ粚?duì)或波形好不好。
我們也看看這個(gè)器件。

  單帖管理 | 引用 | 回復(fù) 回到頂部
zxw
6樓


  發(fā)帖心情 Post By:2013-11-1 17:37:00   [只看該作者]


剛看了這個(gè)AD器件,是一個(gè)14位的,你使用時(shí),需要使用16位SPI數(shù)據(jù)通訊,請(qǐng)確認(rèn)一下:
SPI.h中有一個(gè)定義:
#define UseBitCount16   0  //修改該定義為0或1,實(shí)現(xiàn)8位數(shù)據(jù)位或16位數(shù)據(jù)位通訊
把0改為1

  單帖管理 | 引用 | 回復(fù) 回到頂部
帥哥喲,離線(xiàn),有人找我嗎?
jagict
7樓 信息 | 搜索 | 郵箱


加好友 發(fā)短信
  發(fā)帖心情 Post By:2013-11-2 9:12:00   [只看該作者]

好的,已經(jīng)去要示波器,對(duì)于C#版本就是把spiinit.eLength 定義為SSP_WORD_LENGTH_8BITS =  0xF 吧;
另外定義sSPI.BitCount = 16,Config里面有哪個(gè)參數(shù)需要配置嗎,spiinit.u16TransferCount = 0這個(gè)要改嗎?
[此貼子已經(jīng)被作者于2013-11-2 9:17:47編輯過(guò)]

  單帖管理 | 引用 | 回復(fù) 回到頂部
帥哥喲,離線(xiàn),有人找我嗎?
jagict
8樓 信息 | 搜索 | 郵箱


加好友 發(fā)短信
  發(fā)帖心情 Post By:2013-11-2 10:12:00   [只看該作者]

用while無(wú)限循環(huán)Readfile,DEBUG口一直輸出mxs_spi_txrx_pio-R: timeout on waiting FIFO_EMPTY,用示波器看了下SPI四個(gè)接口的波形,只有MOSI是高電平,其他管腳都是低電平,沒(méi)有時(shí)鐘信號(hào)的樣子,我是在CN9的3~6測(cè)的,這是什么情況。

  單帖管理 | 引用 | 回復(fù) 回到頂部
帥哥喲,離線(xiàn),有人找我嗎?
yy
9樓 信息 | 搜索 | 郵箱


加好友 發(fā)短信
  發(fā)帖心情 Post By:2013-11-4 9:08:00   [只看該作者]

例程里是8bit的,你可能需要改成16bit的。
定義
private const int SSP_WORD_LENGTH_16BITS = 0xF;
然后后面
spiinit.eLength = SSP_WORD_LENGTH_16BITS;

而sSPI.BitCount是你要發(fā)送數(shù)據(jù)的長(zhǎng)度,你確定是16嗎?還有波形有辦法發(fā)我郵箱下嗎?我郵箱yy@emtronix.com

  單帖管理 | 引用 | 回復(fù) 回到頂部
帥哥喲,離線(xiàn),有人找我嗎?
jagict
10樓 信息 | 搜索 | 郵箱


加好友 發(fā)短信
  發(fā)帖心情 Post By:2013-11-4 10:20:00   [只看該作者]

數(shù)據(jù)的長(zhǎng)度指的是幾位還是幾個(gè)字節(jié)?波形就是MOSI管腳3V高電平,波形是正弦但相位不穩(wěn)定,看起來(lái)像雙絞線(xiàn),其他三個(gè)管腳都是低電平,波形沒(méi)有規(guī)律。還需要看圖片嗎

  單帖管理 | 引用 | 回復(fù) 回到頂部
帥哥喲,離線(xiàn),有人找我嗎?
yy
11樓 信息 | 搜索 | 郵箱


加好友 發(fā)短信
  發(fā)帖心情 Post By:2013-11-4 11:06:00   [只看該作者]

數(shù)據(jù)就是你要發(fā)送的數(shù)據(jù)的個(gè)數(shù),如果填5,8bit就是5字節(jié),16bit就是10字節(jié)。最后是有個(gè)波形給我們參考下。
[此貼子已經(jīng)被作者于2013-11-4 11:51:59編輯過(guò)]

  單帖管理 | 引用 | 回復(fù) 回到頂部
zxw
12樓


  發(fā)帖心情 Post By:2013-11-4 11:07:00   [只看該作者]

數(shù)據(jù)長(zhǎng)度是指一次SPI通訊的數(shù)據(jù)位長(zhǎng)度,一般是8位或16位,根據(jù)SPI從設(shè)備而定的。
MOSI管腳波形是正弦,就肯定不對(duì)了,應(yīng)該是很好的方波才對(duì),這里所有的信號(hào)都應(yīng)該是方波:SCLK、MISO、MOSI、CS。

  單帖管理 | 引用 | 回復(fù) 回到頂部
帥哥喲,離線(xiàn),有人找我嗎?
jagict
13樓 信息 | 搜索 | 郵箱


加好友 發(fā)短信
  發(fā)帖心情 Post By:2013-11-4 11:23:00   [只看該作者]

那BitCount我就設(shè)置為16了?  指的是16位的數(shù)據(jù)而不是數(shù)據(jù)有16個(gè)字節(jié)?
四個(gè)管腳都不對(duì)那怎么排查問(wèn)題呢?我上電后直接測(cè)量四個(gè)管腳的波形也都是正弦,這個(gè)對(duì)嗎?需要先配置IO嗎?
之前說(shuō)要把DIN與OUT短接測(cè)下,但是我有外接電路怕出問(wèn)題沒(méi)有試過(guò)。

  單帖管理 | 引用 | 回復(fù) 回到頂部
帥哥喲,離線(xiàn),有人找我嗎?
yy
14樓 信息 | 搜索 | 郵箱


加好友 發(fā)短信
  發(fā)帖心情 Post By:2013-11-4 11:54:00   [只看該作者]

修改下,前面說(shuō)錯(cuò)了,非常抱歉。BitCount的值為8或者16,分別表示8bits還是16bits。
有2個(gè)地方要修改
一個(gè)是SPIConfigure函數(shù)里的spiinit.eLength = SSP_WORD_LENGTH_16BITS;
一個(gè)是ReadFile或WriteFile時(shí)的SPI_INFO結(jié)構(gòu)體sSPI.BitCount = 16;

[此貼子已經(jīng)被作者于2013-11-4 18:08:59編輯過(guò)]

  單帖管理 | 引用 | 回復(fù) 回到頂部
帥哥喲,離線(xiàn),有人找我嗎?
jagict
15樓 信息 | 搜索 | 郵箱


加好友 發(fā)短信
  發(fā)帖心情 Post By:2013-11-4 13:24:00   [只看該作者]

幫忙看一下配置吧,現(xiàn)在的波形沒(méi)什么指導(dǎo)意義,就是MOSI高電平正弦波形,其他低電平幾乎無(wú)信號(hào)。
主函數(shù):
            hSPI = SPI.SPIOpen();
            if...
            SPI.SPISetBandRate(hSPI, SPI.SPI_TRANSFER_HS_NORMAL_SPEED);
            TxBuffer[0] = 0xfc;  //主機(jī)發(fā)送的數(shù)據(jù)_低8位
            TxBuffer[1] = 0xf3;  //主機(jī)發(fā)送的數(shù)據(jù)_高8位
            sSPI.BitCount = 2;
            sSPI.pDatBuf = pTxBuffer;
            sSPI.dwDatLen = 2;
            sSPI.bLockCS = 0;
            Marshal.Copy(TxBuffer, 0, pTxBuffer, 2);
            bRes = SPI.WriteFile(hSPI, ref sSPI, sizeSPI, ref uLen, 0);
            if (!bRes)...
            sSPI.BitCount = 4;
            sSPI.pDatBuf = pRxBuffer;
            sSPI.dwDatLen = 10;
            sSPI.bLockCS = 1;
            while (true)
            {
                bRes = SPI.ReadFile(hSPI, ref sSPI, sizeSPI, ref uLen, 0);
            }
 SPI.CS文件:
 public static bool SPIConfigure(int hDevice)
        {
            int sizeSSP_INIT = Marshal.SizeOf(typeof(SSP_INIT));
            SSP_INIT spiinit;
            spiinit.eMode = SSP_MODE_SPI;
            spiinit.eLength = SSP_WORD_LENGTH_16BITS;
            spiinit.bDmaEnable = 0;                // 0: dma disabled, 1: dma enabled
            spiinit.b_ceata_ccs_err_en = 0;        // CEATA Unexpected CCS Error logic enable. 0: disabled, 1: enabled
            spiinit.bPhase = 0;                    // SPI, MemStick, and SD modes
            spiinit.bPolarity = 0;                 // SPI, MemStick, and SD modes
            spiinit.bSlave = 0;                    // 0: SSP is Master, 1: SSP is Slave
            spiinit.bIgnoreCrc = 0;                // Ignore the response CRC
            spiinit.bBusWidth4 = 0;                // 0: 1-bit bus, 1: 4 bit bus

            spiinit.bWaitIrq = 0;
            spiinit.bLongResp = 0;                 // Get long response from device
            spiinit.bCheckResp = 0;                // Check Response against reference to insure integrity of response
            spiinit.bGetResp = 0;                  // wait for a response

            spiinit.u16TransferCount = 0;
            spiinit.bEnable = 0;                   // Command Transmit Enable.
            spiinit.bWaitCmd = 0;                  //
            spiinit.bDataTransfr = 0;              // Data Transfer Enable
            spiinit.bRead = 0;                     // Read Mode

            spiinit.bSlaveOutDisable = 0;          // 0: SSP can drive MISO in slave mode, 1: SSP does not drive MISO
            spiinit.bHalfDuplex = 0;
            spiinit.bLockCs = 1;
            if (DeviceIoControl(hDevice, SPI_IOCTL_SSPCONFIGURE, ref spiinit, sizeSSP_INIT, null, 0, 0, IntPtr.Zero) == false)
            {
                return false;
            }
            return true;
        }

  單帖管理 | 引用 | 回復(fù) 回到頂部
帥哥喲,離線(xiàn),有人找我嗎?
jagict
16樓 信息 | 搜索 | 郵箱


加好友 發(fā)短信
  發(fā)帖心情 Post By:2013-11-4 16:49:00   [只看該作者]

用你們的SPI例程運(yùn)行,DEBUG輸出如下:
SPI_Opened SPI:-792216768
mxs_spi_txrx_pio-W: timeout on waiting CRTL0_RUN cleared
mxs_spi_txrx_pio-R: timeout on waiting FIFO_EMPTY

SPI_Opened SPI:-792216768說(shuō)明SPI正確打開(kāi)了嗎?是正確打開(kāi)了才有后面那兩行嗎?

  單帖管理 | 引用 | 回復(fù) 回到頂部
帥哥喲,離線(xiàn),有人找我嗎?
jagict
17樓 信息 | 搜索 | 郵箱


加好友 發(fā)短信
  發(fā)帖心情 Post By:2013-11-4 17:02:00   [只看該作者]

有沒(méi)有最新的SPI測(cè)試程序,如果硬件沒(méi)有問(wèn)題那就是測(cè)試程序的問(wèn)題了,郵箱jagict@163.com

  單帖管理 | 引用 | 回復(fù) 回到頂部
帥哥喲,離線(xiàn),有人找我嗎?
yy
18樓 信息 | 搜索 | 郵箱


加好友 發(fā)短信
  發(fā)帖心情 Post By:2013-11-4 17:55:00   [只看該作者]

抱歉開(kāi)始說(shuō)錯(cuò)了,我上面修改了,我測(cè)試了下程序.
修改SPI.cs
spiinit.eLength = SSP_WORD_LENGTH_16BITS;
修改Program.cs
            TxBuffer[0] = 0xfc;
            TxBuffer[1] = 0xf3;
            TxBuffer[2] = 0x00;
            TxBuffer[3] = 0x00;
            TxBuffer[4] = 0x00;
            TxBuffer[5] = 0x00;
            TxBuffer[6] = 0x00;
            TxBuffer[7] = 0x00;
            TxBuffer[8] = 0x00;
            TxBuffer[9] = 0x00;

            sSPI.BitCount = 16;
            sSPI.pDatBuf = pTxBuffer;
            sSPI.dwDatLen = 1;
            sSPI.bLockCS = 0;

            Marshal.Copy(TxBuffer, 0, pTxBuffer, 10);

            bRes = SPI.WriteFile(hSPI, ref sSPI, sizeSPI, ref uLen, 0);
我看到的波形SPI_SCLK即CN9的3號(hào)腳輸出了16個(gè)脈沖。SPI_MOSI即CN9的4號(hào)腳是 11110011 11111100 正好是f3 fc說(shuō)明是對(duì)了的。
程序發(fā)你郵箱了,波形圖不是太清楚 但是你應(yīng)該能看出來(lái)。
[此貼子已經(jīng)被作者于2013-11-4 18:39:21編輯過(guò)]

  單帖管理 | 引用 | 回復(fù) 回到頂部
帥哥喲,離線(xiàn),有人找我嗎?
jagict
19樓 信息 | 搜索 | 郵箱


加好友 發(fā)短信
  發(fā)帖心情 Post By:2013-11-5 9:16:00   [只看該作者]

太感謝了,問(wèn)題有了重大進(jìn)展,我也能看到波形了。不過(guò)writefile函數(shù)變成返回false,出現(xiàn)fail提醒,這是?

另外我循環(huán)readfile時(shí)又沒(méi)看到波形了,請(qǐng)教readfile時(shí)的配置是一樣的嗎?需要怎么寫(xiě)才算成功讀到數(shù)據(jù)?

謝謝你們耐心的指導(dǎo)哈。

現(xiàn)在能看到readfile波形了,還是有fail提示,我的讀取配置如下:
            sSPI.BitCount = 16;
            sSPI.pDatBuf = pRxBuffer;
            sSPI.dwDatLen = 1;
            sSPI.bLockCS = 0;
            bRes = SPI.ReadFile(hSPI, ref sSPI, sizeSPI, ref uLen, 0);     
收到的數(shù)據(jù)都是8位的ff,算是正確收到數(shù)據(jù)了嗎?


現(xiàn)在我設(shè)置sSPI.bLockCS = 1,可以讀取到一個(gè)數(shù)值了,我想應(yīng)該算成功讀取了。現(xiàn)在的疑問(wèn)只剩下writefile與readfile現(xiàn)在的返回值都為false,這是?
[此貼子已經(jīng)被作者于2013-11-5 14:46:17編輯過(guò)]

  單帖管理 | 引用 | 回復(fù) 回到頂部
帥哥喲,離線(xiàn),有人找我嗎?
yy
20樓 信息 | 搜索 | 郵箱


加好友 發(fā)短信
  發(fā)帖心情 Post By:2013-11-6 11:29:00   [只看該作者]

readfile返回false最大可能是你的hSPI句柄不對(duì),你看下句柄是不是-1?
如果句柄是-1,可能你同時(shí)跑了2個(gè)程序,SPI已經(jīng)打開(kāi)過(guò)了,重復(fù)打開(kāi)失敗,你試下把之前那個(gè)先關(guān)了。

  單帖管理 | 引用 | 回復(fù) 回到頂部
總數(shù) 27 1 2 下一頁(yè)

返回首頁(yè)

EM9280-SPI通信問(wèn)題

用戶(hù)名:
            驗(yàn)證碼: 驗(yàn)證碼,看不清楚?請(qǐng)點(diǎn)擊刷新驗(yàn)證碼
內(nèi)容:
主站蜘蛛池模板: 亚洲第一色图| 免费网站成人亚洲| 夜色网站| 国产午夜免费| 免费一级在线观看| 毛片成人永久免费视频| 中文字幕第一页面| 日韩免费在线观看视频| 日日噜噜夜夜狠狠视频无| 99av在线| 在线播放一区| 欧美精品一区二区三区在线播放| 免费网站在线高清观看| 精品日韩一区二区三区视频| www.污网站| 69视频最新在线观看| 国产黄在线观看免费观看软件视频 | 久久网址| 亚洲一区二区福利视频| 女性被躁视频| 成人国产精品高清在线观看| 鸥美肥妇特级毛片视频| 欧美特级黄| 杨幂丝袜国产福利视频| 中文字幕亚洲一区二区v@在线 | 极品销魂一区二区三区| 中文在线日本免费永久18近| pans写真福利视频在线| 日韩国产欧美一区二区三区在线 | 久热精品免费视频| 在线精品自拍亚洲第一区| 麻豆短视频在线观看| 999国产视频| 国产在线精品成人一区二区三区| 色老头oldmanvideos| 不卡视频一区二区| 亚洲精品福利一区二区三区| 国产专区自拍| 特黄特黄黄色大片| 国产成人高清亚洲一区久久| 邪恶工番口番大全全彩色|