Hi,
I am using multiple, identical custom CY8C24894 PSoC boards, with Artaflex AW24S radio boards (using CYRF7936 radio chip), in a system. I am using the non-streaming, WirelessUSB LP driver code for the radios. One "Host" board serves as the interface to a PC, via a USBUART module, and requests 16-byte data packets from the other remote boards, each responding to a unique command for that board, such as "0x1F" for Board #1, "0x2F" for Board #2, etc. For example, the host will transmit "0x2F" to all of the boards, and only Board #2 returns a 16-byte string and the other boards do not respond. This works as designed, except that, randomly, the Host board will fail during a request for data, and return, for example, all "0x1F"s for the 16-byte packet, when requesting data from Board #1. Thereafter, regardless of what command is given ("0x1F", "0x2F", etc) the Host radio returns the string of "0x1F"s. I have written over the receive buffer data, so I know the Radio is passing these values to the PSoC each time. I have verified with an oscilloscope that the remote boards are actually transmitting "real" data (not a string of "0x1F"s, "0x2F"s, etc), but the Host radio SPI bus shows the stream of "0x1F"s being passed from its own radio to its PSoC. Once or twice, this problem will correct itself, but soon the Host will resume returning the string of "0x1F"s.
There does not seem to be a dependence on how fast data is requested and I have verified the behavior with my own C# program as well as a hexadecimal terminal emulator. As it happens, the 3.3V regulator for the PSoC and radio supply is outputting only just a hair over 3.0VDC, which I know is a bit marginal for the PSoC, but I have measured the same voltage on my CY3209 PSoC Express EVK. When this problem first occurs, a timeout I implemented for the "RadioGetReceiveState() check loop" is exceeded. Thereafter, the "RadioGetTransmitState() check loop" (used for transmitting commands to all of the remote boards) also exceeds a timeout limit.
***So to be clear, it seems that a malfunction of the Host Radio is causing it to return a string of "0x1F"s that it has buffered and is disregarding the actual, valid data being transmitted to it.
1) Can someone explain what may be happening?
2) Is there some way to very rapidly (say in less than 100msec or so) reset the Radio, or perhaps one of its registers, to rectify this problem?
I have a big demo coming up next Wednesday and am DESPERATE for a solution!!!
Regards,
"Desperate" Doug
