コード例 #1
0
ファイル: testmode.py プロジェクト: wallge/pyBusPirateLite
def test_uart():
    spi = SPI()
    spi.connect(port)
    spi.enter_bb()
    spi.enter_uart()
    assert spi.mode == 'uart'
    spi.port.close()
コード例 #2
0
ファイル: testmode.py プロジェクト: wallge/pyBusPirateLite
def test_i2c():
    spi = SPI()
    spi.connect(port)
    spi.enter_bb()
    spi.enter_i2c()
    assert spi.mode == 'i2c'
    spi.port.close()
コード例 #3
0
ファイル: testmode.py プロジェクト: wallge/pyBusPirateLite
def test_rawwire():
    spi = SPI()
    spi.connect(port)
    spi.enter_bb()
    spi.enter_rawwire()
    assert spi.mode == 'raw'
    spi.port.close()
コード例 #4
0
    def open(self, port):
        if not os.path.exists(self.port):
            return False

        self.port = port
        impl = SPI(self.port, self.baud)

        if not impl.BBmode():
            print "Failed to enter binary mode."
            return False
        if not impl.enter_SPI():
            print "Failed to enter SPI mode."
            return False
        if not impl.cfg_pins(PinCfg.POWER | PinCfg.CS | PinCfg.AUX):
            print "Failed to set SPI peripherals."
            return False
        if not impl.set_speed(SPISpeed._1MHZ):
            print "Failed to set SPI Speed."
            return False
        if not impl.cfg_spi(SPICfg.OUT_TYPE):
            print "Failed to set SPI configuration."
            return False
        impl.timeout(0.2)
        self.impl = impl
        return True
コード例 #5
0
ファイル: testmode.py プロジェクト: wallge/pyBusPirateLite
def test_spi():
    spi = SPI()
    spi.connect(port)
    spi.enter_bb()
    spi.enter_spi()
    assert spi.mode == 'spi'
    spi.port.close()
コード例 #6
0
ファイル: GD25Q128.py プロジェクト: xwings/yi_home_cam_v1
    def connect(self, usb_port):
        self.spi = SPI(usb_port, 115200)

        print "Entering binmode: ",
        if self.spi.BBmode():
            print "OK."
        else:
            print "failed."
            sys.exit()

        print "Entering raw SPI mode: ",
        if self.spi.enter_SPI():
            print "OK."
        else:
            print "failed."
            sys.exit()

        print "Configuring SPI."
        if not self.spi.cfg_pins(self.status_byte):
            print "Failed to set SPI peripherals."
            sys.exit()
        if not self.spi.set_speed(SPISpeed._2_6MHZ):
            print "Failed to set SPI Speed."
            sys.exit()
        if not self.spi.cfg_spi(SPICfg.CLK_EDGE | SPICfg.OUT_TYPE):
            print "Failed to set SPI configuration."
            sys.exit()
        self.spi.timeout(0.2)

        #Bring PROG to High
        self.status_byte |= PinCfg.AUX
        if not self.spi.cfg_pins(self.status_byte):
            print "Failed to set PROG pin to HIGH"
            sys.exit()
コード例 #7
0
 def __init__(self, devname=UART_DEVNAME, speed=UART_SPEED, datasize=8):
     self._datasize = datasize
     self.spi = SPI(devname, speed)
     if not self.spi.BBmode():
         raise VbusPirateError("Can't enter to binmode")
     if not self.spi.enter_SPI():
         raise VbusPirateError("Can't enter raw SPI mode")
     if not self.spi.set_speed(self.SPI_SPEED):
         raise VbusPirateError("Can't Configure SPI speed")
     if not self.spi.cfg_spi(self.SPI_CFG):
         raise VbusPirateError("Can't Configure SPI configuration")
     if not self.spi.cfg_pins(self.PINS_CFG):
         raise VbusPirateError("Can't Configure SPI peripherals")
     self.spi.timeout(0.2)
