33
44from protoplaster .conf .module import ModuleName
55from .process_eyescan import EyeScan
6+ from eyescan .instructions import TestPattern
67
78
89@ModuleName ("ti_dac38j8x_eyescan" )
@@ -16,8 +17,6 @@ class TestTiDac38j8xEyescan:
1617 """
1718
1819 def configure (self ):
19- assert hasattr (self ,
20- "ftdi_dev" ), "`ftdi_dev` test attribute is required"
2120 assert hasattr (self , "bit" ), "`bit` test attribute is required"
2221 assert hasattr (
2322 self ,
@@ -26,7 +25,43 @@ def configure(self):
2625 self ,
2726 "eyescan_diagram" ), "`eyescan_diagram` test attribute is required"
2827
29- self .eyescan = EyeScan (self .ftdi_dev , self .bit )
28+ def parse_test_pattern (pattern ):
29+ try :
30+ return TestPattern [pattern ]
31+ except KeyError :
32+ raise ValueError (
33+ f"{ pattern } is not a valid test pattern ({ [str (i ) for i in TestPattern ]} )"
34+ )
35+
36+ if not hasattr (self , "ftdi_jtag_frequency" ):
37+ setattr (self , "ftdi_jtag_frequency" , 1E5 )
38+ if not hasattr (self , "ftdi_direction" ):
39+ setattr (self , "ftdi_direction" , 0x308B )
40+ if not hasattr (self , "ftdi_initial_value" ):
41+ setattr (self , "ftdi_initial_value" , 0x2088 )
42+ if not hasattr (self , "ftdi_reset_bit" ):
43+ setattr (self , "ftdi_reset_bit" , 0x2000 )
44+ if not hasattr (self , "daisy_chain_count" ):
45+ setattr (self , "daisy_chain_count" , 1 )
46+ if not hasattr (self , "daisy_chain_number" ):
47+ setattr (self , "daisy_chain_number" , 1 )
48+ if not hasattr (self , "pyftdi_url" ):
49+ setattr (self , "pyftdi_url" , "ftdi:///1" )
50+ if not hasattr (self , "test_pattern" ):
51+ setattr (self , "test_pattern" , TestPattern .PRBS_7_BIT )
52+ else :
53+ self .test_pattern = parse_test_pattern (self .test_pattern )
54+
55+ self .eyescan = EyeScan (
56+ pyftdi_url = self .pyftdi_url ,
57+ ftdi_jtag_frequency = self .ftdi_jtag_frequency ,
58+ ftdi_direction = self .ftdi_direction ,
59+ ftdi_initial_value = self .ftdi_initial_value ,
60+ ftdi_reset_bit = self .ftdi_reset_bit ,
61+ daisy_chain_device_number = self .daisy_chain_number ,
62+ daisy_chain_device_count = self .daisy_chain_count ,
63+ bit = self .bit ,
64+ test_pattern = self .test_pattern )
3065
3166 def test_create_diagram (self , record_artifact , artifacts_dir ):
3267 """
0 commit comments