受動コンポーネント上の PIC 用の最も単純な JDM プログラマ。 PICコントローラ用自作プログラマ 外部電源付きJdmプログラマ

受動コンポーネント上の PIC 用の最も単純な JDM プログラマ。 PICコントローラ用自作プログラマ 外部電源付きJdmプログラマ

10.09.2023

これは、PIC ファミリ コントローラをフラッシュするための最も単純な設計です。 この古典的なプログラマ回路のシンプルさ、コンパクトさ、外部電源なしでの電源供給という否定のできない利点により、特にこの回路がすでに 5 年前のものであるため、アマチュア無線家の間で非常に人気があり、この間にシンプルでシンプルなプログラマ回路としての地位を確立しました。マイクロコントローラーを操作するための信頼できるツール。

pic コントローラー用プログラマーの概略図:

これは、マイクロコントローラーのファームウェアが制御されるコンピューターの COM ポートによって行われるため、回路自体に電力は必要ありません。 低電圧プログラミング モードの場合は 5V で十分ですが、変更用のすべてのオプション (ヒューズ) が利用できない場合があります。 COM-9 ポート接続コネクタは PIC プログラマ回路基板に直接実装されており、非常に便利であることがわかりました。

追加のコードなしでボードをポートに直接接続できます。 さまざまなコンピューターでテストし、12F、16F、18F シリーズの MK をプログラミングすると、高品質のファームウェアが示されました。 提案された回路により、PIC12F509、PIC16F84A、PIC16F628 マイクロコントローラーのプログラミングが可能になります。 たとえば、最近では、提案されたプログラマ、 用のマイクロコントローラを使用します。

プログラミングには、PIC コントローラーのプログラミングに最適なプログラムの 1 つである WinPic800 が使用されます。 このプログラムを使用すると、PIC ファミリのマイクロコントローラの操作 (FLASH および EEPROM メモリの読み取り、書き込み、消去、チェック、構成ビットの設定) を実行できます。

エレクトロニクスの開発は急速に進んでおり、デバイスの主要な要素はますますマイクロコントローラーになりつつあります。 これにより大部分の作業が行われ、設計者は高度な回路設計を作成する必要がなくなり、プリント基板のサイズが最小限に抑えられます。 誰もが知っているように、マイクロコントローラーは内部メモリに記録されたプログラムによって制御されます。 そして、経験豊富な電子プログラマが自分のデバイスでマイクロコントローラを問題なく使用できるとしても、初心者のアマチュア無線家がコントローラ (特に PIC) にプログラムを書き込もうとすると、大きな失望を招く可能性があり、場合によっては、小さな火工品ショーが見られることもあります。喫煙チップの形状。

奇妙なことに、インターネットの偉大さにもかかわらず、ファームウェアに関する情報はほとんどありません。 PICコントローラー、そして見つけられる資料は非常に疑わしい品質です。 もちろん、工場のプログラマーを不適切な価格で購入して、思う存分縫うこともできますが、大量生産に従事していない人はどうすればよいですか。 これらの目的のために、次のように呼ばれるシンプルで安価な自家製製品を組み立てることができます。 JDMプログラマー以下の図 (図 No. 1) に従ってください。



図 No. 1 - プログラマ回路


図を詳しく見るのが面倒な人のために、要素のリストをすぐに提供します。

  • R1 - 10キロオーム
  • R2 - 10 kΩ (トリミング)。 この抵抗の抵抗値を調整することで、プログラミング中にピン番号 4 (VPP) で約 13V を達成する必要があります。 私の場合、抵抗は1.2kΩです
  • R3 - 200オーム
  • R4、R5 - 1.5 kΩ
  • VD1、VD2、VD3、VD4、VD6 - 1N4148
  • VD5-1N4733A(安定化電圧5.1V)
  • VD7-1N4743A(安定化電圧13V)
  • C1 - 100 nF (0.1 μF)
  • C2 - 470μF×16V(電解)
  • SUB-D9F - COM ポート コネクタ (MAMA または SOCKET)
  • DIP8 ソケット - 使用するコントローラーによって異なります

この図では、次のような一般的なコントローラを接続する例を使用しています。 PIC12F675そして PIC12F629、ただし、これは他のシリーズのファームウェアを意味するものではありません。 写真不可能でしょう。 別のタイプのコントローラにプログラムを書き込むには、下に示す図 2 に従ってプログラマのワイヤを接続するだけです。



図 No. 2 - 必要なピンを備えた PIC コントローラー ハウジングのオプション


ご想像のとおり、私のプログラマーの回路はハウジングを使用しています。 DIP8。 本当に必要な場合は、マイクロ回路の各タイプに対応するユニバーサル アダプタを作成し、それによってユニバーサル プログラマを入手できます。 しかしそれ以来 PICコントローラーめったに仕事をしないので、これで十分です。

回路自体は非常に単純で、組み立てに問題はありませんが、敬意も必要です。 したがって、そのためのプリント基板を作成するとよいでしょう。 プログラムでいくつかの操作を行った後 スプリントレイアウト、PCB、ドリル、アイロン、そんなブランクが誕生しました(写真その3)。



写真 No. 3 - プログラマ回路基板


プログラムの PCB ソースをダウンロードする スプリントレイアウトこのリンクからアクセスできます。
(ダウンロード: 680)
必要に応じて、PIC コントローラーのタイプに合わせて変更できます。 基板を変更しないことに決めた方のために、取り付けを容易にするために部品側からの図を掲載します (図 No. 4)。



