Integration Insights – Part 1

As we enter 2014, I begin to look back at all the things that made last year a success. Flashbacks of all the late nights in the development lab at Honeywell are sinking in today, with some of the more recent hurdles still relatively fresh in my mind. The 80/20 principle in test system integration could not have been more prevalent looking back at where most of the time and effort actually occurred. 

And so begins a series I will call Integration Insights. The series will feature issues Test Engineers often face during system integration, both in the lab and on the field. It will be open-ended, with additional entries coming as exciting new issues are explored.

Our first case-study will be an issue observed with repeatability testing of a simulated stepper motor drive, generating a Vmax=26V @ f=30hz square wave. The output was configured by the unit-under-test (UUT) to be active 50% of the time. The test specification called out to measure 3-5 cycles within a 200ms window and the hardware was set up in such a way that we would use a digitizer input channel. Due to the limited options of the selected digitizer card, the raw waveform was captured and software was written to post-process the waveform to determine the number of cycles.

Test System Integration

Simulated Stepper Motor Drive, 50% On.

 The raw data was stored in a static buffer results[], with a trigger level set to 5.0V. Both the rising and falling edges would be counted to determine the total number of cycles in the acquired waveform. Below is a simple, yet elegant solution to count the number of edges.

   for(i=0; i<(nSamples-1); i++)
   {	
	   if ((results[i] < trigger) && (results[i+1] >= trigger))
		   nRisingEdge++;
	   if ((results[i] >= trigger) && (results[i+1] < trigger))
		   nFallingEdge++;
   }

We began running our automated test sequence, looping it overnight. The following day, we discovered false-failures with this test. We observed falling edge counts as high as 7 and could not determine the root cause at first glance, as our scope signal was consistent. It wasn’t until we plotted the raw data on a failure case using our plotting tool that we could see where the issue lied. 

Falling Edge Issue

5.0V threshold resulted in invalid edge counts due to the sloping nature of the waveform.

Our threshold level was too low! Once we saw this, the solution was rather simple. We raised our threshold to 15.0V and looped the test system again. Failure gone! 

Of course, our algorithm to count edges has some limitations. This appears to work best on ideal waveforms. If sampling rate is set too low causing aliasing or improper reconstruction of the signal, the edge count may be invalid as it compares the next data point to the current point. As such, this concept must be used carefully.

“20 percent of the code has 80 percent of the errors. Find them, fix them!” – Lowell Arthur

Integration Insights – Part 1 was last modified: May 2nd, 2014 by Paulo R

Leave a Reply

%d bloggers like this: