Rev 3629 Rev 3650
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # 2 #
3 # Utility for setting frequency of Si570 without a frequency measurement. 3 # Utility for setting frequency of Si570 without a frequency measurement.
4 # The factory calibration is used for changing the frequency. 4 # The factory calibration is used for changing the frequency.
5 # This utility reset the Si570 to factory default 10 MHz first and than set a new frequency. 5 # This utility reset the Si570 to factory default 10 MHz first and than set a new frequency.
6 # 6 #
7 # This utility use an USBI2C01A module. 7 # This utility use an USBI2C01A module.
8 # (c) MLAB 2014 8 # (c) MLAB 2014
9   9  
10 import time 10 import time
11 import datetime 11 import datetime
12 import sys 12 import sys
13 from pymlab import config 13 from pymlab import config
14   14  
15 import logging 15 import logging
16 logging.basicConfig(level=logging.DEBUG) 16 logging.basicConfig(level=logging.DEBUG)
17   17  
18   18  
19 #### Script Arguments ############################################### 19 #### Script Arguments ###############################################
20   20  
21 if (len(sys.argv) != 3): 21 if (len(sys.argv) != 3):
22 sys.stderr.write("Invalid number of arguments.\n") 22 sys.stderr.write("Invalid number of arguments.\n")
23 sys.stderr.write("Usage: %s PORT_ADDRESS/0 REQUIERED_MHz\n" % (sys.argv[0], )) 23 sys.stderr.write("Usage: %s PORT_ADDRESS/0 REQUIERED_MHz\n" % (sys.argv[0], ))
24 sys.exit(1) 24 sys.exit(1)
25   25  
26 port = eval(sys.argv[1]) 26 port = eval(sys.argv[1])
27 #### Sensor Configuration ########################################### 27 #### Sensor Configuration ###########################################
28   28  
29 cfg = config.Config( 29 cfg = config.Config(
30 i2c = { 30 i2c = {
31 "port": port, 31 "port": port,
32 }, 32 },
33 bus = [ 33 bus = [
34 { 34 {
35 "type": "i2chub", 35 "type": "i2chub",
36 "address": 0x72, 36 "address": 0x70,
37 "children": [ 37 "children": [
38 { "name":"clkgen", "type":"clkgen01", "channel": 7, }, 38 { "name":"clkgen", "type":"clkgen01", "channel": 1, },
39 ], 39 ],
40 }, 40 },
41 ], 41 ],
42 ) 42 )
43 cfg.initialize() 43 cfg.initialize()
44   44  
45 fgen = cfg.get_device("clkgen") 45 fgen = cfg.get_device("clkgen")
46 sys.stdout.write("Frequency will be set to " + sys.argv[2] + " MHz.\r\n") 46 sys.stdout.write("Frequency will be set to " + sys.argv[2] + " MHz.\r\n")
47   -  
48 time.sleep(3) -  
49 fgen.route() 47 fgen.route()
-   48 time.sleep(3)
50 fgen.reset() # Reset Si570 to 10 MHz 49 fgen.recall_nvm() # Reload settings for 10 MHz
51 time.sleep(3) 50 time.sleep(3)
52 fgen = cfg.get_device("clkgen") # Reopen CP2112 51 fgen = cfg.get_device("clkgen") # Reopen CP2112
53 fgen.set_freq(10., float(eval(sys.argv[2]))) # Set frequency 52 fgen.set_freq(10., float(eval(sys.argv[2]))) # Set frequency
54 sys.stdout.write("Done.\r\n") 53 sys.stdout.write("Done.\r\n")
55 sys.stdout.flush() 54 sys.stdout.flush()
56 sys.exit(0) 55 sys.exit(0)
57   56