def cwconnect(offset=1250, totalsamples=3000): api = CWCoreAPI() # Instantiate the API api.setParameter( ['Generic Settings', 'Scope Module', 'ChipWhisperer/OpenADC']) api.setParameter(['Generic Settings', 'Target Module', 'Simple Serial']) #No actual need for saving data so we ignore this? #api.setParameter(['Generic Settings', 'Trace Format', 'ChipWhisperer/Native']) api.setParameter( ['Simple Serial', 'Connection', 'NewAE USB (CWLite/CW1200)']) api.setParameter( ['ChipWhisperer/OpenADC', 'Connection', 'NewAE USB (CWLite/CW1200)']) api.connect() # Example of using a list to set parameters. Slightly easier to copy/paste in this format lstexample = [ [ 'CW Extra Settings', 'Trigger Pins', 'Target IO4 (Trigger Line)', True ], ['CW Extra Settings', 'Target IOn Pins', 'Target IO1', 'Serial RXD'], ['CW Extra Settings', 'Target IOn Pins', 'Target IO2', 'Serial TXD'], [ 'OpenADC', 'Clock Setup', 'CLKGEN Settings', 'Desired Frequency', 7370000.0 ], ['CW Extra Settings', 'Target HS IO-Out', 'CLKGEN'], ['OpenADC', 'Clock Setup', 'ADC Clock', 'Source', 'CLKGEN x4 via DCM'], ['OpenADC', 'Trigger Setup', 'Total Samples', int(totalsamples)], ['OpenADC', 'Trigger Setup', 'Offset', int(offset)], ['OpenADC', 'Gain Setting', 'Setting', 45], ['OpenADC', 'Trigger Setup', 'Mode', 'rising edge'], # Final step: make DCMs relock in case they are lost ['OpenADC', 'Clock Setup', 'ADC Clock', 'Reset ADC DCM', None], ] # Download all hardware setup parameters for cmd in lstexample: api.setParameter(cmd) return api