-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Input impedance control of the clock terminal PFI4 on NI 6535 #96
Comments
Hi Zhang-Wenjun, Here's some discussion of this that has previously appeared on the mailing list: https://groups.google.com/g/labscriptsuite/c/jsbbgoZqJtU The issue seems to have something to do with the fact that the PFI terminal is initially configured as an output when BLACS is in manual mode. Firstly, did you measure the impedance during a buffered run, or only when BLACS was in manual mode? If the latter, it is possible that the terminal does have high impedance during a buffered run. If not, and if you aren't otherwise using the other terminals on the port as static digital outputs, you might consider disabling the whole port. This would make the configuration in labscript closer to what LabVIEW is likely doing in your testing. To disable the port, you can pass in a custom Here's the CAPABILITIES = {
'AI_range': None,
'AI_range_Diff': None,
'AI_start_delay': None,
'AO_range': None,
'max_AI_multi_chan_rate': None,
'max_AI_single_chan_rate': None,
'max_AO_sample_rate': None,
'max_DO_sample_rate': 10000000.0,
'min_semiperiod_measurement': None,
'num_AI': 0,
'num_AO': 0,
'num_CI': 0,
'ports': {
'port0': {'num_lines': 8, 'supports_buffered': True},
'port1': {'num_lines': 8, 'supports_buffered': True},
'port2': {'num_lines': 8, 'supports_buffered': True},
'port3': {'num_lines': 8, 'supports_buffered': True},
'port4': {'num_lines': 6, 'supports_buffered': False},
},
'supports_buffered_AO': False,
'supports_buffered_DO': True,
'supports_semiperiod_measurement': False,
} which lists 5 ports. So you could for example do something like the following to configure the device to ignore port4 for the purpose of digital output: from blahblah import NI_PCIe_6535, CAPABILTIES
custom_ports_config = CAPABILTIES['ports'].copy()
del custom_ports_config['port4']
NI_PCIe_6535(
name='ni_6535', parent_device=master_clock.clocklines[0],
MAX_name='PCIe-6535-Dev1',
clock_terminal='/PCIe-6535-Dev1/PFI4', # use PFI4 to receive clock from the master clock
clock_mirror_terminal='/PCIe-6535-Dev1/PFI5', # use PFI5 to mirror clock from the master clock
stop_order = -1, # 1st device in daisy chain, ensure it transitions to manual mode first
ports=custom_ports_config) |
Thanks a lot Chris! This solved my issue. Indeed, I was testing in the manual mode. I just retry and measure in the buffered mode and it seems normal. The Thanks again! |
Hi, I'm using PrawnBlaster to generate pseudoclock for my NI 6535 board. The clock terminal is set to PFI4 by
The NI_PCIe_6535 class is generated by
labscript_devices/NI_DAQmx/models/generate_subclasses.py
. The program compiled without any error. But I find that the high level voltage received by PFI4 is only ~1.3V when running digital output tasks, which means the input impedance of PFI4 port is only ~50Ohm, instead of 50kOhm, given the output driving ability of rp2040 GPIO.When I use LabVIEW to do digital output, the input impedance is correct (a high value, I did not measure the exact number) and the high level is indeed 3.3V, so I think the NI board is fine.
I see the underlying worker uses DAQmxCfgSampClkTiming to configure this function. So I'm wondering if there are any other steps (like config. in NI-MAX, or config. in
generate_subclasses.py
, etc.) to correctly configure the input impedance.Thanks!
The text was updated successfully, but these errors were encountered: