Difference between revisions of "Protocol decoder:Graycode"
(mention "quadrature") |
|||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{Infobox protocol decoder | {{Infobox protocol decoder | ||
| id = graycode | | id = graycode | ||
| name = | | name = Gray code and rotary encoder | ||
| description = | | description = Accumulate rotary encoder increments, provide timing statistics. | ||
| status = | | status = supported | ||
| license = GPLv2+ | | license = GPLv2+ | ||
| source_code_dir = | | source_code_dir = graycode | ||
| image = [[File:Pd graycode.png|250px]] | | image = [[File:Pd graycode.png|250px]] | ||
| input = logic | | input = logic | ||
Line 14: | Line 14: | ||
}} | }} | ||
The '''graycode''' protocol decoder can decode Gray Codes up to 8 data lines (but easily generalizes). One popular special case is the Rotary Encoder, which has two lines, A and B. The decoder will report phase, counting direction, absolute count, as well as timing information | The '''graycode''' protocol decoder can decode Gray Codes up to 8 data lines (but easily generalizes). One popular special case is the Rotary Encoder, which has two lines, A and B, representing a quadrature signal. The decoder will report phase, counting direction, absolute count, as well as timing information. | ||
== Parameters == | == Parameters == | ||
Line 24: | Line 24: | ||
== Resources == | == Resources == | ||
* [https://github.com/crackwitz/sigrok-pd-graycode Source on Github] | |||
* [https://en.wikipedia.org/wiki/Gray_code Wikipedia: Gray Code] | * [https://en.wikipedia.org/wiki/Gray_code Wikipedia: Gray Code] | ||
Latest revision as of 18:33, 5 May 2020
Name | Gray code and rotary encoder |
---|---|
Description | Accumulate rotary encoder increments, provide timing statistics. |
Status | supported |
License | GPLv2+ |
Source code | decoders/graycode |
Input | logic |
Output | graycode |
Probes | — |
Optional probes | D0-D7 |
Options | numchannels, edges, avg_period |
The graycode protocol decoder can decode Gray Codes up to 8 data lines (but easily generalizes). One popular special case is the Rotary Encoder, which has two lines, A and B, representing a quadrature signal. The decoder will report phase, counting direction, absolute count, as well as timing information.
Parameters
edges: Number of rising and falling edges per turn of all lines. Rotary encoders are usually labeled as having N pulses per turn. A pulse consists of rising and falling edge and you have two lines that are phase-shifted by 90° to one another. This allows to extract 4N edges per turn.
numchannels: due to a current bug in Pulseview, assigned optional probes aren't reported correctly, so you'll have to select the number of channels manually.