예제 #1
0
    def on(self):
        for i in range(8):
            gpio = self.cathodes[i].getgpio()
            gpio.output().on()
        for i in range(4):
            gpio = self.anodes[i].getgpio()
            gpio.output().on()

        Peripheral.on(self)
        return self
예제 #2
0
파일: spi.py 프로젝트: splhack/loam
    def on(self):

        miso = self.MISO.getgpio()
        if miso:
            miso.input().on()

        mosi = self.MOSI.getgpio()
        if mosi:
            mosi.output().on()

        # must have sscl
        sclk = self.SCLK.getgpio()
        sclk.output().on()

        ssel = self.CS.getgpio()
        if ssel:
            ssel.output().on()

        Peripheral.on(self)
        return self
예제 #3
0
파일: usart.py 프로젝트: splhack/loam
 def on(self):
     tx = self.TX.getgpio()
     tx.output().on()
     Peripheral.on(self)
     return self
예제 #4
0
 def on(self):
     self.crystal.on()
     Peripheral.on(self)
     return self
예제 #5
0
 def __init__(self, fpga, name='display'): 
     Peripheral.__init__(self, fpga, name)
예제 #6
0
파일: ps7.py 프로젝트: splhack/mantle
    def on(self):
        Peripheral.on(self)
        fpga = self.fpga

        #Read ps7_constraints file to config the GPIO with correct ucf info (and turn on)
        #Also save the pins in ps7pins
        fileName = os.path.dirname(__file__) + "/ps7_constraints.ucf"
        with open(fileName, 'r') as constraints:
            lines = constraints.readlines()

        fpga.ps7pins = {}
        for line in lines:
            reobj = re.findall("NET\s+\"(\S+)\"\s+(.*);", line)
            if not reobj:
                continue
            reobj = reobj[0]
            name = reobj[0]
            opts = reobj[1].split(" | ")
            loc = None
            ucfopts = {}
            for opt in opts:
                opt = re.sub("\s+", "", opt)
                optobj = re.findall("(.*)=\"?([^\"]*)\"?", opt)[0]
                if optobj[0] == "LOC":
                    loc = optobj[1]
                else:
                    ucfopts[optobj[0]] = optobj[1]
            assert (loc)
            loc = re.sub("\"", "", loc)
            fpga.ps7pins[name] = pin = getattr(fpga, loc)
            pin.setucfopts(ucfopts)
            pin.rename(name).on()

        #for key, val in fpga.ps7pins.items():
        #    print(key, pin.direction)

        #Orient the iopads correctly by refrenceing the ps7Wrap circuit type
        def flipdir(port):
            if port.isinput():
                return OUTPUT
            elif port.isoutput():
                return INPUT
            else:
                return INOUT

        ps7 = PS7Wrap()
        for name in ps7.interface.ports:
            if not name in fpga.ps7pins:
                continue
            port = ps7.interface.ports[name]
            n = 0
            if isinstance(type(port), ArrayKind):
                n = len(port)
            if n:
                for i in range(n):
                    aname = "%s[%d]" % (name, i)
                    fpga.ps7pins[aname].reorient(flipdir(port))
            elif name in fpga.ps7pins:  #TODO Hack to get around the clock
                fpga.ps7pins[name].reorient(flipdir(port))

        return self
예제 #7
0
파일: ps7.py 프로젝트: splhack/mantle
 def __init__(self, fpga):
     name = "PS7"
     Peripheral.__init__(self, fpga, name)
예제 #8
0
파일: clock.py 프로젝트: splhack/loam
    def __init__(self, fpga, frequency=None, name='clock'):
        Peripheral.__init__(self, fpga, name)

        self.basefreq = frequency
        self.freq = frequency
예제 #9
0
파일: clock.py 프로젝트: splhack/loam
 def on(self):
     Peripheral.on(self)
     return self
예제 #10
0
파일: timer.py 프로젝트: splhack/loam
 def __init__(self, fpga, name='systimer', n=32):
     Peripheral.__init__(self, fpga, name)
     self.n = n
예제 #11
0
파일: timer.py 프로젝트: splhack/loam
 def on(self):
     self.fpga.clock.on()
     Peripheral.on(self)
     return self
예제 #12
0
 def on(self):
     clkin = self.I.getgpio()
     clkin.input().on()
     Peripheral.on(self)
     return self