この記事の内容
この記事では、SPI通信の動作モード(CPOLとCPHAの組み合わせ)に応じた信号のタイミングを、Waveform Renderを使って図示・解説しています。
SPIプロトコルタイミングチャート
CPOL=0, CPHA=0
クロックがLowスタート、Posエッジでデータを受け取ります。
{"signal": [
{"name": "CS", "wave": "10........1"},
{"name": "CLK", "wave": "l.hlhlhlhl."},
{"name": "MOSI","wave": "x2.2.2.2.x.",
"data": ["T3","T2","T1","T0"]
},
{"name": "MISO","wave": "x2.2.2.2.x.",
"data": ["R3","R2","R1","R0"]
}
],
"head": {"text": "SPI CPOL=0, CPHA=0"}
}
CPOL=0, CPHA=1
クロックがLowスタート、Negエッジでデータを受け取ります。
{"signal": [
{"name": "CS", "wave": "10........1"},
{"name": "CLK", "wave": "l.hlhlhlhl."},
{"name": "MOSI","wave": "xx2.2.2.2.x",
"data": ["T3","T2","T1","T0"]
},
{"name": "MISO","wave": "xx2.2.2.2.x",
"data": ["R3","R2","R1","R0"]
}
],
"head": {"text": "SPI CPOL=0, CPHA=1"}
}
CPOL=1, CPHA=0
クロックがHighスタート、Posエッジでデータを受け取ります。
{"signal": [
{"name": "CS", "wave": "10........1"},
{"name": "CLK", "wave": "h.lhlhlhlh."},
{"name": "MOSI","wave": "x.2.2.2.2.x",
"data": ["T3","T2","T1","T0"]
},
{"name": "MISO","wave": "x.2.2.2.2.x",
"data": ["R3","R2","R1","R0"]
}
],
"head": {"text": "SPI CPOL=1, CPHA=0"}
}
CPOL=1, CPHA=1
クロックがHighスタート、Negエッジでデータを受け取ります。
{"signal": [
{"name": "CS", "wave": "10........1"},
{"name": "CLK", "wave": "h.lhlhlhlh."},
{"name": "MOSI","wave": "x2.2.2.2.x.",
"data": ["T3","T2","T1","T0"]
},
{"name": "MISO","wave": "x2.2.2.2.x.",
"data": ["R3","R2","R1","R0"]
}
],
"head": {"text": "SPI CPOL=1, CPHA=1"}
}
おわりに
何かの参考になれば。


コメント