AVR ATmega88Pと秋月から買ってきたFTDI製のチップが載っているUSBシリアル変換器、AE-UM232Rを繋げてみました。
データシートではUSARTの項で解説されていて、C言語でのサンプルコードも載っていて、痒いところまで手が届いていそうで、うまく動かない…。
データシートが悪いわけがないので自分のコードをいろいろ変更してみたりして、ブレッドボード上の回路もいろいろ変更してみたり。
結局20MHzのセラロックを使ったところ問題なく接続できたのですが、うーん8MHzの内部RC発振じゃ無理なのかぁ…。9600bpsで接続するなら無理じゃないと思ったんだけどなぁ…。
CKDIV8はオフにしているし、クロックが8MHzで動かない理由がわからない、明日横浜にいく途中で秋葉原によって8MHzの水晶発振子でもかってきて試してみるか。東京週末フリーキップは駅でゲット済みだから準備は万端。
でもその前に、この週末に仕組みのところから解説しているWebサイトをいろいろみて勉強してみます…。
さてさてプログラムの書き込みはAVR Studioが便利なのでWindows VistaなInspiron 640m上で行ないますが、シリアルケーブルの先はLinuxです。
まずはUSBケーブルを接続した後で、dmesgを実行して最近認識されたデバイスの名前を確認します。
$ dmesg | tail -3 [1682131.118019] ftdi_sio 1-2.3:1.0: FTDI USB Serial Device converter detected [1682131.118056] /build/buildd/linux-2.6.24/drivers/usb/serial/ftdi_sio.c: Detected FT232RL [1682131.118161] usb 1-2.3: FTDI USB Serial Device converter now attached to ttyUSB0 $ kermit C-Kermit> set port /dev/ttyUSB0 C-Kermit> set speed 9600 C-Kermit> set carrier-watch off C-Kermit> connectあとはキーを打つとエコーバックするサンプルプログラムが動いて、確認完了。 けれどちゃんとAE-UM232RとAVRが接続できていない時も、AE-UM232Rがエコーバックしてしまったので、LEDをPB0に接続して打鍵毎に点滅"PORTB ^= (1<<PORTB0);"するようにしないと、ちょっと不安です。
どうでも良いですが、TeraTermでLinuxに接続してkermitを実行した時に、SKKIME 1.5を使っていると、Kermitを抜ける時に打つ"C-\c"(Control+\ c)が取られてしまい、TeraTermがKermitに伝えてくれませんでした。
MS IME 2007に切り替えて正常に終われましたが、まぁこんな使い方は僕もめったにしないから大丈夫か…。とりあえず勉強しないとだなぁ。
0 件のコメント:
コメントを投稿