なぜハードウェアプログラマが必要なのですか?


22

私はBoarduinoと30列のブレッドボードを使用してATtinyをプログラムします。ArduinoISPと呼ばれるあまり複雑ではないスケッチ(現在Arduino IDEにデフォルトで組み込まれています)をロードすると、突然プログラマーが働いています。Atmel は$ 30から$ 40の間で素晴らしいプログラマーを販売しており、安価なものを作るためのキットがたくさんあります。

作業中のプログラマを取得し、小さな点滅をいくつかのLEDにすると、私はとても幸せでした。しかし、今では私の貧しいboarduinoはプログラマーの義務に固執しています。

私の知る限り、プログラマーはリセットボタンを押したままにして、MOSIピンとMISOピンで送受信します。 SCKは使用されていないか、少なくとも不要です。 (SCKはATtinyデータシートによると必要であり、私のプログラマーはそれなしでは動作せず、読んだと思っていた場所が必要ないことを見つけることができません。)

シリアルを送信するだけでハードウェアプログラマが必要なのはなぜですか?つまり、ICを使用する代わりに、指でリセットボタンを押したままにします。残っているのはシリアル送受信だけなので、必要なのはGND、RXD、TXDの3線だけです。ちなみに、「DTR」行などがある場合は、シリアルケーブルでリセットボタンを押し続けることもできます。

(AVRdude、AVR studio、またはその他の)高級なソフトウェア必要とするこれらすべてのハードウェアソリューションがあるのはなぜですか?

マイクロコントローラを大容量記憶装置として提供する小さなUSBケーブルを理解でき、プログラミング用にバイナリファイルをドラッグできます(このARM開発ボードなど)。ハードウェアのみ、標準のソフトウェアドライバーを使用。

また、ソフトウェアのみのソリューション(USBからチップへのモジュロフック、FTDIチップのようなものを使用して、配線を単純化する)も理解できました。派手なプログラミングプロトコルはすべて、コンピューター上のソフトウェアによって処理され、ハードウェアは単なる配線になります。

(複雑な)ソフトウェアとハ​​ードウェアの両方が関係しているのはなぜですか?私の知る限り、マイクロコントローラーのプログラミングは非常に簡単ですが、これを始めたばかりのとき、ブートローダーをプログラミングするための教祖を払わずにマウスやディジキーからチップを購入する方法が本当に心配でした私のために。

正当な理由があると確信しています(ソフトウェアを書いたり、ドラッグアンドドロップUSBプログラマーの製造を始めたわけではありません)が、新参者として、それが何であるかわかりません。


自作のハードウェアプログラマはデバッグを許可していますか?プログラミングだけでも大丈夫かもしれませんが、オンチップデバッグ(コードにブレークポイントを設定し、そのポイントに達すると実行を停止する)を行う場合は、ハードウェアプログラマーが必要になります。
ジョエルB

回答:


18

AVRのプログラミングは非常に簡単です。これは、SPIの上に実装された低電圧で動作するカスタムプロトコルです。SCKが必要です。

ただし、古いPICのプログラミング(および非ISP AVRプログラミング)には、高電圧と異なるカスタムプロトコルが必要です。これには、特別なハードウェアプログラマが必要です。

他のデバイスはより複雑です。ほとんどのARMマイクロコントローラーは、JTAGを介してプログラムする必要があります。ここでは、メモリは直接書き込まれ、プロセッサーはフラッシュへの書き込みを指示されます。繰り返しますが、すべてのデバイスは異なります。


