スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ノイズ対策

今日はノイズ対策としてまずはソフトをいじる.通信エラーが出てもスタックしないようにIICをタイムアウト付きの割り込みに変更.さらに頭出し用のコード0x55AAを埋め込みノイズ侵入によるオーバランを一定バイト毎にリセットする処理を追加.ソフトの暴走は少しはマシになった.

が,エンコーダの信号が化けるのはダメ.コントローラ側で簡易デジタルフィルタ(dsPICに内蔵の機能)をかけてあり得るエンコーダ回転数よりも高い成分をカットしてみたが焼け石に水.
こうなると回路にも追加が必要だ.今回エンコーダラインは差動出力でない単なるオープンコレクタ出力なので特に弱い.過去にフォトカプラでゲート駆動の絶縁をやろうとした時にも強烈なコモンモードノイズが1次側のLEDをひとりでにONさせるポルターガイスト現象でさんざん悩んだパターンだ.
対策としてエンコーダの1次側LED入力がOFF時(光遮蔽時)に2次側出力が低インピーダンスとなるようにつなぎ替えて,電圧レベルも5Vにあげ,さらにシュミットトリガをくぐらせる作戦で行こうと思う.シュミットICはマイコン入力(3.3V)に対してトレラントバッファにもなるのでなかなか使いやすい.


スポンサーサイト

この記事へのコメント

- かみやん - 2009年02月19日 22:11:09

こんにちは。
質問たくさんです。「簡易デジタルフィルタ(dsPICに内蔵の機能)をかけてあり得るエンコーダ回転数よりも高い成分をカットしてみた」ですが、dsPICの機能ということは、どっかのレジスタをたたくとデジタルフィルタ機能をONにできるということですか?
「2次側出力が低インピーダンスとなるようにつなぎ替えて」というのは、信号の出力側に抵抗がつないであったが、抵抗値を減らしたということですか?遮光時は2次側はLowということですか?Lowの電圧を下げるということですか?上げるということですか?
相変わらず質問ばかりですみません。

- もやね - 2009年02月20日 01:31:37

かみやんさんまいど!
どんどん聞いてください!
dsPICの直交エンコーダは3クロックのロジック判定付きフィルタです.一定時間内に正しい順序でH-Lが来ているかどうかを判定しているみたいです.
設定は至って簡単です.レジスタでイネーブルしてカット周波数を選ぶだけです.
MicroChipのリファレンスマニュアルを参照してみてください.
http://ww1.microchip.com/downloads/en/DeviceDoc/DS70165D_JP.pdf
(日本語)ソフトで組むと結構面倒なのでなにげに役立ちます.
エンコーダの回路は抵抗を下げて電流をUPさせることと,できるだけOPENにならないようにしています.
GNDをできるだけ太くするのも大事です.
回路図っぽいもの載せておきますのでご覧下さい.回路図はフォトカプラの例です.エンコーダの場合はLEDは点灯しっぱなしなので受光側のみいじることになります.

- かみやん - 2009年02月20日 11:53:35

PDFみました。PICって日本語マニュアルあるのですね。H8以外のCPUのデータシートを見たことがありませんでした。
直交エンコーダ、めちゃめちゃ便利ですね。A相、B相、Z相まで対応しているとは。しかも4てい倍とかも取れるとは。H8の方はA相B相だけのアップダウンカウンタが1chついています。デジタルノイズフィルタやZ相でずれたときの割込はありません。(dsPICも1chですね)
2chついていると助かるのだが。
回路図まで用意していただいてありがとうございます。ちょっと出かけるのでまだ見れていませんので改めて、コメントします。

- もやね - 2009年02月20日 18:49:13

dsPICはモータ制御に使いやすいです.
私がいま実験で使っているdsPIC33FJ32MC302はエンコーダ入力2CHありますし,PWMも独立して5相まで出力可能なので通常のDCモータなら2個まで完全に制御できます.あ,あと速度計測に使うInputCapture端子も4CH付いてます.
「これで2輪独立車作ってください!」といわんばかりのナイスなマイコンです。

- かみやん - 2009年02月20日 19:03:28

をを~、エンコーダ2ch、PWM5ch、InputCapture4ch!すごいですね。
H8より全然よいですね。
私が使っているH8-3069は、2相エンコーダ1ch、PWM7ch(16bit x 3 + 8bit x4)、InputCapture 3ch。(全部兼用)
ちなみにdsPIC基板はディスクリートですか?既製品ですか?あとdsPICからはC言語がまともに使えるんですよね?(PICはアセンブラが主流のようですが)。統合開発環境ですか?gccとかですか?(H8はgccコマンドラインで開発してます)
dsPICに乗り換えようかな。
回路図、後ほどコメントします。

- かみやん - 2009年02月21日 15:13:10

回路図も用意してもらったのに全然理解できてないです。(スキル低っ)
LED側ですが、Tr1がOFFのときにLEDがONにすると低インピーダンスになるとありますが、低インピーダンスってなんですか?(LとかCとか出てこないときは、インピーダンス=Rでよいか、と思っていたのですが)
低インピーダンス=ノイズに強いというところもどういう意味でしょうか?
右側ですが、電流増加するとメリットがあるのですか?
接地が取れるとどんなメリットがあるのですか?
(つまり、説明を書いてもらったところが全部理解できていない。。)
質問ばかりで済みません。

