diff options
author | Ashish Chaudhari <ashish@ettus.com> | 2014-08-01 13:14:56 -0700 |
---|---|---|
committer | Ashish Chaudhari <ashish@ettus.com> | 2014-08-01 13:14:56 -0700 |
commit | c7274790a0b8a812d731320c2b7711efa2e1daa7 (patch) | |
tree | a4e341ffb7e441cf92d903c7dcb263aacf43d9ca /firmware | |
parent | 9eb403f4299ea036a8fff2dc22209d3ae06374ed (diff) | |
download | uhd-c7274790a0b8a812d731320c2b7711efa2e1daa7.tar.gz uhd-c7274790a0b8a812d731320c2b7711efa2e1daa7.tar.bz2 uhd-c7274790a0b8a812d731320c2b7711efa2e1daa7.zip |
b200: Moved AD9361 driver to host
- Switched to FPGA SPI engine
- Moved firmware AD9361 driver to UHD
- Bumped FW compat to 5, FPGA compat to 4
- Known Issue: AD9361 SPI rate is too slow
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/fx3/.gitignore | 3 | ||||
-rw-r--r-- | firmware/fx3/ad9361/include/ad9361_transaction.h | 5 | ||||
-rw-r--r-- | firmware/fx3/ad9361/lib/ad9361_impl.c | 18 | ||||
-rw-r--r-- | firmware/fx3/b200/b200_main.h | 2 |
4 files changed, 17 insertions, 11 deletions
diff --git a/firmware/fx3/.gitignore b/firmware/fx3/.gitignore new file mode 100644 index 000000000..f2c372d44 --- /dev/null +++ b/firmware/fx3/.gitignore @@ -0,0 +1,3 @@ +common +lpp_source +u3p_firmware diff --git a/firmware/fx3/ad9361/include/ad9361_transaction.h b/firmware/fx3/ad9361/include/ad9361_transaction.h index 2349a5d3d..819d230c7 100644 --- a/firmware/fx3/ad9361/include/ad9361_transaction.h +++ b/firmware/fx3/ad9361/include/ad9361_transaction.h @@ -12,7 +12,7 @@ extern "C" { #endif //various constants -#define AD9361_TRANSACTION_VERSION 0x4 +#define AD9361_TRANSACTION_VERSION 0x5 #define AD9361_DISPATCH_PACKET_SIZE 64 //action types @@ -53,6 +53,9 @@ typedef struct //sequence number - increment every call for sanity uint32_t sequence; + //location info for the ad9361 chip class + uint64_t handle; + //action tells us what to do, see AD9361_ACTION_* uint32_t action; diff --git a/firmware/fx3/ad9361/lib/ad9361_impl.c b/firmware/fx3/ad9361/lib/ad9361_impl.c index 61512d2c8..cefb5f647 100644 --- a/firmware/fx3/ad9361/lib/ad9361_impl.c +++ b/firmware/fx3/ad9361/lib/ad9361_impl.c @@ -485,7 +485,7 @@ void calibrate_secondary_tx_filter() { } else if((bbbw_mhz * 2) > 24) { reg0d0 = 0x57; } else { - post_err_msg("Cal2ndTxFil: INVALID_CODE_PATH bad bbbw_mhz"); + post_err_msg("Cal2ndTxFil: bad bbbw_mhz INV_PATH"); reg0d0 = 0x00; } @@ -548,7 +548,7 @@ void calibrate_rx_TIAs() { } else if(ceil_bbbw_mhz > 10) { reg1db = 0x20; } else { - post_err_msg("CalRxTias: INVALID_CODE_PATH bad bbbw_mhz"); + post_err_msg("CalRxTias: bad bbbw_mhz INV_PATH"); } if(CTIA_fF > 2920) { @@ -718,7 +718,7 @@ void calibrate_baseband_dc_offset() { write_ad9361_reg(0x016, 0x01); while(read_ad9361_reg(0x016) & 0x01) { if(count > 100) { - post_err_msg("Baseband DC Offset Calibration Failure"); + post_err_msg("Baseband DC Offset Cal Failure"); break; } @@ -752,7 +752,7 @@ void calibrate_rf_dc_offset() { write_ad9361_reg(0x016, 0x02); while(read_ad9361_reg(0x016) & 0x02) { if(count > 100) { - post_err_msg("RF DC Offset Calibration Failure"); + post_err_msg("RF DC Offset Cal Failure"); break; } @@ -837,7 +837,7 @@ void tx_quadrature_cal_routine(void) { write_ad9361_reg(0x016, 0x10); while(read_ad9361_reg(0x016) & 0x10) { if(count > 100) { - post_err_msg("TX Quadrature Calibration Failure"); + post_err_msg("TX Quadrature Cal Failure"); break; } @@ -854,7 +854,7 @@ void calibrate_tx_quadrature(void) { /* Make sure we are, in fact, in the ALERT state. If not, something is * terribly wrong in the driver execution flow. */ if((read_ad9361_reg(0x017) & 0x0F) != 5) { - post_err_msg("TX Quad Cal started, but not in ALERT"); + post_err_msg("TXQuadCal started,but not in ALERT"); } /* Turn off free-running and continuous calibrations. Note that this @@ -1599,7 +1599,7 @@ void init_ad9361(void) { * This is the only clock setting function that is exposed to the outside. */ double set_clock_rate(const double req_rate) { if(req_rate > 61.44e6) { - post_err_msg("Requested master clock rate outside range"); + post_err_msg("Req. master clk rate outside range"); } msg("[set_clock_rate] req_rate=%.10f", req_rate); @@ -1628,7 +1628,7 @@ double set_clock_rate(const double req_rate) { break; default: - post_err_msg("[set_clock_rate:1] AD9361 in unknown state"); + post_err_msg("[set_clock_rate:1] Unknown state"); break; }; @@ -1692,7 +1692,7 @@ double set_clock_rate(const double req_rate) { break; default: - post_err_msg("[set_clock_rate:2] AD9361 in unknown state"); + post_err_msg("[set_clock_rate:2] Unknown state"); break; }; diff --git a/firmware/fx3/b200/b200_main.h b/firmware/fx3/b200/b200_main.h index 7971c1625..4f6b1a851 100644 --- a/firmware/fx3/b200/b200_main.h +++ b/firmware/fx3/b200/b200_main.h @@ -10,7 +10,7 @@ #include "cyu3types.h" #include "cyu3usbconst.h" -#define FX3_COMPAT_MAJOR (uint8_t)(4) +#define FX3_COMPAT_MAJOR (uint8_t)(5) #define FX3_COMPAT_MINOR (uint8_t)(0) /* GPIO Pins */ |