myriadrf / LMS7002M-driver

A portable driver for the LMS7002M dual transceiver
29 stars 20 forks source link

external rf path selection calls #6

Closed guruofquality closed 9 years ago

RyanEGuerra commented 9 years ago

When you say "RF Band," are you referring to the possible 3x input ports (low, high, wideband) and 2x output ports (low, high)? Or are you referring to the internal "bands" that Lime uses to calibrate VCOs, etc...? Because I see this functionality as part and parcel of RF Mode selection:

(In the example configuration below, I mean "Channel" as the MIMO radio bank selected)

Channel A TX ON HIGH Channel A RX OFF WIDEBAND Channel B TX OFF LOW Channel B RX ON HIGH

So in the desired API, each channel can be set to independently have TX/RX enabled/disabled, with internal routing through HIGH, LOW, or WIDEBAND (input only) ports.

guruofquality commented 9 years ago

I meant hooks for selecting external RF paths to the chip.

For TX there is BAND1 and BAND2:

/*!
* Select the TX RF band (band 1 or band 2)
* \param self an instance of the LMS7002M driver
* \param channel the channel LMS_CHA or LMS_CHB
* \param band the band number, values 1 or 2
*/
LMS7002M_API void LMS7002M_trf_select_band(LMS7002M_t *self, const LMS7002M_chan_t channel, const int band);

And for RX is there is LNAH, LNAW, LNAL:

/*!
* Select the active input path for the RX RF frontend.
* \param self an instance of the LMS7002M driver
* \param channel the channel LMS_CHA or LMS_CHB
* \param path the input path (see LMS7002M_RFE_* defines)
*/
LMS7002M_API void LMS7002M_rfe_select_input(LMS7002M_t *self, const LMS7002M_chan_t channel, const int path);
guruofquality commented 9 years ago

In addition, we tested this, so closing the issue!