USART
このマイクロコントローラーには USART というペリフェラルがあります。これは Universal Synchronous/Asynchronous Receiver/Transmitter の略です。このペリフェラルは、シリアル通信プロトコルのような複数の通信プロトコルで動作するように設定できます。
この章全体を通して、シリアル通信を使ってマイクロコントローラーとコンピューターの間で情報をやり取りします。しかしその前に、まずすべてを配線する必要があります。
前にも述べたように、このプロトコルでは 2 本のデータ線を使用します: TX と RX です。TX は transmitter を表し、RX は receiver を表します。ただし、transmitter と receiver は相対的な用語です。どちらの線が transmitter でどちらの線が receiver であるかは、通信のどちら側からその線を見ているかによって決まります。
新しいボードリビジョン
より新しいリビジョンのボードを使っていて、オンボードの USB <->
Serial 機能を使用している場合、auxiliary クレートはピン PC4 を TX
線として、ピン PC5 を RX 線として設定します。
前の節で ループバック機能 をテストするために PC4 ピンと PC4 ピンを接続していた場合は、 そのワイヤーを必ず取り外してください。そうしないと、この後のシリアル通信は何も表示されずに失敗します。
必要な配線はすべてすでにボード上で接続されているため、自分で何かを配線する必要はありません。 そのまま 次の節 に進んでください。
古いボードリビジョン / 外部シリアルモジュール
外部の USB <-> Serial モジュールを使用している場合は、Cargo.toml 内の
aux11 クレート依存関係で adapter フィーチャーを有効にする必要があります。
[dependencies.aux11]
path = "auxiliary"
# 外部シリアルアダプターを使用する場合はこれを有効にする
features = ["adapter"] # <- これをアンコメント
マイクロコントローラーの TX 線としてピン PA9 を、RX 線として PA10 を使用します。言い換えると、
ピン PA9 はそのワイヤーにデータを出力し、ピン PA10 はそのワイヤー上のデータを受信します。
TX ピンと RX ピンには別のピンの組み合わせを使うこともできました。Data Sheet の 44 ページには、 使用可能だった他のすべてのピンが一覧になった表があります。
シリアルモジュールにも TX ピンと RX ピンがあります。これらのピンは 交差 させて接続する必要があります。つまり、 マイクロコントローラーの TX ピンをシリアルモジュールの RX ピンに、マイクロコントローラーの RX ピンをシリアルモジュールの TX ピンに接続します。以下の配線図は、必要な接続をすべて示しています。
マイクロコントローラーとシリアルモジュールを接続するための推奨手順は次のとおりです。
- OpenOCD と
itmdumpを終了します - F3 とシリアルモジュールから USB ケーブルを取り外します。
- メス-オス(F/M)ワイヤーを使って、F3 の GND ピンの 1 つをシリアルモジュールの GND ピンに接続します。 できれば黒いものを使ってください。
- F/M ワイヤーを使って、F3 の背面にある PA9 ピンをシリアルモジュールの RXI ピンに接続します。
- F/M ワイヤーを使って、F3 の背面にある PA10 ピンをシリアルモジュールの TXO ピンに接続します。
- 次に USB ケーブルを F3 に接続します。
- 最後に USB ケーブルを Serial モジュールに接続します。
- OpenOCD と
itmdumpを再起動します
これで全部配線できました! 続いて、データを双方向に送受信してみましょう。