Difference between revisions of "HSA Logic"

From sigrok
Jump to navigation Jump to search
Line 36: Line 36:


== Protocol ==
== Protocol ==
TODO.
For the sake of simplicity all commands and status messages have been implemented as simple ASCII tokens (single characters).
 
=== Commands ===
{| class="wikitable"
|-
! Command  !! Description
|-
| 'g'      || = go, start sampling
|-
| 's'      || = stop sampling
|-
| 'r'      || = reset
|-
| 'd'      || = dump data (binary)
|-
| 'D'      || = dump data (ASCII encoded)
|-
| 'i'      || = identify
|-
| 'S'      || = get status
|}
 
=== Status messages ===
{| class="wikitable"
|-
! Command  !! Description
|-
| 'r'      || = measurement is running
|-
| 's'      || = measurement stopped/ no measurement
|-
| 'f'      || = memory is full
|}
 
=== Data format ===
The samples are blocks of 32 bit: 8 bit data, 16 bit timestamp, 8 bit status. These can be read via the dump command.
The analyzer only stores new samples if any logic level changes.


== Resources ==
== Resources ==

Revision as of 21:25, 17 January 2014

HSA Logic
Hsa-logic.png
Status in progress
Source code hardware/hsa-tple
Channels 8 (24 planned)
Samplerate 6.25 MHz
Samplerate (state) ?
Triggers none (SW-only)
Min/max voltage 3.3V; 5.0V
Threshold voltage ?
Memory 1 MB (245K*16), 262144 samples
Compression RLE
Website trac, project page, hhwiki

The HSA Logic is a USB-based, 8-channel logic analyzer with 6.25 MHz sampling rate. It is an open-hardware / open-source design. Both hardware and software have been developed at Hochschule Augsburg so far. Everything started with this bachelor thesis in 2010. It was continued in 2013/14 as semester project.


Hardware

  • CPLD: Altera Max II EPM240 with 240 logic elements
  • microcontroller: Atmel ATmega32u4 (programmed in C)
  • 2x RAM organised as 256K*16
  • I/O drivers supporting 5V and 3V as input voltage

Photos

Firmware

CPLD Firmware: written in VHDL, microcontroller Firmware: written in C (using LUFA) TODO.

Protocol

For the sake of simplicity all commands and status messages have been implemented as simple ASCII tokens (single characters).

Commands

Command Description
'g' = go, start sampling
's' = stop sampling
'r' = reset
'd' = dump data (binary)
'D' = dump data (ASCII encoded)
'i' = identify
'S' = get status

Status messages

Command Description
'r' = measurement is running
's' = measurement stopped/ no measurement
'f' = memory is full

Data format

The samples are blocks of 32 bit: 8 bit data, 16 bit timestamp, 8 bit status. These can be read via the dump command. The analyzer only stores new samples if any logic level changes.

Resources

TODO.