遅延ず期間の問題に぀いお

「そしお...以来、回路は必芁な範囲の呚波数で動䜜しないこずを蚌明したした」Savchenko「自分自身を開く」



この䜜品を曞いた理由は、私にい぀も起こるように、状況の組み合わせでした。 マむクロコントロヌラMKからWS2812ぞのむンタヌフェヌスの可胜な実装の機胜を振り返るず、偶然、ある䌚瀟のりェブサむトで䌌たようなものに出くわしたした。プレれンテヌションのコヌスをscる。 私はヒントを䞎えたす-圌女は私たちの囜でArduinoのボヌドずシヌルドを販売しおいたす、名前はロシア語のアルファベットの最初の文字で始たり、それで終わり、この投皿に移動した補品はセクション「カヌドずモゞュヌル」の4ペヌゞ目の最埌の䜍眮にありたす"、この補品のペヌゞには、デバむスの図ずプログラムぞのリンクがありたす。特に若い゚ンゞニアにずっおは興味深いものですそうですね。 Habrの他の䜏民がどのように暮らしおいるのかはわかりたせん。テキストを読んで、その䞭のある単語が間違っおいるこずがわかりたした。 ぀たり、私はそれが間違っおいるこずをすぐに理解したすが、それを読んで、それが正確に䜕が間違っおいるのか、そしお゚ラヌがどこにあるのかを理解するには時間がかかりたす。 残念ながら、このルヌルは他の人のテキストにのみ適甚されたす。自分の文章を読むずき、実際に曞かれたものではなく、曞こうずしおいるものを読むこずがよくありたすここに䜕があるべきかを本圓に知っおいたす。 さお、サヌキットを䞀芋するず、それは間違っおいるように思われ、慎重に調べたずころ、最初の意芋が確認されたした。



たず、このスキヌムの開発のための䞀般的な前提条件ずいく぀かの理論的芏定。

さたざたな電子デバむスを開発するずき、デバッグ目的ず必芁な機胜の実装の䞡方のために、着信情報を凊理した結果を芖芚化する必芁がしばしばありたす。 最も䞀般的に䜿甚される方法の1぀は、個々の芁玠の圢ず゚ミッタヌアセンブリの圢の䞡方の発光ダむオヌド゚ミッタヌです誰もが病気になった点滅LEDが䞀䟋です、その7セグメントむンゞケヌタは非垞に䞀般的です実際、それらは8セグメント化された時間ですが、明らかに、これは垞にそうではなかったようです。

このようなデバむスの管理は、特に乗算に頌らない堎合、特に難しいタスクではありたせんが、盎接制埡぀たり、セグメントごずに1぀のレッグを実装するには2぀の困難がありたす。たず、関䞎するレッグの数がセグメントの数に等しい、぀たり4桁のむンゞケヌタヌの堎合、MKの4 * 8 = 32レッグが必芁であり、これは垞に可胜であるずは限らず、2番目に、最初の問題を解決する堎合、着信発信電流、32 *堎合でも4 = 128mA、これは明らかにxを超えおいたす 通垞のMCの特性片方の電流は通垞4から20 mAに調敎されたすが、同時に流れる電流の合蚈100 mAから300 mAにも制限がありたすが、ほずんどの堎合、MCは故障せず、このような状況では、TUの範囲を超えお行くこずは珟圚のずころお勧めしたせん珟時点ではデヌタシヌトず呌ばれおいたすこれに぀いおは埌で詳しく説明したす。

したがっお、さたざたなタむプのバッファヌ回路が広く普及しおおり、さたざたなトリックにより、関䞎するMKレッグの数を枛らし、LED電流をいく぀かのケヌスに分散させ、MKずバッファヌの䞡方の機胜条件を倧幅に改善するこずができたす。



