FreeCalypso > hg > fc-rfcal-tools
changeset 83:45ef4a06edfc
fc-rfcal-txband: initial implementation complete, ready to test
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 15 Jul 2017 23:09:46 +0000 |
parents | a094db1453b1 |
children | a2d4cab0a592 |
files | autocal/txbandmain.c autocal/txlevels.c |
diffstat | 2 files changed, 36 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/autocal/txbandmain.c Sat Jul 15 22:48:29 2017 +0000 +++ b/autocal/txbandmain.c Sat Jul 15 23:09:46 2017 +0000 @@ -122,6 +122,8 @@ txcal_basis_run(); /* analytical follow-up */ txcal_basis_compute(); - + /* actual Tx levels calibration */ + calibrate_tx_levels(); + exit(0); }
--- a/autocal/txlevels.c Sat Jul 15 22:48:29 2017 +0000 +++ b/autocal/txlevels.c Sat Jul 15 23:09:46 2017 +0000 @@ -17,8 +17,9 @@ extern struct tx_level tx_levels[MAX_TX_LEVELS]; unsigned -find_apc_for_target(target_dbm) +find_apc_for_target(target_dbm, pslope) double target_dbm; + vout_t *pslope; { vout_t target_vout; unsigned n; @@ -28,6 +29,37 @@ for (n = 0; n < num_basis_points - 1; n++) if (target_vout < tx_basis[n+1].vout) break; + if (pslope) + *pslope = tx_basis[n].slope; apc_delta = (target_vout - tx_basis[n].vout) / tx_basis[n].slope; return tx_basis[n].apc + apc_delta; } + +calibrate_tx_levels() +{ + unsigned plnum, plidx, apc; + double target, meas; + + printf("Calibrating Tx power levels\n"); + printf("Starting RF Tx on the DUT\n"); + do_rfe(RX_TX_TCH); + + for (plnum = txcal_band->start_plnum; plnum <= txcal_band->end_plnum; + plnum++) { + do_txpw(TX_PWR_LEVEL, plnum); + plidx = plnum = txcal_band->start_plnum; + target = tx_levels[plidx].target; + apc = find_apc_for_target(target, &tx_levels[plidx].slope); + tx_levels[plidx].apc = apc; + do_txpw(TX_APC_DAC, apc); + usleep(20000); + meas = tx_power_meas(); + printf( + "Tx power level #%u: target %.1f dBm, APC=%u, meas %.2f dBm (%+.2f)\n", + plnum, target, apc, meas, meas - target); + } + + printf("Stopping RF Tx on the DUT\n"); + do_rfe(STOP_ALL); + return(0); +}