3 Commits

Author SHA1 Message Date
Andrew Gillham
9c83897b9b Correct preprocessor logic to avoid data gap on the Mega.
Fixes issue #14 where I copied the preprocessor logic from a different
Mega related check and didn't fix up the elif.  So samples from 512 -
1023 were always zero on the Mega.
Update to v0.12
2013-09-06 09:54:41 -07:00
Andrew Gillham
2a549be57a Tweak README 2013-08-03 13:25:54 -07:00
Andrew Gillham
2d31a93687 Add notes about 2MHz/4MHz mode and binary size.
Also move a couple more things under #ifdef DEBUG in an attempt to
reduce the code size for ATmega168.
It current doesn't fit in the '168 but maybe after some more tweaks.
2013-08-03 13:23:02 -07:00
4 changed files with 23 additions and 9 deletions

12
README
View File

@@ -1,7 +1,13 @@
SUMP compatible logic analyzer for Arduino
==========================================
NOTE: NOTE: v0.09 switched the channels BACK to pins 8-13 for trigger reliability.
NOTE: With v0.11 you can now sample at 4MHz & 2MHz rates in addition to the
previous 1MHz and lower rates. This is done via unrolled loops which
makes the source code huge and the binary takes much more of the flash.
v0.11 is just slightly to big for an ATmega168's flash. You can comment
out either captureInline2mhz() or captureInline4mhz() and it will fit.
NOTE: v0.09 switched the channels BACK to pins 8-13 for trigger reliability.
Please report any issues. Uncomment USE_PORTD for pins 2-7.
This Arduino sketch implements a SUMP protocol compatible with the standard
@@ -37,7 +43,7 @@ platform, but on the mac it is here by default:
To use this with the original or alternative SUMP clients,
use these settings:
Sampling rate: 1MHz (or lower)
Sampling rate: 4MHz (or lower)
Channel Groups: 0 (zero) only
Recording Size:
ATmega168: 532 (or lower)
@@ -54,5 +60,5 @@ Please try it out and report back.
This master branch now supports Arduino 1.0 only.
Checkout branch logic_analyzer_v0_5 for Arduino 22 support.
Release: v0.11 August 3, 2013.
Release: v0.12 September 6, 2013.

View File

@@ -78,7 +78,7 @@
* until after the trigger fires.
* Please try it out and report back.
*
* Release: v0.11 August 3, 2013.
* Release: v0.12 September 6, 2013.
*
*/
@@ -516,6 +516,7 @@ void captureMicro() {
* Arduino digital pin 8 is being used here.
*/
DEBUG_ENABLE;
#ifdef DEBUG
DEBUG_ON;
delayMicroseconds(20);
DEBUG_OFF;
@@ -524,6 +525,7 @@ void captureMicro() {
delayMicroseconds(20);
DEBUG_OFF;
delayMicroseconds(20);
#endif
if (delayTime == 1) {
/*
@@ -691,6 +693,7 @@ void triggerMicro() {
* Arduino digital pin 8 is being used here.
*/
DEBUG_ENABLE;
#ifdef DEBUG
DEBUG_ON;
delayMicroseconds(20);
DEBUG_OFF;
@@ -699,6 +702,7 @@ void triggerMicro() {
delayMicroseconds(20);
DEBUG_OFF;
delayMicroseconds(20);
#endif
if (delayTime == 1) {
/*
@@ -903,7 +907,7 @@ void get_metadata() {
Serial.write('0');
Serial.write('.');
Serial.write('1');
Serial.write('1');
Serial.write('2');
Serial.write((uint8_t)0x00);
/* sample memory */
@@ -1027,3 +1031,5 @@ void debugdump() {

View File

@@ -1154,7 +1154,7 @@ void captureInline2mhz() {
INLINE_NOP;
logicdata[531] = CHANPIN;
INLINE_NOP;
#if defined(__AVR_ATmega328P__)
#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
logicdata[532] = CHANPIN;
INLINE_NOP;
logicdata[533] = CHANPIN;
@@ -2139,7 +2139,8 @@ void captureInline2mhz() {
INLINE_NOP;
logicdata[1023] = CHANPIN;
INLINE_NOP;
#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
#endif
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
logicdata[1024] = CHANPIN;
INLINE_NOP;
logicdata[1025] = CHANPIN;

View File

@@ -1154,7 +1154,7 @@ void captureInline4mhz() {
INLINE_NOP;
logicdata[531] = CHANPIN;
INLINE_NOP;
#if defined(__AVR_ATmega328P__)
#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
logicdata[532] = CHANPIN;
INLINE_NOP;
logicdata[533] = CHANPIN;
@@ -2139,7 +2139,8 @@ void captureInline4mhz() {
INLINE_NOP;
logicdata[1023] = CHANPIN;
INLINE_NOP;
#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
#endif
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
logicdata[1024] = CHANPIN;
INLINE_NOP;
logicdata[1025] = CHANPIN;