Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
   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)
Esempio n. 4
0
   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)
Esempio n. 5
0
    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)
Esempio n. 6
0
        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)
Esempio n. 7
0
    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')