Пример #1
0
 def __init__(self, addr, port=2048):
     af,typ,proto,name,sa = getaddrinfo(addr,port,AF_UNSPEC,SOCK_STREAM)[0]
     self.sock = socket(af,typ,proto)
     self.sock.connect(sa)
     JennicProtocol.__init__(self)
     self.preferedblocksize=0xff
     self.addr=0x00
Пример #2
0
 def __init__(self, addr, port=2048):
     af, typ, proto, name, sa = getaddrinfo(addr, port, AF_UNSPEC,
                                            SOCK_STREAM)[0]
     self.sock = socket(af, typ, proto)
     self.sock.connect(sa)
     JennicProtocol.__init__(self)
     self.preferedblocksize = 0xff
     self.addr = 0x00
Пример #3
0
    def __init__(self, devname):
        self.DEFAULT_TIMEOUT = .2
        self.MAX_TIMEOUT = 10
        if devname == None: devname = '/dev/ttyUSB0'

        sys.stdout.write("waiting for %s.." % devname)
        sys.stdout.flush()
        while True:
            f = -1
            try:
                f = open(devname)
            except IOError:
                pass
            else:
                break
        sys.stdout.write("done\n")

        self.ser = Serial(devname,
                          38400,
                          timeout=.01,
                          parity=PARITY_NONE,
                          stopbits=1,
                          bytesize=8,
                          rtscts=0,
                          dsrdtr=0)

        # make sure that the baudrate is set!
        self.ser.setBaudrate(115200)
        self.ser.setBaudrate(38400)

        # switch to programming mode for boards that support it, atm
        # there is the jnode and jbee platform
        self.ser.setDTR(0)
        sleep(.01)
        self.ser.setDTR(1)
        sleep(.2)

        # read everything that is clogging up the input buffer, until we can
        # be sure that we are in programming mode.
        sys.stdout.write("waiting until queues are emtpy..")
        sys.stdout.flush()
        while self.ser.inWaiting():
            self.ser.read(self.ser.inWaiting())
            sleep(.5)
        sys.stdout.write("done\n")

        # switch to maximum baudrate
        self.ser.write(pack("<BBBB", 3, 0x27, 1, self.crc([3, 0x27, 1], 3)))
        self.ser.read(3)
        self.ser.setBaudrate(1000000)

        JennicProtocol.__init__(self)
Пример #4
0
    def __init__(self, device=None, initbaud=38400, progbaud=1000000, reset=-1, spimiso=-1):

        GPIO.setwarnings(False)
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(spimiso, GPIO.OUT)
        GPIO.setup(reset, GPIO.OUT)

        self.INITBAUD, self.PROGBAUD = int(initbaud), int(progbaud)
        self.DEVICE = device
        self.RESET, self.SPIMISO, = reset, spimiso
        self.DEFAULT_TIMEOUT = .2
        self.MAX_TIMEOUT     = 10
        JennicProtocol.__init__(self)
Пример #5
0
    def __init__(self, device=None, initbaud=38400, progbaud=1000000):
        vid, pid, iserial = usbutils.query_usb_id(device)

        devserials= ftd2xx.listDevices();

        dev = None
        for i, sn in enumerate(devserials):
            if sn == iserial.encode():
                dev = ftd2xx.getDeviceInfoDetail(i)
                break

        if dev == None:
            raise Exception(device + " not found")

        self.INITBAUD, self.PROGBAUD = int(initbaud), int(progbaud)
        self.SERIAL = iserial
        JennicProtocol.__init__(self)
Пример #6
0
    def __init__(self,
                 pid=0x6001,
                 devno=1,
                 flag=None,
                 baud_fast=True,
                 ftdi_obj=None):
        self.DEFAULT_TIMEOUT = 1  # 100 for debug
        self.MAX_TIMEOUT = 3  # 100 fpr debug
        self.MAX_TIMEOUT_ERASEFULL = 8
        self.MAX_TIMEOUT_ERASESECT = 2
        self.BAUD_DEFAULT = 38400

        self.b_ftdi_obj = False
        self.devno = 1
        self.pid = pid
        self.isopen = False
        self.baud_fast = baud_fast

        if ftdi_obj is not None:
            self.ser = ftdi_obj
            self.b_ftdi_obj = True
            self.isopen = True
        else:
            if pid == None: pid = self.PRODICT_ID
            self.devno = None
            if devno.__class__ == int:
                self.devno = devno
            elif devno.__class__ == str:
                pass
                #self.devno = find_devno_by_serial(self.VENDOR_ID, pid, devno)
            else:
                self.devno = 1

            self.pid = pid
            self.isopen = False
            self.baud_fast = baud_fast

            self.ser = Ftdi()
            self.open(baud=self.BAUD_DEFAULT)

        self.dev_prog()

        self.baud_default_to_fast()

        JennicProtocol.__init__(self)
