ni.com is currently undergoing scheduled maintenance.

Some services may be unavailable at this time. Please contact us for help or try again later.

Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

NI DAQmx Python Problem: configure digital sampling rate

Hi,

 

I'm using PCI-6289 with NI DAQmx Python API. (nidaqmx18.6, python3.7) I know that this board only has 'correlated DIO', so I select the digital sampling clock source as 'Dev1/ai/SampleClock' or 'Dev1/FrequecyOutput'. I wrote a test script as: 

 

import nidaqmx
from nidaqmx.constants import *
import numpy as np

if __name__ == "__main__":
# create samples
n = 1000
samples = np.empty(n, dtype='bool')
for i in range(n):
samples[i] = False
samples[n - 1] = True

with nidaqmx.Task() as clock_task:
with nidaqmx.Task() as task:
clock_task.co_channels.add_co_pulse_chan_freq('Dev1/freqout', freq=6250, duty_cycle=0.5)
#clock_task.ai_channels.add_ai_voltage_chan('Dev1/ai0')
#clock_task.timing.cfg_samp_clk_timing(1000)
task.do_channels.add_do_chan("Dev1/port0/line0", line_grouping=LineGrouping.CHAN_PER_LINE)
task.timing.cfg_samp_clk_timing(rate=6250,
source='/Dev1/FrequencyOutput')
task.write(samples)
clock_task.start()

It will not raise any error upon running, but the board does not generate the expected digital signal. Here's what I have tried before:

-Swapping between analog sampling clock and frequency output (the commented lines):

no noticeable difference

-play with the 'auto_start' and 'start()' (According to one material I read before, I'm supposed to start the AI/FrequencyOutput task first then the DO task):

not work

-instead of writing 1000 samples, only write single sample per run

works (Does this mean there's something wrong with the timing)

 

By the way, if I want a millisecond level precision TTL signal, is it the best way realizing it what I'm doing right now? Thanks!

 

 

0 Kudos
Message 1 of 3
(3,946 Views)

Hello,

 

What type of digital signal are you expecting to receive, and what signal are you receiving when you run this code?

Niki Budgell | Product Planner - SW Management | NI
0 Kudos
Message 2 of 3
(3,888 Views)

Hi,

 

I expected there will be a 5V output after some delay (software and communication delay + 1s I have set in the script). When I run this program, nothing happened on the oscilloscope, the output remains 0V. 

 

(But if I write single sample (True or False) to the device, it will change output accordingly)

0 Kudos
Message 3 of 3
(3,884 Views)