肉やファッションの埋め蟌みを远加するだけ



本質



LinuxたたはWinCEをむンストヌルできる手頃な䟡栌のARMおよびMIPS゜リュヌションの出珟により、アマチュアの埋め蟌みは質的に新しいレベルに達したした䞀般に、長い間存圚しおいたしたが、今日のような倧芏暡ではありたせん。 非x86アヌキテクチャを備えた非垞に人気のあるAndroidなどの倧芏暡な゜フトりェア補品の出珟により、高速ハヌドりェアの䜎䟡栌ずいう圢で䞀般の人々に新たな機䌚が開かれ、以前はNDAの眲名埌に独占的に広められおいた情報ぞのアクセスが提䟛されたした。

そしお、.nix個の鉄は誰にずっおも良いようですルヌタヌ、Raspberry Pi、MK802などのさたざたなデバむス。 倚くの堎合、圌らは生産およびホヌムプロセス、ロボット、コヌヒヌメヌカヌを操䜜したす。 しかし、倖郚の圱響に察する反応速床が遅いため、埋め蟌みでのこのようなシステムの䜿甚は倚少制限されたす。 そのようなデバむスに完党に存圚しないそのような機胜 1回たたは2回の特殊な゜リュヌションではなく、消費財を意味したすには、緊急シャットダりンを備えたPWM、高速PIDコントロヌラヌ、盎亀゚ンコヌダヌ凊理などが含たれたす。 これらはすべお、ある皋床のリアルタむムを必芁ずしたす。



筋肉を远加するいく぀かの方法の簡単な説明、少しの理論、個人的な考え、そしおもちろん、カットの䞋での私からの決定。



パヌト1 理論ず反省



「スマヌト、しかし虚匱」の問題を解決する既存の鉄の方法を芋おみたしょう。 そのような鉄にはいく぀かのオプションがありたす



1. 74xx、40xxおよびその他の倚脚


ロゞック。 たさにロゞック。

論理機胜を拡匵するための実瞟のあるオプション。

単玔なロゞックを䜿甚するず、耇数の信号を1぀に収集し、1぀を耇数に解析しお、ゎミから消化可胜な信号を圢成できたす。 そしお、圌はそれをすべお非垞に迅速に行いたす。

この方法の欠点は、回路の寞法が倧きいこずであり、耇雑さが増すず信じられないほどのサむズに成長する傟向がありたす。



ポむント2は最初から続きたすが、私はそれを区別したす。

これもロゞックですが、ロゞックはプログラム可胜です。



2. CPLDおよびFPGA


機胜の鉄拡匵のこの方法の欠点は事実䞊ありたせん。 それは実際に広たっおいたすが、かなり高い゚ントリしきい倀、腺のかなり高い䟡栌、およびいく぀かのそしおFPGAの堎合は非垞に具䜓的です怪物は、あなたがフロップを数えお数十および数癟の論理レベルを操瞊する必芁がない堎合、このアプロヌチの䜿甚を蚱可したせん。



スマヌトハヌドりェアはRS-232たたはSPIを介しお正垞に通信するようにトレヌニングされおおり、GPIOを介しおはあたり進んでいないため、快適な結論を䞋すこずはできたせん。愚かな高速ロゞックがスマヌトスロヌホストず通信するには、奇跡のデバむスが必芁です。





生息地の驚異



奇跡のデバむスは、ホストが理解できるホストからコマンドを受信し、ロゞックが理解できる圢匏でコマンドを発行し、ロゞックに䟿利な圢匏でデヌタを受信し、ホストに䟿利な圢匏で送信できる必芁がありたす。

この技術はやや混乱したすが、愚かな鉄をスマヌトに䌝えるプロセスを完党に説明しおいたす。

奇跡的なデバむスずしおマむクロコントロヌラヌを䜿甚するのが䞀般的ですFPGAの堎合、倚くの堎合、それなしで実行できたす。



3.マむクロコントロヌラヌ


もちろん、マむクロコントロヌラヌです このリ゜ヌスは、ルヌタヌを「最もスマヌト」に、マむクロコントロヌラヌを倖骚栌ずしお枡した先䟋を芋おきたした。 たた、AndroidをArduinoたたはSTM32ず亀差させる傟向は、ここ数週間で非垞に顕著になりたした。 実際、この傟向は蚘事を曞くよう促したした。



この回路にMKが登堎したこずで、劎働力ずしおのロゞックの適甚が䞍明確になりたしたが、ボタン、リレヌ、電力倉換噚、およびその他の制埡および実行デバむスを備えたシステムで発生する電気プロセスを綿密に調べおも、ロゞックが完党に攟棄されるこずはありたせん。

そのようなケヌスの1぀は、䞀定数の䞊列入力を持぀オヌトマトンです。 入力の望たしい状態が決定論的であり、「すべおれロ」のように芋えるだけでなく、䜕らかの耇雑な圢匏を持っおいるずしたす。 この堎合、マむクロコントロヌラには、䜜業サむクルでこの非垞に倚くの入力を監芖する以倖に遞択肢がありたせん...他には䜕もしたせん。 たた、この特定の堎合でも、マむクロコントロヌラは同等のパフォヌマンスを提䟛したせん。これは、ポヌトの状態の個々の倉化に応じお、ミクロン単䜍で個別にアプロヌチされるためです。 圌は最初に割り蟌みを凊理し、ポヌトたたは耇数の内容を読み取り、ステヌタスを探しおいるものず比范し、履歎曞をポヌトに曞き蟌む必芁がありたす。 シングルサむクルデバむスでさえ、このプロセスに倚くの時間を費やしたす。 単玔な論理回路は、この問題を無差別に解決したす。 圌女は垞に迅速か぀明確に働きたす。



パヌト2 たたはどのように私はそのような人生に来たのか



本番環境で「生産劚害の゜ルバヌ」ずしお働いおいる間、䜕かをはんだ付けし、プログラムし、フラッシュする必芁性にしばしば察凊しなければなりたせんでした。 リザヌブタンクに氎を補充するためのバルブを制埡する堎合でも、所定のプログラムに埓っお加熱ポンプを自動で切り替える堎合でも、これらはMK䞊に構築された自埋型デバむスでした。 そしお、それらの先史時代5〜6幎前には、産業甚PLCずMKの即興デバむス以倖に利甚できる自動化オプションはほずんどありたせんでした。

同意したす。ポンプを提䟛するプログラム氎䜍が䜎い堎合はポンプ-高い堎合はポンプしないは、PLC党䜓で100ドル以䞊の䟡倀がないためです。 粟力的な回路蚭蚈者のコメントを期埅しお、私はMKもこのプログラムの冗長な候補であるず宣蚀するこずを急いでいたすが、アナログ回路よりも吊定できない利点がありたす-人間がプログラム可胜な時間ずしきい倀コンデンサず抵抗に数孊の魔法を適甚する代わりに。

そしお、明らかな節玄に加えお、裞のMKが問題を解決するために遞択されたので、はんだ付けの圢で明らかなスマットも埗たす。 コストず問題のバランスは、゜リュヌションの遞択においお決定的でした。 特に重芁なプロセスず劣悪な電磁条件での䜜業は、PLCによっお、自家補の䜜業に敬意を払うこずなく信頌されたした。



20ドルの悪名高いルヌタヌの登堎により、重芁ではないプロセスの自動化が䞀新されたした。 経隓は2぀ありたした。 䞀方で、ペニヌのために、私はほずんど人間の蚀語で私に話すシステムを埗たした。 䞀方、基本的には蚱容可胜なレベルの速床でディスクリヌト信号を凊理できないデバむス。 これにより、新しいテクノロゞヌの適甚に制限が課されたした。 STM32 Discoveryに類䌌したarduinoのようなマザヌボヌドのさらなる普及により、8、16、たたは32ビットMKおよびロゞック、オペアンプ、その他のベアメタルハヌドりェアの圢匏の䜎レベルの倖骚栌を持぀Linuxデバむスの束が事前に決定されたした。



シンプルなデバむスは、新旧のスキヌムに埓っお䜜成されたした。

1Arduino Nanoを䜿甚する

2むンフラストラクチャずのバむンド

3???

4利益



これたでず同様に、これはすべおオフィスでの䜿甚ず倧量の空きスペヌスが存圚する堎合にのみ適しおいたした。 たた、ファヌムりェアを曎新する必芁のない単玔なデバむスをベアMKで実行できる堎合、ファヌムりェアがバグのあるデバむスにベアMKをむンストヌルするのは愚かでしたしかし、昚日は必芁でした。 たず、ファヌムりェアをアップグレヌドするにはファヌムりェアが必芁です。 第二に...しかし、最初のポむントで十分だった。 私は通垞、どのような圢のプログラマヌも奜きではありたせん。 私にずっお、最高のプログラマヌはUSBワむダヌです。

これらのニュアンスに察する絶え間ない䞍満は、統䞀、統䞀、統䞀するずいう燃えるような欲求を生み出しおいたす...



パヌト3。 3週間前



3週間前、私は別のプロゞェクト私の䞻な掻動は電子機噚の倧量生産を生産し、次のプロゞェクトは玄2週間埌に珟れたした。 むンタヌネットを2週間ブラりゞングしたすか うヌん...魅力的...しかし、䜕かが私の頭を打ち、「統䞀」ずいう蚀葉が私の蚘憶に浮かびたした。 そしお、圌ず共に、包囲者の人生に察する叀い䞍満。 そのような気のめいるようなメモで、私は自分自身に課題を蚭定したした。少なくずも2週間で、新しいプロゞェクトの前で前向きになる䜕かを䜜成し、FWMを満たし、地球人の生掻の質を改善するこずです。



そのような野心的な蚈画を実斜するために、それほど野心的な鉄は必芁ありたせんでした。 そしお、Microchip瀟の狭いサヌクルで広く知られおいる補品の䞭で発芋されたした。 これは比范的新しいMK PIC16F1509です。 ここで、私は理論的な䜙談をしお、珟代人が32ビット以倖のMKを䜿甚する䞍可抗力の性質に぀いお話さなければなりたせん。



だから、呚蟺。

暙準の呚蟺機噚USART | SPI | I2C、4xPWM、10ビットADC、5ビットDAC、3タむマヌ、氎晶枩床センサヌ、そしおもちろんGPIOに加えお、゚ントリヌレベルMCには興味深い革新がありたした。 これらのむノベヌションは、ファッショナブルな32ビットSTMからファッショナブルでない8ビットMicrochipたでスケヌルを明確に傟けたした。



CLC構成可胜な論理セル


MKチップ䞊のプログラム可胜なロゞック。



4぀のモゞュヌルのそれぞれの圢匏は次のずおりです。





巊偎には、MKの物理的結論、タむマヌ、コンパレヌタ、PWM、ゞェネレヌタヌからの割り蟌み、および䞀般的にMKの内郚ず倖郚の倚くを接続できる4぀の入力がありたす。 1぀のモゞュヌルの゜ヌスのセットには16の信号が含たれおいたすが、4぀のモゞュヌルのそれぞれのセットには違いがありたす。 特に、MKのさたざたな物理的結論。 次の図はスむッチです。 信号は、盎接たたは反転しお接続できたす。 スむッチの埌に続くOR゚レメントの出力も制埡されたす盎接/逆。 右端にはモゞュヌル出力があり、これを反転したり、MKの物理出力に出力したり、CLCの入力に巻き付けるこずができたす。 出力は、゚ッゞたたは立ち䞋がり蚭定どおりで割り蟌みを生成したす。



赀い長方圢は倉曎可胜な論理関数を瀺し、既に提瀺されおいるAND-ORに加えお、さらに7぀のオプションがありたす。











残念ながら、この蚘事の目的はデゞタル回路に関する教育プログラムではないため、ここでコメントするこずはありたせん。むラストはそれ自䜓を物語っおいたす。 このすべおの゚コノミヌは、タむマヌやGPIOなどの最も䞀般的な呚蟺機噚ずしおレゞスタに倀を平凡に割り圓おるこずにより、コヌド内で盎接構成されおいるこずにのみ泚意しおください。 この非垞に単玔ではないfigovinaの構成を容易にするために、GUIがありたす。







GUIを䜿甚するず、すべおが非垞に簡単になりたす。 右䞊隅にレゞスタの倀が衚瀺されたすが、既補のアセンブラヌたたはCコヌドを生成できたす。 私はこの奜奇心の匷い呚蟺に戻り、次回䜿甚䟋を玄束したす。 興味のある方は、 このペヌゞをご芧になるこずをお勧めしたす 。



NCO 数倀制埡発振噚


実際、最倧500 kHz内郚16 MHzゞェネレヌタヌからクロックされる堎合たでの呚波数シンセサむザヌで、0.03 Hz31 kHz内郚ゞェネレヌタヌからクロックされる堎合から15 Hz16 MHzクロックたでのチュヌニングステップがありたす。

蛇行ずPWMを生成できたす。



NCOずCLCの1぀のアプリケヌション Appnote は、500kHzのPWM呚波数で0〜100のデュヌティサむクル範囲で16ビットPWMを提䟛したす。



CWG 盞補波圢ゞェネレヌタヌ


プログラム可胜なハヌフブリッゞドラむバヌ。

いく぀かの信号゜ヌスから遞択CLC1、NCO、PWM、コンパレヌタヌ。

これは非垞に䟿利なこずであり、倚くの堎合、開発者を火、煙、および損倱の苊味から救うこずができたす。 これらのトラブルの防止により、デッドタむムの​​ハヌドりェア制埡が戊うために呌び出されたす。





ペアの各トランゞスタは、2番目のトランゞスタがすでに閉じられおいる可胜性がある堎合に厳密に開きたす。 これは、貫通電流をなくすために行われたす。これにより、矎しいが、時には高䟡な特殊効果が発生したす。 前のトランゞスタが閉じる時間デッドタむムは、立ち䞊がり゚ッゞず立ち䞋がり゚ッゞで別々に調敎されたす。 たた、特別な出力GPIO、CLC2、および䞡方のコンパレヌタの4぀の特殊効果を凊理するために、匷制停止信号が呌び出されたす。 CLC2の入力に「他の䜕か」を提䟛できるこずを考えるず、カヌネルに関䞎するこずなくドラむバヌの高速緊急停止のオプションのかなり広範なリストを取埗したす。 タむムアりトからアナログおよび論理レベルたで。



このノヌトでは、おそらく理論ず結び぀いお盎接実践する時が来たのでしょう。



パヌト4 開発ず生産



MKを決定したら、残りの構成芁玠に぀いお考え始めたす。 床面積をできるだけ小さくしたかった。 頭の䞭でいく぀かの遞択肢を倱ったため、DIP 20パッケヌゞのマむクロ回路の領域を占める解決策に決めたした。 さらに、すでに党䜓的な芁件から始めお、芁玠ベヌスを遞択したした。 USB-TTLコンバヌタヌずしお、よく知られたCP2102チップが䜿甚されQFNケヌスずクォヌツは䞍芁、USBコネクタヌは垂盎に遞択され、マむクロコントロヌラヌはQFNケヌスに遞択されたした。 これらはすべおモヌれルですぐに賌入されたした。



取締圹䌚でも、匏兞には立ちたせんでした。 圌女は、極端な単玔さを考慮しお、玄1時間で離婚したした。 電源リヌドは、74xxロゞックチップ䞊の同じ堎所に鋭く配眮されおいたす。 次に、私は工堎でいく぀かの郚品の補造を泚文し、埅ち始めたした。 埅っおいる間、モゞュヌルの䜜業はもっぱら粟神的なものでした...倢のようです。



すべおの鉄が手元に届くたでに、最初の2週間はほが終わりたした。 私は自分の蚀葉を圧倒し、30歳の男性の䜓に非垞に有害なう぀病の倧郚分を獲埗する危険を冒したした。

緊急の問題ずしお、ブヌトロヌダヌずしお、これなしではマむクロコントロヌラヌデバむスが実行できないものずしお、解決されたオプション-ds30 Loaderが遞択されたした。 無料版では、コンパむルされた16進数をUART経由でMKにダりンロヌドするだけで、同時に䟿利なGUIがありたすもちろん、目利きのためのコン゜ヌルナヌティリティもありたす。



写真の結果



DIP20ATtiny2313の暪のプロファむル





トップビュヌ





芖点...



MKは、16 MHzの組み蟌みゞェネレヌタヌで動䜜したす。 Timer1に実装されおいる゜フトりェアRTC甚の、写真に衚瀺されおいるクォヌツ。 MKの20ピンのうち18ピンは、RS-232 TTLの盎接接続甚のRXおよびTXを含むコネクタに盎接接続されおいたす2぀はクォヌツで占められおいたす。 これず同じRS-232 TTLのみを䜿甚する堎合、ボヌドは瞮退した圢を取り、 半分のコストを倱いたす 。



それは悪い掗濯板のように芋えたす



結論の代わりに



結果は非垞にかわいい小物でしたが、それでもなお、Linuxを搭茉したデバむスの残酷な倖の䞖界ずのコミュニケヌションを非垞に促進するこずができたす。 このフォヌムファクタヌでのarduinoずの競争は非垞に倧きいため、寞法ず独自の呚蟺機噚に焊点を圓おたした。

珟時点では、ファヌムりェアには、RS-232コマンドを䜿甚した耇数の呚蟺モゞュヌルのパラメヌタヌの組み蟌みず調敎が含たれおいたす。 これらは、PWM、DAC、GPIO、および郚分的にCLCです。 たた、䜕時かを調べおADC倖郚入力ず氎晶枩床センサヌの䞡方を読み取るこずもできたす。 ぀たり、䜎速OS向けの高速倖骚栌の䞀郚の機胜にすでに察応しおいたす。



しかし、絶察にすべおの呚蟺機噚がRS-232のチュヌニングに察応しおいおもこれには特別な理由はありたせん、これは制限ではありたせん。 珟圚、この機胜がMKのメモリ内のすべおの堎所から倧きく離れおいるこずはすでに明らかであり、残りの数キロバむトを利甚する最も適切な方法は、SFCグラフィカル蚀語の限定的なむンタヌプリタヌであり、30-50ステップ以内の最も単玔な自動化、および゜フトりェアモゞュヌル、 PIDなど、 I2C゚キスパンダヌを介した入出力数の拡匵 。これにより、ディスプレむずキヌボヌドの統合接続が可胜になりたす。



むンスピレヌションの䞻な情報源はhabrahabr、50ドルのアンドロむドドルを含む䞭囜のサむト、およびwww.microchip.comサむトでした。



すべおの人に平和を。



All Articles