Example #1
0
 def test_default_gpio(self):
     """Check I/O.
     """
     gpio_in, gpio_out = GpioMpsseController(), GpioMpsseController()
     gpio_in.configure(self.urls[0], direction=0x0000, frequency=10e6,
                       debug=self.debug_mpsse)
     gpio_out.configure(self.urls[1], direction=0xFFFF, frequency=10e6,
                        debug=self.debug_mpsse)
     for out in range(3, 0x10000, 29):
         gpio_out.write(out)
         outv = gpio_out.read()[0]
         inv = gpio_in.read()[0]
         # check inputs match outputs
         self.assertEqual(inv, out)
         # check level of outputs match the ones written
         self.assertEqual(outv, out)
     gpio_in.close()
     gpio_out.close()
Example #2
0
 def test_peek_gpio(self):
     """Check I/O peeking
     """
     gpio_in, gpio_out = GpioMpsseController(), GpioMpsseController()
     gpio_in.configure(self.urls[0], direction=0xFF00, frequency=10e6,
                       debug=self.debug)
     gpio_out.configure(self.urls[1], direction=0x00FF, frequency=10e6,
                        debug=self.debug)
     for out in range(256):
         gpio_out.write(out)
         outv = gpio_out.read()[0]
         inv = gpio_in.read(peek=True)
         # check inputs match outputs
         self.assertEqual(inv, out)
         #print(f'{out} {inv}')
         # check level of outputs match the ones written
         self.assertEqual(outv, out)
     gpio_in.close()
     gpio_out.close()
Example #3
0
    def test_stream_gpio(self):
        """Check I/O streaming.

           Beware this test is CPU intensive w/ virtual framework
        """
        gpio_in, gpio_out = GpioMpsseController(), GpioMpsseController()
        gpio_in.configure(self.urls[0], direction=0x0000, frequency=10e6,
                          debug=self.debug)
        gpio_out.configure(self.urls[1], direction=0xFFFF, frequency=10e6,
                           debug=self.debug)
        outv = list(range(0, 0x10000, 29))
        max_count = min(gpio_out.ftdi.fifo_sizes[0],
                        gpio_in.ftdi.fifo_sizes[1])//2  # 2 bytes/value
        outv = outv[:max_count]
        gpio_out.write(outv)
        inv = gpio_in.read(len(outv))
        # for now, it is hard to test value exactness
        self.assertEqual(len(outv), len(inv))
        gpio_in.close()
        gpio_out.close()
Example #4
0
#!/usr/bin/env python
from pyftdi.gpio import GpioMpsseController
import time

pin = 4
delay = 0.1
controller = GpioMpsseController()
try:
    controller.configure(
        "ftdi://ftdi:ft232h/1",
        frequency=1e6,
        direction=0x0000)
    gpio = controller.get_gpio()
    while True:
        print(gpio.read()[0] >> pin & 1)
        time.sleep(delay)
finally:
    controller.close()
Example #5
0
#!/usr/bin/env python
from pyftdi.gpio import GpioMpsseController
import time


def toggle(gpio, delay):
    gpio.write(0x0000 & gpio.direction)
    print('off', bin(gpio.read()[0]))
    time.sleep(delay)
    gpio.write(0xFFFF & gpio.direction)
    print('on ', bin(gpio.read()[0]))
    time.sleep(delay)


delay = 1
controller = GpioMpsseController()
try:
    controller.configure("ftdi://ftdi:ft232h/1",
                         frequency=100,
                         direction=0xFFFF,
                         initial=0x0000)
    gpio = controller.get_gpio()
    while True:
        toggle(gpio, delay)
finally:
    controller.close()