[ リストに戻る ]
No.14に関するツリー

   ボーレート 115200bpsでは、16MHzクロック使用ですか... - SHUN - 2026/10/14(Wed) 22:30:38 [No.14]
└ Re: ボーレート 115200bpsでは、16MHzクロック使用で... - O-Family - 2026/10/14(Wed) 23:16:37 [No.15]
└ Re: ボーレート 115200bpsでは、16MHzクロック使用で... - SHUN - 2026/10/15(Thu) 14:21:37 [No.16]
└ Re: ボーレート 115200bpsでは、16MHzクロック使用で... - 通りすがり - 2026/10/17(Sat) 19:01:31 [No.17]



並べ替え: [ ツリー順に表示 | 投稿順に表示 ]
ボーレート 115200bpsでは、16MHzクロック使用ですか? (親記事) - SHUN

こんばんは、
掲示板新しくなったのですね。過去ログが見れないのは、少し残念です・・・

質問ですが、MAKEMODBUSコマンドを使い、ボーレート 115200bpsで通信したです。
ATMEGA328Pですが、内臓8Mクロックで動きますか?
それともEXT16Mクロックを使用しなければ動かないのか?

よろしくお願いいたします。


[No.14] 2026/10/14(Wed) 22:30:38
Re: ボーレート 115200bpsでは、16MHzクロック使用ですか? (No.14への返信 / 1階層) - O-Family

下記マニュアルの、
https://avr.jp/user/DS/PDF/megaXX8PA.pdf

「20.10. ボーレート設定例」の所に、クロック周波数とボーレートと、その誤差が書いてあります。

内臓8MHzのRC発振器は誤差が大きいので、115,200bpsくらいになると時々エラーが出るかもしれません。
できれば水晶をお勧めします。


[No.15] 2026/10/14(Wed) 23:16:37
Re: ボーレート 115200bpsでは、16MHzクロック使用ですか? (No.15への返信 / 2階層) - SHUN

ありがとうございます。
誤差で誤動作了解です。
外部クロックの方が良さそうですね。
7.3728MHz水晶を使えば、誤差なしで、3.3V電源で使えそうですね。
試してみます。


[No.16] 2026/10/15(Thu) 14:21:37
Re: ボーレート 115200bpsでは、16MHzクロック使用ですか? (No.16への返信 / 3階層) - 通りすがり

こんにちは。通りすがりです。

今日、たまたま同じようなことをしていました。

mega168pで、$crystal = 8000000、$baud = 115200 とすると、
 UCSR0A.U2X = 1
 UBRR = 8
と設定され、誤差が-3.5%となりました。これはコンパイルリザルトから確認できます。
3.5%なので、条件によっては受信できなくなるでしょう。実際、通信できませんでした。
データデータシートによると8N1、U2X=1のとき、推奨誤差は+/-1.5%だそうです。

しかし、3.5%しかないと考えれば、OSCCALを調整すればよいのではと思い、
 OSCCAL = OSCCAL + n
として、CLKOを有効にして周波数カウンタで確認しながら調整するとおよそ1%以内に
簡単に入りました。nが1あたり数十kHz程度可変できました。データシートにosccalの値と
周波数の関係グラフが載っています。
(なお、内蔵RC-OSCはスペクトル拡散のためかジッタがかなりあります。)

その後、$crystal = 8294400(およその実際の周波数)としておけば、その他のwaitなど
クロックに影響するものの誤差も少なくなるでしょう。あくまでも、内蔵RC-OSCなので、
電圧や温度などから影響を受けますので安定性について留意が必要ですが、今日使った限り
(非業務用途)では問題ありませんでした。

ご賢察のとおり、本来は適切な周波数の水晶発振を使用すべきですね。

ご参考になりましたら


[No.17] 2026/10/17(Sat) 19:01:31
以下のフォームから投稿済みの記事の編集・削除が行えます


- HOME - お知らせ(3/8) - 新着記事 - 記事検索 - 携帯用URL - フィード - ヘルプ - 環境設定 -

Rocket Board Type-T Rocket BBS