我们使用的是BCM20736芯片,带有SDK 2.2.3。我们的固件初始化设备并开始广告。在正常操作中,该设备将继续做广告,直到永远。然而,有时我们注意到广告突然停止。这发生在大约1个10个BCM部件中(从120个设备的样品中)。当广告停止时,它可能在几分钟或几小时内发生。嗅探器没有检测到广告。我们使用我们的代码周期性地调用BLoopReIX GETSCAN(Valk)函数,监视设备认为它的广告状态是什么。我们根据函数的返回来切换I/O线。(NOX可发现=低,可发现=高)。当问题发生时,我们从来没有看到这条线变低。这可能意味着无线电硬件不发送,尽管无线电固件状态机的状态。删除/重新应用电源再次启动广告,但失败的单元将再次失败。大多数单位从来没有失败,即使经过几天的连续运行。一些IC日期代码似乎显示出比其他故障更多的故障,并且一些日期代码没有显示故障。更换失效PCB上的BCM IC会导致问题消失——问题似乎是遵循BCM集成电路,而不是硬件的其余部分。另外两篇文章(“广告似乎是FLAKEY”和“原型板的问题与先前报道的类似”)描述了一些类似的问题。谢谢,杰克逊 以上来自于百度翻译 以下为原文We are using a BCM20736 IC, with SDK 2.2.3. Our firmware initializes the device and starts advertising. In normal operation, the device will continue to advertise forever. However, sometimes we notice that advertisement stops unexpectedly. This happens in about 1 in 10 BCM parts (out of a sample of 120 devices). When advertisements stop, it can happen in a couple minutes, or a couple hours. No advertisements are detected by a sniffer. We instrumented our code to call the bleprofile_GetDiscoverable(void) function periodically, to monitor what the device thought its advertising state was. We toggle an I/O line based on the return from the function. (NO_DISCOVERABLE = LOW, DISCOVERABLE = HIGH). We never saw this line go LOW when the problem occurred. This may imply that the the radio hardware is not transmitting, despite the condition of the radio firmware state machine. Removing/reapplying power starts advertisements again, but a failing unit will fail again. Most units never fail, even after several days of continuous operation. Some IC date codes seem to show more failures than others, and some date codes show no failures. Replacing the BCM IC on a failing PCB causes the problem to disappear -- the problem seems to follow the BCM IC, not the rest of the hardware. Two other posts ("Advertisement seems to be flakey" and "Prototype boards are failing with issue similar to one previously reported") describe somewhat similar problems. Thanks,Jackson
2018-11-06 14:21
您好,我正在使用IVI驱动程序并为我的E4438C VSG编写c#。我目前能够从ARB触发突发波形(~500ms),但为了使其正常工作,我启用RF,发送软件触发,在软件中休眠500ms然后禁用rf。在突发完成(所有样本都被传输)而不是睡眠之后,触发器是否有一种方法可以禁用rf?我试图保持RF开启,但是当我的应用程序无法容忍时,VSG会传输持续的能量,因此我正在使用RF打开/关闭。谢谢Reese -------代码片段IIviRFSigGen drvr =(IIviRFSigGen)驱动程序; drvr.DigitalModulation.Arb.TriggerSource = IviRFSigGenArbTriggerSourceEnum.IviRFSigGenArbTriggerSourceSoftware; drvr.DigitalModulation.Arb.SelectedWaveform = arbfile; drvr.RF.Frequency = xmtFrequency; //设定频率drvr.RF.Level = xmtPower; // set level(dBm)drvr.IQ.Source = IviRFSigGenIQSourceEnum.IviRFSigGenIQSourceArbGenerator; drvr.IQ.Enabled = true; drvr.RF.OutputEnabled = true; drvr.SendSoftwareTrigger(); Thread.sleep代码(500); //等待突发传输driver.RF.OutputEnabled = false; 以上来自于谷歌翻译 以下为原文Hello, I am using the IVI driver and writing c# for my E4438C VSG.I am currently able to trigger a burst waveform (~500ms) from the ARB, but in order to get it to function, I enable the RF, send the software trigger, sleep in software for 500ms and then disable the rf.Is there a way for the trigger to disable the rf after the burst is complete (all samples are transmitted) rather than to sleep? I tried to just keep the RF on, but there is continuous energy transmitted from the VSG when it is idle that my application can not tolerate, so I am using the RF on/off. Thanks Reese ------- code fragment IIviRFSigGen drvr = (IIviRFSigGen)driver; drvr.DigitalModulation.Arb.TriggerSource = IviRFSigGenArbTriggerSourceEnum.IviRFSigGenArbTriggerSourceSoftware; drvr.DigitalModulation.Arb.SelectedWaveform = arbfile; drvr.RF.Frequency = xmtFrequency;// set frequency drvr.RF.Level = xmtPower;// set level (dBm) drvr.IQ.Source = IviRFSigGenIQSourceEnum.IviRFSigGenIQSourceArbGenerator; drvr.IQ.Enabled = true; drvr.RF.OutputEnabled = true; drvr.SendSoftwareTrigger(); Thread.Sleep(500);// wait for burst to transnmit driver.RF.OutputEnabled = false;
2018-12-12 16:08