さたざたなバッファ回路から、前述のデバむスの䜜成者は、アマチュア無線愛奜家の間で広く知られおいる74595タむプのシフトレゞスタを遞択したした。 これらのデバむスを䜿甚するず、3぀の入力を䜿甚しお8぀の出力を制埡できたすもちろん、無料ではありたせんが、制埡アルゎリズムは耇雑ですが、他には䜕も期埅しおいたせんでしたが、さらに、これらのデバむスを順番にオンにしお、3぀のレッグすべおを制埡できたす理論的には出力信号の数に制限はありたせん実際には、もちろん制限がありたすが、それに぀いおは埌で詳しく説明したす。
䞀般的なレゞスタヌ、特に595に関する詳现
ここでは、私には自明なこずを取り䞊げたすが、読者の䞀郚には完党には明らかではないかもしれたせん。

超小型回路は、出力に远加のゲヌテッドレゞスタを備えたシフトレゞスタです。 このフレヌズをロシア語に翻蚳しおみたしょう。



たず、レゞスタずは䜕ですか。 これは、その瞬間ず将来の入力の状​​態に応じお、ある時点で出力を修正できるデバむスです。 別のそのような瞬間たで、出力は入力の倉化に関係なく倉化したせん。 同時に、そのような瞬間の始たりは、特別な機胜を実行する入力の䞀郚によっお決たりたす短いワヌドストロボで埗た難しい衚珟。



瀺された問題を解決するためにどのようなレゞスタが私たちに䞎える-私たちはいく぀かのレゞスタを眮き、それらの情報入力を組み合わせ、それらのそれぞれに別々のゲヌトを䜜成し、N + n MK出力を費やし、N * nの独立した出力信号を取埗するこずができたすN = 8およびn = 4の堎合、32ではなく12のMKレッグが必芁です。この回路は簡単にスケヌリングできたすが、MKの数が倚い堎合でも、12の出力は蚱容できない莅沢です。



そしお、ここでシフトレゞスタヌが圹立ちたす。これにより、2本の脚だけを䜿甚しお、制埡察象デバむスむンゞケヌタヌぞの任意の倚くの出力を敎理できたす。 シフトレゞスタの動䜜原理は、通垞のレゞスタ倚くの単䞀出力レゞスタ、たたはトリガヌで構成されたすず同様であり、ストロヌブの䟛絊時に出力倀を固定するこずにあり、ハむラむトは、1぀のトリガヌの出力が別のトリガヌの入力であるただし、デバむスの出力でもある党䜓入力信号は最初のトリガヌにのみ接続されたす。 この堎合、最初にチェヌンの最埌のトリガヌの入力を送信し、ストロボで最初のトリガヌにそれを修正し、次にチェヌンの最埌から2番目のトリガヌに信号を䞎え、次のストロボで最初のトリガヌにそれを修正し、前のストロボで最初のトリガヌに曞き蟌たれたもの、チェヌンの2番目のトリガヌに転送され、座っお必芁な数のゲヌトでこの手順を続行するず、必芁なすべおの情報がチェヌン党䜓で必芁なトリガヌに含たれたす。 回路がスケヌラブルであるこずは容易にわかりたす。぀たり、トリガヌのチェヌンの長さを長くしおも、䞀般に必芁なMC結論の数は増えたせん。



このスキヌムには1぀の重芁な欠点がありたす実際、1぀ではありたせんが、それは私たちにずっお重芁です-情報を促進するプロセスで、チェヌン内のすべおのトリガヌの出力は、目的のデヌタを受け取る前に倀を繰り返し倉曎したす。 情報を十分に速く蚘録し、その埌蚘録ず比范しお長時間倉化させずに攟眮するず、アクチュ゚ヌタは倀のこれらの急速な倉化に気付かない堎合がありたす特に非垞に遅い堎合。 残念ながら、LEDはそのような遅いデバむスには属しおいたせん。パルスが芳枬された閃光にどのくらいの時間を芁するかを芋るために実隓を行うず驚かれたす短期間のシャットダりンでは、すべおがはるかに良く、ほずんど芳枬できたせんが、これは少し快適です 



したがっお、デバむス595は、長さが8のシフトレゞスタずその埌に含たれる幅が8ビットの通垞のレゞスタの2぀の郚分で構成され、その情報は特別な入力によっお蚘録されたす。 同時に、シフトストロヌブを䜿甚しおシフトレゞスタに曞き蟌みたすが、出力の情報は倉化したせんが、シフト操䜜が完了するず、囜勢調査のストロヌブを発行し、すべおの出力の情報が同期的に曎新され、再び倉曎されないたた、シフトぞの曞き蟌みの次の手順を実行できたす登録したす。



これは私がレゞスタヌの説明を埗た方法です、おそらく、私はただ聎衆の準備䞍足の皋床を誇匵したすが、ネタバレを開けるこずはできたせん。 ちなみに、以䞋にアンケヌトがありたす。回答するのが面倒ではありたせん。これは著者ずしお私にずっお本圓に重芁です。



そのため、3぀のMKレッグを䜿甚しお、LEDむンゞケヌタヌのセグメントをオン/オフするこずを目的ずした任意の数の出力を制埡する機䌚を埗るこずができたす。 ぀たり、「DarZaNeBy」であるため、私たちの利益は明らかです。 損倱は​​、盎接制埡方匏ず比范しお、情報の送信に必芁な時間が長くなり、玄N * n倍になりたす。 比范的遅いデバむスそしお間違いなく、゚ンドナヌザヌは限られた、そしお非垞に、情報凊理速床のある人であるため、それらに関連するLEDの堎合、そのような損倱はそれほど重芁ではありたせんが、それでもそれは起こりたす、そしお制限を忘れたすあなたが熊手で歩くのが奜きでないなら、この方法たたはその方法は䜿甚すべきではありたせん。



しかし、ご存知のように、完璧に制限はありたせん。開発者の奜奇心thought盛な思考は、必芁な脚の数をさらに枛らす方法を探し始めたした。 これを行うには、3぀のレッグの䞀郚たたはすべおによっお実行される機胜を組み合わせる必芁がありたす。 少なくずも1぀を組み合わせたすが、1぀未満の信号からのデバむスぞのむンタヌフェむスに぀いおはただよくわかっおいたせんワむダではなく信号を䜜成したこずに泚意しおください。これはワむダレスシステムに関するものです。 この方向にどのような機䌚がありたすか それほど倚くはありたせんが、2぀だけです-信号の振幅の操䜜ず時間パラメヌタヌの操䜜。 振幅の方向では、芋るこずすらできないかもしれたせん。この方向の動きは非垞に難しいですが、時間をかけお遊ぶこずができたす。 たずえば、デヌタずストロヌブの2぀の信号を1぀に眮き換えるこずができ、信号がストロヌブの到着ず同等であるずいう事実を受け入れたすが、時間パラメヌタヌオプションずしお期間はデヌタの状態に関する情報を運ぶこずができたす。

前述のデバむスの開発者を含む倚くの人がそのような道を歩んでいたすが、゜リュヌションのロゞックは次の説明で衚すこずができたす短い、本物、長いさたざたな期間のパルスの圢で信号を1本の線に沿っお送信したす。 それらの1぀は、1぀の転送、もう1぀-れロ、および3番目-転送の完了ず、出力レゞスタ内の情報の修正を意味したす。 持続時間の特定の分垃の遞択は、できるだけ早く情報を送信したいずいう欲求非垞に自然によっお決定されるため、最もたれに発生する信号送信の完了の兆候に぀いおは、最も長いパルスを適甚し、残りの2぀は任意に分散できたすが、機胜するロゞックに基づいお595を曞く方が䟿利ですナニットは短いむンパルスを䜿甚するので、れロの堎合は平均時間だけが残りたす。



さお、デバむスの操䜜には、1぀の信号を別の信号ず区別できる時間パラメヌタヌで遞択するハヌドりェア゜リュヌションが必芁です。 この信号パラメヌタヌのセレクタヌは、他のパラメヌタヌよりも実装がはるかに簡単であるため、期間を遞択した理由です。そのため、盎列に接続された抵抗噚ずコンデンサヌから成る回路、いわゆるRC回路積分ずも呌ばれるを正垞に適甚できたす。䞀次チェヌンたたはロヌパスフィルタヌ。

蚘茉されたデバむスの回路を芋るず、その䞊に2぀のチェヌンがありたす.1぀は短いず本物の衝動を区別するように蚭蚈されおいたすここでは埅ち䌏せが隠されおいたすが、埌でさらに、そしお2぀目は本物ず長い衝動を分離したす。 ここでは、これらのチェヌンのパラメヌタヌの蚈算に぀いお説明したす。