それらが非常に複雑な理由はありますか?AVRの道(低電圧、標準プロトコル)そんなに多く賢明(8052分の8051プログラマの必要性と、この男のような-助けが欲しかった、担当者利用可能!カスタムプログラマ必要以上と思われるelectronics.stackexchange.com/questions/4104を
ケビンフェルメール

2
PICプログラマーには特別なものや高価なものはありません。多くの設計がオンラインで入手でき、ほとんどの新しいPICは低電圧でプログラムできます。
akohlsmith

4
ICメーカーは、愛好家が使用するのがどれほど複雑であるかをあまり気にしません。大量生産で使用できる限り、それ以外はすべてコストに関係します。
エンドリス

2
高電圧プログラミングが最初にあり、80年代にUV消去可能なEPROM(およびそのようなEPROMを含むマイクロコントローラ)をプログラムする方法でした。
スターブルー

SCKクレームを修正しました。私はSPIだけが必要であるという考えが好きですが、コンピューターにはSPIポートがないので(FTDIケーブルには既に4ドルのチップが入っています!!)、2ドルのマイクロコントローラーを散財することもできます。JTAGのアップロードとデバッグの議論は、一般に開発ボードの利点を売り込んでいます。そして、endolithには、私が20ドルを費やしたことを誰も気にしない良い点があると思います。メーカーは、実際のエンジニア(およびその雇用主)が予算に費やすものを気にします。
ジャックシュミット

5

私は多くの研究を行い、AVRで遊ぶことを準備していますが、実際に使用したことがないため、これは間違っているかもしれませんが、

ほとんどの安価なプログラマーは、AVR高電圧プログラミングをサポートしません。コントローラがヒューズビットを使用してプログラム不可に設定されている場合、または何らかの理由で重大なバグを作成してデフォルトにリセットする必要がある場合などに必要です。


2
AVRISP mkII [1]やUSBtinyISP [2]などの低電圧プログラマーはavrdudeまたは他のプログラマーでヒューズを設定するために使用できますが、起動不可能になった、またはリセットラインがオンになったAVRチップを保存できませんGPIO。そのようなことには、高電圧プログラマが必要です。[1] mouser.com/search/… [2] ladyada.net/make/usbtinyisp
blalor

@blalorこの情報を踏まえて、回答を編集します。
AndrejaKo

私は高電圧プログラマーを作るためのいくつかの指示を見ました(そしてチップのデータシートにはそれを設計するためのかなり詳細な指示があるようです)が、私はそれを試すまで私のチップの一つをレンガにするまで待っています。私の発振器は明日ここに届くので、すぐにヒューズを燃やし、レンガの妖精を十分に誘惑します!
ジャックシュミット

この問題を防ぐためにavrdudeがヒューズビットをダブルチェックすることは注目に値します。もう少し一般的な問題は、チップを外部クロックに設定することです。
ヤンバーニエ

4

最も安価なAVRプログラマーは、シリアルインターフェイスをリセットラインと同期するだけです。FT232を使用して、シリアルペリフェラルインターフェイス(SPI)をビットバンできます。FT232は、同期ではなく非同期シリアル用に設計されているため、すべてソフトウェアで実行されます。

arduinoのようなブートローダーをアップロードするだけで、通常モードでft232を使用する非同期シリアルインターフェイス、または必要に応じてレベルコンバーターを使用する非同期シリアルインターフェイスを介してコードをアップロードできます。クロック速度に適したブートローダーを使用し、ヒューズバイトを正しく設定することを忘れないでください。


1

多くのプログラム可能なデバイスは、歴史的に、比較的正確なタイミングの信号シーケンスを使用してプログラムする必要がありました。多くの場合、特定のタイプのデバイスのみをプログラムしたい場合、必要なハードウェアは非常に単純でしたが、デバイスごとに要件が異なるため、より汎用的なプログラマーを構築することはやや困難でした。

今日では、おそらくUSB I / OケーブルとPCソフトウェアを使用するだけで、プログラム可能なデバイスの50%以上をプログラムできますが、「ハードウェア」プログラマーにはかなりの速度の利点があります。USBデバイスが受信した信号にPCが反応して応答を送信するには、通常、最低1〜2ミリ秒かかります。プログラミングシーケンスで、次のデータチャンクの準備ができたときにデバイスに繰り返し問い合わせて送信する必要がある場合、単純なI / Oケーブルを使用すると、各チャンクの処理に必要な時間に1〜2ミリ秒余分に追加されます。問題のデバイスの性質によっては、デバイスの準備が整うのを待っている間に、一度行うべきことを伝えることができるプログラマと比較して、プログラミングに必要な全体の時間を桁違いに増やすことができます。

個人的には、最小限のプログラミングハードウェアで使用できるメモリ内のブートローダーを備えたフラッシュ搭載デバイスを工場から出荷するアプローチが気に入っています。デバイスがソフトウェア制御下でフラッシュプログラミングをサポートしている場合、そのようなアプローチは、他のすべてを行った後、ブートローダーで工場テストフィクスチャプログラムを持つために必要な非常に短い限界時間を超えて、シリコンのコストに何も追加することなく、生産を簡素化できます。

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