flipflop

A lightweight serial bootloader for PIC16F1 devices.

@startuml enter-programming-mode
' mode compact
scale 10 as 100 pixels
hide time-axis
Title: Enter Programming Mode

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

MCLR is high
D is low

@0
FF is {hidden}
PG is {hidden}

@2
MCLR is low

@5
D is high

@8
MCLR is high

@10
FF is {hidden}
PG is U : Sync Byte
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 low
@+1
D is high
@+1
D is low
@+1
D is high

@20
FF is {hidden}
PG is U : Command
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 low
@+1
D is high
@+1
D is low
@+1
D is high

@30
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


@40
FF is {hidden}
PG is "" : Command

highlight 10 to 30 #LightBlue: Start Command
highlight 30 to 40 #LightGreen: Response
highlight 40 to 50 #PaleGoldenRod: Next Command

@enduml