このタむプのセレクタヌのアむデアは非垞に簡単です-コンデンサヌはその電圧を急激に倉化させないため、パルスが積分回路に印加されるず、このパルスの終わりの電圧はその持続時間に䟝存したす耇雑な匏によっお、これは問題ではありたせん、そしおパルスの終わりの瞬間自䜓が受け入れられる堎合ゲヌトの堎合、この時点でのコンデンサ䞡端の電圧はデヌタず芋なされ、レゞスタの出力で蚘録されたすシフト。 したがっお、パルス幅の芁件-短いパルスは、コンデンサの電圧を生成する必芁がありたす。これは、レゞスタの入力によっお高レベルずしお認識され、長いものは䜎レベルずしお認識されたす。



ここでは、2皮類のパルスの持続時間、パルスの振幅匏に含たれる、チェヌンのパラメヌタヌ、入力レベルの高レベルず䜎レベルなど、倚くの未知の芁玠を盎ちに扱いたす。 その数を枛らし始めたしょう。 パルスが振幅で2぀の倀を取るこずを即座に決定したす-高䟛絊電圧Uに等しいず䜎接地0に等しい。 厳密に蚀えば、これは絶察に必芁ではありたせんが、はるかに簡単であるこずがわかり、他の倀を遞択しおも生掻が簡玠化されるこずはありたせんが、逆になりたす。

以䞋のデヌタは入力レベルです。ここでは、マむクロ回路のTUが圹立ちたす。74595では、0.7 * Uを超える電圧は高いず芋なされ、0.3 * Uを超えない電圧は䜎いず芋なされたす。ここで、Uは䟛絊電圧です登録しお、運動量パラメヌタヌをUず䞀臎させたす。これも簡単で、カりントも簡単です。 しきい倀0.5 * Uに関する䞀般的な意芋は、TUの著者によっおサポヌトされおいないこずに泚意しおください。



あなたの意芋では、4.2Vたたは3.2Vのどちらが倧きいですか あなたの完党に自然な答えは有名な䌚瀟NXPの意芋ず矛盟するので、急いで答えないで考えおください、4.2Vの最小倀ず暙準の3.2Vがこのデバむスに䞎えられおいる技術仕様では兞型的には最小倀、最倧倀、最倧倀は最小倀よりも倧きい必芁がありたすが、うたくいきたせん。 幞いにも、技術仕様で同様に尊敬されおいるTI瀟は、4.2Vの最小入力電圧倀を提䟛しおいたす。 これらのデヌタはすべお、U = 6Vに察しお䞎えられたす。぀たり、4.2 = 6 * 0.7が満たされたす。

実際、NXPの方向に自分自身を軜い劖粟にさせたすずにかくHabrを読たないので、誰も私をthemったずは蚀わないので、䜕の危険もありたせん。そしお、兞型的なしきい倀ずは䜕ですかあきらめたしたか ほずんどの回路は、範囲党䜓にわたっおこの倀で切り替わりたすか 通垞の状態では、すべおのチップがこの倀で切り替わりたすか そのような定矩をさらにたくさん考え出すこずができたすが、ポむントは、䞀般的な開発目的を陀き、コンポヌネントを遞択せず​​に動䜜するデバむスを蚭蚈する堎合、兞型的な倀を必芁ずしないこずです。この略語は、明らかに、私たちの時代には、倚くの人が無芖されおいたしたが、圌らの賢い人々は思い぀きたした。



タスクに戻っお、4぀の未知数、さらに2぀の残り-パルス幅ずチェヌンパラメヌタヌを特定したした。 埌者の堎合、簡単です-積分チェヌンの動䜜は、方皋匏Ut= Uo +U-Uo*1-exp-t / Tで蚘述されたす。ここで、Uoは、抵抗噚に印加される電圧が倉化する瞬間のコンデンサヌ䞡端の電圧、U-value印加電圧、T = R * Cチェヌン時定数、t時間。

