Other Parts Discussed in Thread: CC2640,
We have been using the CC2640 for several years as a BLE receiver. We found in lots of testing that the CC2640 can doesn't like scan times of less than 300 msec and greater than 700-800 msec. We suspect that this might have something to do with the receiver buffer space and how long its takes to transfer data found in an scan window. We found that 500 msec scan times are best for our application in this same testing. We also determined that CC2640 will sometimes hang when the number of beacons in the scan window approach 25 or more. We see when we violate one or more of these boundaries that the we will need to reset the device when the device does not return a completion code after some period of time. We implemented a watchdog timer to handle the hangs. In recent testing, we found that the CC2640R2F will handle more beacons without this hang issue we see in the CC2640. We typically can pickup 40-50 beacons in a scan window without seeing hangs. We also found that SDK based on 5.1 gives us some additional features that are not supported on the CC2640. We currently are testing the CC2640R2 with these new features and have found a new challenge. We have seen over long operating times that the CC2640R2 appears to scan and report that the scan is complete. We see no hangs or timeouts but we see the CC2640R2 stop reporting beacons it should be hearing. Our only way to recover from this condition is to reset the CC2640R2 but unfortunately not seeing beacons is always a possibility. (I know that there are beacons since I have multiple units running the same code in a screen room with as much as 40 beacons. I have 6 units of which 3 are running normally and reporting beacons they hear while 3 units which were reporting the same beacons are now not reporting any beacons.) I have not been able to capture the event that causes these units to stop reporting beacons. I am wondering if anyone else has seen this problem. Any suggestions as to what maybe the issue or what additional testing I might need to do?