回复帖子:(x10(61.139.*.*))我理解就是需要实现流控功能...

用户名:   *您没有注册?
密码:   *忘记论坛密码?    标题采用“回复:XXX....”
验证码 点击获取验证码
主题标题:  *不得超过 200 个汉字
当前心情
上一页 发帖表情 下一页
内容
  

主题最新回顾(发布时间:2017-5-12 11:12:00)
--  作者:x10(61.139.*.*)
--  
从应用程序的角度就是关闭SPI设备文件,然后再打开即可。

主题最新回顾(发布时间:2017-5-12 9:24:00)
--  作者:lqluo
--  
 怎样复位ESM3354的SPI?

主题最新回顾(发布时间:2017-5-11 17:20:00)
--  作者:x10(61.139.*.*)
--  
我理解就是需要实现流控功能,比如ESM3354有一个输出READY#(可用GPIO充当),当READY#为低时,表示可接收SPI数据流;当READY#为高时,则停止发送数据。ESM3354在接收过程中,可对接收的数据进行校验,若出错则让READY#=H,同时reset SPI,再重新启动SPI接收(READY#=L)。

主题最新回顾(发布时间:2017-5-11 17:11:00)
--  作者:lqluo
--  
 焦点主要在: ESM3354知道数据接收错了,怎么才能让ESM3354接收一下个数据包的时候不受前面的状态的影响?也就是说,让ESM3354的spi口在接收下一数据包前恢复初始状态,即它接收的一下个数据包的第一个时钟是新数据的DB15,而不是旧数据的DB0

主题最新回顾(发布时间:2017-5-11 15:30:00)
--  作者:x10(61.139.*.*)
--  
对大数据采集存储的应用,从设计角度讲,肯定会把数据分块“传输-验证-存储”,并对出错情况加以处理。英创的工控主板,除了SPI接口外,还有很多其他接口资源,足以完成这些功能。如果仅仅依靠一个SPI接口,按上贴描述的那样连续不断的接收数据,显然不是一个完备的设计方案。

主题最新回顾(发布时间:2017-5-11 13:16:00)
--  作者:lqluo
--  
 
那我每秒向ESM3354发送300K数据,1天24小时不停的发,每天送几十G的数据存入硬盘。设备一运行可能就是几个月,发送的数据是几个T。

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

主题最新回顾(发布时间:2017-5-11 9:17:00)
--  作者:ccl(61.139.*.*)
--  
spi协议本身没有握手信号,所以时钟丢失必然会影响后边的通信。建议在esm3354更新程序之前,向主机发送更新程序的信号,主机接收到信号后停止发送数据。esm3354更新完程序后,向主机发送程序更新完毕的信号,进入spi slave模式,主机接收到程序更新完毕的信号之后,再发送数据。

主题最新回顾(发布时间:2017-5-10 15:21:00)
--  作者:lqluo
--  
 给我的感觉是一旦spi错误一次,以后spi就不能恢复正常了,也没法用了。

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

主题最新回顾(发布时间:2017-5-10 10:32:00)
--  作者:ccl(61.139.*.*)
--  
你好,经过实验确认,我的上一个回答是错误的,片选拉高只表示发送方结束了,接收方(从设备)依然要接收16个时钟才会读出数据,并且不受片选信号影响。也就是说从设备接收15位数据后,片选信号拉高,从设备依然会等待第16个时钟的到来,会影响后面的数据。
我们实验是让主机发送15位,从机接收16位,这是两边设置上的错误导致的。实际应用中,两边设置相同的情况下,同步时钟应该不会出现丢失时钟的情况,并且时钟信号是非常重要的,电路上应该优先保护,请问你出现这种情况的应用场景是什么样的?