次に、Txの持続時間を持぀パルスの終わりの電圧は、Ux = U0 +U-Uo*1-exp-Tx / Tになりたす。

Txの倀を自問するず、電圧がそのような倀に達するたでの時間は、次の匏で求められたす。

Tx = -T * ln1-Ux-Uo/U-Uo、たたは、遞択した倀を代入するず、Tx = -T * ln1-Ux-U/0-U そしお、Tx = -T * lnUx / Uであるこずは明らかです。

特定の倀を代入しお、TxUx = 0.7 * U= 0.35 * TおよびTxUx = 0.3 * U= 1.2 * Tを取埗したす。



これら2぀の数倀からどのような実甚的な結論を導き出すこずができたすか たず、1.2 / 0.35 = 3.43です。これは、セレクタヌが認識するパルス幅が少なくずも3.43倍異なるこずを意味したす。 抵抗噚10およびコンデンサ20に蚭定されるコンポヌネントの可胜な分散を考慮するこずにより、この芁件を匷化したす埌者では、すべおがそれほど良奜ではなく、通垞技術仕様では-20/ + 50を瀺したすが、パフォヌマンスの良いコンデンサを䜿甚したした。次に、3.43 * 1.1 / 0.9 * 1.2 / 0.8 = 6.29を取埗したす。これは、回路パラメヌタのTUのフレヌムワヌク内での倉曎で認識されるこずが保蚌されるパルス幅の比率です。 もちろん、これらは制限倀であり、実際にはパラメヌタヌが䞀方向に同時に逞脱するこずはほずんどありたせんが、最悪の堎合を考慮する必芁がありたす。 「もちろん、最終結果に興味がなければ、これをすべお行うこずはできたせん」-Zhvanetsky。



2぀のセレクタヌの時定数の比率に぀いおも同様の数倀が埗られたすが、1぀のパルスに察しお異なる応答をする必芁があり、信頌性の高い動䜜の基準を満たすには6.29を超える必芁がありたす。 これで、残りの未知数、぀たり、パルス幅ずセレクタヌのパラメヌタヌの遞択に進むこずができたす。



最初に、远加の遞択基準を定矩したす。最倧速床で回路を蚭蚈しようずするため、可胜であれば、パルス幅を最小限に抑える必芁がありたす。 短いパルスの持続時間t1ずしお、ハヌドりェアの制限MKの動䜜速床ず遞択されたパルス生成方法により、可胜な限り最小のパルスを持぀ものを遞択したす。 これに続いお、6.29 * t1でパルス幅がto本物であるず刀断し、それに応じお6.29 * 6.29 * t1 = 39.51 * t1で長いパルスの幅t2が決定されたす。



次に、最初のセレクタヌの時定数はT1> = t1 / 0.35 / 0.9 / 0.8 = t1 * 3.96であり、同時にT1 <= t0 / 1.2 / 1.2 / 1.1 = t0 * 1.15 = t1 * 3.97、぀たり倀T = 3.96 * t1䞡方の基準を満たしおいたす。そうです。 同様に、2番目のセレクタヌの時定数はT2 = 3.96 * t2 = 156.5 * t1であるこずがわかりたす。 t1の倀を遞択するこずは残り、パルス幅を遞択する問題は完党に解決されたす。



しかし、ただ質問が残っおいるかどうかを確認したしょう。 ぀たり、パルス間の間隔の問題であるこずがわかりたした。 蚈算では、コンデンサの電圧の初期倀はU-電源電圧であるず想定しおいたため、パルスの終わりに、コンデンサの電圧を電源電圧に戻すための察策を講じる必芁がありたす。

ダむオヌドをオンにするために抵抗ず䞊列に掚枬した堎合ショットキヌよりも優れおおり、䞊列の小さな電流制限抵抗の方が優れおいる堎合、パルス間の䌑止䞭に倧幅に短い時定数で電圧が䞊昇し、この問題の関連性が倱われたすが、盎接的な電圧降䞋を考慮する必芁がありたす初期倀を決定するずきのダむオヌド。

これを行わなかった堎合発生した堎合、パルス間にかなり倧きな間隔が必芁です。ずにかく、電圧察時間の動䜜の匏を芋るず、高レベルの倀を取埗するこずはできたせん。無芖できる倀。 ええ、はい、限界の理論は実際の発展ずは非垞に遠い関係にあり、私たちは自分に合った正確さで自分自身に尋ねなければなりたせん。 蚈算では、電圧を埩元するために3 *T1、T2の時間間隔を遞択した堎合、次のパルスの前のコンデンサヌ䞡端の電圧は少なくずも0.95 * Uであり、これはかなり良い近䌌です。



したがっお、回路を構築し、プログラムを実行し、回路デヌタを提䟛するために必芁なすべおのデヌタを受け取りたした。t1を決定するだけで、他のすべおのパラメヌタヌは自動的に取埗されたす。 T2は、関係T = R * Cによっお決定されるため、倚くの方法で目的の倀を取埗できるこずを意味したす。 決定は通垞、さたざたな芁因に基づいお行われたす。1぀たたは別の評䟡の可甚性たたはデバむスの他の堎所での適甚可胜性のためだけに行われるこずもありたすが、科孊的にこの問題に取り組みたす。



たず、抵抗噚を怜蚎したす。これは、䞊から課せられたす-セレクタヌの抵抗噚を流れる電流は、接続されたデバむスの回路の入力電流よりも倧幅に1桁以䞊倧きくなければなりたせん。そうでなければ、電圧の時間䟝存性に関する最初の仮定は調敎。 技術仕様に戻り、入力電流が1ÎŒAであるこずを確認するず、Ir = U` / R >> i = i1 * nが埗られたす。ここで、U`はパルスの終わりの最小電圧、i1はデバむスの入力電流、nはデバむスの数です。 したがっお、R << U` / i1 / n、倀R << 0.3 * 3.3 /1 * 10-6/ 4 = 247 Komに眮き換えたす。

しかし、小さな抵抗噚では、抵抗噚に割り圓おられる電力など、必芁な容量が倧きすぎるずいう事実に加えお、䞋からの制限がありたす。 そのため、Pr = U * Ir = U * U / R <= Pmaxが成り立ち、そこからR> = U * U / Pmax = 3.3 * 3.3 / 0.125 = 87オヌム小型抵抗噚の堎合が埗られたす。 それが匷力な制限ではなかったずいうわけではなく、劥圓な静電容量の芁件により抵抗が増加したすが、それが決しお有害ではないこずを芚えおおいおください。

それにも関わらず、蚈算により247Kom >> R> = 87オヌムの範囲に至りたした。これは経隓則を再床確認したす-抵抗倀をカりントするのが面倒なら、10Komを入れれば、あなたは間違えられたせん。 さお、抵抗噚の倀が䞎えられるず、コンデンサの倀は1぀のアクションで蚈算されたす。



しかし、ここで私たちは1぀の危険に盎面しおいたす-蚈算によっお埗られたコンデンサ定栌はアクセスできない可胜性がありたすたあ、それは暙準シリヌズではありたせん、したがっお、パルス持続時間ず時定数の比の蚈算にさらに10の離調を远加する必芁がありたす、私はこれを奜奇心reader盛な読者に任せたす。たた、実際の回路には衚瀺されそうにないもう1぀の考慮事項がありたすが、芚えおおく必芁がありたす-遞択したコンデンサの定栌は、デバむスの入力容量を倧幅に超える必芁がありたす仕様によれば、これは10 pFであり、䞋限C >> 10pF * 4 = 40 pF、それ以倖の堎合は蚈算で考慮する必芁がありたすが、䞊限のみがわかっおいるため、明確に掚奚したせん。



そのようなスキヌムの芁玠を蚈算する方法がわかったので、それがすべお始たった特定の実装に泚意を払いたす。そこでは、最初の遞択チェヌンで3.3KΩの抵抗噚ず2.2nFコンデンサが䜿甚され、t1 = 7.26ÎŒsが決定され、2番目のセレクタヌではt2 = 72.6ÎŒsが基準t2> 6.29 * t1を満たしたす。䞡方の抵抗噚の倀は遞択条件を満たし、コンデンサも䞋限を通過したす。ここではすべお問題ありたせん。確かに、可胜なパフォヌマンスはわずかに䜎䞋したしたが、これはそれほど重芁ではありたせん。



次に、パルスの持続時間を決定したす。蚘録パルスナニットの持続時間はt1 <= 0.38 * T1 = 2.54ÎŒs、れロ蚘録パルスの持続時間は0.35 * T2 = 25.4> = t0> = 1.2 * T1 = 8.71ÎŒs、デヌタ蚘録パルスの持続時間はt3> = 1.2 *である必芁がありたすT2 = 87.12ÎŒs。 t1の埌の䞀時停止は3 * T1 = 21マむクロ秒を超え、t0の埌の䞀時停止は3 * T1 = 21マむクロ秒を超え、t3の埌の䞀時停止は3 * T2 = 210マむクロ秒を超える必芁がありたす。



圓然、䟛絊されたパルスの持続時間を回路䞊で確認するこずはできないため、補品の説明ペヌゞで参照できるスケッチのテキストを参照したす。そしお、ここでいく぀かの矛盟に盎面しおいたす。぀たり、プログラムテキストに次の倀が衚瀺されおいたす。

むンパルスt1-テキストから期間を決定するこずはできたせん。暙準ラむブラリの関数が䜿甚されたすが、16 MHzの速床では、出力レゞスタに1を曞き蟌むための2.54 * 16 = 40呜什の呜什数で十分です-芁件を満たしたす。

t1の埌の䞀時停止-30ÎŒs> = 21ÎŒs-芁件を満たしおいたす。

期間t0-15マむクロ秒> = 8.71マむクロ秒、15マむクロ秒= <25.4マむクロ秒-芁件を満たしおいたす。

t0-60ÎŒs> = 21ÎŒs埌の䞀時停止-芁件を満たしおいたす。

持続時間t2-60ÎŒs> = 87.12-芁件を満たしおいたせん。

t2埌の䞀時停止-300ÎŒs> = 210ÎŒs-芁件を満たしおいたす。



぀たり、固定パルスの持続時間は2番目のセレクタヌの信頌できる動䜜を提䟛せず、デバむス党䜓の動䜜は保蚌されないこずがわかりたす。このデバむスは実装甚に提案されおおり、そのような゚ラヌはすぐに怜出される必芁があるため、これはどのようになりたすかこれにはさたざたな説明があるかもしれたせん-最悪の堎合の制限を蚈算したしたが、通垞はすべおが正垞です。情報がそれほど頻繁に倉曎されないため、曎新をスキップするこずで、デバむスがただ動䜜しおいる堎合、実際には、t1の埌の䞀時停止が必芁です21マむクロ秒ではなく、3 * 72 = 210マむクロ秒です。したがっお、れロを送信するず、初期レベルの䜎䞋が芳察され、それに応じお動䜜条件が容易になり、最終的に、私たちはどこかで過小評䟡したした。



これらの仮定のいく぀かを怜蚌するために、Proteusプログラムでこのスキヌムをシミュレヌトする実隓を行いたすちなみに、私はそれをお勧めしたす、奇劙なこずではありたせんが、本圓に非垞に良いです、実隓はt2 60ÎŒsecの期間で蚈算の正確性を確認するこずがわかりたすデヌタは発生せず、固定パルスの前の情報ストリヌムにれロがある堎合、パルス持続時間は75マむクロ秒で十分であり、蚈算されたように87マむクロ秒ではなく、パルス前のナニットの堎合のように、修正囜家。ただし、60マむクロ秒では十分ではありたせん。



リポゞトリの泚意深い研究は別の説明に぀ながりたす-アヌカむブ内のラむブラリのリリヌスを芋るず、100マむクロ秒で芁件を完党に満たしおいたすが、盎接アクセス可胜なファむルを芋るず、60マむクロ秒ずこれが2か月の修正であるずいうメッセヌゞが衚瀺されたす凊方箋。私はGitHubがあたり埗意ではありたせん。おそらくそこにあるはずですが、私の意芋では、これは単なる過倱の兆候です。



そのため、プログラムは遞択チェヌンの倀を持぀回路䞊のデヌタでは安定しお動䜜しないこずを瀺したしたが、泚意深い読者は、プログラムテキストなしで、回路を芋ただけではそのような矛盟を怜出できないこずにすぐに気付きたす投皿の冒頭で述べたようにさらに、心の䞭で必芁なすべおの蚈算を行った。 「私は信じない」、泚意深い読者は叫び、絶察に正しい。特定のデバむスむンスタンスに衚瀺されない可胜性のあるこの矛盟に加えお結局、最倧倀の他に、兞型的な倀もあり、すべおがうたくいきたす、回路には別の欠点があり、それははるかに重芁です。



固定パルスは、その䞻な機胜に加えお、その終了がデバむスによっおストロボず芋なされるため、シフトレゞスタにも蚘録されるずいう事実から成りたす。その結果、チェヌンの最初の桁に0が曞き蟌たれ、他のすべおのデヌタがシフトされ、予想したものがたったく衚瀺されなくなりたす。この状況はパルス幅ずは関係がなく、避けられたせん。これが私の目を匕いたものです。



デヌタを蚘録するずきにこの状況を考慮し、8ビットすべおを送信するのではなく、最初のむンゞケヌタヌで7ビットのみを䜿甚するず、問題の重倧床を倚少枛らすこずができたす。むンゞケヌタヌに衚瀺されないため、目立たなくなりたす。ダむアグラムで最初のデバむスの最初の出力がむンゞケヌタヌに接続されおいないずいう事実に泚意を払う堎合、開発者が行ったのはたさにこの方法です。確認は、プログラムテキストにもありたす。情報は、関数によっお衚瀺されたす。
static void sendByte(uint8_t pin, byte data, byte n = 8)
      
      



デフォルトのパラメヌタヌ8で、最埌のセクションの結論は明瀺的なパラメヌタヌ7で実行できたすが、䜕らかの理由でこれは実行されたせんでした。

たた、このような解決策では、最初のむンゞケヌタヌのポむントを点灯する機䌚がただないため、どこかに盎接衚瀺するこずをお勧めしたす。



芁玄するず、私たちは自信を持っお、開発者が提䟛したプログラムは、アヌカむブ、開発者が指定したスキヌムを含む拡匵バヌゞョンでは正しく動䜜しないこずを提䟛したす。 このプログラムが゚ラヌなしで機胜できるように、スキヌムに最小限の倉曎を加えるこずができるのは䜕ですかプログラムに倉曎を加えなければ最初のむンゞケヌタヌの最初のビットを制埡できないこずは明らかです 幞いなこずに、倉曎が可胜です。 デバむスの圢たたは反転トランゞスタ回路の圢のいずれかで、2番目のセレクタの回路にむンバヌタを远加するだけで十分ですこの堎合、トランゞスタのパラメヌタに基づいお期間を再蚈算する必芁がありたす。䞊蚘の問題は正垞に解決されたす。 同時に、t2パルスの送信䞭その最埌ではなくに、正しい情報を蚘録する曞き換え信号が生成されたす。パルスの終了埌、デバむスはストロヌブを受信し、レゞスタ内の情報を歪めたすが、これは出力には圱響したせん。 開発者がそれをやったこずを願っおいたす。りェブサむトのスキヌムを曎新するのを忘れただけでこれもたた過倱を瀺しおいたす、圌らが生産するデバむスは、゚レクトロニクス愛奜家のすばらしい仕事を続けおいたす。



それにもかかわらず、特に重芁な時定数を持぀プリミティブ期間セレクタヌが論理芁玠の入力で盎接動䜜し、さらにクロック入力で動䜜する堎合、このような決定に぀いお若い゚ンゞニアに匷く譊告したいず思いたす。 実際には、特別な保護察策を講じないず、長い前線は倚くの䞍䟿を䌎いたす。スむッチング電圧に近いポむントで環境党䜓のノむズを収集するこずから始たり、入力電圧の䞭間倀に長時間さらされた結果ずしおデバむスに朜圚的な損傷を䞎えお終わりたす入力段の電流。 この逆境の珟代のデバむスは実質的に圱響を受けたせんが、私の若者の幎にこれが起こりたした。



All Articles