flipflop
A lightweight serial bootloader for PIC16F1 devices.
@startuml write-command
' mode compact
scale 10 as 80 pixels
hide time-axis
Title: Write 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 P : 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 low
@+1
D is low
@+1
D is high
@20
PG is "AddrH : AddrL" : Start address of row
D is {high,low}
@40
PG is "LenH : LenL" : Length of data (in bytes)
@60
PG is "Word0H : Word0L" : Word written to address
@80
PG is ". . ."
@90
PG is "WordNH : WordNL" : Last word
@110
PG is "CRC-16" : 2 byte checksum
@130
FF is K
PG is {hidden}
D is low
@+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
@+1
D is high
@+1
D is high
@140
FF is {hidden}
PG is "" : Command
highlight 10 to 130 #LightBlue: Write Command
highlight 130 to 140 #LightGreen: Response
highlight 140 to 150 #PaleGoldenRod: Next Command
@enduml