図 No. 4 - 実装側から見た基板


はんだごてを使ってもう少し魔法を使えば、フラッシュできる既製のデバイスができます。 PICコントローラーを通して COMポートあなたのコンピュータ。 フラックスが洗い流されずにまだ温かい状態で努力した結果が写真 No.5 に示されています。



写真 No. 5 - 組み立てられたプログラマー


これからファームウェアへの道の第一段階 PICコントローラー、終わりを迎えました。 第 2 段階には、プログラマをコンピュータに接続し、プログラムを操作することが含まれます。 IC-プログ.
残念ながら、最新のコンピュータやラップトップのすべてがこのプログラマで動作できるわけではありません。 COMポートラップトップにインストールされているものには、プログラミングに必要な機能が備わっていません。 12V。 そこで私は最初のことに目を向けることにしました パソコン、それはずっと前から埃をかぶっており、最高の時を待っていました(そしてついにそうでした)。
したがって、コンピュータの電源を入れて、まずプログラムをインストールします IC-プログ。 作者の Web サイトまたは次のリンクからダウンロードできます。
(ダウンロード: 778)
プログラマーを接続します COMポート新しくインストールしたアプリケーションを起動します。 正しく動作させるには、多くの操作を実行する必要があります。 最初に、縫製するコントローラーのタイプを選択する必要があります。 これを持っています PIC12F675。 スクリーンショット No. 6 では、コントローラーを選択するフィールドが赤で強調表示されています。



スクリーンショット No. 6 - マイクロコントローラーのタイプの選択




スクリーンショット No. 7 - コントローラーの記録方法の設定


同じウィンドウで「タブ」に移動します プログラミング」を選択し、項目を選択します。 プログラミング時のチェック場合によってはファームウェア自体が読み取りブロックヒューズを設定するため、プログラミング後にチェックするとエラーが発生する可能性があります。 SR。 騙されないように、このチェックを無効にすることをお勧めします。 つまり、スクリーンショット No. 8 に従います。



スクリーンショット No. 8 - 検証の設定


このウィンドウで作業を続けて、「」タブに移動しましょう。 共通しています"。ここではプログラムの優先順位を設定する必要があり、必ず使用してください NT/2000/XPドライバー (スクリーンショット No. 9)。 場合によっては、プログラムによってこのドライバーのインストールを求められ、再起動が必要になる場合があります。 IC-プログ.



スクリーンショット No. 9 - 一般設定


これで、このウィンドウの作成は完了です。 次に、プログラマ自体の設定に移りましょう。 メニューから選択してください」 「設定」→「プログラマ設定」「または単にキーを押してください F3。 スクリーンショット No. 10 に示すように、次のウィンドウが表示されます。



スクリーンショット No. 10 - プログラマ設定ウィンドウ


まず第一に、プログラマーのタイプを選択します - JDMプログラマー。 次にドライバーを使用するためのラジオボタンを設定します ウィンドウズ。 次のステップでは、次の選択を行います。 COMポート、プログラマが接続されている場所。 1 つだけの場合は何も問題ありませんが、複数ある場合はデバイス マネージャーで現在どれが使用されているかを確認してください。 I/O レイテンシー スライダーは、書き込み速度と読み取り速度を調整するように設計されています。 これは高速なコンピュータで必要になる場合があり、ファームウェアに問題が発生した場合は、このパラメータを増やす必要があります。 私の場合、デフォルトでは同じままでした 10 そしてすべてがうまくいきました。

プログラムの設定はこれで終わりです。 IC-プログこれでファームウェア自体のプロセスに進むことができますが、最初にマイクロコントローラーからデータを読み取り、そこに何が書き込まれているかを確認します。 これを行うには、スクリーンショット No. 11 に示すように、ツールバーで緑色の矢印の付いたマイクロ回路アイコンをクリックします。



スクリーンショット No. 11 - マイクロコントローラーから情報を読み取るプロセス


マイクロコントローラーが新しく、以前にフラッシュされていない場合、そのすべてのメモリーセルには値が書き込まれます。 3FFF、最後のものを除いて。 これには校正定数の値が含まれます。 これは各コントローラーにとって非常に重要かつ固有の値です。 タイミング精度はこれに依存し、メーカーがこれと同じ定数を選択して設定します。 スクリーンショット No. 12 は、コントローラーの読み取り時に定数が保存されるメモリー セルを示しています。



スクリーンショット No. 12 - 校正定数の値


繰り返しますが、値はチップごとに一意であり、図に示されているものと一致する必要はありません。 多くの人は、経験不足のため、この定数を上書きし、その後 PICコントローラープロジェクトが内部オシレーターからのクロックを使用している場合、正しく動作しません。 この定数を書き留めて、その値を記載したラベルをコントローラーに直接貼り付けることをお勧めします。 そうすれば、将来の多くのトラブルを回避できます。 値が書き留められました。次に進みましょう。 ファームウェア ファイルを開きます。通常、拡張子は次のとおりです。 .hex。 今では碑文の代わりに 3FFF、プログラミング バッファにはプログラムのコードが含まれています (スクリーンショット No. 13)。



スクリーンショット No. 13 - プログラミング バッファーにロードされたファームウェア


