- Mon Dec 10, 2018 11:08 pm
#201365
Good day
Thanks in advance for reading and advise.
I recently bought https://www.sparkfun.com/products/15033 through a local dealer in South Africa and I'm having fun.
I have encountered a funny in the output of a 8MHz square wave from an Arduino Uno where every 150 us (with slight variation) there is no activity; see image below.

Measuring the times with Pulseview shows indeed a 8MHz signal (62.5 ns high, 62.5 ns low) when it is there.
It boils down to every 1200 periods (2400 samples) I miss 80 periods (160 samples). I'm aware that I'm working at the limits of the specifications but that does not quite explain it to me; if this was a sampling issue, I would expect it to give me a varying duty cycle.
One reason for this behaviour can be that the internal memory of the logic analyser is limited. A 2k internal memory would basically explain it as after that the buffer needs to be transferred to the PC. I tried to find the spec for this memory depth but did not see it. Anybody any idea? Or who to contact in case this is not really a forum question.
The code that generated the signal
Thanks in advance for reading and advise.
I recently bought https://www.sparkfun.com/products/15033 through a local dealer in South Africa and I'm having fun.
I have encountered a funny in the output of a 8MHz square wave from an Arduino Uno where every 150 us (with slight variation) there is no activity; see image below.
Measuring the times with Pulseview shows indeed a 8MHz signal (62.5 ns high, 62.5 ns low) when it is there.
It boils down to every 1200 periods (2400 samples) I miss 80 periods (160 samples). I'm aware that I'm working at the limits of the specifications but that does not quite explain it to me; if this was a sampling issue, I would expect it to give me a varying duty cycle.
One reason for this behaviour can be that the internal memory of the logic analyser is limited. A 2k internal memory would basically explain it as after that the buffer needs to be transferred to the PC. I tried to find the spec for this memory depth but did not see it. Anybody any idea? Or who to contact in case this is not really a forum question.
The code that generated the signal
Code: Select all
#define PIN11
void setup()
{
cli();
#ifdef PIN11
DDRB |= (1 << 3);//pin 11
TCCR2A = (1 << COM2A0) | (1 << WGM21) | (1 << WGM20);
TCCR2B = (1 << WGM22) | (1 << CS20);
OCR2A = 0;//(F_CPU)/(2*(X+1))
#else
DDRB |= (1 << 1);//pin 9
TCCR1A = (1 << COM1A0) | (1 << WGM11) | (1 << WGM10);
TCCR1B = (1 << WGM13) | (1 << WGM12) | (1 << CS10);
OCR1A = 0;//(F_CPU)/(2*(X+1))
#endif
}
void loop()
{
}