我现在使用的 三星 官方的包,发现一个很麻烦的问题,就是 Master端输出到Slave的数据,会丢包 。丢包也不是真的把书库丢失了 ,可能是 几个一起传过来,但是要是不发送后面的数据,丢了这个包就会一直接收不到 。
并且追踪发现 :
RX_FIFO_LVL以及TX_FIFO_LV这两个参数是驱动收发数目的依据,手册只是说明 Data level in RX FIFO ,RX_FIFO_LVL值经常出错,TX_FIFO_LV这个值总是为0。
请问各位高手有何见解 ?
6410
之前也是发现这个问题,master接收没问题,master发送就有问题,用三星demo运行就出现死机情况。
IIC驱动也有问题。
是用二台6410的板子互相发送,所以没有匹配的问题 。我量过是21.30M,6410的时钟限制是50M
引用: 引用 6 楼 xqhrs232 的回复:
引用 4 楼 oneonce 的回复:
6410
之前也是发现这个问题,master接收没问题,master发送就有问题,用三星demo运行就出现死机情况。
IIC驱动也有问题。
后来是怎么改的?
我离职之前都没解决,不知道现在有没有解决。
我用RVDS 2.2写了一个IIC驱动,没有问题。
wince下的驱动我也都认真看了,也没发现问题。但是好像加了一条打印信息之后,似乎好了许多。偶尔出错。
希望解决了的人来顶下贴。
呵呵 这个是偶在新公司接的第一个活 ,一周了还没搞定 。
大家 谁有好用的 SPI测试工具码?
和工具有很大的关系啊。
驱动真的还没发现问题 。
6410的I2C驱动好多人都遇到过问题样,好象驱动不是很完善。我的是有些地方加了点打印,相当于延时,就要好点
我用示波器量过四格脚的信号,很正常,但是奇怪的是有的时候,Slave的RX没有收到数据,理论上讲SPI收发同时,应该会移到RX的,因为Master的RX很正常 。
OneOnce
我就在的留下的代码里面改。。。。
世界真小,呵呵,梁工
貌似单发 或者单收都没有,边收边发就出错了,全双工的只能现在做半双工了。郁闷啊
我写了个测试程序,测试全双工通讯,主要部分如下 :
strOut赋不同的字串值
wcstombs(OutputBuf, strOut, SPI_FIFO_MAX_SIZE);//str->pOutput
(WriteFile(This->m_hSpi, (LPCVOID)OutputBuf, strlen(OutputBuf), &len, NULL))
Sleep(3);
ReadFile(This->m_hSpi, (LPVOID)InputBuf, SPI_FIFO_MAX_SIZE, &len, NULL)
这样的测试结果是: Mstaer端接收正常,Slave端接收是隔一个收到一个。
请问大家有何见解?
2440 SPI 要读写操作都有,还是只写呢? 我做的时候是厂商的驱动。