上で、多くの人が誤って校正定数を上書きしてしまうと書きました。 これはいつ起こりますか? これはファームウェア ファイルを開いたときに発生します。 定数値は自動的に次のように変わります。 3FFFそして、一度プログラミングプロセスを開始すると、後戻りはできません。 スクリーンショット No. 14 では、定数が以前に存在していたメモリ セルが強調表示されています。 3450 (開店前 16進数ファイル).

ある日、pic16f628a 用の簡単な LC メーターを組み立てることにしました。当然、何かでフラッシュする必要がありました。 以前は物理 COM ポートを備えたコンピューターを持っていましたが、現在は USB と pci-lpt-2com ボードのみを持っています。 まず、単純な JDM プログラマを組み立てましたが、結局のところ、このプログラマは、pci-lpt-com ボードや USB-COM アダプタ (RS-232 信号の低電圧) のいずれとも動作しませんでした。 それから急いでUSB picプログラマを探しましたが、結局のところ、高価なpic18f2550/4550の使用にすべてが制限されており、当然私はそれを持っていませんでした。ピーク時に何もすることはめったにありません(私は av を好みます。はい、それらをフラッシュすることは問題ではありません、それらははるかに安価であり、それらでプログラムを書くのが簡単であるように思えます)。 EXTRA-PIC プログラマとそのさまざまな亜種に関する多くの記事の 1 つをインターネット上で長時間掘り下げた後、著者の 1 人は、extrapic はあらゆる COM ポート、さらには USB-COM アダプタでも動作すると書きました。

このプログラマの回路は、max232 ロジック レベル コンバータを使用しています。

USB アダプタを使用する場合、USB から RS232 ポートの TTL 信号を取り出すことができれば、USB を usart TTL、TTL から RS232、RS232 を 2 回 TTL レベルに変換するのは非常に愚かなことだと思いました。 usartコンバータチップ。

それで私はそうしました。 私は、max232 の代わりに CH340G チップ (8 つの COM ポート信号をすべて備えている) を使用して接続しました。 そして、これが起こったのです。

私の回路にはジャンパjp1がありますが、これは余分なピークにありません。TX出力がTTLレベルでどのように動作するか分からなかったため、これを取り付けました。そのため、残りの空きNANDで反転できるようにしました。要素であり、結局のところ、TX ピンには論理 1 が存在するのは正しかったので、オンになったとき VPP ピンには 12 ボルトがありますが、プログラミング中には何も起こりません (ただし、ソフトウェアで TX を反転することはできます)。 。

基板を組み立てた後はテストです。 そしてここで最大の失望が起こりました。 プログラマーは (ic-prog プログラムで) すぐに特定され、作業を開始しましたが、非常にゆっくりでした。 原則的には予想通りです。 次に、COM ポート設定で最大速度 (128 キロボー) を設定し、見つかったすべての JDM プログラムのテストを開始しました。 結果として、PicPgm が最も速いことが判明しました。 私の pic16f628a は完全にフラッシュされ (hex、eeprom、config)、さらに約 4 ~ 6 分間検証されました (読み取りは書き込みよりも時間がかかります)。 IcProg も動作しますが、速度が遅くなります。 プログラミングエラーはありませんでした。 また、eeprom 24c08 をフラッシュしようとしましたが、結果は同じで、すべてが縫いますが、非常に遅いです。

結論: プログラマは非常にシンプルで、高価な部品は含まれておらず (CH340 - 0.3 ~ 0.5 ドル、k1533la3 はラジオのジャンクでよく見つかります)、どのコンピュータ、ラップトップでも動作します (Windows 8/10 上のタブレットも使用できます)。 )。 短所: 非常に遅いです。 また、VPP 信号用の外部電源も必要です。 その結果、ピークが頻繁に点滅しない場合、必要なポートを備えた古いコンピューターを手元に持っていない人にとって、これは繰り返しやすく安価なオプションであると私には思えました。

完成したデバイスの写真は次のとおりです。

歌にあるように、「私は彼をありのままから作った」。 部品のセットは SMD と DIP の両方で非常に多様です。

この回路をあえて繰り返す人にとって、USB-UART コンバーターとしてはほとんどすべてのもの (ft232、pl2303、cp2101 など) が適しています。k1533la3 の代わりに k555、k155 シリーズや外国のアナログでも適していると思います。 74als00 では、タイプ k1533ln1 の論理 NOT 要素でも動作する可能性があります。 私は独自のプリント基板を取り付けていますが、利用可能な要素に合わせて誰でもそこに配線を引き直すことができます。

放射性元素のリスト

指定 タイプ 宗派 注記私のメモ帳
IC1 チップCH340G1 メモ帳へ
IC2 チップK1533LA31 メモ帳へ
VR1 リニアレギュレータ

LM7812

1 メモ帳へ
VR2 リニアレギュレータ

LM7805

1 メモ帳へ
VT1 バイポーラトランジスタ

KT502E

1 メモ帳へ
VT2 バイポーラトランジスタ

KT3102E

1 メモ帳へ
VD1-VD3 整流ダイオード

1N4148

2 メモ帳へ
C1、C2、C5-C7 コンデンサ100nF5 メモ帳へ
C3、C4 コンデンサ22pF2 メモ帳へ
HL1~HL4 発光ダイオードどれでも4 メモ帳へ
R1、R3、R4 抵抗器

1キロオーム

3

