myriadrf / LMS7002M-driver

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

API hooks for sample format #1

Closed guruofquality closed 9 years ago

guruofquality commented 9 years ago

We can control the muxing of the AI, AQ, BI, BQ samples in each transfer. Useful for changing formats without additional BBIC logic. The API will probably take a string containing the desired order: "AIAQBIBQ"

RyanEGuerra commented 9 years ago

I know it's far from your mind, but keep in mind power consumption when powering down a SISO chain. We'd like to transfer data at half rate rather than just send zeros along one path. Only worry about that if it's not hard to worry about.

guruofquality commented 9 years ago

Nearly everything can be powered down, but I'm not positive about the DIQ transfers working at half rate and only using with one channel of data. Maybe its related to that magic SISO_ID register that I had to write to get things working. I think that in itself is at least another issue in the tracker.

guruofquality commented 9 years ago

Here is the call, it seems to be working. I am using the muxing to test individual channels while the stream framer/deframer is really only one channel wide.

/*!
* Set the DIQ mux to control CHA and CHB I and Q ordering.
* \param self an instance of the LMS7002M driver
* \param direction the direction LMS_TX or LMS_RX
* \param positions sample position 0-3 (see LMS7002M_LML_*)
*/
LMS7002M_API void LMS7002M_set_diq_mux(LMS7002M_t *self, const LMS7002M_dir_t direction, const int positions[4]);