The Community for Creative Electronics

Powerful Free ECAD Software with Online Collaboration

CircuitMaker

Filter
Clear
Tags by Type
Software
マイクロコントローラーの故障モード: 発生理由と回避方法 Thought Leadership マイクロコントローラーの故障モード: 発生理由と回避方法 設計の成功の大部分は大学にかかっています。実験室の実験でコンデンサーを誤って爆発させる原因を学んだからではなく、思いもよらないときにマーフィーの法則が当てはまることがあると学んだからです。Warcraftゲームに参加して終わりのない任務の遂行に明け暮れていた私は、常にコンピューターに依存して活動していました。 その当時、コンピューターの性能はかなり低く、悪名高いWindowsの「死のブルースクリーン」ポップアップが時々表示されるのは珍しいことではありませんでした。Warcraftゲームが中断されることはイライラの種であり、遂行した任務がシステムに保存されず数時間が無駄になる一方で、私はコンピュータークラッシュにより重度のパニック発作を引き起こしたものです。設計者であれば、現場でマイクロコントローラーに障害が発生した場合に、同様のパニックを経験したことがあるかもしれません。 マイクロコントローラーの故障モードがシステムに与える影響 組み込みシステムでは、マイクロ コントローラー(MCU)の障害は、業務の締め切りに遅れた場合よりも悪い影響が出る可能性があります。多くの場合、MCUは、決済端末、医療機器、セキュリティーシステムなどの用途における心臓部です。これらのシステムは高い安定性を必要とし、たいていはシステム障害に強くありません。 MCUが故障すると、場合によってはシステムの稼働が完全に停止します。この状況は、ユーザーに迷惑をかけたり、重要な使用現場において安全上のリスクを引き起こす可能性があります。クライアントにとって、信頼性の低いシステムは運用能力に影響を与え、収益の損失につながる可能性があります。設計者にとっては、何百もの製品が現場で常に故障していることは、私たちの誇りに大きな打撃を与え、評判に影響することが考えられます。 マイクロコントローラーの故障の理由とその責任 信頼性のある組み込みシステムには、ハードウェア設計者とファームウェア プログラマの協力が必要です。一部の設計エラーは開発段階で検知されず、導入後にやっと問題が顕在化します。この場合、その責任の大部分を誰が負うべきなのでしょうか。 指をさす前に、マイクロコントローラーが故障する一般的な理由を考えてみましょう。 1. メモリスタック オーバーフロー マイクロコントローラーの メモリスタックは、一時的な使用を目的とした内部RAMの指定領域です。メモリスタックのサイズは制限されており、MCUによって異なります。ファームウェア プログラマがスタックサイズより大きい変数を割り当てると、ランタイム中にスタックオーバーフローが発生し、ファームウェアに問題が生じる場合があります。 2. 不正なポインター MCUファームウェア プログラミングでは、変数、またはプログラム関数のアドレスを示すために、通常
製品のサービスが行いやすくなるよう設計を最適化する方法 Thought Leadership 製品のサービスが行いやすくなるよう設計を最適化する方法 十分に準備を整えたつもりで何かに立ち向かったところ、何をすべきか全くわからないという感情を味わったという経験はあるでしょうか? 残念なことに、私は思い出したくないほど数多くこのような経験をしています。特に、サービスを行いやすくなるように製品を設計する、または修理を考えて設計を開始したときに、頻繁にこのような経験をしました。 サービスを行いやすくなるように製品を設計すべきか どうかを決定する前に、考慮すべき多くの要因が存在し、その現実性について十分な時間をかけて考慮する必要があります。最終的に、修理を考えて設計を行うことを決定した場合、製品のサービスとトラブルシューティングが簡単になるような機能を含める必要があります。私は初期の設計ミスから、サービスを行いやすくなるよう設計を最適化する方法を学びました。いくつかの役に立つヒントをここで紹介しましょう。 1. 視覚的なインジケーターを追加する オンサイトで電子機器のサービスを行うのは、サポートチームの手に余ることがあります。特に、誤動作が重要な動作の遅延を引き起こしている場合にはその傾向が強くなります。いくつかの視覚的なインジケーター、例えばLEDやLCDを的確に配置すると、サポートチームが問題を迅速に特定するのに役立ちます。LEDを使用して、基板に電力が供給されていること、マイクロコントローラが動作していること、基板がデータを正しく送受信していることなどを表示できます。 2. PCBにラベル付けする 技術サポートチームに最新の回路図を渡しておいたとしても、基板上のコンポーネントに正しくラベル付けしておかなければ、正しい部品を探すために多くの時間を費やすことになります。コンポーネントへモジュールに応じて割り当てを行うシステムを使用し、正しいコンポーネントのとなりに シルクスクリーンラベル が配置されていることを確認します。また、基板接続へのワイヤのデジグネータの横に、意味のあるラベルを追加します。「PC」などのラベルを使用すると、そのコネクタがPCに接続されていることを技術者が容易に認識できます。さらに、受信ワイヤ接続で極性が重要な場合、「+」や「-」などの極性サインを追加することも適切です。 3. エラーのログ出力機能の実装 複雑な組み込みシステムを設計するとき、エラーのログ出力を無視することはできません。ほとんどの場合、ラボでのテストで見逃された 問題やバグ は、現場で追跡するのが困難です。これらの問題は多くの場合、変数の組み合わせによってトリガされ、簡単に再現できません。さらに悪いことに、サポートチームが問題に取り組もうとしたときには、システムは既にリセットされている可能性があります。最低でも、EEPROM(Electrically Erasable Programmable Read-Only
設計の問題解決に役立つ最良のPCBレイアウトを見つける方法とは Thought Leadership 設計の問題解決に役立つ最良のPCBレイアウトを見つける方法とは アメリカ西部の賭博師は、勝負を決めるための切り札を袖口に忍ばせていた、という話をご存知でしょうか。あまり道徳的な例ではないものの、原理的には悪くありません。いつもポケットに切り札を入れておいて、必要なときに使えるとしたら素晴らしいことでしょう。設計者にとっては、これは日常生活だけでなく設計でも重要になります。 設計であれ、CADツールの機能であれ、製造に関する問題であれ、誰でもどこかの時点で助けが必要になります。問題に押し流されてしまうのは簡単ですが、そうなる必要はありません。設計者がポケットに忍ばせておける有用なリソースはオンラインでもオフラインでも見つかります。優秀な設計者がこれを実践している方法をいくつかご紹介しましょう。 同僚とのコミュニケーション これは当然のことのように思われるかもしれませんが、私たちは同僚の経験がいかに貴重なものかを忘れてしまうことがあります。助けを求めるのが恥ずかしいことではない、ということも覚えておきましょう。豊富な設計経験を持つ同業者の人脈を持っている場合は、これが特にあてはまります。私はずいぶん前にプライドを忘れることを覚えました。問題を解決しようとしているときには、邪魔以外の何物でもないからです。それ以来、問題にぶつかったときに頼れる同業者の人脈は着実に増えています。それに、私は友人や家族など、同業者以外の人たちにもためらわずに助けを求めます。解決策はすぐ目の前にあることもあります。つまり、あまりにも近くにありすぎて気付けないでいる場合です。私の配偶者はPCB設計のレイアウトについては何も知りませんが、設計関係の問題の解決を時々助けてくれます。話をじっくりと聞いて、私の考えが間違っていることを指摘してくれるのです。 一言で言うと、助けが必要なときは助けを求めることです。 回路図のレイアウトで問題にぶつかったら、同僚に相談する あなたを待っている膨大な量の情報 この記事をお読みになっているのですから、皆さんはworld wide webが設計に関する問題の答えを見つけるための素晴らしい情報源であることをご存知のはずでしょう。これを活用する秘訣は、探している答えが効率的に見つかるようにすることです。そのヒントをいくつかご紹介しましょう。 具体的な検索語句を使う: PCB設計の初心者であれ、何十年もの経験があるベテランであれ、他の設計者が経験したのと同じ問題にぶつかる可能性は大いにあるでしょう。運がよければ、その問題がオンラインで共有されていることもあります。問題を具体的に検索すれば、的を絞った情報を見つけて解決までの時間を短縮できます。 情報源について批判的に考える: オンラインで見つかる大量の情報は、吉と出ることも凶と出ることもあります。選べるリソースにはたくさんの種類があり、どれが最も効果的なのかは簡単にわかりません。 Web上のフォーラム: 多くの場合、Web上のフォーラムは特定の問題を解決するための有益なリソースというだけでなく、絶好の議論の場でもあります。問題をあらゆる角度から考えられるのはよいものの、偏った情報に遭遇することにもなります。これは、フォーラムに参加しているメンバーがそれぞれに違う経験をしていたり、異なる設計ツールを使っていたりするからでしょう。結論を言えば、必要な情報を手に入れたら、それについて少々調べてみる必要があるかもしれません。 ブログ記事とFAQ: メタ発言になってしまう危険があるため、これらについて深く掘り下げるのはやめておきますが、専門的なサイトで公開されているブログ記事やFAQは、開始地点として優れたリソースです。設計の問題に対する解決策を見つけるための正しい軌道に閲覧者を誘導することが意図されているため、うまくいけばさらに詳しい情報が手に入ります。一番重要なことですが、ブログの記事やFAQでは公開前に見直しを行うことで信頼性が確保されています。 ホワイトペーパー: このリスト内で最も徹底したリソースは、間違いなくホワイトペーパーでしょう。直面している問題によっては、完璧な解決策にも行き過ぎた情報にもなり得ます。調べるのに集中力が必要になるため、答えを入手できそうな注目すべきブログ記事や参考資料に遭遇できれば理想的でしょう。
WS2812B LEDの設定とインターフェイスの方法 Thought Leadership WS2812B LEDの設定とインターフェイスの方法 笑いたい気分ですか? こんな話があります。私は数十年の経験を持つ設計技術者ですが、最近のLEDプロジェクトでほとんど絶望しそうになました。私はLEDというものが、制限用の抵抗と電源に接続された発光ダイオードと同様に単純なものだと思っていました。違うでしょうか? 数年前に私がアーキテクチャモデルの照明プロジェクトに従事していたとき、まさにそう考えていました。このプロジェクトでは、ビルディングと周囲をWS2812B LEDで照らすことになっていました。これは、その当時では新しく、一般的なタイプの統合LEDでした。しかし、従来のLEDとは異なり、このLEDを動作させるのは単に電源をオンにするだけでは終わりませんでした。これは、LEDが独自の方法でマイクロコントローラーと接続されるためです。マイクロコントローラーとLEDとの間の通信インターフェイスは単線式ですが、標準のUART シリアルインターフェイスとは異なり、厳密なタイミングが要求されます。リアルタイムプロセッサーを使用してLEDの実行を望む私たちのようなナードの興味を引く以外に、WS2812B LEDは大量の赤、緑、青(RGB) LEDを必要とするプロジェクトに有用です。WS2812B LEDには、ストリップ内のLEDの数にかかわらず、接点が3つしかないため、配線が複雑化することを避けられます。 WS2812Bと従来型LEDとの相違点 私たちのような電子設計者にとって、 LEDという単語は多くの場合、回路図のダイオードのシンボルを想起させます。このシンボルにはいくつかの矢印があり、それが発光ダイオードであることを示します。電子回路の設計において、ほとんどの技術者はアノードとカソードの接続を持つデュアルピンのLEDを使い慣れています。組み込みシステムの設計において、これらのLEDは簡単に制御でき、多くの場合に視覚的なインジケータとして使用されます。 しかし、WS2812Bは一般的なLEDとは異なります。これはRGB LEDで、単一の5050フォームファクタ内で、インテリジェントな制御チップと統合されています。単一ラインでの伝送プロトコルを対応し、LEDのRGB値を制御するため、クロックやデータ信号が最低で毎秒400kbitの速度でWS2812Bへ送信されます。WS2812Bは、LEDの「データ出力」ピンを別のLEDの「データ入力」ピンへ接続することにより、カスケード接続できます。 このため、WS2812Bを点灯するのは、LEDを5VのDC電源へ接続するだけでは終わりません。これを行っても何も起こりません。WS2812B LEDを動作させるには、コントローラーからWS2812B LEDへ有効なコマンドを送信する必要があります。WS2812B LEDの色を変えるのはコマンド1つだけで実行できますが、データパケットを送信するのが複雑です。時間固有のインターフェイスを使用しているため、ロジック0とロジック1のコマンドは対応する方形波パルス長により定義されます。この チュートリアルでは、各パルスの対応する長さについて、視覚的な例で示します。これに対して、従来型のRGB LEDは一定のパルス幅変調(PWM)信号を送ることで、輝度と色を維持します。 クロック信号のデータパラメーターを変調する必要から、十分なコーディング能力と、マイクロコントローラーへの理解が必要となります。ストリップ上の複数のLEDに適用するときは、問題がいっそう複雑になります。参考までに、標準的なWS2812B