Merge pull request #6 from alanbjohnston/rangingtest

Rangingtest
pull/8/head
alanbjohnston 7 years ago committed by GitHub
commit 3a1d310507
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -21,6 +21,7 @@
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
#include <stdio.h> #include <stdio.h>
#include <time.h>
#include "ax25.h" #include "ax25.h"
#include "ax5043.h" #include "ax5043.h"
#include "status.h" #include "status.h"
@ -447,11 +448,10 @@ int ax5043_set_tx_freq(ax5043_conf_t *conf, uint32_t freq) {
conf->tx_freq = freq; conf->tx_freq = freq;
/* If the frequency difference is great enough perform autoranging */ /* If the frequency difference is great enough perform autoranging */
/*
if (freq + 25000000 > prev_freq || freq - 25000000 < prev_freq) { if (freq + 25000000 > prev_freq || freq - 25000000 < prev_freq) {
ax5043_autoranging(conf); ax5043_autoranging(conf);
} }
*/
return PQWS_SUCCESS; return PQWS_SUCCESS;
} }
@ -616,23 +616,33 @@ int ax5043_autoranging(ax5043_conf_t *conf) {
val = BIT(4) | AX5043_VCOR_INIT; val = BIT(4) | AX5043_VCOR_INIT;
ret = ax5043_spi_write_8(conf, pllranging_reg, val); ret = ax5043_spi_write_8(conf, pllranging_reg, val);
if (ret) { if (ret) {
printf("ERROR: AX5043 Autoranging Write Failure\n\n");
return ret; return ret;
} }
usleep(10); usleep(10);
val = 0; //val = 0;
/* Wait until the autoranging is complete */ /* Wait until the autoranging is complete */
while ((val & BIT(4)) == 0) { int timeout = 0;
clock_t start = clock();
while (((val & BIT(4)) != 0) && !timeout ) { // changed to !=, since https://www.onsemi.com/pub/Collateral/AND9347-D.PDF says BIT(4) RNG START clears when autoranging done
ret = ax5043_spi_read_8(conf, &val, pllranging_reg); ret = ax5043_spi_read_8(conf, &val, pllranging_reg);
if (ret) { if (ret) {
printf("ERROR: AX5043 Autoranging Read Failure\n\n");
return ret; return ret;
} }
if ((clock() - start) > 1000000) {
timeout = 1;
}
} }
if (val & BIT(5)) { if (val & BIT(5)) {
printf("ERROR: AX5043 Autoranging Error\n\n");
return -PQWS_AX5043_AUTORANGING_ERROR; return -PQWS_AX5043_AUTORANGING_ERROR;
} else if (timeout) {
printf("ERROR: AX5043 Autoranging Timeout\n\n");
return -1;
} }
return PQWS_SUCCESS; return PQWS_SUCCESS;
} }

Loading…
Cancel
Save

Powered by TurnKey Linux.