私は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プログラマーの製造を始めたわけではありません)が、新参者として、それが何であるかわかりません。