flipflop

A lightweight serial bootloader for PIC16F1 devices.

@startuml read-command
' mode compact
scale 10 as 100 pixels
hide time-axis
Title: Read Flash Command (2 byte words)

compact concise "flipflop" as FF
compact concise "programmer" as PG
binary "DATA" as D

D is high

@10
PG is R : Command
D is low
@+1
D is low
@+1
D is high
@+1
D is low
@+1
D is high
@+1
D is low
@+1
D is low
@+1
D is high
@+1
D is low
@+1
D is high

@20
PG is "AddrH : AddrL" : Start address
D is {low,high}

@40
PG is "LenH : LenL" : Length to read (in bytes)

@60
FF is "Word0H:Word0L" : Word at address
PG is {hidden}

@80
FF is ". . ."

@90
FF is "WordNH : WordNL" : Address + (Length/2) - 1

@110
FF is "CRC-16" : 2 byte checksum

@130
FF is {hidden}
PG is "" : Command
D is high

highlight 10 to 60 #LightBlue: Read Command
highlight 60 to 130 #LightGreen: Response
highlight 130 to 140 #PaleGoldenRod: Next Command

@enduml