多くのアマチュア無線家にとって、マイクロコントローラー上で好みの回路を素早く組み立てることは問題ではありません。 しかし、マイクロコントローラーを使い始める多くの人は、それをどのようにプログラムするかという問題に直面します。 最も単純なプログラマ オプションの 1 つは、JDM プログラマです。

プログラマー ProgCode v 1.0

このプログラムはWindowsXP上で動作します。 コンピュータの COM ポートを介して、ミドル ファミリ (PIC16Fxxx) の PIC コントローラをプログラミングできるようにします。 設定で選択されたポートにプログラマがない場合、プログラマ接続インジケータ (ウィンドウの右上隅) が赤になります。 プログラマが接続されている場合、プログラムはそれを検出し、右上隅のインジケータが図 1 に示す形式になります。

プログラムウィンドウの左側にはコントロールパネルがあります。 このパネルは、ツールバーのボタンをクリックするか、ウィンドウの左端をクリックすることによって最小化できます (これは、プログラム ウィンドウが全画面表示に最大化されている場合に便利です)。

図 (ProgCode v1.0 プログラムのスクリーンショット)


HEX ファイルがプログラムにロードされている場合は、最初に、ロードされたファームウェアが設計されている MK をコントローラのリストで選択することをお勧めします。 これを行わないと、リストで選択したメモリより大きいメモリを備えたマイクロコントローラ用に設計されたファイルが切り取られ、プログラムの一部が失われます。ファイルをロードするためのこのオプションを使用すると、警告が表示されます。

これが起こらない場合は、ファイルをプログラムにロードした後に目的のコントローラを選択できます。

SFR ファイル形式

ProgCode プログラマは、独自のファイル形式での作業をサポートしています。 これらのファイルには拡張子 .SFR が付いており、マイクロコントローラ向けのプログラムに関する追加情報を保存できます。 このファイルには、マイクロコントローラーのタイプに関する情報が保存されます。 これにより、SFR ファイルをロードするときに設定で MK タイプを事前に選択する必要がなくなります。

プログラマ接続時のポートとプロトコルの設定

プログラムをインストールすると、デフォルトで、プログラマがこのページに示されている JDM 回路を操作するために必要なすべての設定が設定されます。
この回路では信号が整合トランジスタによって反転されるため、上記の回路の信号反転は OutData 出力にのみ必要です。 他のすべてのピンでは、反転は無効になります。



パルス遅延は 0 に設定できます。その調整は、フラッシュできない「特に難しい」コントローラー インスタンスのために提供されます。 同じことが録音一時停止許容量にも当てはまります。デフォルトではゼロです。 これらの設定を増やすと、コントローラーのプログラミング時間が大幅に増加します。

マイクロコントローラーに書き込まれるすべての内容の正確性とソース ファイルへの準拠性を「オンザフライ」でチェックする必要がある場合は、「書き込み時のチェック」チェックボックスをオンにする必要があります。 このボックスのチェックを外すと、実際にエラーが存在する場合でも、チェックはまったく実行されず、エラー メッセージも表示されません。
ポート速度を選択します。速度は任意です。 JDM プログラマにとって、このパラメータは意味を持ちません。

WindowsXP は、COM ポートを介して送信される情報のバッファリングを使用します。 これらはいわゆる FIFO バッファです。 JDM 経由でプログラミングする際のエラーを回避するには、このメカニズムを無効にする必要があります。 これは Windows デバイス マネージャーで実行できます。

コントロール パネルに移動し、次の操作を行います。
管理 - コンピュータ管理 - デバイスマネージャー

次に、JDM プログラマが接続しているポート (COM1 など) を選択し、プロパティを確認し、ポート パラメータ タブを確認します。 そして、「FIFOバッファを使用する」ボックスのチェックを外します。

図 - JDM プログラマと連携するための COM ポートのセットアップ



この後、コンピュータを再起動します。


ローカル プロジェクト エクスプローラー

このプログラムは、コントローラーを直接プログラミングすることに加えて、ローカル コンピューター フォルダーとインターネット上の両方にある MK 上のプロジェクトに便利なブラウザーを提供します。 これは使いやすさを考慮して行われました。 多くの場合、必要なプロジェクトは別のフォルダーに配置されており、プロジェクトを表示するために適切なディレクトリに移動するのに時間を費やす必要があります。 ここでは、必要なフォルダーをフォルダーのリストに簡単に追加し、マウスを 2 回または 3 回クリックするだけでプロジェクトを表示できます。

ブラウザパネルでそれをダブルクリックすると、プログラム自体で任意のファイルが開きます。これは、画像、HTML ファイル、doc、rtf、djvu (プラグインがインストールされている)、pdf、txt、asm に適用されます。 コンピュータにインストールされている外部プログラムを使用して、ブラウザでダブルクリックしてファイルを開くこともできます。 これを行うには、目的のファイル タイプの拡張子を [ファイルの関連付け] リストに入力する必要があります。 開くプログラムへのパスを指定しない場合、Windows はデフォルトでプログラム内でファイルを開きます (これは、常に明確に開かれていないアーカイブを開く場合に便利です)。 開くプログラムへのパスがリストで指定されている場合、ファイルは指定されたプログラムで開きます。 この方法でSPL、LAY、DSNなどのファイルを表示すると便利です。

図 (ProgCode v1.0 プログラム ブラウザのスクリーンショット)



ファイルの関連付け設定ウィンドウは次のようになります。




インターネットプロジェクトブラウザ

