CC3200建立一个发送任务,在发送任务中调用sl_send()一次发送1024个8位数据,简化程序如下:
while(1)
{
//测试用
if(flag==1) flag=0;
else flag=1;
set_out(flag);
if(data_0k==1)
{
sl_send();
data_ok=0;
}
}
data_ok每600us有效一次,这个验证过没问题
通过示波器测量发现:
测试信号反转有时正常有时不正常,有时20ms不反转一次!!!!!!如果在WIFI发送任务中屏蔽sl_send(),则信号反转正常,
所以应该是WIFI发送有问题阻塞了!导致sl_send阻塞几十ms的原因可能是什么?有什么好的解决办法吗?
Viki Shi:
传输速率是多少?
user1252639:
回复 Viki Shi:
SPI时钟20MHZ,每300us传输512个数据
Viki Shi:
回复 user1252639:
1、换个手机试一下,排除手机接受问题
2、跟踪CC3200发送数据所需时间
user1252639:
回复 Viki Shi:
1,跟手机无关 2,通过以下方式进行测试: 在WIFI发送任务中输出一个信号,每次进入WIFI发送任务,输出信号就反转一次, 通过示波器测量发现: 信号反转有时正常有时不正常,有时20ms不反转一次!!!!!!如果在WIFI发送任务中屏蔽sl_send(),则信号反转正常,
所以应该是WIFI发送有问题阻塞了!导致sl_send阻塞几十ms的原因可能是什么?有什么好的解决办法吗?
Yonghua Pan:
回复 user1252639:
你在接收端抓包看一下,是不是有很多重传?
user1252639:
回复 Yonghua Pan:
分析包数据这个大大超出了我的能力,我抓了一下包如下,前期貌似都还正常,就是一会就会出现一堆貌似不正常的数据(颜色不一样了,我也不知道正常不正常)
user1252639:
回复 Yonghua Pan:
有没有关于SPI的详细说明 ,我指的是时序方面的,除了SPI的最高时钟还有别的什么要求,CS的最小宽度有什么要求?等等
我将SPI的时钟由20M降低到12MHZ效果明显会好,这是为什么,在要求的最高时钟20MHZ内为什么会有这个区别?在20MHZ时,SPI接收貌似也是正常的,不过WIFI发送出去后数据丢失严重,降低12MHZ时,好很多!!!
KW X:
回复 user1252639:
建议传下PCB图。通常,这种问题多出现在地线不良,干扰所致。