def test_uart(): spi = SPI() spi.connect(port) spi.enter_bb() spi.enter_uart() assert spi.mode == 'uart' spi.port.close()
def test_i2c(): spi = SPI() spi.connect(port) spi.enter_bb() spi.enter_i2c() assert spi.mode == 'i2c' spi.port.close()
def test_rawwire(): spi = SPI() spi.connect(port) spi.enter_bb() spi.enter_rawwire() assert spi.mode == 'raw' spi.port.close()
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
def test_spi(): spi = SPI() spi.connect(port) spi.enter_bb() spi.enter_spi() assert spi.mode == 'spi' spi.port.close()
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()
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)
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')
#!/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()
def test_connect(): spi = SPI() spi.connect(port) assert spi.connected spi.port.close()
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."
#!/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()
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:
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
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))
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()