X-Git-Url: https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=blobdiff_plain;f=decoders%2Favr_pdi%2Fpd.py;h=0b3008f9a01ab13c37a63e8721dd1af5551ea0d8;hp=179350da1fda7fd4fc4e8208f9db1cb77fb66f4f;hb=e144452bcdd5f2abbe6b6f3da41ad64f67e39def;hpb=6a239714f9432e290ec7e26f239c6f9d1827233e diff --git a/decoders/avr_pdi/pd.py b/decoders/avr_pdi/pd.py index 179350d..0b3008f 100644 --- a/decoders/avr_pdi/pd.py +++ b/decoders/avr_pdi/pd.py @@ -116,10 +116,11 @@ class Decoder(srd.Decoder): id = 'avr_pdi' name = 'AVR PDI' longname = 'Atmel Program and Debug Interface' - desc = 'Atmel proprietary interface for the ATxmega MCU.' + desc = 'Atmel ATxmega Program and Debug Interface (PDI) protocol.' license = 'gplv2+' inputs = ['logic'] - outputs = ['pdi'] + outputs = [] + tags = ['Debug/trace'] channels = ( {'id': 'reset', 'name': 'RESET', 'desc': 'RESET / PDI_CLK'}, {'id': 'data', 'name': 'DATA', 'desc': 'PDI_DATA'}, @@ -147,13 +148,16 @@ class Decoder(srd.Decoder): Ann.PARITY_ERR, Ann.STOP_OK, Ann.STOP_ERR, Ann.BREAK)), ('pdi_fields', 'PDI fields', (Ann.OPCODE, Ann.DATA_PROG, Ann.DATA_DEV, Ann.PDI_BREAK)), - ('pdi_cmds', 'PDI Cmds', (Ann.ENABLE, Ann.DISABLE, Ann.COMMAND)), + ('pdi_cmds', 'PDI commands', (Ann.ENABLE, Ann.DISABLE, Ann.COMMAND)), ) binary = ( ('bytes', 'PDI protocol bytes'), ) def __init__(self): + self.reset() + + def reset(self): self.samplerate = None self.clear_state() @@ -543,7 +547,7 @@ class Decoder(srd.Decoder): # Reset internal state for the next frame. self.bits = [] - def handle_clk_edge(self, samplenum, clock_pin, data_pin): + def handle_clk_edge(self, clock_pin, data_pin): # Sample the data line on rising clock edges. Always, for TX and for # RX bytes alike. if clock_pin == 1: @@ -556,7 +560,7 @@ class Decoder(srd.Decoder): # periods (avoid interpreting the DATA line when the "enabled" state # has not yet been determined). self.ss_last_fall = self.ss_curr_fall - self.ss_curr_fall = samplenum + self.ss_curr_fall = self.samplenum if self.ss_last_fall is None: return @@ -567,5 +571,4 @@ class Decoder(srd.Decoder): def decode(self): while True: - clock_pin, data_pin = self.wait({0: 'e'}) - self.handle_clk_edge(self.samplenum, clock_pin, data_pin) + self.handle_clk_edge(*self.wait({0: 'e'}))