mirror of
https://github.com/gillham/logic_analyzer.git
synced 2026-05-01 23:53:02 +03:00
You can connect via the serial monitor and send ‘?’ to get a list of commands available. This allows some diagnostics when the board isn’t working with the OLS client. Sending ‘4’ does a 4MHz capture and ‘2’ dumbs the data buffer for example. Recommended to use this with the simulated signal via a timer. See the bottom of the setup() function and change the ‘#if 0’ to ‘#if 1’ to enable it. Also, fix a long standing bug that broke 2MHz captures and the ATmega168. (improper #if defined check)
74 lines
3.2 KiB
Plaintext
74 lines
3.2 KiB
Plaintext
SUMP compatible logic analyzer for Arduino
|
|
==========================================
|
|
|
|
This Arduino sketch implements a SUMP protocol compatible with the standard
|
|
SUMP client as well as the alternative client from here:
|
|
http://www.lxtreme.nl/ols/
|
|
|
|
The alternative client version is highly recommended. Download version
|
|
"ols-0.9.7" or newer for built-in device profiles.
|
|
|
|
This SUMP protocol compatible logic analyzer for the Arduino board supports
|
|
5 channels consisting of digital pins 8-12, which are the first 5 bits (0-4)
|
|
of PORTB. Arduino pin 13 / bit 5 is the Arduino LED, bits 6 & 7 are the
|
|
crystal oscillator pins.
|
|
|
|
Uncomment CHAN5 below if you want to use the LED pin as an input and have
|
|
6 channels.
|
|
|
|
On the Arduino Mega board 8 channels are supported and 7k of samples.
|
|
Pins 22-29 (Port A) are used by default.
|
|
|
|
To use this with the original or alternative SUMP clients,
|
|
use these settings:
|
|
|
|
Sampling rate: 4MHz (or lower) (no 2MHz on ATmega168)
|
|
Channel Groups: 0 (zero) only
|
|
Recording Size:
|
|
ATmega168: 532 (or lower)
|
|
ATmega328: 1024 (or lower)
|
|
ATmega2560: 7168 (or lower)
|
|
Noise Filter: doesn't matter
|
|
RLE: disabled (unchecked)
|
|
|
|
Triggering is still a work in progress, but generally works for samples
|
|
below 1MHz. 1MHz works for a basic busy wait trigger that doesn't store
|
|
until after the trigger fires.
|
|
Please try it out and report back.
|
|
|
|
Older Notes
|
|
===========================================================================
|
|
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.
|
|
[ The code automatically skips the 2MHz code now, this isn't needed. ]
|
|
|
|
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.
|
|
|
|
NOTE: The device profiles should be included with this code. Copy them to the
|
|
'plugins' directory of the client. The location varies depending on the
|
|
platform, but on the mac it is here by default:
|
|
/Applications/LogicSniffer.app/Contents/Resources/Java/plugins
|
|
[ These are included in ols-0.9.7 or newer so do not copy them. ]
|
|
|
|
NOTE: If you are using the original SUMP client, then you will get a
|
|
"device not found" error.
|
|
You must DISABLE the Arduino auto reset feature to use this logic analyzer
|
|
code. There are various methods to do this, some boards have a jumper,
|
|
others require you to cut a trace. You may also install a *precisely*
|
|
120 Ohm resistor between the reset & 5V piins. Make sure it is really
|
|
120 Ohm or you may damage your board. It is much easier to use the
|
|
alternative SUMP client referenced above.
|
|
[ This is not needed with ols-0.9.7 or newer. ]
|
|
[ DO NOT use this resistor unless absolutely necessary on old clients. ]
|
|
|
|
NOTE: This master branch now supports Arduino 1.0 only.
|
|
Checkout branch logic_analyzer_v0_5 for Arduino 22 support.
|
|
|
|
|
|
Release: v0.13 February 7, 2015.
|
|
|