インターネット上のプロジェクト ブラウザは、ローカル プロジェクト ブラウザと同様に、数回クリックするだけでインターネット上の目的のサイトにすばやくアクセスし、プロジェクトを表示し、必要に応じてすぐに MK でプログラムをフラッシュすることができます。



インターネット上でプロジェクトをレビューするときに、プロジェクト ページに SFR 拡張子 (これは ProgCode プログラムのファイル形式です) を持つファイルへのリンクがある場合、それをクリックすると、そのようなファイルは新しいファイルで開きます「プログラム」タブをクリックすると、すぐにマイクロコントローラーにフラッシュする準備が整います。
リンクのリストは「編集」ボタンを使用して編集できます。 これにより、リンクのリストを編集するためのウィンドウが開きます。





チッププログラミングプロセスの説明

最新の IC のほとんどには、I2C または同様のプロトコルを使用してプログラムされたフラッシュ メモリが含まれています。
書き換え可能なメモリは、PIC、AVR、その他のコントローラ、24Cxx などのメモリ チップ、類似のもの、MMC や SD などのさまざまなメモリ カード、USB コネクタを介してコンピュータに接続される通常の USB フラッシュ カードにあります。

マイコンのフラッシュメモリに情報を書き込むことを考えてみましょう写真16 F 628 A

DATAとCLOCKの2行があります 、それを通じて伝達されます情報。 ライン時計 クロックパルスを供給する役割を果たし、ラインはデータ 情報を発信すること。

1 ビットの情報をマイクロコントローラーに転送するには、データ ライン (DATA) で 0 または 1 (ビットの値に応じて) を設定し、クロック ラインで電圧降下 (1 から 0 への遷移) を生成する必要があります (時計)。
コントローラーには 1 ビットでは不十分です。 この 6 ビット メッセージをコマンドとして認識するために、さらに 5 回待ちます。 コントローラーはコマンドを非常に好みます。コマンドは 6 ビットで構成されなければなりません。これが PIC 16 の性質です。
PICが理解できるコマンドの一覧と意味は以下の通りです。 コマンドはそれほど多くありません - このコントローラーの語彙は少ないですが、完全に愚かだとは思わないでください - コマンドの少ないデバイスもあります

"LoadConfiguration" 000000 - 構成をロード中

"LoadDataForDataMemory" - 000011 - データをデータ メモリ (EEPROM) にロード中
"IncrementAddress" 000110 - PC MK のアドレスを増加します。
"ReadDataFromProgramMemory" 000100 - プログラム メモリからのデータの読み取り
"ReadDataFromDataMemory" 000101 - データ メモリ (EEPROM) からのデータの読み取り
"BeginProgrammingOnlyCycle" 011000 - プログラミング サイクルの開始
"BulkEraseProgramMemory" 001001 - プログラム メモリの完全消去
"BulkEraseDataMemory" 001011 - データ メモリ (EEPROM) の完全消去

コントローラーはこれらのコマンドにさまざまな方法で反応します。 さまざまな方法で、コマンドを発行した後、彼との会話を続ける必要があります。
本格的なプログラミング プロセスを開始するには、コントローラの MCLR ピンに 12 ボルトの電圧を印加してから、それに電源電圧を印加する必要もあります。 この一連の電圧供給には意味がある。 電源投入後、PIC が内部 RC 発振器から動作するように設定されている場合、独自のプログラムの実行を開始する可能性がありますが、失敗は避けられないため、プログラミング時には許可されていません。
MCLR に 12 ボルトを事前に供給しておくことで、このような事態を回避できます。
コマンド後にMKプログラムのフラッシュメモリに情報を書き込む場合

"LoadDataForProgramMemory" 000010 - データをプログラム メモリにロードしています

データ自体をコントローラーに送信する必要があります - 16 ビット、
これは次のようになります:

「0xxxxxxxxxxxxxx 0」

このワードのバツ印はデータそのものであり、エッジのゼロはフレームとして送信されます - これは PIC 16 の標準です。ワードには 14 ビットのみの有効ビットがあります。このシリーズのコントローラには 14 ビットのコマンドがあります表現形式。
データワードの送信が完了すると、PIC は次のコマンドを待ちます。
私たちの目標は MK のプログラム メモリにワードを書き込むことなので、次のコマンドは次のコマンドにする必要があります。

"BeginEraseProgrammingCycle" 001000 - プログラミング サイクルの開始

それを受信したコントローラーは、記録プロセスを完了するために必要な 6 ミリ秒間、外界から切断されます。

マイクロコントローラーのピンの信号は、特別なプログラム、つまりプログラマーを使用してコンピューターによって生成されます。 COM、LPT、または USB ポートを信号送信に使用できます。 PonyProg、IsProg、WinPic800 などのプログラムは、JDM プログラマと連携して動作します。


JDMプログラマ回路

非常に単純なプログラマ回路を図に示します。 この回路は電圧供給シーケンスの制御を実装していませんが、非常にシンプルであり、最小限の部品を使用してこのような回路を非常に早く組み立てることができます。
図(JDMプログラマ回路)


プログラマをコンピュータに接続する際の疑問の 1 つは、選択的な分離をどのように確保するかということです。 回路に異常が発生した場合の COM ポートの損傷を避けるため。 一部の設計では、選択的な絶縁と信号レベルのマッチングを提供する MAX232 IC を使用します。 この方式では、バッテリ電源を使用することで、問題はより簡単に解決されます。 コンピュータからの信号レベルは、ツェナー ダイオード VD1、VD2、および VD3 によって制限されます。 JDM プログラマ回路はシンプルであるにもかかわらず、ほとんどのタイプの PIC マイクロコントローラのプログラムに使用できます。

