Reset_Init_all_reg_10bit_4Mp.sh 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325
  1. #!/bin/bash
  2. ###################### by Michele Caselle and Uros Stafanovic ##################################################
  3. ############ Resent procedure and camera initialization for 10 -bit mode ######################################
  4. error=0
  5. echo " Reset Readout and CMOSIS "
  6. pci -w 0x9040 80000204
  7. sleep .1
  8. #echo " Release Reset for Readout"
  9. #pci -w 0x9040 800001e0
  10. sleep .1
  11. ##################### PLL SET #####################################
  12. val=f501
  13. pci -w 0x9000 $val
  14. sleep 0.01
  15. #pci -r 0x9000 -s 10
  16. sleep 0.01
  17. value=`pci -r 0x9000 -s 8 | grep 9010 | awk '{print $2}' | cut -c 4-8`
  18. if [ "$value" != "b$val" ]; then
  19. echo "--------------------------------->>>> ERROR! read value: ${value:1:4}, written value: $val"
  20. error=1
  21. # exit
  22. fi
  23. sleep 0.01
  24. echo " Start CMOSIS Configuration .."
  25. pci -w 0x9000 f301
  26. sleep 0.01
  27. #pci -r 0x9000 -s 10
  28. sleep 0.01
  29. value=`pci -r 0x9000 -s 8 | grep 9010 | awk '{print $2}' | cut -c 4-8`
  30. if [ "$value" != "bf301" ]; then
  31. echo "--------------------------------->>>> ERROR! read value: ${value:1:4}, written value: $val"
  32. error=1
  33. # exit
  34. fi
  35. sleep 0.01
  36. val=d207
  37. pci -w 0x9000 $val
  38. sleep 0.01
  39. #pci -r 0x9000 -s 10
  40. sleep 0.01
  41. value=`pci -r 0x9000 -s 8 | grep 9010 | awk '{print $2}' | cut -c 4-8`
  42. if [ "$value" != "b$val" ]; then
  43. echo "--------------------------------->>>> ERROR! read value: ${value:1:4}, written value: $val"
  44. error=1
  45. # exit
  46. fi
  47. sleep 0.01
  48. # Michele 10 - 12 bit mode #
  49. # ###################################################################################################
  50. echo " 10 - bit mode, set Bit_mode "
  51. val=ef00 ######################################################
  52. pci -w 0x9000 $val
  53. sleep 0.01
  54. #pci -r 0x9000 -s 10
  55. sleep 0.01
  56. value=`pci -r 0x9000 -s 8 | grep 9010 | awk '{print $2}' | cut -c 4-8`
  57. if [ "$value" != "b$val" ]; then
  58. echo "--------------------------------->>>> ERROR! read value: ${value:1:4}, written value: $val"
  59. error=1
  60. # exit
  61. fi
  62. sleep 0.01
  63. # Michele set ADC_resolution @ 12 bits
  64. echo " 10 bit mode, set ADC resolution 10 bits "
  65. val=f000 # qui for 10 - 11 - 12 bits ########################################################
  66. pci -w 0x9000 $val
  67. sleep 0.01
  68. #pci -r 0x9000 -s 10
  69. sleep 0.01
  70. value=`pci -r 0x9000 -s 8 | grep 9010 | awk '{print $2}' | cut -c 4-8`
  71. if [ "$value" != "b$val" ]; then
  72. echo "--------------------------------->>>> ERROR! read value: ${value:1:4}, written value: $val"
  73. error=1
  74. # exit
  75. fi
  76. sleep 0.01
  77. # adc recommended 28=44
  78. val=e72c
  79. pci -w 0x9000 $val
  80. sleep 0.01
  81. #pci -r 0x9000 -s 10
  82. sleep 0.01
  83. value=`pci -r 0x9000 -s 8 | grep 9010 | awk '{print $2}' | cut -c 4-8`
  84. if [ "$value" != "b$val" ]; then
  85. echo "--------------------------------->>>> ERROR! read value: ${value:1:4}, written value: $val "
  86. error=1
  87. # exit
  88. fi
  89. sleep 0.01
  90. # ####################################################################################################
  91. ################# CAMERA CONFIGURATION ############################################
  92. val=e603
  93. pci -w 0x9000 $val
  94. sleep 0.01
  95. #pci -r 0x9000 -s 10
  96. sleep 0.01
  97. value=`pci -r 0x9000 -s 8 | grep 9010 | awk '{print $2}' | cut -c 4-8`
  98. if [ "$value" != "b$val" ]; then
  99. echo "--------------------------------->>>> ERROR! read value: ${value:1:4}, written value: $val"
  100. error=1
  101. # exit
  102. fi
  103. sleep 0.01
  104. val=d404
  105. pci -w 0x9000 $val
  106. sleep 0.01
  107. #pci -r 0x9000 -s 10
  108. sleep 0.01
  109. value=`pci -r 0x9000 -s 8 | grep 9010 | awk '{print $2}' | cut -c 4-8`
  110. if [ "$value" != "b$val" ]; then
  111. echo "--------------------------------->>>> ERROR! read value: ${value:1:4}, written value: $val"
  112. error=1
  113. # exit
  114. fi
  115. sleep 0.01
  116. val=d501
  117. pci -w 0x9000 $val
  118. sleep 0.01
  119. #pci -r 0x9000 -s 10
  120. sleep 0.01
  121. value=`pci -r 0x9000 -s 8 | grep 9010 | awk '{print $2}' | cut -c 4-8`
  122. if [ "$value" != "b$val" ]; then
  123. echo "--------------------------------->>>> ERROR! read value: ${value:1:4}, written value: $val"
  124. error=1
  125. # exit
  126. fi
  127. sleep 0.01
  128. # recommended is d840
  129. val=d840
  130. pci -w 0x9000 $val
  131. sleep 0.01
  132. #pci -r 0x9000 -s 10
  133. sleep 0.01
  134. value=`pci -r 0x9000 -s 8 | grep 9010 | awk '{print $2}' | cut -c 4-8`
  135. if [ "$value" != "b$val" ]; then
  136. echo "--------------------------------->>>> ERROR! read value: ${value:1:4}, written value: $val"
  137. error=1
  138. # exit
  139. fi
  140. # sleep 0.01
  141. # recommended is db40
  142. val=db40
  143. pci -w 0x9000 $val
  144. sleep 0.01
  145. #pci -r 0x9000 -s 10
  146. sleep 0.01
  147. value=`pci -r 0x9000 -s 8 | grep 9010 | awk '{print $2}' | cut -c 4-8`
  148. if [ "$value" != "b$val" ]; then
  149. echo "--------------------------------->>>> ERROR! read value: ${value:1:4}, written value: $val"
  150. error=1
  151. # exit
  152. fi
  153. sleep 0.01
  154. val=de65
  155. # val=de0
  156. pci -w 0x9000 $val
  157. sleep 0.01
  158. #pci -r 0x9000 -s 10
  159. sleep 0.01
  160. value=`pci -r 0x9000 -s 8 | grep 9010 | awk '{print $2}' | cut -c 4-8`
  161. if [ "$value" != "b$val" ]; then
  162. echo "--------------------------------->>>> ERROR! read value: ${value:1:4}, written value: $val"
  163. error=1
  164. # exit
  165. fi
  166. sleep 0.01
  167. sleep 0.01
  168. val=df6a
  169. pci -w 0x9000 $val
  170. sleep 0.01
  171. #pci -r 0x9000 -s 10
  172. sleep 0.01
  173. value=`pci -r 0x9000 -s 8 | grep 9010 | awk '{print $2}' | cut -c 4-8`
  174. if [ "$value" != "b$val" ]; then
  175. echo "--------------------------------->>>> ERROR! read value: ${value:1:4}, written value: $val"
  176. error=1
  177. # exit
  178. fi
  179. sleep 0.01
  180. echo " End CMOSIS Configuration .."
  181. ########################################################################################################
  182. echo " Write exp time......"
  183. ######################################### EXP TIME #######################################################
  184. val=aa25
  185. pci -w 0x9000 $val
  186. sleep 0.01
  187. #pci -r 0x9000 -s 10
  188. sleep 0.01
  189. value=`pci -r 0x9000 -s 8 | grep 9010 | awk '{print $2}' | cut -c 4-8`
  190. if [ "$value" != "b$val" ]; then
  191. echo "--------------------------------->>>> ERROR! read value: ${value:1:4}, written value: $val"
  192. error=1
  193. # exit
  194. fi
  195. sleep 0.01
  196. # val=ab2c
  197. val=ab00
  198. pci -w 0x9000 $val
  199. sleep 0.01
  200. #pci -r 0x9000 -s 10
  201. sleep 0.01
  202. value=`pci -r 0x9000 -s 8 | grep 9010 | awk '{print $2}' | cut -c 4-8`
  203. if [ "$value" != "b$val" ]; then
  204. echo "--------------------------------->>>> ERROR! read value: ${value:1:4}, written value: $val"
  205. error=1
  206. # exit
  207. fi
  208. sleep 0.01
  209. # val=acaa
  210. val=ac00
  211. pci -w 0x9000 $val
  212. sleep 0.01
  213. #pci -r 0x9000 -s 10
  214. sleep 0.01
  215. value=`pci -r 0x9000 -s 8 | grep 9010 | awk '{print $2}' | cut -c 4-8`
  216. if [ "$value" != "b$val" ]; then
  217. echo "--------------------------------->>>> ERROR! read value: ${value:1:4}, written value: $val"
  218. error=1
  219. # exit
  220. fi
  221. ####################################################################################################################
  222. sleep 0.01
  223. #pci -w 0x9040 80000201
  224. sleep 0.01
  225. ########################## WRITE THE READOUT NUMBER OF LINE #######################################################
  226. pci -w cmosis_number_lines 2047
  227. #pci -w number_lines 8
  228. sleep 0.01
  229. #################################################################################################################
  230. pci --start-dma dma1
  231. sleep 0.01
  232. #VRAMP 6c is 108
  233. val=e26c
  234. pci -w 0x9000 $val
  235. sleep 0.01
  236. #pci -r 0x9000 -s 10
  237. sleep 0.01
  238. value=`pci -r 0x9000 -s 8 | grep 9010 | awk '{print $2}' | cut -c 4-8`
  239. if [ "$value" != "b$val" ]; then
  240. echo "--------------------------------->>>> ERROR! read value: ${value:1:4}, written value: $val"
  241. error=1
  242. # exit
  243. fi
  244. sleep 0.01
  245. #VRAMP 6c is 108
  246. val=e36c
  247. pci -w 0x9000 $val
  248. sleep 0.01
  249. #pci -r 0x9000 -s 10
  250. sleep 0.01
  251. value=`pci -r 0x9000 -s 8 | grep 9010 | awk '{print $2}' | cut -c 4-8`
  252. if [ "$value" != "b$val" ]; then
  253. echo "--------------------------------->>>> ERROR! read value: ${value:1:4}, written value: $val"
  254. error=1
  255. # exit
  256. fi
  257. sleep 0.01
  258. ###################################### NUMBER OF OUTPUT ############################################################
  259. ##pci -w 0x9000 0xc803
  260. sleep 0.01
  261. val=c800
  262. pci -w 0x9000 $val
  263. #pci -r 0x9000 -s 10
  264. sleep 0.01
  265. value=`pci -r 0x9000 -s 8 | grep 9010 | awk '{print $2}' | cut -c 4-8`
  266. if [ "$value" != "b$val" ]; then
  267. echo "--------------------------------->>>> ERROR! read value: ${value:1:4}, written value: $val"
  268. error=1
  269. # exit
  270. fi
  271. #pci -r 0x9000 -s 10
  272. sleep 0.01
  273. #pci -w 0x9000 0xd011
  274. sleep 0.01
  275. #pci -r 0x9000 -s 10
  276. sleep 0.01
  277. #pci -w 0x9000 0xd111
  278. #########################################################################################################
  279. sleep 0.01
  280. ##################################################
  281. #SET the max number of frame in DDR
  282. pci -w 0x91a0 0x71
  283. #echo " Reset Readout and CMOSIS "
  284. pci -w 0x9040 0x80000204
  285. sleep .1
  286. echo " Release Reset for Readout"
  287. pci -w 0x9040 0x80000201
  288. sleep .1
  289. status=`pci -r 0x9050 -s 4 | awk '{print $2$3$4}'`
  290. if [ "$status" != "8449ffff0f0010013ffff111" ]; then
  291. echo "--------------------------------->>>> ERROR! in the camera status ... "
  292. error=1
  293. # exit
  294. fi
  295. #echo "--> $status"
  296. if [ "$error" = "1" ]; then
  297. echo " Error in the reset and initialization"
  298. else
  299. echo " Camera READY ........................... OK"
  300. fi
  301. echo
  302. echo "DMA reset ... "
  303. pci --stop-dma dma1
  304. sleep 0.5
  305. pci --start-dma dma1