Blinking Blues

From OpenCircuits
Jump to navigation Jump to search

Having some trouble with arduino blink. Will write up here. Draft now, not enough to really be of use to anyone but me.

Origin

I have been messing about with steppers and simple drivers for some time. Recently I put a logic analizer into use and noticed that the switching wave forms were a bit off. Simplifying this I went back to the basic blink and took a look at it. It also had some anomolies. This began an investigation of various blink code and the results. So far I have not found code that gives good results. In this investigation I am focusing on using pulses with half periods of 500 and 5000 micro ( not milli ) seconds.

Blink

What I Expect

The blinks I worked with for this investigation were all in the 1 to 10 ms or so period time frame. I used only the microsecond built in functions. I expected that the timings would:

  • be repeatable in the range of a few microseconds.
  • be accurate in the range of 10 to 20 microseconds.

What I Found

  • I found glitches in the waveform of up to 1 or more milliseconds ( 1000 microseconds )
  • Often the glitches would repeat every 81.92 milliseconds or so. Interestingly enough if I divide this time by 16 e 16 I get 512 which is more or less a magic number.

What I Tried

  • Different arduino boards
  • Different pins
  • Different implementations of blink
  • Interrupts on and off


Issues Investigated

  • Was the logic sniffer the glitched one: Do not think so, I generated a square wave on an ossicalator at 1KHz ( period 1 ms ) and looked for glitches in it. Nothing found.

Things Yet to Try

  • More boards
  • Different builds of the arduino software
  • More pin variations
  • Check unused pins, perhaps change all to output low....

Some Results

Test Setup

Logic sniffer is the dangerous prototypes single board device http://dangerousprototypes.com/docs/Logic_Sniffer_101

Measurement taken using the cursor measurement, finding some good pulses at the beginning and then visually scanning, then measuring for bad pulses later on. All recorded to a spreadsheet, that will be uploaded here.


Who I Told

Links I Read