def io_init(self): # configure spi pins self.spi = bitbang_spi(self.pins['lmx_le'], self.pins['lmx_data'], self.pins['lmx_lock'], self.pins['lmx_clk']) self.gpio = GPIO() # configure gpio pins self.gpio.set_output(self.pins['lmx_pow_en']) self.gpio.set_value(self.pins['lmx_pow_en'], self.gpio.HIGH) self.gpio.set_output(self.pins['lmx_ce']) #GPIO.setup(self.pins['lmx_lock'], GPIO.IN) if self.rf_board: self.gpio.set_output(self.pins['-5v_en']) self.gpio.set_value(self.pins['-5v_en'], self.gpio.HIGH) self.gpio.set_output(self.pins['amp_en']) # TODO: disable 5V rail until DAC is tested, active low self.gpio.set_output(self.pins['amp_en'], self.gpio.HIGH) self.dac_spi = bitbang_spi(self.pins['dac_cs'], self.pins['dac_data'], None, self.pins['dac_sck']) self.set_power_dac(500) time.sleep(.1)
def io_init(self): gpio = GPIO() gpio.set_output(CLK_REF_SEL) gpio.set_output(PLL_POW_EN) gpio.set_value(CLK_REF_SEL, gpio.HIGH) gpio.set_value(PLL_POW_EN, gpio.HIGH)
def __init__(self, spi_cs, spi_mosi, spi_miso, spi_clk): self.gpio = GPIO() self.spi_cs = spi_cs self.spi_mosi = spi_mosi self.spi_miso = spi_miso self.spi_clk = spi_clk self.gpio.set_output(spi_cs) self.gpio.set_output(spi_mosi) self.gpio.set_output(spi_clk) if self.spi_miso != None: self.gpio.set_input(spi_miso) self.gpio.set_value(spi_cs, self.gpio.HIGH)
def __init__(self, spi_cs, spi_mosi, spi_miso, spi_clk, rising_data = True, latch = None, enable_low = True): self.gpio = GPIO() self.rising_data = rising_data self.enable_low = enable_low self.spi_cs = spi_cs self.spi_mosi = spi_mosi self.spi_miso = spi_miso self.spi_clk = spi_clk self.latch = latch self.gpio.set_output(spi_cs) self.gpio.set_output(spi_mosi) self.gpio.set_output(spi_clk) if self.spi_miso != None: self.gpio.set_input(spi_miso) if self.latch != None: self.gpio.set_output(latch) self.gpio.set_value(spi_cs, self.enable_low)
def io_init(self): # configure spi pins self.spi = bitbang_spi(self.pins['lmx_le'], self.pins['lmx_data'], self.pins['lmx_lock'], self.pins['lmx_clk']) self.gpio = GPIO() # configure gpio pins self.gpio.set_output(self.pins['lmx_pow_en']) self.gpio.set_value(self.pins['lmx_pow_en'], self.gpio.HIGH) self.gpio.set_output(self.pins['lmx_ce']) #GPIO.setup(self.pins['lmx_lock'], GPIO.IN) if self.rf_board: self.dac_spi = bitbang_spi(self.pins['dac_cs'], self.pins['dac_data'], None, self.pins['dac_sck']) self.set_power_dac(000) self.gpio.set_output(self.pins['amp_en']) self.gpio.set_value(self.pins['amp_en'], self.gpio.LOW) time.sleep(.1)
spi, 0x07, 0x0e) # set decimation rate to 900, 60 * (M + 1) if K = 0, M = 14 # configure SSI ad9864_write_reg(spi, 0x1A, 0x07) # (clkout freq = adc clk / 7) ad9864_write_reg(spi, 0x18, 0x00) # take fs and clkout out of tristate # set doutb to tristate ad9864_write_reg(spi, 0x3B, 0x08) # disable mosi on doutb if __name__ == '__main__': from mmap_gpio import GPIO import time gpio = GPIO() SYNCB = PINS.AD_SYNCB V3_EN = PINS.PLL_3V3_EN gpio.set_output(SYNCB) gpio.set_output(V3_EN) gpio.set_output(ADC_CLK_EN) gpio.set_value(V3_EN, gpio.HIGH) gpio.set_value(SYNCB, gpio.HIGH) gpio.set_value(ADC_CLK_EN, gpio.HIGH) print("SYNCB HIGH") time.sleep(.5) spi1 = bitbang_spi(ADC_SPI_CS1, ADC_SPI_MOSI, ADC_SPI_MISO, ADC_SPI_CLK)
def __init__(self, context, port): self.command_handlers = {\ VNA_SW_CMD: self._set_switch, \ MIX_EN_CMD: self._enable_mixer, \ MIX_MUL_CMD: self._set_multiplier, \ ADC_INIT_CMD : self._init_adc, \ ADC_SYNC_CMD: self._sync_adc,\ ADC_ATTEN_CMD : self._attenuate_adc} # init socket stuff self.context = context self.socket = context.socket(zmq.REP) print('binding socket..') self.socket.bind("tcp://*:{}".format(str(port))) print('binding complete') # init io stuff self.gpio = GPIO() print('bringing up 3.3V rail') self.gpio.set_output(V3_EN) self.gpio.set_value(V3_EN, self.gpio.HIGH) print('initializing reference clocks') self.synth = ad9577_synth() self.synth.lo_powerdown() print('setting up IO') self.gpio.set_output(DEMOD_3V3_EN) self.gpio.set_output(MIX_EN) self.gpio.set_output(MIX_X2) self.gpio.set_output(SW_PORT_SEL) self.gpio.set_output(ADC_CLK_EN) self.gpio.set_output(LO_BUF_AMP_EN) self.gpio.set_output(SYNCB) print('setting default values') self.gpio.set_value(DEMOD_3V3_EN, self.gpio.HIGH) self.gpio.set_value(MIX_EN, self.gpio.LOW) self.gpio.set_value(MIX_X2, self.gpio.LOW) self.gpio.set_value(LO_BUF_AMP_EN, self.gpio.LOW) self.gpio.set_value(ADC_CLK_EN, self.gpio.HIGH) self.gpio.set_value(SYNCB, self.gpio.HIGH) self.gpio.set_value(SW_PORT_SEL, self.gpio.HIGH) print('initalizing ADCs') self.adc_spi1 = bitbang_spi(ADC_SPI_CS1, ADC_SPI_MOSI, ADC_SPI_MISO, ADC_SPI_CLK) self.adc_spi2 = bitbang_spi(ADC_SPI_CS2, ADC_SPI_MOSI, ADC_SPI_MISO, ADC_SPI_CLK) self.adc_spi3 = bitbang_spi(ADC_SPI_CS3, ADC_SPI_MOSI, ADC_SPI_MISO, ADC_SPI_CLK) self.adc_spi4 = bitbang_spi(ADC_SPI_CS4, ADC_SPI_MOSI, ADC_SPI_MISO, ADC_SPI_CLK) self.adc_spis = [ self.adc_spi1, self.adc_spi2, self.adc_spi3, self.adc_spi4 ] for s in self.adc_spis: ad9864_tristate_miso(s) print('init complete')