主题:ESM3354中应用SPI的问题

  共有33037人关注过本帖    
帅哥哟,离线,有人找我吗?
lqluo
1楼 信息 | 搜索 | 邮箱


加好友 发短信
ESM3354中应用SPI的问题  发帖心情 Post By:2017-5-9 10:13:00   [显示全部帖子]

我所用的ESM3354系统是linux
有三个问题:
   我在应用SPI时,把ESM3354做为slave,把fpga做为主机。时钟选择了12.5M。发送数据为16位,DB15先发送
   (1) 用fpga发送后,在用ESM3354的函数接收到的数据是8位的,显示是低8位在前,高8位在后。是这样的吗?
   (2) 我一次用fpga要发送160K(16位)的数据,怎么把每个数的起始位对位? 我的意思是说:我发送完一个16位数据后,如果ESM3354只收到15位。我再发送下一个16位数,
            结果ESM3354没识别出来这是一个新的数据,还把它刚接收到的DB15当成上一个数的DB0。这样后面所有接收的数都是错的。
            这种情况下怎么处理?
   (3) 我电路板中只有一个SPI,ESM3354做为从机时,SPI的cs信号还有用吗?

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


加好友 发短信
  发帖心情 Post By:2017-5-9 20:42:00   [显示全部帖子]

我是想这样:主机想发送一个数据包给ESM3354,希望发送初始时ESM3354处于初始状态:
   
       即假设这时ESM3354接收过程中出现错误,还没接收完一个完整的16位数据(比如只接收完15位),还在等主机送来的时钟,
      
       而这时主机送过来的第一个时钟是本应该对应新数据的DB15,而不是对应上一个数据位(比如DB0),但ESM3354会把它当作对应上一个数据位(比如DB0)的时钟。这样后面所有的数据都会出错。

所以我希望主机给ESM3354一个信号时,比如外部中断,能让ESM3354的SPI恢复初始状态。

或者说,每次主机在令cs变低后发送完16个时钟,然后令cs变高,如果此次esm3354没接收到16个时钟,而检测到cs变高,esm3354会怎么处理这种情况?
[此贴子已经被作者于2017-5-9 22:14:35编辑过]

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
lqluo
3楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2017-5-10 15:19:00   [显示全部帖子]

我是在主机fpga运行时,从机esm3354更新程序后再运行。此时ESM3354与主机就失去了同步,丢失了很多时钟。
所以我想知道:在运行中如果发生错误,如何恢复。
  不能因为一个时钟错误,后面再发给SPI的数据,结果SPI接收到全是错的。假设这一次发送的数据包我可以丢弃,但后面所有的数据包不能丢弃啊。

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
lqluo
4楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2017-5-10 15:21:00   [显示全部帖子]

 给我的感觉是一旦spi错误一次,以后spi就不能恢复正常了,也没法用了。

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
lqluo
5楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2017-5-11 13:16:00   [显示全部帖子]

 
那我每秒向ESM3354发送300K数据,1天24小时不停的发,每天送几十G的数据存入硬盘。设备一运行可能就是几个月,发送的数据是几个T。

    中间要是出现一个时钟误差,设备就没法传送正常的数据了。是这样吗?

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
lqluo
6楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2017-5-11 17:11:00   [显示全部帖子]

 焦点主要在: ESM3354知道数据接收错了,怎么才能让ESM3354接收一下个数据包的时候不受前面的状态的影响?也就是说,让ESM3354的spi口在接收下一数据包前恢复初始状态,即它接收的一下个数据包的第一个时钟是新数据的DB15,而不是旧数据的DB0

  单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
lqluo
7楼 信息 | 搜索 | 邮箱


加好友 发短信
  发帖心情 Post By:2017-5-12 9:24:00   [显示全部帖子]

 怎样复位ESM3354的SPI?

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

返回首页

ESM3354中应用SPI的问题

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: