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 W : 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 high
@+1
D is high
@+1
D is high
@+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