ピン COM6(DSR) と COM7(RTS) の間のジャンパは、プログラマがコンピュータに接続されていることをプログラムが判断できるように設計されています。

プログラマ出力の特定の MK への接続は、MK のタイプによって異なります。 多くの場合、特定のタイプのコントローラー用に設計された複数のパネルがプログラマー ボードに取り付けられます。

この表は、プログラミング中のいくつかのタイプの MK の脚の目的を示しています。

PIC16F84 および PIC16F84A MCU は、プログラミングを目的とした同じピン配置を備えています。



PIC16Fxxx シリーズのマイクロコントローラーのピンの割り当ては、ケースのタイプに応じて、ほとんどの場合標準ですが、これに疑問がある場合は、MK の特定のインスタンスのデータシートを確認するのが最も確実です。 ドキュメントの一部はロシアの Web サイトで入手できます。 http://microchip.ru データシートおよびその他のドキュメントの完全なコレクションは、PIC マイクロコントローラー メーカーの Web サイトにあります。 http://microchip.com

プロジェクトインデックス

このプログラムを使用すると、インデックス ページに直接移動し、数回クリックするだけで目的のプロジェクトの説明を表示し、すぐにプログラムをコントローラにフラッシュできます。



選択したファームウェアでコントローラーをフラッシュする必要がある場合は、SFR ファイル (例: Timer_a.sfr) をクリックします。
プログラムはファイルをサーバーから新しいタブにダウンロードします。



この後、残っているのは、MK をプログラマ ソケットに挿入し (まだ完了していない場合)、[すべて書き込み] ボタンをクリックすることだけです。
番組はMKに録画されています。 この後、コントローラーがデバイスボードに挿入され、デバイスは動作準備が整います。

アマチュア無線家がマイクロコントローラーで回路を組み立てることに決めた場合、最初にどのようなステップを踏むべきでしょうか? 当然のことながら、プログラマーだけでなく、制御プログラム「ファームウェア」も必要です。

そして、最初の点に問題がない場合、つまり完成した「ファームウェア」は通常、回路の作成者によってアップロードされますが、プログラマの場合は状況がより複雑になります。

既製の USB プログラマーの価格は非常に高いため、最善の解決策は自分で組み立てることです。 これが提案されたデバイスの図です (写真はクリック可能です)。

主要部分。

MKの取り付けパネルです。

元の図は、著者の許可を得て LabKit.ru Web サイトから取得したものであり、著者に深く感謝します。 これは、独自の PICkit2 プログラマのいわゆるクローンです。 デバイスのバージョンは独自の PICkit2 の「軽量」コピーであるため、作者は自分の開発を PICkit-2ライト、初心者のアマチュア無線家にとってそのようなデバイスの組み立ての容易さを強調しています。

プログラマーって何ができるの? プログラマを使用すると、最も容易に入手可能で一般的な PIC シリーズ MCU (PIC16F84A、PIC16F628A、PIC12F629、PIC12F675、PIC16F877A など) および 24LC シリーズ EEPROM メモリ チップをフラッシュできます。 さらに、プログラマは USB-UART コンバータ モードで動作でき、ロジック アナライザの機能の一部を備えています。 プログラマが持つ特に重要な機能は、一部の MCU (たとえば、PIC12F629 や PIC12F675) の内蔵 RC ジェネレータの校正定数の計算です。

必要な変更。

PICkit-2 Lite プログラマを使用して 24Cxx シリーズの EEPROM メモリ チップからのデータの書き込み/消去/読み取りを可能にするために、回路に必要な変更がいくつかあります。

スキームに加えられた変更から。 DD1 (RA4) のピン 6 から ZIF パネルのピン 21 への接続を追加しました。 AUX ピンは、24LC EEPROM メモリ チップ (24C04、24WC08 および類似品) を操作するためにのみ使用されます。 データを送信するため、プログラミング パネルの図には「データ」という文字が付いています。 マイクロコントローラーをプログラミングする場合、AUX ピンは通常使用されませんが、LVP モードで MK をプログラミングする場合には必要になります。

2 kOhm のプルアップ抵抗も追加されており、メモリ チップの SDA ピンと Vcc ピンの間に接続されています。

著者のオリジナルの図に従って PICkit-2 Lite を組み立てた後、プリント基板上でこれらすべての変更をすでに行っています。

24Cxx メモリ チップ (24C08 など) は家庭用無線機器で広く使用されており、ブラウン管テレビの修理時などにフラッシュする必要がある場合があります。 設定を保存するために 24Cxx メモリを使用します。

液晶テレビは異なる種類のメモリ (フラッシュ メモリ) を使用します。 液晶テレビのメモリをフラッシュする方法についてはすでに説明しました。 興味のある人は覗いてみてください。

24Cxx シリーズのマイクロ回路を扱う必要があるため、プログラマを「終了」する必要がありました。 新しいプリント基板をエッチングしたのではなく、プリント基板上に必要な要素を追加しただけです。 これが起こったのです。

デバイスの核となるのはマイクロコントローラーです PIC18F2550-I/SP.

