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


主題:EM9280-SPI通信問題

  共有97797人關注過本帖    
帥哥喲,離線,有人找我嗎?
jagict
1樓 信息 | 搜索 | 郵箱


加好友 發短信
EM9280-SPI通信問題  發帖心情 Post By:2013-11-1 16:33:00   [顯示全部帖子]

請教,我要實現主控板與一個外接AD芯片AD7949的SPI通信,按照例程上的SPI程序打開SPI設備沒有報錯,writefile與readfile也沒有報錯,writefile發送AD芯片需要的寄存器配置數據,readfile查看RxBuffer的數據,一直都是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

請問可能的問題在哪里? 第一次調試SPI,請大家幫忙,暫時無示波器看波形。

  單帖管理 | 引用 | 回復 回到頂部
帥哥喲,離線,有人找我嗎?
jagict
2樓 信息 | 搜索 | 郵箱


加好友 發短信
  發帖心情 Post By:2013-11-1 17:28:00   [顯示全部帖子]

板子是燒寫wince系統的,我試試能不能成功,沒有短接的話例子程序也是一樣的輸出信息。

  單帖管理 | 引用 | 回復 回到頂部
帥哥喲,離線,有人找我嗎?
jagict
3樓 信息 | 搜索 | 郵箱


加好友 發短信
  發帖心情 Post By:2013-11-2 9:12:00   [顯示全部帖子]

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

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


加好友 發短信
  發帖心情 Post By:2013-11-2 10:12:00   [顯示全部帖子]

用while無限循環Readfile,DEBUG口一直輸出mxs_spi_txrx_pio-R: timeout on waiting FIFO_EMPTY,用示波器看了下SPI四個接口的波形,只有MOSI是高電平,其他管腳都是低電平,沒有時鐘信號的樣子,我是在CN9的3~6測的,這是什么情況。

  單帖管理 | 引用 | 回復 回到頂部
帥哥喲,離線,有人找我嗎?
jagict
5樓 信息 | 搜索 | 郵箱


加好友 發短信
  發帖心情 Post By:2013-11-4 10:20:00   [顯示全部帖子]

數據的長度指的是幾位還是幾個字節?波形就是MOSI管腳3V高電平,波形是正弦但相位不穩定,看起來像雙絞線,其他三個管腳都是低電平,波形沒有規律。還需要看圖片嗎

  單帖管理 | 引用 | 回復 回到頂部
帥哥喲,離線,有人找我嗎?
jagict
6樓 信息 | 搜索 | 郵箱


加好友 發短信
  發帖心情 Post By:2013-11-4 11:23:00   [顯示全部帖子]

那BitCount我就設置為16了?  指的是16位的數據而不是數據有16個字節?
四個管腳都不對那怎么排查問題呢?我上電后直接測量四個管腳的波形也都是正弦,這個對嗎?需要先配置IO嗎?
之前說要把DIN與OUT短接測下,但是我有外接電路怕出問題沒有試過。

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


加好友 發短信
  發帖心情 Post By:2013-11-4 13:24:00   [顯示全部帖子]

幫忙看一下配置吧,現在的波形沒什么指導意義,就是MOSI高電平正弦波形,其他低電平幾乎無信號。
主函數:
            hSPI = SPI.SPIOpen();
            if...
            SPI.SPISetBandRate(hSPI, SPI.SPI_TRANSFER_HS_NORMAL_SPEED);
            TxBuffer[0] = 0xfc;  //主機發送的數據_低8位
            TxBuffer[1] = 0xf3;  //主機發送的數據_高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;
        }

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


加好友 發短信
  發帖心情 Post By:2013-11-4 16:49:00   [顯示全部帖子]

用你們的SPI例程運行,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說明SPI正確打開了嗎?是正確打開了才有后面那兩行嗎?

  單帖管理 | 引用 | 回復 回到頂部
帥哥喲,離線,有人找我嗎?
jagict
9樓 信息 | 搜索 | 郵箱


加好友 發短信
  發帖心情 Post By:2013-11-4 17:02:00   [顯示全部帖子]

有沒有最新的SPI測試程序,如果硬件沒有問題那就是測試程序的問題了,郵箱jagict@163.com

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


加好友 發短信
  發帖心情 Post By:2013-11-5 9:16:00   [顯示全部帖子]

太感謝了,問題有了重大進展,我也能看到波形了。不過writefile函數變成返回false,出現fail提醒,這是?

另外我循環readfile時又沒看到波形了,請教readfile時的配置是一樣的嗎?需要怎么寫才算成功讀到數據?

謝謝你們耐心的指導哈。

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


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

  單帖管理 | 引用 | 回復 回到頂部
帥哥喲,離線,有人找我嗎?
jagict
11樓 信息 | 搜索 | 郵箱


加好友 發短信
  發帖心情 Post By:2013-11-6 14:29:00   [顯示全部帖子]

不是負1,是個數值15025411,讀取應該算成功了怎么還返回false呢?你給的程序也是。

  單帖管理 | 引用 | 回復 回到頂部
帥哥喲,離線,有人找我嗎?
jagict
12樓 信息 | 搜索 | 郵箱


加好友 發短信
  發帖心情 Post By:2013-11-21 10:39:00   [顯示全部帖子]

我已經收到數值了,RxBuffer[0]和RxBuffer[1]都有可變的數值,說明通信成功也不是懸空的,還是返回false呢。

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


加好友 發短信
  發帖心情 Post By:2013-11-22 10:33:00   [顯示全部帖子]

好的,多謝。

  單帖管理 | 引用 | 回復 回到頂部

返回首頁

EM9280-SPI通信問題

用戶名:
            驗證碼: 驗證碼,看不清楚?請點擊刷新驗證碼
內容:
主站蜘蛛池模板: 国产欧美日韩精品第二区| 香蕉视频在线免费播放| 久久在线免费观看视频| 一区二区三区在线| 小明www永久免费播放平台| 亚洲人视频| 免费三片在线观看网站| 国产五区| 国产精品福利社| 精品视频在线看| 在线亚洲欧国产精品专区| 久久精品国产精品青草图片| 在线视频一区二区三区| 欧美一级在线全免费| 国产在线短视频| 视频一区二区在线| 婷婷激情综合| 国产精品98福利小视频| 久久er热这里只有精品免费| 日韩aⅴ在线观看| 亚洲欧美综合色区小说| 91精品乱码一区二区三区| 久久精品国产99久久3d动漫| 中文字幕在线观看日韩| 亚洲国产成a人v在线观看| 色开心婷婷| 免费高清资源黄网站在线观看| 国产亚洲精品一区二区在线观看| 国产精品馆| 美国一级毛片片aa免| 啪啪官网| 黄色视屏免费观看| 91久久国产口精品久久久久| 国产精品成人免费综合| 国产丝袜啪啪| 精品一区二区三区在线播放| 久久亚洲福利| 久久午夜青青草原影院| 免费看污污网站| 亚洲人成网站999久久久综合| 91精品一区二区三区在线观看 |