ATtiny85。ブートローダーを書き込むにはどうすればよいですか?プロセスは何ですか?


8

ATtiny85の6つのI / Oピンすべてを使用したい、つまりリセットピンをI / Oピンとして使用したいのですが、RESETピンを無効にすると、ATtinyを使用してATtinyをプログラムできなくなることがわかりましたISPプログラマ。

しかし、私が理解している限り、RESETピンを必要とせずにUSBを介してATtinyをプログラムすることができるATtinyのブートローダーがあることを知りました。

私の質問は、そのようなブートローダー(たとえば、小核など)をATtiny85 に書き込むにどうすればよいですか?その後、ATtinyをUSBに接続するにはどうすればよいですかこのように)?その後、どのようにプログラムしますか?ブートローダーの書き込みとヒューズの変更に関しては、私はまったくの初心者です。

また、私は実際のISPプログラマーがいないため、ISPプログラマーとしてArduinoISPスケッチを使用していますが、私が読んだ限り、それは問題にはなりません。

編集:私はこれをeBayで数ドルで購入しましたが、それをどのように使用する必要があるのか​​わかりません: ここに画像の説明を入力してください


ブートローダーの書き込みは、他のプログラムの書き込みと同じです。しかし、不良品を入手してリセットヒューズを交換すると、別のチップまたは高電圧プログラマーを入手するまで、その状態のままになってしまいます。したがって、ヒューズを交換する前にUSBブートローダーをテストすることをお勧めします。ソフトウェアUSBコードには、回路がUSB電気インターフェイスに近似するための推奨事項が含まれている可能性があります。
Chris Stratton、

回答:


1

ATtiny84A、ATtiny85、ATmega328P用のTinySafeBoot(TSB)を完全に統合したArduino-Pluginを完成させました。

プロジェクトはここにあります:
https : //mesom.de/atflash/index_english.html https://mesom.de/atflash/tinysafeboot/index_english.html

これをそのまま使用し、リセットピンをアナログ入力として使用できます0.6 * VCC。電圧が下がらないように注意してください。

別の方法として、ヒューズを変更boards.txtしてこのピンを使用可能にすることができ
ます。Arduinoの設定に移動し、preferences.txt(鉱山:)へのリンクをクリックします/Users/stefan/Library/Arduino15/preferences.txt。このフォルダでに移動し/packages/atflash/hardware/avr/0.1.0ます。を開き、boards.txtセクションに移動します
ATTSB85.name=ATtiny85 (TSB)(Int. 8 MHz)


ATTSB85.bootloader.high_fuses=0xdf
を次のように変更します
ATTSB85.bootloader.high_fuses=0x5f

Arduinoを再起動し、Arduinoメニューからブートローダーを書き込みます。


それでもATtiny85から別のピンを取得したい場合:RXとTXに1つのピンのみを使用するようにブートローダーを変更できます(TSB Webサイトを参照)。しかし、なぜすべての努力が必要なのでしょうか。単にATtiny84Aを取ります。ピン数は8ではなく14で、コストはほぼ同じです。

ステファン


2
  • はい、ATtiny85用のUSBインターフェースがあります。そこにあるDigisparkなどのオープンなハードウェア設計の1つを見てください
  • USBインターフェイスには2つのピンが必要になるため、1つを使用して1つのピンを節約しても、費用対効果は高くありません。
  • 私は@FADに同意します。USBスタックは実際には必要ではなく、UARTピンを使用して起動時の遅延を実行できるだけです。
  • HVSP(高電圧プログラミング)は難しくありません。ArduinoISPに既に慣れている場合は、ScratchMonkeyを試すことができます。ScratchMonkeyは、同じアプローチ(12V電源と1つのトランジスタ)を使用して、HVSPプログラミングを行います。

USBインターフェースは、例えば、プログラミングしていないときにジャンパーでシャットダウンしたり、プログラミングに干渉しない用途に使用したりできます。通常、再プログラミングはリセット直後に行われます。
AMADANON Inc. 2015

1

確かに、リセットピンをIOとして使用する場合、高電圧(覚えている場合は12v)またはそのようなものを提供すると私が思う特別なプログラマが必要です。そのピンに12vソースを適用して強制的にプログラミングモードにしてから、通常のプログラマー(または別のarduino)を使用してプログラミングします。しかし、あなたが探しているのは、Arduinoで行われていることのようなものです。arduinoはISPを介して特別なブートローダーでプログラムされているため、マイクロコントローラーに電源を入れると、ブートローダーが最初に実行され、数ミリ秒の間、UARTピンのアクティビティをチェックし、有効なものを見つけると、新しいコードを待つプログラミングモードに切り替わります。 (ISPではなく)UARTを介して取得し、それをプログラムの場所に書き込みます。それ以外の場合、ブートローダーはコードの実行を既存のプログラムに渡します(存在する場合)。

これがどのように機能するかを簡単に説明し ます。マイクロコントローラーのフラッシュサイズが1KBで、ブートローダーが100Bであるため、プログラムを場所101B +に保存でき、その最大サイズが(1KB-100B)であるとします。したがって、ブートローダーが起動し、UARTピンにアクティビティがない場合は、プログラムの場所(101B)にジャンプし、プログラミングアクティビティが検出されると、新しいコードの読み取りを開始し、101Bからフラッシュを上書きします(そのため、それ自体を上書きします)。

また、初めてブートローダーをプログラムするにはUSBASPが必要です。そして、そのチップはUSBをサポートしていないため、USBを介してATtiny85をプログラムしませんが、USBを介してシリアルプロトコルをエミュレートするUSB​​シリアルチップ/モジュールを使用します。一部のatmelマイクロコントローラーにはシリアルサポートが組み込まれており、その他はソフトウェアエミュレーションを通じて実行できます。

  • そして、Chrisが示唆したように、ブートローダーが機能することをテストして検証するまで、リセットピンを無効にしないでください。


@ IgnacioVazquez-Abrams、これはクールで、すでにブートローダーが実装されています。私の情報は古いものでした:)。ただし、それでも概念は同じですが、USBシリアルエミュレーションの代わりにPCと直接通信します。ありがとう

Arduino(UNOまたはそれと同等)を介してATtinyにブートローダーを書き込むこともできます。いくつかの手順は次のとおりです:highlowtech.org/?p=1695、またはビデオを希望する場合:youtube.com/watch
Sourcery

これはArduinoからSPIを使用してATtiny4 5 9 10 20および40をプログラミングするための素晴らしいページですので、ATtiny85ではありませんが、関連していると思いました。また、ブログで言及していることの1つは、リセットピンをI / Oとして使用する場合、プログラミングモードをトリガーするために必要なのは12vソースだけであり、それでも同じようにプログラムできるため、以前考えたような特別なプログラマーはいないということです。junkplusarduino.blogspot.com/p/attiny10-resources.html
Fahad Alduraibi 2014年

@ FAD、4/5/9/10はATtiny85とはまったく異なる獣です。高電圧プログラミングと通常の電圧プログラミングで同じプログラミングプロトコル(TPI)を使用していることは事実ですが、他のATxxxマイクロコントローラーでは特にそうではありません
microtherion

0

私はeBayで数ドルで購入した次のものを持っていますが、それをどのように使用する必要があるかわかりません。

それはあなたのarduinoispよりもはるかに優れています。

google avrdude / avrdudess。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.