これがデバイス内の唯一のチップです。 MK PIC18F2550 は「フラッシュ」する必要があります。 いわゆる「鶏が先か、卵が先か」の問題が生じるため、この単純な操作は多くの人に混乱を引き起こします。 どのように解決したかは後ほど説明します。

プログラマを組み立てるための部品リスト。 モバイル バージョンでは、テーブルを左にドラッグ (左右にスワイプ) して、すべての列を表示します。

名前 指定 定格/パラメータ ブランドまたはアイテムの種類
プログラマーの主要な部分については、
マイクロコントローラー DD1 8ビットマイクロコントローラー PIC18F2550-I/SP
バイポーラトランジスタ VT1、VT2、VT3 KT3102
VT4 KT361
ダイオード VD1 KD522、1N4148
ショットキーダイオード VD2 1N5817
LED HL1、HL2 任意の 3 ボルト、 そして グローカラー
抵抗器 R1、R2 300オーム
R3 22キロオーム
R4 1キロオーム
R5、R6、R12 10キロオーム
R7、R8、R14 100オーム
R9、R10、R15、R16 4.7キロオーム
R11 2.7キロオーム
R13 100キロオーム
コンデンサ C2 0.1μ K10-17 (セラミック)、輸入類似品
C3 0.47ミクロン
電解コンデンサ C1 100uF * 6.3V K50-6、輸入類似品
C4 47μF*16V
インダクタ(チョーク) L1 680μH 統一型EC24、CECLまたは自作
水晶振動子 ZQ1 20MHz
USBソケット XS1 タイプ USB-BF
ジャンパー XT1 あらゆるタイプの「ジャンパー」
マイコン取付パネル用(MK)
ZIFパネル XS1 任意の 40 ピン ZIF パネル
抵抗器 R1 2キロオーム MLT、MON (0.125 W 以上の電力)、輸入アナログ
R2、R3、R4、R5、R6 10キロオーム

ここで、その詳細と目的について少し説明します。

プログラマに電源が投入されると LED HL1 が点灯し、 HL2 LED は、コンピュータとプログラマの間でデータが転送されるときに発光します。

デバイスの多用途性と信頼性を実現するために、XS1 タイプ「B」(正方形) USB ソケットが使用されます。 コンピューターはタイプ A USB ソケットを使用します。 したがって、接続ケーブルのソケットを取り違えることはありません。 このソリューションはデバイスの信頼性にも貢献します。 ケーブルが使用不能になった場合は、はんだ付けや取り付け工事をすることなく、簡単に新しいケーブルに交換できます。

680μHのインダクタL1は既製のもの(EC24やCECLなど)を使用するのが良いでしょう。 ただし、完成品が見つからない場合は、スロットルを自分で作ることもできます。 これを行うには、CW68 タイプのインダクタからフェライト コアに PEL-0.1 ワイヤを 250 ~ 300 回巻く必要があります。 フィードバック付き PWM の存在により、インダクタンス定格の精度を心配する必要がないことを考慮する価値があります。

+8.5 ボルトから 14 ボルトまでの高電圧プログラミング用の電圧 (Vpp) は、キー レギュレータによって生成されます。 これには、要素 VT1、VD1、L1、C4、R4、R10、R11 が含まれます。 PWM パルスは、PIC18F2550 のピン 12 から VT1 ベースに送信されます。 フィードバックは分周器 R10、R11 によって提供されます。

USB プログラマを ICSP (インサーキット シリアル プログラミング) モードで使用するときに、プログラミング ラインからの逆電圧から回路要素を保護するために、VD2 ダイオードが使用されます。 VD2 はショットキー ダイオードです。 P-N 接合での電圧降下が 0.45 ボルト以下となるように選択する必要があります。 また、VD2 ダイオードは、プログラマが USB-UART 変換およびロジック アナライザ モードで使用されるときに、素子を逆電圧から保護します。

(ICSP を使用せずに) パネル内のマイクロコントローラーのプログラミング専用にプログラマを使用する場合、VD2 ダイオードを完全に削除し (これが私がやったことです)、代わりにジャンパを取り付けることができます。

デバイスのコンパクトさは、ユニバーサル ZIF パネル (ゼロ挿入力 - 取り付けの労力がゼロ) によって実現されています。

そのおかげで、ほぼすべての DIP パッケージにマイクロコントローラーを「配線」することができます。

「マイクロコントローラー (MK) 設置パネル」の図は、さまざまなハウジングを持つマイクロコントローラーをパネルにどのように設置する必要があるかを示しています。 MK を取り付けるときは、チップ上のキーが ZIF パネル ロック レバーの側に来るようにパネル内のマイクロコントローラーが配置されているという事実に注意する必要があります。

これは、18 ピンのマイクロコントローラー (PIC16F84A、PIC16F628A など) をインストールする方法です。

そして、ここに8ピンマイクロコントローラー(PIC12F675、PIC12F629など)があります。

表面実装パッケージ (SOIC) でマイクロコントローラーをフラッシュする必要がある場合は、アダプターを使用するか、通常プログラミングに必要な 5 つのピン (Vpp、クロック、データ、Vcc、GND) をマイクロコントローラーにはんだ付けするだけです。

すべての変更を加えたプリント基板の完成図は、記事の最後にあるリンクでご覧いただけます。 「印刷」モードを使用して Sprint Layout 5.0 プログラムでファイルを開くと、印刷導体のパターンを含むレイヤーを印刷できるだけでなく、プリント基板上の要素の位置を表示することもできます。 DD1 のピン 6 と ZIF パネルのピン 21 を接続する分離ジャンパに注目してください。 基板図面を印刷する必要があります 鏡像で.

