2008年03月06日 AVRとRS232Cで通信
_ AVRでRS232C
これまで、AVR同士ではUARTを使って通信は行っていたが、PCとの間で通信を行ってみた。MAX232でレベルコンバートして、tiny2313のUARTで受信を試みたが、全然うまくいかない。オシロで信号を見てみたら、文字化けしている。tiny2313はdefaultでは8MHzを8分割して1MHzで動いている。最初は無謀にも19200でやろうとしていたが、9600に落として、UBRRの値を6にしたら、なんとか通信できた。これでも-7%の誤差があるようだが、大丈夫だろうと思っていたら、ときどき通信できていないことに気づいた。
CLKPR=0x80; CLKPR=0x02;
として、2MHzにしたら、今のところうまくいっている。このときの誤差は0.2%なので、今度こそ大丈夫だろう。それにしても、AVRは途中で周波数を変えられるんですね。昔、8086で10-8を切替えても落ちなかったのが思い出される。