1
0

oscillo_charac2.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. import time
  2. from struct import *
  3. import ctypes
  4. import array
  5. import numpy as np
  6. import matplotlib.pyplot as plt
  7. from ADUCv2p1 import *
  8. chip1 = ADUCv2p1(0x50,True)
  9. chip1.set_channel(3) #ADC
  10. chip1.set_auto_set_pga(1)
  11. chip1.set_Vout(0,2500) #DAC for offset, 2000 at channel 1
  12. #chip1.set_pga_state(0x08)
  13. #chip1.set_pga_state(0x18) #G=2
  14. #chip1.set_pga_state(0x28) #G=4
  15. #chip1.set_pga_state(0x38) #G=8
  16. #chip1.set_pga_state(0x48) #G=16
  17. #chip1.set_pga_state(0x58) #G=32
  18. #chip1.set_pga_state(0x68) #G=64
  19. #chip1.set_pga_state(0x78)
  20. chip1.set_Vlearn(3250)
  21. chip1.set_start(25)
  22. chip1.set_stop(85)
  23. chip1.set_start_gnd(110)
  24. chip1.set_stop_gnd(140)
  25. chip1.set_wf_len(140)
  26. chip1.set_enab_gnd(1)
  27. chip1.set_N(1)
  28. chip1.set_Gain(11)
  29. chip1.set_remote_trigg(0)
  30. chip1.set_step_max(200)
  31. time.sleep(2)
  32. #chip1.set_auto_set_pga(0)
  33. print(chip1.get_auto_set_pga())
  34. print(chip1.get_Vout(0))
  35. print(chip1.get_pga_state())
  36. print('---')
  37. time.sleep(2)
  38. #print chip1.get_Vset()*0.61
  39. #print chip1.get_trigg_cnt()
  40. #chip1.set_Vout(0,1500)
  41. npt = chip1.get_wf_len()
  42. start = chip1.get_start()
  43. stop = chip1.get_stop()
  44. start_gnd = chip1.get_start_gnd()
  45. stop_gnd = chip1.get_stop_gnd()
  46. #print npt
  47. #print "start"
  48. data = chip1.read_data()
  49. #print "stop"
  50. #plt.plot(data)
  51. #plt.show()
  52. t = np.linspace(0,npt,npt)
  53. fig, ax = plt.subplots(1, 1)
  54. #ax.set_aspect('equal')
  55. #ax.set_xlim(0, 255)
  56. #ax.set_ylim(0, 255)
  57. #ax.hold(True)
  58. #rw = randomwalk()
  59. #x, y = rw.next()
  60. doblit = True
  61. plt.show(False)
  62. plt.draw()
  63. if doblit:
  64. # cache the background
  65. background = fig.canvas.copy_from_bbox(ax.bbox)
  66. gnd = sum(data[start_gnd:stop_gnd])/(stop_gnd-start_gnd)
  67. points = ax.plot(t,data.astype(int),".")[0]
  68. #points = ax.hist(data.astype(int))[0]
  69. ##ax.axvline(start)
  70. ##ax.axvline(stop)
  71. ##
  72. ##ax.axvline(start_gnd,color='red')
  73. ##ax.axvline(stop_gnd,color='red')
  74. tic = time.time()
  75. ###
  76. niter = 60000
  77. ###
  78. std = 0
  79. ave = np.zeros(niter,dtype = np.float)
  80. #fig.canvas.draw()
  81. total_data = np.zeros_like(data,dtype = np.float)
  82. print(len(total_data))
  83. print(chip1.get_Gain())
  84. measurements = []
  85. for ii in range(niter):
  86. #chip1.set_remote_trigg(1)
  87. # update the xy data
  88. data = chip1.read_data()
  89. #print total_data
  90. #total_data += data
  91. #points.set_data(t,total_data/(ii+1.0))
  92. gnd = sum(data[start_gnd:stop_gnd])/(stop_gnd-start_gnd)
  93. signal = sum(data[start:stop])/(stop-start)
  94. measurements.append(signal-gnd)
  95. print(chip1.get_Vout(1), chip1.get_Vout(2), signal, gnd, signal-gnd, np.std(data[start:stop]), np.std(data[start_gnd:stop_gnd]))
  96. print(np.std(measurements), chip1.get_Vout(0), chip1.get_pga_state())
  97. points.set_data(t,data.astype(int))
  98. # points.set_data(data.astype(int))
  99. #ave[ii]=np.mean(data[50::])
  100. av = np.mean(data)
  101. #for k in range(0,npt):
  102. #if abs(data[k]-av)>0.02*av:
  103. #data[k]=av
  104. points.set_data(t,data.astype(int))
  105. std = np.std(data)
  106. #print(std)
  107. #print(max(data)-min(data))
  108. #print(av)
  109. if doblit:
  110. # restore background
  111. fig.canvas.restore_region(background)
  112. # redraw just the points
  113. ax.draw_artist(points)
  114. # fill in the axes rectangle
  115. fig.canvas.blit(ax.bbox)
  116. else:
  117. # redraw everything
  118. fig.canvas.draw()
  119. time.sleep(10)