@happytar0この広告は、90日以上更新していないブログに表示しています。2013-07-17USBシリアル変換モジュールを使う電子工作またもや電子工作をサボってしまった...。プライベートもプログラミングをバリバリやってる人はすごいと思う。この間マイコン先生から電子工作用の部品を色々いただいた。ジャンパー線やLCDなど便利なものばかり...感謝感謝。半年くらいご無沙汰だったみたいだ。今回さわったシリアル変換モジュールなどの部品は、実は正月に買っておいた。ケースやら基盤なども買い込んだので、早いところ温度計を完成させてもいいのだけど、リハビリも兼ねてシリアル通信をやってみることにした。購入したシリアル変換モジュールは、秋月電子で売っていたもので、FT232RLというUSB-シリアル変換用のICが基盤にくっついるものだ。接続は簡単で、バスパワーでUSBから電源を確保できるので、GND、TXDとRXDをマイコンと接続するだけで大丈夫らしい。マイコンはATTINY2313を使用した。TXDとRXD変換モジュールに付属されていた説明書にも記載されているのだけど、TXDは「通信データ出力」、RXD「通信データ入力」ということらしい。これをマイコン側のTXDとRXDにクロスして接続する。最初にクロスで接続することに気づかず焦った。要は、変換モジュールのTXDをマイコンのRXDに、変換モジュールのRXDをマイコンのTXDに接続する。変換モジュールとPCを接続ドライバが必要なようだったので、下記のサイトからダウンロードした。MacBookAirを使っていたので、OSX版をインストールした。Driversscreenでシリアル通信も出来るようだったのだけど、他に使いやすいものがないか探したところ、CoolTermというアプリを発見した。こいつで行くことにした。FreewareUSART(UART)詳しい説明はググれば出てくるのでざっくり説明すると、1本の信号線上の信号をプロトコルに従い「1」、「0」でデータを送る通信方法。同期通信の二通りがあるようだ。ボーレート変復調速度のことでマイコンのクロック数によって設定する値が変わる。マイコンのデータシートに一覧が載っているので、クロック数と通信速度から適切なものを選べばいい。一般的な通信速度9600bpsで通信することにした。マイコンのクロック数は8MHzなので、設定するボーレートは51となった。シリアル通信してみるよく使われている設定でシリアル通信をおこなうことにした。設定内容は、非同期通信、パリティ禁止、停止ビット1bit、データビット長8ビット。初期化処理のコードは下記のようにした。UCSZ0);UBRRLレジスタにボーレート値を入れる。UCSRBレジスタで、RXENとTXENのビットを立てる。RXENが「受信許可」、TXENが「送信許可」になる。UCSRCレジスタは、UCSZ1とUCSZ0が「データビット長」になる。8ビットの場合は、「011」になるので、UCSZ1とUCSZ0の両方のビットを立てればOKだ。本当は、UCSZ2もあるのだけど、これはUCSRBレジスタのほうに入っている...紛らわしい。今回は8ビットなので特に設定する必要はない。コードは、ググればたくさん出てくるし、データシートにも書いてあるので特に迷うことはなかった。シリアル通信の送受信を実装し、ターミナルから送信した文字列をそのままエコーバックさせるコードを書いてみた。その1激ニコぷんぷん丸のソースコード公開iOS7対応PHPからCOMを使うタクトスイッチを使う月別アーカイブはてなブログをはじめよう!happytar0さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。