

ある組み込みマイコン(ASSP)を使っています。AD変換と、コンパレータが入っていて、コンパレータは閾値以上の電圧が入ると割り込みをかけてくれます。
そのマイコンで誤動作が見つかり、AD変換値のレジスタにアクセスしているとき、コンパレータからの割り込み要求があると、マイコン自身がエラーが発生したと誤判定してプログラムをとめてしまいます。
コンパレータは電流を電圧に変えた信号が入るようになっていて、一定以上の電流が流れたら、スイッチ(FET)を切るため=保護のため使っているので、それをやめることはできません。
メーカーはマイコンを設計しなおすのはお金がかかるから、AD変換値を読んでいるときは、コンパレータを動作させない(=保護ができない)ようにして使ってくれといいます。
AD変換も電源電圧を読んでいてこれまた保護のために使っています。
もともと、そのコンパレータで保護もできるというのがウリであったのですが、メーカー・日本の販売商社の見解として、マイコンは不具合のまま(保護できないタイミングがある状態で)使ってくれというのですが(日本の販売商社がリクエストをとめている可能性もあります)、海外メーカーのマイコンというのはそういうものでしょうか?
ちなみにこのマイコンはすでに売られている車にも搭載されているものです。
みなさんのご経験と「こんな風に回避またはメーカーに働きかけた」といったことがあったら教えていただけませんでしょうか?
よろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
ADのレジスタは非分断連続アクセスしないといけないのではないですか?
(例えば8ビットマイコンでADレジスタが16ビットなんて組み合わせ)
そうであればメーカーの言うとおり「操作している間割り込み禁止にする」のが当たり前だと思います。
コンパレータ割り込み条件が発生してから数クロックの遅延も許されないのなら、上流設計レベルで間違えていますね。
この回答への補足
確かに、変数破壊防止のために、AD値をバッファ変数に退避させるときに、よく割り込みとかAD変換を禁止にしています。割り込みが途中で入って、バッファ変数破壊にならないためです。
しかし、今回の場合は、もとのAD値がの入っているレジスタが、マイコン自身の割り込みによって破壊されてしまいます。
AD値を読むのがAD変換完了割り込にあるして、コンパレータ割り込みのほうが優先度が高いので、同時に発生しても、優先順位に従って、コンパレータ割り込みの処理とレジスタの更新をしてから、AD完了割り込みの処理をしてくれればよいのですし、ユーザープログラムはそうなっているのですが、マイコンの中では実際には1つのレジスタにリードとライトが非同期で同時に行われているのです。
マイコンは2チップ構成で、CPUとアナログ部分はユーザーのさわれない通信でやっていて、そのレジスタの値が壊されることによって、チップ間の通信エラーになってCPUが勝手にとまってしまうのです。
変数破壊防止のために、割り込みを禁止したりはしますが、マイコンがマイコン自身の処理でレジスタ値破壊を起こして止まってしまう何であるのかなという感じです。1チップ構成なら、通信がないので、CPU停止までいかないかもしれませんが。
No.3
- 回答日時:
>「その2」はマイコンメーカーから提示されたのですが、保護機能を切ってしまうまたは遅れてしまうことになるので、難しいです。
割り込み禁止→ADレジスタ読み出し→割り込み許可 の3命令で実行できますけど。
これで間に合わないほどクリティカルなのですか?
もしそうであれば、コンパレータ割り込みより優先順位の高い割り込みを使用できない事になります。
コンパレータの応答時間のほうが気になりそうです。
そもそも、異常事象の発生から保護が完了するまでに許される時間はいくらなのですか?
これにはアナログ回路の応答時間も含みます。
この回答への補足
お察しのとおり、時間にして数μ秒ですが、この間にどのくらい電流が上がってしまうかによります。
ただ、設計思想としてコンパレータ割り込みをとめてしまう時間が存在してしまうことを許してくれるかです。
No.2
- 回答日時:
修正にはお金がかかります。
修正の為にはエンジニアを割り当てなければならないし、そのエンジニアがするはずだった仕事が止まってしまいます。
メーカーがマイコンの修正に応じてくれないのであればそのまま使うしかないです。
実際にやってみなければ効果が有るかは分からないので、アイデアだけですが
その1.AD変換の読み取りをDMAで行う。(ソフトで読まなければエラーにならない可能性がある)
その2.AD変換を読み取る間は割り込み禁止にする。(割り込みは禁止解除後に発生する)
その3.コンパレータを外付けにする。
コンパレータの安いものなら10円ぐらいで購入できます。
http://www.digikey.jp/product-detail/ja/AP331AWR …
この回答への補足
ありがとうございます。
AD読み込みより、割り込みが原因としてのウエイトが重いようで・・・
しかし、「その1」は確認してみます。
「その2」はマイコンメーカーから提示されたのですが、保護機能を切ってしまうまたは遅れてしまうことになるので、難しいです。
「その3」も考えて見ますが、10円アップを許してくれるかどうか(量産になると価格管理が厳しいのです)
このマイコンは、すでに量産車へ使われている実績があってそれを当てにしていたので残念です。
(すでに売られているマイコンと車はどういう扱いになるのか)
No.1
- 回答日時:
膨大なオカネがかかるから、騒がないと動いてくれないと思います。
20年位前のIntelのペンティアムプロセッサのリコール事件も、
個別ユーザーがというより、世間的に騒がれたことが全数リコールにつながったようです。
参考URL:http://ja.wikipedia.org/wiki/Pentium_FDIV_%E3%83 …
この回答への補足
ありがとうございます。
ペンティアムのことは少し覚えています。
民生品にもリコールがあるんですね。
やはり声の大きさなのでしょうか。
マイコンメーカーの言われるとおり修正するならば、すでに売られてしまった車についているマイコンのソフトも直さなければならないので、自動車メーカーの判断によってはその車はリコールになるのでしょうか。
(ちなみに、その車はリコールで有名になったあのメーカーの車です)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
宮崎駿作品集15枚組を購入した...
-
chatGPTの利用に関して
-
CPUの温度を
-
LinuxではUTF8のBOMなし、UTF8...
-
プリンターのプロパティの動作...
-
【地球の未来】イーロン・マス...
-
Windows用アプリ作成方法
-
coPilotにかけられた、制限(?...
-
世界中で、人気のある、1000万...
-
サーフェスについて、「再起動...
-
PowerBIで最大値、最小値を表示...
-
ファイル名やフォルダ名に日本...
-
有線のキーボードやマウスをノ...
-
AI を おちょくる質問
-
Windowsでファイルを操作する場...
-
ファイルのタイムスタンプはミ...
-
フリーソフトはオープンソース...
-
【これからのAI時代はコンテキ...
-
色々な言語について。
-
マイナー保健証で、紙の時より...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PICの入出力切り替えの時間がプ...
-
16 bit timerで1秒を計る
-
arduinoで信号間の時間を計測し...
-
PICでパルス数をカウントし、カ...
-
PICでパルス数をカウントする方法
-
H8/3052 ディップスイッチについて
-
PICでスピードメーターを作...
-
SHマイコンについて
-
H8/3048 マイコンのプログラム...
-
C言語によるウェイト
-
プログラム言語
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
ライン数とステップ数の違いは?
-
アセンブラからC言語に変換する...
-
レジストってなんですか?
-
シーケンス制御についての質問...
-
シーケンサのデータレジスタD...
-
C言語で128bitの2進数のビット...
-
一般のソフトで画像を扱う場合...
おすすめ情報