Пример #7
0
    def __init__(self, devname):
        self.DEFAULT_TIMEOUT = .2
        self.MAX_TIMEOUT     = 10
        if devname==None: devname='/dev/ttyUSB0'

        sys.stdout.write("waiting for %s.."%devname)
        sys.stdout.flush()
        while True:
            f=-1
            try: f=open(devname)
            except IOError: pass
            else: break
        sys.stdout.write("done\n")

        self.ser = Serial(devname, 38400, timeout=.01, parity=PARITY_NONE,
                           stopbits=1, bytesize=8, rtscts=0, dsrdtr=0)

        # make sure that the baudrate is set!
        self.ser.setBaudrate(115200)
        self.ser.setBaudrate(38400)

        # switch to programming mode for boards that support it, atm
        # there is the jnode and jbee platform
        self.ser.setDTR(0); sleep(.01); self.ser.setDTR(1); sleep(.2)

        # read everything that is clogging up the input buffer, until we can
        # be sure that we are in programming mode.
        sys.stdout.write("waiting until queues are emtpy..")
        sys.stdout.flush()
        while self.ser.inWaiting():
            self.ser.read(self.ser.inWaiting())
            sleep(.5)
        sys.stdout.write("done\n")

        # switch to maximum baudrate
        #self.ser.write(pack("<BBBB", 3,0x27,1,self.crc([3,0x27,1],3)))
        #self.ser.read(3)
        #self.ser.setBaudrate(1000000)

        JennicProtocol.__init__(self)
Пример #8
0
    def __init__(self, RESET=5, SPIMISO=4):
        self.f = Ftdi()
        self.RESET, self.SPIMISO, self.NONE = 1<<RESET, 1<<SPIMISO, 0x00

        try:
            # Teco usbbridge
            self.f.usb_open(0x0403, 0xcc40)
        except:
            try:
                # FT232 chips
                self.f.usb_open(0x0403, 0x6001)
            except:
                # FT2232 chips
                self.f.usb_open(0x0403, 0x6010)

        # clear crap
        self.f.usb_reset()
        self.f.usb_purge_buffers()
        self.f.usb_purge_buffers()
        crap = cArray(1024)
        self.f.read_data(crap, 1024)

        self.enterprogrammingmode()
        self.doreset = 1

        # clear crap
        self.f.usb_reset()
        self.f.usb_purge_buffers()
        self.f.usb_purge_buffers()
        crap = cArray(1024)
        self.f.read_data(crap, 1024)

        self.f.set_baudrate(38400)
        self.f.set_line_property(NONE, STOP_BIT_1, BITS_8)
        self.f.setrts(1)
        self.f.setflowctrl(SIO_RTS_CTS_HS)
        self.f.setrts(0)

        JennicProtocol.__init__(self)
Пример #9
0
    def __init__(self, RESET=5, SPIMISO=4):
        self.f = Ftdi()
        self.RESET, self.SPIMISO, self.NONE = 1 << RESET, 1 << SPIMISO, 0x00

        try:
            # Teco usbbridge
            self.f.usb_open(0x0403, 0xcc40)
        except:
            try:
                # FT232 chips
                self.f.usb_open(0x0403, 0x6001)
            except:
                # FT2232 chips
                self.f.usb_open(0x0403, 0x6010)

        # clear crap
        self.f.usb_reset()
        self.f.usb_purge_buffers()
        self.f.usb_purge_buffers()
        crap = cArray(1024)
        self.f.read_data(crap, 1024)

        self.enterprogrammingmode()
        self.doreset = 1

        # clear crap
        self.f.usb_reset()
        self.f.usb_purge_buffers()
        self.f.usb_purge_buffers()
        crap = cArray(1024)
        self.f.read_data(crap, 1024)

        self.f.set_baudrate(38400)
        self.f.set_line_property(NONE, STOP_BIT_1, BITS_8)
        self.f.setrts(1)
        self.f.setflowctrl(SIO_RTS_CTS_HS)
        self.f.setrts(0)

        JennicProtocol.__init__(self)