I am considering buying a bunch of wixels for testing collission avoidance protocols. I’d like to ensure the following things about the wixel board before doing so.
Output power: The underlying chip CC2511F32 appears to allow programmable power from -30db to 1 db. Hopefully, this functionality is available for the wixel too? It seems natural that it would, but I want to make sure, since power control is a crucial aspect of the algorithms I want to test.
Channels: Reading the guide, it wasn’t clear to me what exactly a channel is. Is the exact mapping from channels to frequencies detailed somewhere? Since I am testing my own collission avoidance protocols, I would like to ensure that I can set frequencies and channels myself, in some cases intentionally creating interference.
Yes, you can set the transmit power by writing a value to the PA_TABLE0 register. We do this in radio_registers.c in the Wixel SDK. When you develop your own Wixel apps you can change it to whatever you like.
When we talk about channel numbers in the user’s guide, we are talking about the number that gets written to the CHANNR register. The correspondence between channels and frequencies is determined by the settings in the FREQ0, FREQ1, FREQ2, MDMCFG0, and MDMCFG1 registers. In our libraries and apps, we set it up so the center frequency of channel 0 is 2403.47 MHz and the spacing between channels is .286 MHz. This is detailed in radio_registers.c.
I think the CHANNR register is just a convenient way of changing between different frequencies without having to do any difficult calculations on an 8-bit microcontroller. You can get pretty fine control over the frequency just by leaving CHANNR at 0 and adjusting FREQ0/1/2. That gives you 0.37 kHz resolution.