Skip to content

Instantly share code, notes, and snippets.

@jools-uk
Last active August 5, 2023 01:30
Show Gist options
  • Select an option

  • Save jools-uk/bf81eb8db548a2bf87b122351f7d6773 to your computer and use it in GitHub Desktop.

Select an option

Save jools-uk/bf81eb8db548a2bf87b122351f7d6773 to your computer and use it in GitHub Desktop.
ws2812b timing
@startuml
<style>
timingDiagram {
.red {
LineColor red
LineThickness 4
}
.blue {
LineColor blue
LineThickness 4
}
}
</style>
scale 50 as 20 pixel
binary "Spec T0H" as S1 <<blue>>
binary "Spec T0H min" as S2 <<blue>>
binary "Spec T0H max" as S3 <<blue>>
binary "Spec T1H" as S4 <<red>>
binary "Spec T1H min" as S5 <<red>>
binary "Spec T1H max" as S6 <<red>>
concise "2.4Mbaud 3bit" as B1
concise "2Mbaud 3bit" as B2
concise "3Mbaud 4bit" as B3
concise "3Mbaud 4bit" as B4
!$Tolerance = 150
!$T0H = 350
!$T0L = 900
!$T0Hmin = $T0H - $Tolerance
!$T0Hmax = $T0H + $Tolerance
!$T0Lmin = $T0L - $Tolerance
!$T0Lmax = $T0L + $Tolerance
!$T1H = 900
!$T1L = 350
!$T1Hmin = $T1H - $Tolerance
!$T1Hmax = $T1H + $Tolerance
!$T1Lmin = $T1L - $Tolerance
!$T1Lmax = $T1L + $Tolerance
@-50
S1 is 0
S2 is 0
S3 is 0
@S1
0 is 1
$T0H is 0
@0 <-> @$T0H : {$T0H ns}
@$T0H <-> @+$T0L : {$T0L ns}
@S2
0 is 1
$T0Hmin is 0
@0 <-> @$T0Hmin : {$T0Hmin ns}
@$T0Hmin <-> @+$T0Lmax : {$T0Lmax ns}
@S3
0 is 1
$T0Hmax is 0
@0 <-> @$T0Hmax : {$T0Hmax ns}
@$T0Hmax <-> @+$T0Lmin : {$T0Lmin ns}
@S4
0 is 1
$T1H is 0
@0 <-> @+$T1H: {$T1H ns}
@$T1H <-> @+$T1L: {$T1L ns}
@S5
0 is 1
$T1Hmin is 0
@0 <-> @+$T1Hmin : {$T1Hmin ns}
@$T1Hmin <-> @+$T1Lmax : {$T1Lmax ns}
@S6
0 is 1
$T1Hmax is 0
@0 <-> @+$T1Hmax : {$T1Hmax ns}
@$T1Hmax <-> @+$T1Lmin : {$T1Lmin ns}
@1250
S1 is 1
S2 is 1
S3 is 1
@0
B1 is Bit1
@416
B1 is Bit2
@833
B1 is Bit3
@1250
B1 is {-}
@0
B2 is Bit1
@500
B2 is Bit2
@1000
B2 is Bit3
@1500
B2 is {-}
@0
B3 is Bit1
@333
B3 is Bit2
@666
B3 is Bit3
@1000
B3 is {-}
@0
B4 is Bit1
@333
B4 is Bit2
@666
B4 is Bit3
@1000
B4 is Bit4
@1333
B4 is {-}
highlight 200 to 500 #LightBlue;line:DimGrey : T0H .35us +-150ns
highlight 750 to 1050 #Pink;line:DimGrey : T1H .9us +-150ns
@enduml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment