USBガジェットをゼロから作成する、または別のムードランプを作成する

どういうわけか、気分ランプに関する記事に出会いました。 電気工学から非常に遠く、データトピックから得られたマイクロコントローラーの動作原理に完全に慣れていないため、ランプを作成するために必要なすべてのステップを理解するのに十分ではありませんでした。 時間が経つにつれて、マイクロコントローラに関する他の興味深いプロジェクトが私の目に浮かびました。なぜなら、ある素晴らしい瞬間に、この自由時間の一部をこの要素の征服に費やしたいという願望があったからです。

この記事では、マイクロコントローラーでプロジェクトを最初から作成する最初のステップに関する情報を収集しようとしました。

目的


私は実際にマイクロコントローラーの動作を研究することにしました。シミュレーターで数十個のLEDを駆動するよりも、実際に何かをするほうがはるかに面白いです。
まず第一に、私がやりたいことを決める必要がありました。 私は前述のムードランプに落ち着きました。 完全なアナログを作成しないために、ランプの機能を拡張し、PCから制御を追加することが決定されました。

マイクロコントローラー


マイクロコントローラーの選択は簡単でした。
COMポート経由でPCを操作することは最新ではないため、USB経由の通信オプションが選択されました。 マイクロはんだ付けを開始しないために、DIPパッケージのコンポーネントのみを使用することにしました。 適切なマイクロコントローラーはほとんど残っていません。USBのソフトウェアエミュレーションを備えたAVR、またはUSB 2.0のハードウェアサポートを備えた18FシリーズのPICのいずれかです。
誰かが異なる決定をするかもしれませんが、私の選択は最後のオプションにかかっていました。このプロジェクトでは、MK PIC18F2455を使用しました。
18F2455は18F2550に問題なく置き換えることができますが、違いはメモリの量だけです。
最小限の変更で、次を使用することもできます。
18F4455 / 4550-必要に応じて、より多くの脚(28ではなく40)
18F14K50-20脚、機能は少し調整されていますが、少し安くなっています


スキーム


PIC18F2455を接続するための最も簡単な回路は次のとおりです。

理由はわからないが、MKの脚は図の場所に再配置された。

それに基づいて、ランプの図を作成できます。 必要な変更のうち:
USBからの5V電源と接地。
D +およびD- USBを対応するMKレッグに接続します。
ボタンを1つのデジタル入力に接続します。
トランジスタを3つのデジタル出力に接続して、LEDを制御します。



この図には、LEDのカソードへの強力な抵抗のみが示されていません。

プログラマー


マイクロコントローラーは、組み立てる前にフラッシュする必要があります。 賢い人は、ピークの点滅にはPicKitほど良いものはないと言うでしょう。 しかし、1000から2000ルーブルを費やしたい人。 単一のファームウェアMKの場合
さまざまな複雑さの自家製プログラマーには多くのスキームがありますが、誰もが初めてそれらを働かせることができるわけではありません。

私は2つの最も単純なプログラマーをテストしました。1つはLPTポートを介して動作し、もう1つはCOMを介して動作します。 驚いたことに、問題なく機能しました。

Scheme art2003(続きを読む ):



LPTコネクタ、8個のダイオード、コンデンサ、抵抗。 サポートされているMKのリストだけが不満です。

汎用プログラマー回路(JDMのように機能します):



ほぼすべてのPICは、外部5V電源を備えた3つの抵抗でこのような単純な回路でフラッシュできます。主なことは、ワイヤをMKの目的のレッグに接続することです(また、複数のVddおよびVssがあることも忘れないでください)。
5V電源は、USB、コンピューターの電源、または電話の充電器から取得できます。

両方のプログラマは、ピークを点滅させるプログラムWinPic800でサポートされています。

ブートローダー


プログラマーは優れていますが、MKをフラッシュする必要があることが多い場合はどうすればよいでしょうか。 この場合、ブートローダーの使用が適しています。 MKに一度書き込むだけで十分です。その後、すべてのファームウェアの更新はUSB経由でコンピューターから直接実行する必要があります。
初期段階では、詳細を知る必要はありません。既製のソリューションを使用すれば十分です。 ブートローダーをMKにフラッシュした後、ボタンを押して電源を供給すれば十分で、新しいMicrochipカスタムUSBデバイスがシステムで検出されます。 ドライバーをインストールした後、Microchipによって配布されたソフトウェアを介して使用可能なメモリを安全に操作できます。



コンパイラ


多くの優れたコンパイラーがありますが、おそらく最も知られていないJAL( Just Another Language )に決めました。 誰かがこのコンパイラの使用を不合理だと考えるかもしれませんが、開始するための私のすべての要件を完全にカバーしました。 最小サイズ(11 MBのアーカイブ)、インストールの欠如(アンパックに1分はカウントされません)、飾り気なし(開発環境は必要ありません)、必要なすべてのライブラリの存在、各MK(点滅LED)およびすべての基本機能の動作例

LED点滅コードの例:

include 18f2455 --
--
pragma target clock 48_000_000 -- ,
--
enable_digital_io () --
--
alias led is pin_B3 -- led B3
pin_B3_direction = output -- B3
--

forever loop --
led = on --
_usec_delay ( 250000 ) --
led = off --
_usec_delay ( 250000 ) --
end loop


ブートローダーを使用すると、MK構成全体がインストールされます。ファームウェアをブートローダーに適合させるには、 -loader18 2048 -no-fuseフラグを追加してコンパイルパラメーターを変更するだけで十分です。

ファームウェア


MK用のプログラムを作成するときのすべての微妙な点を説明するには、1つの記事だけでなく本も十分ではありません。 PIC18F2455 / 2550/4455/4550のドキュメントだけで430ページを占有します。 一度にすべてを知ることはほとんど不可能です。

自分で何かを書く最も簡単な方法は、例を見て、類推することです。 このパスが常に最も正しいとは限りませんが、すべてのコード行の操作性を常にチェックすると、完全に機能するプログラムが作成されます。

現在のファームウェアバージョンに含まれる機能:

どうやらそれは特別なことではないようです。 夜に書くことができます。 しかし、MKがどのように機能するかを知らないと、おそらくあなたが会うことができるほとんどすべての熊手を集めます。 それにもかかわらず、ドキュメントを読み直し、徹底的にグーグルで調べ、コードを最初から書き直そうとするすべての努力は正当化されました:最終結果は非常に実行可能であることが判明しました。

組立


ランプの主要なコンポーネントは、ハウジング、マイクロコントローラー、およびLEDです。
イケアの同じGRÖNÖランプがランプの基礎として採用されました。
LEDはDealExtreme( SKU 4530 )を搭載した中国語のアナログで、元の製品のほぼ3倍安価です。
LEDは非常に熱く、少なくともいくつかのラジエーターが必要です。そうしないと、長時間明るく燃えません。

小さなこと:

これはすべて、ランプのニッチに入るためにボード上に配置されます。



Sprint Layoutでのボードレイアウト、 LUTメソッドを使用したtextoliteへの変換、穴あけ、はんだ付け。




作業は完全ではなく、エラーなしで行うことはできませんでした。1つの抵抗器が不要であることが判明しました(回路上にはありません)。



ボード全体がランプの下にあり、ワイヤ用のくぼみには、電源とPCとの通信用のボタンとminiUSBコネクタがあります。


電源はminiUSBを介して供給されますが、このようなLEDのランプを最初に点灯した電源に接続しないでください。最大輝度でのランプの消費電力は1A弱です。 すべてのPSUがこのような電流用に設計されているわけではありません。PSUの種類によっては、非常に悪くなり、不快な結果を招く可能性があります。
コンピューターに接続するには、追加の電源コネクター(ポータブルHDDなど)を備えたケーブルまたは有効なアクティブUSBハブが必要になる場合があります。

ソフトウェア


個々のタスクに適したソフトウェアを見つけることは不可能です。 私は自分でこの問題に対処しなければなりませんでした。
このプログラムはファームウェアと並行して作成され、主にランプのデバッグに使用されました。 現時点では、いくつかの機能は実装されていませんが、おそらくすぐにそれらを完了する時間があるでしょう。



まとめ





判明したように、独自のUSBガジェットをゼロから作成することは、手頃な価格のタスクです。 これには、高価なft232をはんだ付けするスキルは必要ありません。USBのソフトウェア実装との互換性に気を取られる必要はなく、Arduinoの半製品は必要ありません。 必要なのは少しの欲求だけです。

お役立ち情報


プロジェクトファイルのセット。
USB 2.0をサポートするPIC 18Fファミリのドキュメント。
ドキュメントのロシア語翻訳:本「USBハードウェアサポート付きマイクロチップマイクロコントローラー」著者:V. S. Yatsenkov
JALおよびIDE- JALEdit のライブラリのセット
WinPic800 -Picファームウェア。
MCHPFSUSB-ブートローダーを操作するためのセット。

Source: https://habr.com/ru/post/J95789/


All Articles