Adjust unused DAC values to support MAX9142/4

pull/154/head
IanSB 2020-06-23 05:44:57 +01:00
rodzic 8062a2acc8
commit 41936064d2
3 zmienionych plików z 72 dodań i 18 usunięć

Wyświetl plik

@ -344,14 +344,36 @@ static void write_config(config_t *config) {
if (supports_analog) {
sendDAC(0, config->dac_a);
sendDAC(1, config->dac_b);
sendDAC(2, config->dac_c);
sendDAC(3, config->dac_d);
sendDAC(4, config->dac_e);
sendDAC(5, config->dac_f);
sendDAC(6, config->dac_g);
sendDAC(7, config->dac_h);
int dac_a = config->dac_a;
if (dac_a == 255) dac_a = 75; //approx 1v (255 = 3.3v) so a grounded input will be detected as 0 without exceeding 1.4v difference
int dac_b = config->dac_b;
if (dac_b == 255) dac_b = dac_a;
int dac_c = config->dac_c;
if (dac_c == 255) dac_c = 75; //approx 1v (255 = 3.3v) so a grounded input will be detected as 0 without exceeding 1.4v difference
int dac_d = config->dac_d;
if (dac_d == 255) dac_d = dac_c;
int dac_e = config->dac_e;
if (dac_e == 255) dac_e = dac_a;
int dac_f = config->dac_f;
if (dac_f == 255) dac_f = dac_a;
int dac_g = config->dac_g;
if (dac_g == 255) dac_g = dac_c;
int dac_h = config->dac_h;
if (dac_h == 255) dac_h = dac_c;
sendDAC(0, dac_a);
sendDAC(1, dac_b);
sendDAC(2, dac_c);
sendDAC(3, dac_d);
sendDAC(4, dac_e);
sendDAC(5, dac_f);
sendDAC(6, dac_g);
sendDAC(7, dac_h);
switch (config->terminate) {
default:

Wyświetl plik

@ -309,14 +309,36 @@ static void write_config(config_t *config) {
sp >>= 1;
}
sendDAC(0, config->dac_a);
sendDAC(1, config->dac_b);
sendDAC(2, config->dac_c);
sendDAC(3, config->dac_d);
sendDAC(4, config->dac_e);
sendDAC(5, config->dac_f);
sendDAC(6, config->dac_g);
sendDAC(7, config->dac_h);
int dac_a = config->dac_a;
if (dac_a == 255) dac_a = 75; //approx 1v (255 = 3.3v) so a grounded input will be detected as 0 without exceeding 1.4v difference
int dac_b = config->dac_b;
if (dac_b == 255) dac_b = dac_a;
int dac_c = config->dac_c;
if (dac_c == 255) dac_c = 75; //approx 1v (255 = 3.3v) so a grounded input will be detected as 0 without exceeding 1.4v difference
int dac_d = config->dac_d;
if (dac_d == 255) dac_d = dac_c;
int dac_e = config->dac_e;
if (dac_e == 255) dac_e = dac_a;
int dac_f = config->dac_f;
if (dac_f == 255) dac_f = dac_a;
int dac_g = config->dac_g;
if (dac_g == 255) dac_g = dac_c;
int dac_h = config->dac_h;
if (dac_h == 255) dac_h = dac_c;
sendDAC(0, dac_a);
sendDAC(1, dac_b);
sendDAC(2, dac_c);
sendDAC(3, dac_d);
sendDAC(4, dac_e);
sendDAC(5, dac_f);
sendDAC(6, dac_g);
sendDAC(7, dac_h);
switch (config->terminate) {
default:

Wyświetl plik

@ -235,6 +235,7 @@ static int cpuspeed = 1000;
static int cpld_fail_state = CPLD_NORMAL;
static int helper_flag = 0;
static int supports8bit = 0;
static int newanalog = 0;
static unsigned int pll_freq = 0;
static unsigned int new_clock = 0;
static unsigned int old_pll_freq = 0;
@ -1234,6 +1235,7 @@ static void configure_plla(int divider) {
static void init_hardware() {
int i;
supports8bit = 0;
newanalog = 0;
for (i = 0; i < 12; i++) {
RPI_SetGpioPinFunction(PIXEL_BASE + i, FS_INPUT);
}
@ -1247,7 +1249,11 @@ static void init_hardware() {
if (RPI_GetGpioValue(SP_DATA_PIN) == 0) {
supports8bit = 1;
}
if (RPI_GetGpioValue(STROBE_PIN) == 1) {
newanalog = 1;
}
RPI_SetGpioPinFunction(VERSION_PIN, FS_OUTPUT);
RPI_SetGpioPinFunction(MODE7_PIN, FS_OUTPUT);
RPI_SetGpioPinFunction(MUX_PIN, FS_OUTPUT);
@ -1280,7 +1286,11 @@ static void init_hardware() {
} else {
log_info("8 bit board NOT detected");
}
if (newanalog) {
log_info("Issue 4 analog board detected");
} else {
log_info("Issue 4 analog board NOT detected");
}
log_info("Using %s as the sampling clock", PLL_NAME);
// Log all the PLL values