Difference between revisions of "Protocol decoder:Graycode"
 (mention "quadrature")  | 
				|||
| (4 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 ==  | ||
Latest revision as of 17: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.