my MCC DAQ is outputting the analog signal at -10 volts.

4 views (last 30 days)
The MCC device is working fine and I have recalibrated. Using InstaCal it is accurate with output voltages. In MATLAB the signal is at zero baseline before being sent to the DAQ, but when viewed on the Oscope after ouputting it through the MCC DAQ device it rides on -10V. How can I fix this? Thanks The Device is the USB 3101FS from MCC
  3 Comments
SK
SK on 19 Mar 2014
Hi Lawrence.. I got the same problem...Did you solve the problem?
Reese
Reese on 22 Aug 2025
Edited: Reese on 22 Aug 2025
I am having a similar issue with the MCC USB-1808X. I've attached a picture of the output:
I am using the readwrite function to do this. Here is the code:
% Sends a series of calibration waveforms to the DAQ device
discfreqs = logspace(1, 3, 30); % a discrete range of frequencies for calibration (as opposed to a chirped signal)
calibration = struct(); % clears out the calibration variable without removing it from the workspace
V_rms = zeros([1, length(discfreqs)], "double"); % init the VRMS variable
numCycles = 25; % set number of cycles (like a Q factor)
V_pp = 2; % Volts (technically this is double the amplitude of the output wave, see local function sinesig)
buffer = 3000; % amount of whitespace inserted before and after generated signal, easy solution to readwrite blocking MATLAB combined with a phase delay
for i = 1:length(discfreqs)
freq = discfreqs(i);
% Generate a sine wave which goes for n cycles for a single above frequency (based on autogenerated code from Analog Output application)
waveform = sinesig(V_pp, numCycles, freq, USB_1808X.daq.Rate);
waveform = bufferspace(waveform, buffer); % local function that is essentially just vertcat
pause(.1)
% Output waveform to the DAQ device
consolemsg = string(freq) + " Hz Outputting"; disp(consolemsg)
calibration.("frequency" + string(i)) = readwrite(USB_1808X.daq, waveform, "OutputFormat","Matrix");
% Plot the measured data
% plot(calibration.("frequency" + string(i)))
% BE CAREFUL TO TRIM ANYTHING THAT ISN'T THE WAVEFORM ITSELF, OTHERWISE
% IT WILL CONTRIBUTE TO THE RMS VOLTAGE (I have not implemented this yet)
% Plot the trimmed data.
% plot(calibration.("frequency" + string(i)))
% report the rms voltage of the recorded info
V_rms(i) = sqrt(mean((calibration.("frequency" + string(i))).^2));
write(USB_1808X.daq, 0) % resets voltage to zero between output waveforms
end
My daq object is the variable USB_1808X.daq. I am trying to calibrate the frequency response of the device itself. If there is a better way to go about this I would appreciate advice. DBP you mention checking for completion. I am new to daq devices and don't know what you mean by this.
Edit: I am investigating whether this is due to the fact that the number of samples per cycle is not an exact integer...

Sign in to comment.

Answers (0)

Categories

Find more on Periodic Waveform Generation in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!