Arduinoに異なるファームウェアをインストールする


12

Arduinoのファームウェアをアップグレードして、より低い処理能力を提供するために低電圧/過電圧を変更するなど、より多くのことができるようにすることは可能ですか?これを行うには、おそらくチップ自体を再フラッシュする必要がありますが、それはどのように達成されますか?


2
ほとんどの新しい機能は、ライブラリとプログラミングによって提供されます。どんな「もっと多くのこと」を話しているのですか?
TheDoctor 14

TheDoctorが言ったこと、あなたがもっと意味することは何ですか?また、「ファームウェア」とは何を指しているのですか?ソフトウェア/ OSのオンボード?
hichris123 14

私は質問を削除すべきである
JVarhol

@JVarhol明確にすることができるなら、それを守ってください。ただ、まさにあなたのしている思考...私たちに説明
hichris123

私はそれがキーボードをエミュレートできるように、USBシリアルチップ上の新しいファームウェアをインストールすることができます知っている
TheDoctor

回答:


7

ほとんどのArduinoボードで使用されているATmega328p MCUの「ファームウェア」に関する質問の側面に答えるには:

ブートローダを除いて、ATmegaにはファームウェアはありません。作成するプログラムは、ハードウェアで直接実行れます。

ISPプログラマーで設定される特定の「ヒューズ」設定があります。ただし、そのうちの24(3バイト)しかなく、それらは主に低レベルの構成に関連しており、私があなたが尋ねているとは思わない:
ここに画像の説明を入力してください

Bootloaderもあります。これは、MCUのプログラムメモリの別のセグメントに置かれ、起動時に自身を更新できる小さなプログラムです(すべてのarduinoがプログラムされる方法です)。ただし、起動時に短時間だけ実行され、MCUがメインプログラムにジャンプした後、メモリから完全に削除されます。

最後に、USBシリアルインターフェイスとして使用されるほとんどのarduinoボードには補助MCU(ATmega16U2 / 8U2)あり、異なる動作(キーボード/マウスのエミュレートなど)に更新できますが、これも実際には変更ではありませんしたがって、「異なるファームウェアのインストール」としてカウントされるかどうかは、arduinoの定義方法によって異なります。

本当に、ATmega328Pデータシートを読むことを強くお勧めします。これは、基本的に「Arduino」を形成するMCUのドキュメントです。誤解と思われるものに対処する必要があります。


5

さまざまなF_CPUのデバイスのアンダー/オーバーボルティングに関して、以下のチャートが関係を示していることに注意してください。その結果、ほとんどのArduinoは5Vおよび16MHzのクロックレートで動作しています。8MHzで動作する3.3Vバリアントがいくつかありますが。

Freq vs Vcc

ただし、IDEで提供されるコアライブラリには通常、8 MHzと16 MHzの両方のF_CPU速度に固有の#ifがあり、ほとんどの場所で式を使用していません。

したがって、あなたが求めることをすることが可能です。ただし、コアライブラリの制限が影響します。費用対利益の比を、非常に意図したものに傾ける。そして、おそらくストックIDEとコアライブラリをよりメイクファイルメソッドに任せるでしょう。


どうやらそれは20 MHzにオーバークロックすることができます
TheDoctor

@TheDoctor-それはオーバークロックではありません。ATmega328pの定格は20 Mhzです。Arduinoは実際には16 MHz にアンダークロックされています。
コナーウルフ

@FakeNameはい、Arduinoボードを変更して、ネセカリー共振器を20 mHzで調整できるようにすることを意味しました
TheDoctor 14

ああ、別のサイドノート。一般に、大きな問題なく安全動作領域を超えることができます。3.3Vレールで16 Mhzで問題なく動作する多くのボードがあります。それらは極端な温度で安定性の問題があるかもしれませんが、それは室温でほとんどうまくいくようです。
コナーウルフ14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.