共有331人关注过本帖树形打印复制链接

主题:请教6800的SPI的nCS的问题。。。

帅哥哟,离线,有人找我吗?
蜘蛛侦探
  1楼 | 信息 | 搜索 | 邮箱 | 主页


加好友 发短信
等级:新手上路
请教6800的SPI的nCS的问题。。。  发帖心情 Post By:2018-11-27 15:54:00 [只看该作者]

代码如下:

        tr[0].tx_buf = (unsigned long)tx;
        tr[0].rx_buf = NULL;
        tr[0].len = 2;
        tr[0].delay_usecs = 0;
        tr[0].speed_hz = Speed;
        tr[0].bits_per_word = Bits;
        tr[0].cs_change=0;                //add to keep cs actived

        tr[1].tx_buf = (unsigned long)par;
        tr[1].rx_buf = NULL;
        tr[1].len = 4;
        tr[1].delay_usecs = 0;
//        tr[1].speed_hz = 0;
//        tr[1].bits_per_word = 0;
        tr[1].speed_hz = Speed;
        tr[1].bits_per_word = Bits;
        tr[1].cs_change=0;                //add to keep cs actived

        tr[2].tx_buf = (unsigned long)tx2;
        tr[2].rx_buf = NULL;
        tr[2].len = 2;
        tr[2].delay_usecs = 0;
        tr[2].speed_hz = Speed;
        tr[2].bits_per_word = Bits;
        tr[2].cs_change=0;                //add to keep cs actived

        ret = ioctl(m_fd, SPI_IOC_MESSAGE(3), tr );


我们在ESM335X上面跑的时候,硬件的CS一直保持低电平,无论有没有cs_change=0的语句,但在6800上cs在中间一直会回到高电平,如下图


图片点击可在新窗口打开查看

[此贴子已经被作者于2018-11-27 15:54:58编辑过]

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
蜘蛛侦探
  2楼 | 信息 | 搜索 | 邮箱 | 主页


加好友 发短信
等级:新手上路
  发帖心情 Post By:2018-11-27 15:58:00 [只看该作者]

cs不能保持的话,写的时候还好,但读的时候就会有很严重的问题,特别是需要burst的时候


  单帖管理 | 引用 | 回复 回到顶部
帅哥,在线噢!
hzc
  3楼 | 信息 | 搜索 | 邮箱 | 主页


加好友 发短信 员工
等级:业余侠客
  发帖心情 Post By:2018-11-27 17:20:00 [只看该作者]

你好,ESM6800的SPI一次片选能够传输的长度最长为256byte,可以试试把上面的代码中写的buf合并到一次的ioctl传输操作中,只要buf长度小于256byte,就能够在一次片选完成。


  单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

请教6800的SPI的nCS的问题。。。

用户名:          
内容:
               签名