コード例 #8
0
    def __init__(self, port='/dev/bus_pirate', baudrate=bp.SPISpeed._2MHZ, log=None): #pylint: disable=W0212, C0301
        """init the bridge"""
        if not log:
            raise BpSpiBridgeError('no logger provided')
        self.log = log
        self.log.critical('bridge starting')

        # instantiating and configuring the Bus Pirate
        spi = bp.SPI(port, 115200)

        # exit bit bang mode
        spi.resetBP()
        # enter bit bang mode
        if not spi.BBmode():
            self.log.critical('bridge failed to enter in bitbang mode')
            raise BpSpiBridgeError('bridge failed to enter in bitbang mode')
        # enter I2C mode
        if not spi.enter_SPI():
            self.log.critical('bridge failed to enter in SPI mode')
            raise BpSpiBridgeError('bridge failed to enter in SPI mode')
        spi.set_speed(baudrate)

        # configuring SPI:
        #    pin out 3.3V: 1
        #    clock idle low: 0
        #    clock edge idle to active: 0
        #    sample time middle: 0
        spi.cfg_spi(bp.SPICfg.OUT_TYPE)

        # turn on the power supply
        spi.cfg_pins(bp.PinCfg.POWER)

        self.spi = spi
        self.data = ''
        self.mutex = threading.Lock()

        self.log.critical('bridge configured')
コード例 #9
0
#!/usr/bin/env python

import sys
#import math
import time
import struct

from pyBusPirateLite.SPI import *

spi = SPI('/dev/tty.usbserial-A5005CUQ', 115200)
spi.resetBP()

if not spi.BBmode():
    print('BBmode() failed')
    sys.exit()

if not spi.enter_SPI():
    print('enter_SPI() failed')
    sys.exit()

# speed = 30kHz
# polarity = idle low (default)
# output clock edge = active to idle (default)
# input sample phase = middle (default)
# CS = /CS (default)
# output type = normal

if not spi.cfg_pins(PinCfg.POWER | PinCfg.CS | PinCfg.AUX):
    print('cfg_pins() failed')
    sys.exit()
コード例 #10
0
ファイル: testmode.py プロジェクト: wallge/pyBusPirateLite
def test_connect():
    spi = SPI()
    spi.connect(port)
    assert spi.connected
    spi.port.close()
コード例 #11
0
ファイル: spi-dump.py プロジェクト: cerealkill/ctspi
                        type=argparse.FileType('wb'),
                        required=True)
    parser.add_argument("-p",
                        "--serial-port",
                        dest="bp",
                        default="/dev/ttyUSB0")
    parser.add_argument("-s", "--size", dest="size", type=int, required=True)
    parser.add_argument("-S",
                        "--serial-speed",
                        dest="speed",
                        default=115200,
                        type=int)

    args = parser.parse_args(sys.argv[1:])

    spi = SPI(args.bp, args.speed)
    print "Entering binmode: ",
    if spi.BBmode():
        print "OK."
    else:
        print "failed."
        sys.exit()

    print "Entering raw SPI mode: ",
    if spi.enter_SPI():
        print "OK."
    else:
        print "failed."
        sys.exit()

    print "Configuring SPI."
コード例 #12
0
ファイル: spi_example.py プロジェクト: wallge/pyBusPirateLite
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Example of SPI data transfer

from pyBusPirateLite.SPI import *
from pyBusPirateLite.BBIO_base import PinCfg

spi = SPI()
spi.connect('COM3')
spi.enter_bb()
spi.enter_spi()

spi.cfg_pins(PinCfg.POWER | PinCfg.CS )
spi.cfg_spi( 0x0c )
spi.set_speed(SPISpeed._1MHZ)

# send two bytes and receive answer
spi.cs_low()
data = spi.transfer( [0x82, 0x00])
spi.cs_high()

print(ord(data[2]))

spi.reset()
spi.port.close()
コード例 #13
0
		sys.exit(1)
	else:
		return (options, args)
	
""" enter binary mode """
if __name__ == '__main__':
	data = ""
	(opt, args)  = parse_prog_args()

	if opt.command == "read":
		f=open(args[0], 'wb')
	elif opt.command == "write":
		f=open(args[0], 'rb')

	try:
		spi = SPI(opt.dev_name, 115200)
	except SerialException as ex:
		print ex
		sys.exit();

	print "Entering binmode: ",
	if spi.BBmode():
		print "OK."
	else:
		print "failed."
		sys.exit()

	print "Entering raw SPI mode: ",
	if spi.enter_SPI():
		print "OK."
	else:
コード例 #14
0
            for i, x in enumerate([212, 424, 847]):
                if bitrates & (16 << i):
                    print ', ', x,
            print
            if bitrates & 0x80:
                print 'must be symetrical'
            else:
                print 'asymetrical OK.'
        if rats0 & 0x20:
            waits = rats[0]
            rats = rats[1:]
            print 'frame waiting time:'
        print 'more rats decode here'

