Age | Commit message (Collapse) | Author |
|
This is information that a user (when viewing PD info in a GUI/CLI)
should not see (and doesn't care to see), it is meant for developers only.
Thus, make it a comment in pd.py instead.
|
|
Move the full details of the protocol to the wiki, the docs in the PD
itself should only be a short description and/or a collection of notes
that could be useful for a user in a GUI (or CLI) to decide which
PD to select, which options to set how, what PDs to stack where, and so on.
The full protocol description (including photos, examples, ...) is here:
http://sigrok.org/wiki/Protocol_decoder:Uart
|
|
Until now we (ab)used annotation types for outputting the same data
(numbers) in different formats (hex, ascii, binary, and so on).
Turn this into a proper PD option, since annotation types should rather be
used for different _types_ of annotations (e.g. "CRC", "Stop bit",
"Preamble", "Sequence counter", "Warnings", and similar things), not
different _formats_ for the same annotation type.
Old sigrok-cli invocation for hex output:
sigrok-cli ... -P uart:rx=0:tx=1 -A uart=hex
New:
sigrok-cli ... -P uart:rx=0:tx=1:format=hex
In GUIs there is now a new "Data format" option where the user can
select the output format for UART data (default is 'ascii').
|
|
The short(est) annotations for "Stop bit" and "Parity bit" have both
been "P" until now, which is confusing for users (on certain zoom levels
in GUIs). Use "T" for stop bits now instead.
|
|
Previously the output was 0x41 or 0o101 or 0b1000001, now it is 41 or
101 or 1000001. We drop these prefixes, since they decrease the readability
of the PD output (especially when displayed in GUIs) and are not needed
anyway since the user knowingly selected the number format before running
the respective PD.
|
|
Assume that the initial pin state is 1/high for the RX and TX lines.
This fixes the decode when an LA triggers on e.g. TX=low (the first
sample would be low in that case, so the falling edge for the start bit
would be missed by the decoder).
|
|
This now makes the UART decoder suitable for use in GUIs.
This fixes bug #148.
|
|
Supply long, middle, and short versions for most annotations, so that
GUIs can show nicely readable and useful annotations on various zoom
levels.
|
|
With this change pretty much all CAN annotations that are currently
output should have the correct values, including single-bit and
multi-bit fields, standard and extended CAN frames, and so on.
This fixes #146.
|
|
|
|
Until now the I2C PD was basically ignoring the very first sample, and
using that as the initial 'oldscl'/'oldsda' value.
However, if your logic analyzers trigger on, say, SDA=low that will
result in a file where the first sample is really important since it
is the one which the PD will need to know that there's a falling edge
on SDA.
Thus, assume both SCL and SDA are high/1 when the PD starts. This is
a good assumption since both pins have pullups on them in practice
and are thus high/1 when the bus is idle.
Later on we might want to have config options to let the PD assume
other states of SDA/SCL initially.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dallas DS1307 RTC protocol decoder that works stacked
with the I2C PD. Based on the rtc8564 protocol decoder.
Signed-off-by: Matt Ranostay <mranostay@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The Python module name is determined by the directory name (e.g. dcf77),
the *.py file names in that directory don't matter and can be kept
consistent.
|
|
|
|
|
|
|
|
Thanks Iztok Jeras <iztok.jeras@gmail.com> for the report.
|
|
This is work in progress, but it already works partially, and can be used
for actual decodes of some commands.
This PD stacks on top of the SPI protocol decoder.
|
|
The temperature unit is nowadays called just "Kelvin", not
"degrees Kelvin" (even though this was not always the case).
|
|
|
|
|
|
|
|
While states in the PD should be ALLCAPS per guidelines (for
consistency), the annotations that a PD outputs (and are shown in a
console via sigrok-cli or in a GUI) should be "normal" human-readable
text/formatting usually, i.e. not ALLCAPS.
|
|
|
|
|
|
|
|
It doesn't make sense to have one "generic" onewire_transport PD, as
this layer is very much device-specific and such a generic PD would
have to contain an accumulation of all possible features and commands
and handling code of all existing (now and in the future) 1-Wire
devices, which is neither possible nor useful nor elegant.
There are (for example) 1-Wire thermometers, RTCs, EEPROMs,
special-purpose security chips with passwords/keys, battery monitoring
chips, and many many others. They all have a different set of features,
commands and command codes, RAM areas/sizes/partitioning/contents,
protocols, and so on.
Thus, the layering for 1-Wire PD stacks should look like this:
onewire_link -> onewire_network -> <specificdevice>
Examples:
onewire_link -> onewire_network -> maxim_ds28ea00 (special thermometer)
onewire_link -> onewire_network -> maxim_ds2431 (1kbit EEPROM)
onewire_link -> onewire_network -> maxim_ds2417 (RTC)
onewire_link -> onewire_network -> maxim_ds2762 (battery monitor)
onewire_link -> onewire_network -> maxim_ds1961s (SHA-1 eCash iButton)
and so on...
So, renaming onewire_transport to maxim_ds28ea00. The non-DS28EA00
specific code will be dropped and/or moved to other PDs on top of
onewire_network later.
|
|
The 'Overdrive match ROM' command is 0x69, not 0x6d. Verified in various
datasheets and the original 1-Wire/iButton spec.
|
|
The annotation types are 'Text' and 'Warnings', not 'Link' etc. as the
annotations of the onewire_link PD (for example) are already clearly
from the link layer. The annotation types should be different things/formats
of a specific PD's annotation output instead (like "Celsius" / "Kelvin"
for some temperature sensor, for example).
|
|
Also, some additional cleanups.
|
|
|