- もやね - 2009年02月22日 01:52:21

かみやんさんどうも~
いやーすみません.じつは思いっきりウソを書いたかも知れません.(なにぶん,私もまだアナログ回路は勉強中なもので・・)右側のはとりあえず忘れてください!(ホントにすみません.)
LEDの方は結構効果あります.
低インピーダンス=抵抗が小さいく電流れやすいのイメージです.
上の回路ではトランジスタがOFFの時にLEDのカソード側がOPEN=どこにもつながってない=インピーダンスほぼ∞になってしまいます.
この状態はアンテナ線状態なのでノイズが入りやすく,飛んできたノイズでLEDが勝手にONする可能性があります.
下の図ではトランジスタがONでもOFFでも回路が閉じています.なのでノイズに強くなります.
なんとなく,イメージつかめましたでしょうか.

- もやね - 2009年02月22日 02:05:00

dsPICについてですが,H8よりも回路は簡単です.8bitのPICと同様にワンチップで発信回路まで内蔵してますので,外付け部品なしでとりあえず電源だけつなげば動きます.
ただ,書き込み器は専用のものが必要で,私はICD2(丸いヤツ)を買いました.
初期投資は書き込み器だけで,あとはMPLABと,Cコンパイラ(StudentEdition)は無償です.
もちろん,Cベース開発用のペリフェラルアクセス用のライブラリ,Math.hやstdio.hのおなじみライブラリもフリーで使えます.
H8に比べた欠点としてはROM,RAM容量がH8等に比べて小さいことと,クロックあたりの消費電力がやや高いことでしょうか.
ぜひぜひ,検討してみてください.

- かみやん - 2009年02月23日 12:06:07

ありがとうございます。なるほど、インピーダンス∞は、アンテナ線状態ということですね。わかりました。
左下の図ですが、Tr1がONのとき、Tr1側に電流がたくさん流れて、LED側には電流はあんまり流れないよ。ということだとは、思うのですが、LEDというのは、抵抗はある程度あるものなんですか?
dsPICよさそうですね~。H8+Toppersを使っていますが、ペリフェラル用ライブラリなし(シリアル通信のみ1chだけライブラリがあった)、Math.hなし、stdioなしでやっているので面倒すぎる。

- もやね - 2009年02月23日 19:48:42

かみやんさんこんばんは.
近頃は不況で帰りが早いのでロボモードの割合が増えてるもやねです.
(その分,お給料は減ってますが・・・)
回路図のLEDですが,おっしゃるとおり抵抗だと考えてもいいと思います.LEDにも電圧降下がありますし,電気を光に換えているので,電流は消費します.一方Tr1のON時の抵抗値はLEDの抵抗値に比べてきわめて小さいため,電流の大部分はTr側を流れるということだと思います.

- かみやん - 2009年02月24日 11:15:02

不況の波はうちも影響ありますね。私は固定給なので、早く帰ってもメリットないですけど(^^
LEDの件、ありがとうございました。理解できました。

LEDはアナログ素子? - わたなべ - 2009年04月09日 00:16:36

わたなべです。
課題は解決されているようなので今さらの話しなのですが。
かみやんさんのところの「2相パルス」の話し見て、
2相パルスの処理なんて紙の上ではいくらでも見てきましたが、実際にとらぶった事例の話しとしては
「おー、そうだよね。」と勉強になり、今回自分も二相パルスでの取り込みを行うもので。
フォトインタラプタは秋月のこれで
http://akizukidenshi.com/catalog/g/gI-02319/
受光側に電流でのヒス回路が付いているので便利そうです。
http://www.sharp.co.jp/products/device/lineup/data/pdf/datasheet/gp1a53hr_j.pdf
で、話しは違うのですが、こんなこともあるということで。
LEDの輝度はどんどん向上しているので、ちょっとしたリーク電流でもボンヤリと光ったりして。
そんな時はLEDに並列に抵抗を入れてバイパスさせるようなこともするようです。
フォトカプラもそのような使い方をすることもあるようで。
「フォトカプラの「ONとOFF」 フォトカプラ オプトエレクトロニクス 製品情報 NECエレクトロニクス」
http://www.necel.com/opto/ja/technology/onoff/index.html
またエミッタ接地でスイッチングに使う場合のトランジスタのベースエミッタ間につける抵抗の意味については以下の「抵抗R2」についてが参考になるかと思います。
「FAQ トランジスタ 個別半導体 半導体のローム ROHM」

リンク抜けてました。 - わたなべ - 2009年04月09日 00:20:06

すみません。リンク貼り忘れました。
>またエミッタ接地でスイッチングに使う場合のトランジスタのベースエミッタ間につける抵抗の意味については以下の「抵抗R2」についてが参考になるかと思います。
「FAQ トランジスタ 個別半導体 半導体のローム ROHM」
http://www.rohm.co.jp/products/discrete/transistor/faq.html

トラックバック

URL :

プロフィール

もやね

Author:もやね
長野県在住の会社員(メカニカル・エンジニア).
ロボットは完全な趣味としてやってます.
E-mail:
mo_ya_ne[a]yahoo.co.jp
[a]⇒@

最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
FC2カウンター
ブログ内検索
RSSフィード
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。