Most timing diagrams use the following conventions:
The timing diagram example on the right describes the Serial Peripheral Interface (SPI) Bus. Most SPI master nodes can set the clock polarity (CPOL) and clock phase (CPHA) with respect to the data. This timing diagram shows the clock for both values of CPOL and the values for the two data lines (MISO & MOSI) for each value of CPHA. Note that when CPHA=1, then the data is delayed by one-half clock cycle.
SPI operates in the following way:
When a slave's SS line is high, both its MISO and MOSI line should be high impedance to avoid disrupting a transfer to a different slave. Before SS being pulled low, the MISO & MOSI lines are indicated with a "z" for high impedance. Also, before the SS is pulled low, the "cycle #" row is meaningless and is shown greyed out.
Note that for CPHA=1, the MISO & MOSI lines are undefined until after the first clock edge and are also shown greyed out before that.
A more typical timing diagram has just a single clock and numerous data lines.
The following diagram software may be used to draw timing diagrams:
"Timing Diagram". PlantUML. 2024. Archived from the original on 11 December 2024. Retrieved 10 February 2023. https://plantuml.com/timing-diagram ↩
"TimingDiagrammer". GitHub. Archived from the original on 21 January 2023. Retrieved 10 February 2023. https://github.com/hacksterous/TimingDiagrammer ↩