Logic Shrimp design overview

From DP

Revision as of 11:54, 23 March 2011 by Ian (Talk | contribs)
Jump to: navigation , search

Project-cover-w490.jpg

Intro and goal

features

  • Features (list)
  • Features

You can get a [project for $20], including worldwide shipping.

Read about the design below.


Contents

Overview

Logicshrimp.png

History and related links

Hardware

Sch-Logic-Shrimp-v1a.png

Click for a full size schematic image. Schematic and PCB were designed with the freeware version of Cadsoft Eagle, download the latest project files from our Google Code project page.

Microcontroller

Project-section-diagram-490.jpg

  • Microcontroller
  • Power and decoupling
  • Oscillator
  • Programming and reset support
  • LEDs

SRAMs

Buffer

Signals enter the logic analyzer through a cheap and common 74xx573 transparent latch, we've used on previous logic analyzers. The input buffer does two things:

  1. Enables/disables the inputs
  2. The SRAM and PIC pins only work to 3.3volts, the buffer is 5volt tolerant

During logic recording the buffer is transparent and the input on the pins connects to the SRAM inputs. During playback, the buffer is disabled so the PIC can take control of the SRAMs.

We chose the LVx version:

  • XX to XX thresholds
  • XX volt tolerant

Clock system

Logic-shrimp-v1-clock-draw.png

At each pulse of the clock pin the SRAMs save a snapshot of the data on the serial input pin . The clock signal can come from two sources:

  1. 20MHz from the oscillator. Enabled through a 74XX125 1bit buffer
  2. 12MHz and less, from the PIC pulse-width modulator

The PIC configures the SRAMs to record, and then enables the clock source. The SRAMs run in a loop, always recording the state of the serial data in pin.

The active clock source drives an address counter in the PIC that tracks the current address in the SRAMs. We have to track the SRAM address on the PIC because so we know where our samples are inside the SRAM when the capture ends.

When a trigger event is detected, a second sample counter starts. This counter runs down until the configured post-trigger sample size is reached, then the PIC disables the clock source.

The PIC address counter mirrors the internal SRAM counters when sampling ends. Its value is used to calculate the address to start dumping samples.

There is an external tap for the clock signal, but it is not possible to use an external clock.
An external clock would interfere with the PIC when the SRAMs are setup and dumped.

The PIC counters are only 16bits, which can only track 64K of the 256K total in the SRAMS. We use a /4 prescaler on both counters to line everything up. This is a great solution because the SUMP protocol also sends the sample counts divided by four.

PCB

Logic-shrimp-v1-pcb.jpg

We used the freeware version of Cadsoft Eagle to make the schematic and PCB. Download the latest designs and firmware from the project Google Code page.

  • PCB and placement notes
  • soldering advise

Partslist

Logic-Shrimp-v1a-brd-a.png

Click for a full size placement image.

partlist
Part Quantity Value Package
C1-C9 8 0.1uF C0603
C10 1 1uF C0603
C11,C12 2 10uF SMC_A
IC1,IC2,IC3,IC4 4 23K256-I/SN SOIC8
IC5 1 PIC18F24J50-I/SS SSOP28
IC6 1 74LVC1G125 SOT-23-5
IC7 1 74LVC573 SO20W
INPUT 1 0.1” pin header 1X05-S
LED1 1 RED LED LED-805
LED2 1 YELLOW LED LED-805
Q2 1 20Mhz 3.3volt Oscillator OSCILLATOR_7X5_SMD
R1,R2,R4 3 2K R0603
R3 1 10K R0603
R5 1 100K R0603
USB 1 USB MINIB SMD USB-MINIB
VR1 1 3.3volt VREG LDO 100mA+ SOT23-5

Firmware

The Logic Shrimp supports a sub-set of the SUMP logic analyzer protocol.

The firmware is written in C and compiled with the free Microchip C18 compiler. You can download the latest files from our Google Code project page.

We used the Microchip USB stack to run the 18F24J50 as a virtual serial port. Microchip's code is open but not redistributable. If you want to compile the source, download the stack from Microchip, then drag the source code into the install directory. See the detailed instructions in the PIC compiler how-to.

.inf installation

The virtual serial port (CDC) is an open standard, it should work on any modern operating system.

You don't need a driver, but you will need an .inf file to tell Windows how to use the device. A suitable .inf is included in the project archive.

Bootloader

Easy firmware updates over USB are possible using the Diolan USB HID bootloader. Multi-platform update utilities are included in the project archive.

Taking it further

V1 of the firmware is extremely simple, there's lots of room for new features. The triggers leave a lot to be desired. Frequency and signal generator features can be added by recording to the SRAMs and replaying.

We'll post the most recent firmware updates on our blog. You can also join the discussion in the [forum].

Get one!

You can [get a Logic Shrimp for $35] only at Seeed Studio.

Your purchases at Seeed Studio keep the open source project coming, we sincerely appreciate your support!

Links

License

  • Hardware: CC-BY-SA
  • Firmware: CC-BY-SA
  • Bootloader: GPL