LUT メソッドを使用してプリント基板を作成したり、tsaponlak (これが私がやったことです) または「鉛筆」メソッドを使用してプリント基板用のマーカーを作成したりできます。

これは、プリント基板上の要素の配置の図です (クリック可能)。

取り付けるときの最初のステップは、錫メッキ銅線で作られたジャンパーをはんだ付けし、次に薄型要素 (抵抗、コンデンサ、石英、ISCP ピン コネクタ) を取り付け、次にトランジスタとプログラムされた MK を取り付けます。 最後のステップは、ZIF パネル、USB ソケットを取り付け、ワイヤーを絶縁体 (ジャンパー) で密閉することです。

PIC18F2550マイコンの「ファームウェア」。

ファームウェアファイル - PK2V023200.hex PIC マイクロコントローラ (Extra-PIC など) をサポートするプログラマを使用して、PIC18F2550I-SP MK をメモリに書き込む必要があります。 JDM Programmator JONIC PROG とプログラムを使用しました。 WinPic800.

同じ独自のプログラマ PICkit2 またはその新しいバージョンの PICkit3 を使用して、ファームウェアを PIC18F2550 MCU にアップロードできます。 もちろん、友人の 1 人が自分より先に組み立てることができた場合は、自家製の PICkit-2 Lite を使用してこれを行うことができます :)。

PIC18F2550-I/SP マイクロコントローラーの「ファームウェア」(ファイル PK2V023200.hex) は、PICkit 2 Programmer プログラムをプログラム自体のファイルとともにフォルダーにインストールするときに書き込まれます。 ファイル PK2V023200.hex のおおよその場所 - 「C:\Program Files (x86)\Microchip\PICkit 2 v2\PK2V023200.hex」 。 PC に 32 ビット バージョンの Windows がインストールされている場合、場所のパスは異なります。 「C:\Program Files\Microchip\PICkit 2 v2\PK2V023200.hex」 .

提案された方法を使用して「鶏が先か、卵が先か」問題を解決できなかった場合は、AliExpress Web サイトで既製の PICkit3 プログラマを購入できます。 そこでははるかに安い費用がかかります。 AliExpressでパーツや電子キットを購入する方法について書きました。

プログラマのファームウェアを更新しています。

進歩は止まらず、マイクロチップ社は PICkit2、PICkit3 プログラマを含むソフトウェアのアップデートを随時リリースしています。 もちろん、自作PICkit-2 Liteの制御プログラムのアップデートも可能です。 これを行うには、PICkit2 Programmer プログラムが必要です。 それが何であるか、そしてそれをどのように使用するか - 少し後です。 それまでの間、ファームウェアを更新するために何をする必要があるかについて少し説明します。

プログラマ ソフトウェアを更新するには、プログラマをコンピュータから取り外したときにプログラマのジャンパ XT1 を閉じる必要があります。 次に、プログラマを PC に接続し、PICkit2 Programmer を起動します。 XT1を閉じるとモードが有効になります。 ブートローダー新しいファームウェアのバージョンをダウンロードします。 次に、PICkit2 Programmer で、メニューの「ツール」-「PICkit 2 オペレーティング システムのダウンロード」を通じて、事前に準備した更新済みファームウェアの 16 進ファイルを開きます。 次に、プログラマ ソフトウェアの更新プロセスが発生します。

アップデート後、プログラマを PC から切断し、XT1 ジャンパを削除する必要があります。 通常モードではジャンパは開いています。 プログラマ ソフトウェアのバージョンは、PICkit2 Programmer プログラムの [ヘルプ] - [バージョン情報] メニューで確認できます。

これはすべて技術的な問題に関するものです。 そして次はソフトウェアについてです。

プログラマーと協力して作業します。 PICkit2プログラマー。

USB プログラマを使用するには、PICkit2 プログラマ プログラムをコンピュータにインストールする必要があります。 この特別なプログラムはシンプルなインターフェイスを備えており、インストールが簡単で、特別な設定は必要ありません。 MPLAB IDE 開発環境を使用してプログラマと連携できることは注目に値しますが、MK をフラッシュ/消去/読み取りするには、単純なプログラムである PICkit2 Programmer で十分です。 お勧めします。

PICkit2 Programmer プログラムをインストールした後、組み立てられた USB Programmer をコンピュータに接続します。 同時に点灯します LED (「電源」)、オペレーティング システムはデバイスを次のように認識します。 「PICkit2マイコンプログラマ」 そしてドライバーをインストールします。

PICkit2 Programmer プログラムを起動します。 プログラムウィンドウに碑文が表示されるはずです。

プログラマが接続されていない場合、プログラム ウィンドウに恐ろしいメッセージと「何をすればよいですか?」という簡単な指示が表示されます。 英語で。

プログラマが MK がインストールされたコンピュータに接続されている場合、プログラムは起動時にそれを検出し、PICkit2 プログラマ ウィンドウで通知します。

おめでとう! 最初の一歩が踏み出されました。 PICkit2 Programmer プログラムの使用方法については、別の記事で説明しました。 次のステップ 。

必要なファイル:

    PICkit2 ユーザー マニュアル (ロシア語) または。



© 2023 globusks.ru - 初心者のための車の修理とメンテナンス