diff --git a/firmware/common/max2837.c b/firmware/common/max2837.c index 8ad9dadf..464aa8b3 100644 --- a/firmware/common/max2837.c +++ b/firmware/common/max2837.c @@ -121,10 +121,9 @@ void max2837_setup(void) /* SPI register read. */ uint16_t max2837_spi_read(uint8_t r) { gpio_clear(PORT_XCVR_CS, PIN_XCVR_CS); - // FIXME: Unimplemented. - r=r; + const uint16_t value = ssp_transfer(SSP1_NUM, (uint16_t)((1 << 15) | (r << 10))); gpio_set(PORT_XCVR_CS, PIN_XCVR_CS); - return 0; + return value & 0x3ff; } /* SPI register write */ @@ -137,7 +136,7 @@ void max2837_spi_write(uint8_t r, uint16_t v) { LOG("0x%03x -> reg%d\n", v, r); #else gpio_clear(PORT_XCVR_CS, PIN_XCVR_CS); - ssp_write(SSP1_NUM, (uint16_t)((r << 10) | (v & 0x3ff))); + ssp_transfer(SSP1_NUM, (uint16_t)((r << 10) | (v & 0x3ff))); gpio_set(PORT_XCVR_CS, PIN_XCVR_CS); #endif } diff --git a/firmware/common/max5864.c b/firmware/common/max5864.c index a0f5dcff..094ed700 100644 --- a/firmware/common/max5864.c +++ b/firmware/common/max5864.c @@ -29,7 +29,7 @@ void max5864_spi_write(uint_fast8_t value) { gpio_clear(PORT_AD_CS, PIN_AD_CS); - ssp_write(SSP1_NUM, value); + ssp_transfer(SSP1_NUM, value); gpio_set(PORT_AD_CS, PIN_AD_CS); }