From: Uwe Hermann Date: Sat, 14 Jan 2012 17:34:07 +0000 (+0100) Subject: srd: SPI: Output warning annotation if CS# de-asserted. X-Git-Tag: libsigrokdecode-0.1.0~152 X-Git-Url: https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=commitdiff_plain;h=01329e88ee576eb511528e691ddee23998d2de21 srd: SPI: Output warning annotation if CS# de-asserted. --- diff --git a/decoders/spi.py b/decoders/spi.py index 480174e..5b97cd4 100644 --- a/decoders/spi.py +++ b/decoders/spi.py @@ -84,6 +84,7 @@ class Decoder(srd.Decoder): self.misodata = 0 self.bytesreceived = 0 self.samplenum = -1 + self.cs_was_deasserted_during_data_word = 0 # Set protocol decoder option defaults. self.cs_active_low = Decoder.options['cs_active_low'][1] @@ -128,6 +129,8 @@ class Decoder(srd.Decoder): # If this is the first bit, save its sample number. if self.bitcount == 0: self.start_sample = samplenum + if cs: + self.cs_was_deasserted_during_data_word = 1 # Receive MOSI bit into our shift register. if self.bitorder == MSB_FIRST: @@ -153,6 +156,10 @@ class Decoder(srd.Decoder): [ANN_HEX, ['MOSI: 0x%02x, MISO: 0x%02x' % (self.mosidata, self.misodata)]]) + if self.cs_was_deasserted_during_data_word: + self.put(self.start_sample, self.samplenum, self.out_ann, + [ANN_HEX, ['WARNING: CS# was deasserted!']]) + # Reset decoder state. self.mosidata = 0 self.misodata = 0