Hello,
I'm have the CC2510 Mini Development Kit and I am trying to use the MRFI API directly for my own proprietary protocol. This is because both end points in the network will be battery powered, so I cannot afford to use the full SimpliciTI stack because the power drain of an always on receiver would flatten the batteries too quickly.
Previously I have a simple transmit/receive setup working based on the PER_TEST in swrc085b. This only achieves one way communication, but it works reliably. The packet of data I am currently sending is only 1 byte.
I want to use the MRFI library because I believe this handles the hardware correctly especially when moving from idle, rx and tx. I have managed to cut the example down included in the SimpliciTI download, so the I only call MRFI_Init() and MRFI_RxOn(). But my MRFI_RxCompleteISR() never gets fired when I use my existing transmit code to send a packet from another CC2510.
I have checked the following:
- The configuration of the two radios is the same.
- The RF interrupt handler fires in mrfi_radio.c when I hit the button on my transmitter and it makes it to the section commented CRC and frame length check. At this point the mrfiIncomingPacket structure is filled with all zeros - both frame and rxMetrics so it drops out of the handler before calling RxCompleteISR().
The only thing I thought it could be, is maybe the MRFI library requires packets of a certain structure - does anyone know if this is the case? Or does anyone have a cut down example of using the MRFI API directly?
Many thanks, Ian.