if __name__ == '__main__':
    spi = SPI("/dev/ttyUSB0", 115200)
    chip = cr95hf(spi)
    #  print c.commandresp(1, [])

    tech = chip.protocolSelect14443A()

    #  tech.findAll()
    #  sys.exit()

    while True:
        try:
            tech.comTag_reqa()
            break
        except:
            pass
コード例 #15
0
ファイル: bme280.py プロジェクト: CyberCastle/Bus_Pirate
def buspirate_test(buspirate_dev: str, filename: str):

    spi = SPI(buspirate_dev, 115200)

    print("Entering binmode: ")
    if spi.BBmode():
        print("OK.")
    else:
        print("failed.")
        sys.exit()

    print("Entering raw SPI mode: ")
    if spi.enter_SPI():
        print("OK.")
    else:
        print("failed.")
        sys.exit()

    print("Configuring SPI peripherals: ")
    if spi.cfg_pins(PinCfg.POWER | PinCfg.CS):
        print("OK.")
    else:
        print("failed.")
        sys.exit()

    sleep(0.5)

    print("Configuring SPI speed: ")
    if spi.set_speed(SPISpeed._125KHZ):
        print("OK.")
    else:
        print("failed.")
        sys.exit()
    print("Configuring SPI configuration: ")
    if spi.cfg_spi(SPICfg.CLK_EDGE | SPICfg.OUT_TYPE):
        print("OK.")
    else:
        print("failed.")
        sys.exit()
    spi.timeout(0.2)

    bme280 = BME280(spi)

    bme280.begin()

    print("Checking chip ID: ", end='')
    chipID = bme280.read_reg8(0xD0)

    if chipID == 0x60:
        print("OK")
    else:
        print(f"ERROR ({chipID} != 0x60")
        sys.exit()

    bme280.end()

    print("Starting conversion")
    bme280.begin()
    bme280.write_reg8(0xF2, 0x02)
    bme280.write_reg8(0xF4, 0b01001010)
    bme280.end()

    bme280.begin()
    print("Waiting for result.", end='')
    while bme280.read_reg8(0xF3) & 0x80:
        print('.', end='')
        sleep(0.01)
    print("OK")
    bme280.end()

    print("Reading results:", end='')

    bme280.begin()
    bres = bme280.read_data(0xF7, 8)
    bme280.end()

    if len(bres) == 8:
        print("OK")
    else:
        print("ERROR")
        sys.exit()

    raw_humidity = (bres[6] << 8) | bres[7]
    raw_pressure = (bres[0] << 12) | (bres[1] << 4) | (bres[2] >> 4)
    raw_temp = (bres[3] << 12) | (bres[4] << 4) | (bres[5] >> 4)

    print(
        f"Raw Humidity:{raw_humidity} Raw Pressure:{raw_pressure} Raw Temperature:{raw_temp}"
    )

    bme280.begin()
    bcompA = bme280.read_data(0x88, 26)  # 0x88 - 0xA1
    bme280.end()

    bme280.begin()
    bcompB = bme280.read_data(0xE1, 7)  # 0xE1 - 0xE7
    bme280.end()

    if filename is not None:
        fp = open("bme280.bin", "wb")
        fp.write(bres)
        fp.write(bcompA)
        fp.write(bcompB)
        fp.close()

    print("Reset Bus Pirate to user terminal: ", end='')
    if spi.resetBP():
        print("OK")
    else:
        print("ERROR")
        sys.exit()

    temperature = bme280.calculateTemperature(raw_temp, bcompA)
    pressure = bme280.calculatePressure(raw_pressure, bcompA)
    humidity = bme280.calculateHumidity(raw_humidity, bcompA[25:] + bcompB)

    print("Temperature: {:.2f}C".format(temperature / 100.0))
    print("Pressure: {:.2f}hPa".format(pressure / 100.0))
    print("RH: {:.2f}%".format(humidity))
コード例 #16
0
ファイル: spi_test.py プロジェクト: bopopescu/ioioWebsockets
		print options
		sys.exit(1)
	else:
		return (options, args)
	
""" enter binary mode """
if __name__ == '__main__':
	data = ""
	(opt, args)  = parse_prog_args()

	if opt.command == "read":
		f=open(args[0], 'wb')
	elif opt.command == "write":
		f=open(args[0], 'rb')

	spi = SPI("/dev/tty.usbserial-A7004qlY", 115200)

	print "Entering binmode: ",
	if spi.BBmode():
		print "OK."
	else:
		print "failed."
		sys.exit()

	print "Entering raw SPI mode: ",
	if spi.enter_SPI():
		print "OK."
	else:
		print "failed."
		sys.exit()