20180403a
- Server side
- Testing with the "20180224b-binary.bin" binary
- Wanted to test the 75V pulser
import spidev
import RPi.GPIO as GPIO
import time
import numpy as np
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
def StartUp():
GPIO.setmode(GPIO.BCM)
PRESET = 25
IO4 = 26
GPIO.setup(PRESET,GPIO.OUT)
GPIO.setup(IO4,GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
print "Reset 25 - Low 1s"
GPIO.output(PRESET,GPIO.LOW)
time.sleep(3)
print "Reset 25 - High 0.2s"
GPIO.output(PRESET,GPIO.HIGH)
time.sleep(0.2)
spi = spidev.SpiDev()
spi.open(0,1)
spi.mode = 0b01
print "spi.cshigh is " + str(spi.cshigh)
print "spi mode is " + str(spi.mode)
spi.max_speed_hz = 2000000
print "spi maxspeed is "+str(spi.max_speed_hz)+"hz"
return spi
def TestSPI(spi,ncycles):
i = 0
while i < ncycles:
WriteFPGA(spi,0xEB,0x01)
time.sleep(0.5)
WriteFPGA(spi,0xEB,0x00)
time.sleep(0.5)
i = i+1
def LoopSPI(spi):
while 1:
WriteFPGA(spi,0xEB,0x01)
WriteFPGA(spi,0xEB,0x00)
def LoopAcq(spi):
while 1:
WriteFPGA(spi,0xEB,0x00)
WriteFPGA(spi,0xEF,0x01)
WriteFPGA(spi,0xEA,0x01)
time.sleep(0.1)
def ClearMem(spi):
WriteFPGA(spi,0xEF,0x01)
def ConfigSPI(spi):
WriteFPGA(spi,0xE0,0x14)
WriteFPGA(spi,0xE1,0x00)
WriteFPGA(spi,0xE2,0x35)
WriteFPGA(spi,0xE3,0x00)
WriteFPGA(spi,0xE4,0x05)
WriteFPGA(spi,0xE5,0xAA)
WriteFPGA(spi,0xE6,0xC8)
WriteFPGA(spi,0xE7,0x01)
WriteFPGA(spi,0xE8,0x86)
WriteFPGA(spi,0xE9,0xA0)
WriteFPGA(spi,0xEB,0x00)
WriteFPGA(spi,0xEC,0x11)
WriteFPGA(spi,0xED,0x03)
WriteFPGA(spi,0xEE,0xA0)
print "Config FPGA done!"
def WriteFPGA(spi,adress,value):
spi.xfer([0xAA] )
spi.xfer([adress] )
spi.xfer([value] )
spi = StartUp()
ConfigSPI(spi)
N = 0
Reset 25 - Low 1s
Reset 25 - High 0.2s
spi.cshigh is False
spi mode is 1
spi maxspeed is 2000000hz
Config FPGA done!
TestSPI(spi,3)
f = 0x02
WriteFPGA(spi,0xED,f)
VGA = 0x11
WriteFPGA(spi,0xEC,VGA)
WriteFPGA(spi,0xEB,0x00)
WriteFPGA(spi,0xEF,0x01)
WriteFPGA(spi,0xEA,0x01)
time.sleep(0.2)
Fech = int(64/((1+f)))
print Fech
Nacq = 0xAAC8/100 * Fech
print "-> "+str(Nacq) + ' samples'
A = []
nAcq = int(2*0x32C8 * Fech/100)
for i in range(nAcq-10):
A.append ( spi.xfer([0x00] )[0] )
a = np.asarray(A)
np.savetxt( "24c-0V"+str(N)+"-AAC8us-VGA@"+str(hex(VGA))+"-spimode"+str(spi.mode)+"-"+str(Fech)+"msps.csv", a, delimiter=";")
N = N+1
21
-> 9177 samples
spi.close()