Waveform Render SPIプロトコルのタイミングチャート

VSCode

この記事の内容

この記事では、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"}
}

おわりに

何かの参考になれば。

コメント

タイトルとURLをコピーしました