電子回路工作

2018年6月21日 (木)

失敗! 24Vを接触させてもた

たまには失敗を。
RX220(48pin)マイコンを使った実験回路。

  ・はじめてのロータリーエンコーダー  とは、違うものです
通電しながらごそごそしてたら、24V電源がこの回路に接触!
「バチっ」っとクリップに火花が散って、マイコンが死にました。
実験用試作回路ですんで、ピッチ変換基板を使ってユニバーサル基板に組んでます。
このマイコンの手持ち、たまたまチップ単体じゃなく、ピッチ変換基板にハンダ済みのしかなかったんで、めんどうなことになりました。
チップの損傷が明らかな時の修理手法は、「基板の救出優先」で、ICの足を切断して基板から取り外しちゃいます。
この場合、基板のパターンを生かしておくのが第一。
手元にチップそのものがあれば、それを再ハンダしてプログラムを再書き込みすればよかったんですが、今回のトラブルでは、新品ICは変換基板に乗ってます。
   (・・・ICをながめながら途方にくれる私)
なんとか、実験を続けたいんで、今度は「IC優先」の作業をしなくちゃなりません。
ICを生かしたままピッチ変換基板から外す… ちょいと怖いのでパスです。
そこで、ユニバーサル基板上の変換基板(死んだICが乗っている)への配線をきちんと外し、新しいピッチ変換基板に乗せかえ、そして外した配線を元通りに。
面倒でも、こんな作業をしなくちゃなりません。
回路図と照合しながら、配線の取り外しと再配線。
これをあわてて間違ってしまうと動きませんので。

24Vが加わったかもしれない他もパーツも安心のために交換。

手間はかかりますが、しかたありません。

取り外したピッチ変換基板に乗ったIC(死んでる)。
悔しさまぎれにハンダ付けを外してみました。

11

四方向の足にハンダを盛って、コテで順に加熱。
ハンダが溶けた状態を見計らって、基板に「コン」っとショックを。
ポロリと外れます。

| | コメント (0) | トラックバック (0)

2018年6月18日 (月)

ロータリーエンコーダでグルグル回る角度を読み取る

RX220マイコンで2相パルスカウント:グルグル回る角度を の具体的なプログラムです。
  ※初期化部分は省略
このルーチン、最新カウント値が欲しい時だけでなく、オーバーフローをチェックするため定期的に呼び出してください。
  ※表示の関係で全角スペースを使っています

/****************************************/
/*   2相パルスカウント        */
/****************************************/
// 16bit up/downカウンタのオーバーフローをチェック
// 4逓倍で1回転1200パルス
long cnt_old;        // 前回カウンタ
WORD cnt_read;       // 読み出したカウント値 0~1199
WORD cnt_offset;      // カウンタオフセット値 0~1199
#define PLS_1200  1200  // 1200パルス/360度
#define PLS_CW   736   // CW: 65536 % 1200 = 736を加算
#define PLS_CCW   464   // CCW: 1200 - 736 = 464を加算

/***** カウンタ読み出し    *****/
// 0~1199の値を持ってリターン
// 16bitカウンタのオーバーフローをチェックしながら
// カウント1で0.3度
WORD cntread(void)
{
long cnt;
WORD a;
  cnt = (long)MTU1.TCNT;         // 16biカウンタ→longに
  if((labs(cnt - cnt_old)) >= 32768L){  // オーバーフロー発生
    P30_H;             // (!!!) P30 10pin H/L
    a = cnt_offset;         // オフセット値
    if(cnt < cnt_old){       // 右回転
      a = a + PLS_CW;       // +736
    }
    else{              // 左回転
      a = a + PLS_CCW;      // +464
    }
    cnt_offset = a % PLS_1200;   // 新オフセット値:1200で割ったあまり
  }
  else{                // 通常カウント
    P30_L;             // (!!!)
  }
  cnt_old = cnt;           // 次回チェック値
  a = (WORD)(cnt % PLS_1200);     // 16biカウンタ 1200パルスで割った余り
  cnt_read = (a + cnt_offset) % PLS_1200; // オフセット加算
  return cnt_read;          // 0~1199の値
}

※出力ポート「P30」にパルスを出すことで、オーバーフローのタイミングをオシロで観察できるようにしています。

| | コメント (6) | トラックバック (0)

2018年6月17日 (日)

RX220マイコンで2相パルスカウント:グルグル回る角度を

※前記事
今回の試作(とある装置の性能評価用ジグ)、目的はグルグル回る0~360度の角度計測です。
 (0.3度分解能で)
小さなロータリーエンコーダを選んだのは、小さな起動トルク小さなイナーシャが測定系にとって魅力だったから。
形状の大きなエンコーダだと、もっといろんなパルス数のが手に入りますが、この大きさで300パルスという分解能は十分にありがたい性能です。
48ピンですが、小さくても32ビット・マイコン。
二つのタイマーカウンタ・モジュールで位相計数モード(2相パルスをカウント)が利用できます。
ハード的には、こんな感じでこのエンコーダと接続しています。
A1
  ※今回使ったのは一つだけ。 もう一系統のカウント入力は
    空いています。
イニシャルだけしておけば、ソフトであれこれしなくてもカウント値を読み出すだけで「現在位置」が分かるという仕掛けです。
ほんとにお手軽。
ただし、カウンタは16ビットなんで、カウント範囲は「0~65535」。
ソフト的に何らかの処理を入れないと、「何回転もグルグル回る用途」では使えません。
今回のエンコーダは1200パルスなんで、手を入れない場合の回転回数は「54回転」までになります。
55回転目になると「65535」を超えて一周回ってしまいます。
それを描いてみました。
Ov2

オーバーフローするかも? そんな数値の処理 では、符号付きの16ビット値を考えていましたが、今回は符号なしの数値です。
右回りでカウントアップしている時は、カウント値を1200パルス割った余り、つまり「0~1199」の値に「3」を乗じれば「0.1度」単位の回転角が得られます。
しかし、正しいのは54回転目まで。
55回転目になると、その途中で「65535→0」のオーバーフローが発生して、それより右に回ると正しい角度が得られません。
そして、左回りだと、いきなり「0→65535」となります。
ほんとは「0度→359.7度」なのに、剰余は「735」となり、角度に直すと「220.5度」になってしまい間違った値が出てきます。

通常のグルグル回らないup/downカウンタ(上限値、下限値がある)だと、16ビットの高速カウンタをベースに、定期的にオーバーフローを監視することでソフト的に上位桁を作リ出し、カウント桁数を増やします。
1mS程度の周期で監視できるのなら、ベースにしたカウンタの応答速度を低下させることなく桁数を増やせるでしょう。

ところが、今回はグルグル回る処理をしなければなりません。
上位の桁数を増やしても、いつかは頭打ちになってしまいます。

そこで、考えを変えます。
数値として欲しいのは回転角度です。
つまり、、エンコーダの1回転カウント値である「0~1199」です。
軸が何回転したのかの情報は不要です。 
    (カウント値1200以上の値は不要)
マイコンの内蔵カウンタが「カウント範囲を0~1199にする」なん
ていう機能を持っていれば良いのですが・・・
  ※コンペアマッチでゼロクリアーという機能は
    あるが、up/downカウンタでは使えない。
(1)  まずは、オーバーフローとアンダーフローのチェックです。
  前回にカウンタを読み出した時の値を覚えておき、前回値と今回値の
  差の絶対値が16ビット値の半分、「32767」より大きかったらオーバー
  フローが発生したと判断します。
    ※32767以下なら、65536←→0 の点を通過していない。
(2) 差の正負により、右回転のオーバーフローか左回転のオーバーフロー
  (アンダーフロー)かを判断します。
(3) 右回転のOVFなら、「一周分65536を1200で割った余り=736」を、
  今回カウンタの値から算出したカウント値(0~1199)に加えます。
    (それをさらに1200の剰余を計算し0~1199を算出)
  「736」はオフセット値として記録しておき、オーバーフロー発生ごとに
  736をオフセット値に加算します。 
    (加算後のオフセット値も剰余計算で0~1199にしておく)
  これで右回転の時の補正が完了します。
    ※1回転目のオーバーフロー「65535→0」は「735→0」ではなく
      「735→736」となる
(4) 同じように左回転のOVFでは、「-736」をオフセットにすれば良いのですが、
  せっかくですんで、マイナスの値は使わずに1200に対する補数である
  「464」をオフセット値に加算することにします。
  この、加算処理後も剰余計算で0~1199にしておきます。
(5) カウント値、オフセット値とも1200の剰余計算で0~1199にすることで、
  桁あふれなくグルグル回る軸の回転角度を「符号無し16bit値」で計算する
  ことが可能になります。
こんな考えでプログラムを組んで、グルグル回る角度の値を算出します。

| | コメント (0) | トラックバック (0)

円周360度を測る時:1回転300パルス、中途半端じゃない

はじめてのロータリーエンコーダーRE12D-300(1回転300パルス)360度を測る時、「300」だと中途半端な気がしますよね。
でも、これ。 「1回転300パルス」が意外と使えるんです。
「1度」単位の計測だと確かに中途半端です。
『360パルスのエンコーダが欲しいよぅ』となるんですが、「0.1度」単位の計測だと300パルスでもうまくいくんです。
1回転300パルスを4逓倍すると、1回転が1200パルスになります。
カウントが1パルス進むと、角度だと「360度÷1200パルス」で「0.3度」進みます。
つまり、角度の最小桁を「0.1度」とすると、カウント値を3倍するだけで「0.3度」の分解能で角度が計算できるわけです。
最小桁の表示を0.1度にすると、四捨五入計算の必要がありません。
「360パルス」のエンコーダだと、1度桁での表示ではきっちり出るんですが、4逓倍すると「1カウントが0.25度」になってしまい、表示が「0.1度」だと四捨五入処理が必要になってしまいます。
かといって「0.01桁」まで表示しても「1/4度」が最小分解能ですんで、わざわざ桁を増やす意味がありません。

1回転300パルスのロータリーエンコーダと「360度」、「0.1度表示」だと、ちょいと相性が良いのです。
  (でも、絶対的な分解能は0.3度ね)

※しかし
問題はこれをカウントするup/downカウンタ。
360度をグルグル回して0~359度(0.1度単位なので0.0~359.7度)を数えるには、パルス数0~1199をカウントしなくちゃなりません。
upカウントだけなら10進カウンタ2つに12進カウンタで0→1199をカウントできます。
アップパルスが入って「1200」到達で「0」にクリアという処理です。
   (あるいは1199の次のアップパルスで0にという言い方)

しかし、downカウントとなると、「0の次のダウンカウントパルスで1199」ということにしなくてはなりません。

※続き
RX220マイコンで2相パルスカウント:グルグル回る角度を


| | コメント (0) | トラックバック (0)

2018年6月16日 (土)

はじめてのロータリーエンコーダー

過去、ロータリーエンコーダーなどの2相パルス出力装置、あれこれ使ってきましたがここまで小さな精密エンコーダは初体験。
コパルの「RE12D-300」。
ちょいと、実験で使います。
12

この大きさで1回転300パルス。
4逓倍すると1200パルスになります。
取り付けネジはM2。
出力はTTLなんで、インターフェースも簡単。

マルツ・日本橋店 に注文したら、翌日に入荷しました。

※実験回路はルネサスの「RX220」マイコン。
11

使ったのは48ピンのものなんですが、ポートの並びがぐちゃぐちゃ(PICやAVRマイコンのように8ビットのポートが順に並んでいない)。
あまり使いやすくはありません。
「NC」ピンが2つもあるし、もったいないのだ。

※関連
メカのようでもあり電気のようでもあり
オーバーフローするかも? そんな数値の処理

※続き
円周360度を測る時:1回転300パルス、中途半端じゃない
RX220マイコンで2相パルスカウント:グルグル回る角度を


| | コメント (0) | トラックバック (0)

2018年6月12日 (火)

トラ技2018年7月号付録

11

タイトル、『あなたの知らないコネクタのお話』
この別冊付録の中に、どういうわけか「B-29」の写真…二次大戦の爆撃機ね。
12

キャプションが「±60℃を超える冷熱衝撃の影響で制御不能になったB-29の試作機」っと。
ハンダ付け部が強烈な温度変化に耐えられず、接続部が破断。
これが原因で試作機が制御不能になって墜落したんだそうです。
関連、このあたりかな。

 

| | コメント (0) | トラックバック (0)

2018年6月 8日 (金)

文鎮:ハンダ付け補助ツール、やっぱしSUS304がいいかも

※ハンダ付け補助ツール(文鎮)まとめ を見ていただくとわかりますが、2015年11月 に素材が「SUS304(ステンレス)」の文鎮を頒布しています。
それもその時のお代は「1200円」。

これ、むちゃ安価だったんです。
たまたま、製造元である佐藤テック君のところに、適当な大きさのSUS304の材料が残っていたからというのが主たる理由です。
このときに、文鎮に使えるSUS304の材料を全部使ってしまったもんだから、その後に製作の文鎮、基本は
黒染めメッキしたり塗装したり、あるいは「生」のままだったりと、状況によりその頒布形態は変動しています。
      ※リン青銅の文鎮  ←ほんとにもうこれが最後。

佐藤テック君が文鎮を作るタイミング、「端材が出たから」というのがきっかけになるわけですが、「加工に失敗したその残り」、これが文鎮になっている場合もあります。
だもんで、「文鎮がいつできるかは不明」な状態になっています。

で、ガレージで一杯やりながら『SUS304のを新規に作ったらどうなるだろ』を話してました。
SUS304のフラットバー(定尺4mになる)を買って、それを切断して表面加工や端面仕上げ、面取り、M5のタップを立てて完成。

材料費とこの工程の加工賃・・・・・合わせていくらになる?

佐藤テック君からの回答です。
  ・厚み16mm(15mmかも)のSUS304。
  ・お代は、一つ「1900円」。
  ・SUS材のキャップボルトと平ワッシャを添付。
  ・クリックポスト(164円)で発送(最大2個まで)。
そして、次が難関か・・・
  ・リクエストの合計数=20個は必要!
ということで、20個集まったらSU304の文鎮製作を進めるっと。
欲しい方、この記事に必要数と連絡用メールアドレスを記入してコメントしてください!
20個以上集まれば、SUS304のハンダ付け補助ツールができてきます。
※鉄の文鎮は、これまでどおり、端材が出たタイミングで作るということです。

| | コメント (6) | トラックバック (0)

2018年6月 6日 (水)

マイコンのリセット回路

古いCPUを使った工作で、「回路の消費電流が小さいと、マイコンのパワーオンリセットがうまくいかない」問題に悩んでおられるようです。

これ、原因の一部はシュミット入力のヒステリシスは電源電圧に依存するということ。
リセット検出ラインがシュミットになっているんで、ついつい安心してしまうんですが、中途半端な電圧低下だとリセットパルスが出てきません。
ちゃんとするには、「電圧低下」をきちんと検出して、リセットタイミングを作るコンデンサを放電しなければなりません。

BOD回路がマイコンに内蔵されていたら積極的に使いましょう。
しかし、便利なBOD、古~いマイコンには搭載されてません。

そこで外付けの電圧検出ICの出番です。
手抜きのパワーオンリセット回路がこれ。
電源電圧が落ちると、ダイオードを通してコンデンサが放電。
次回のパワーオンではリセットパルスが出るだろうと。
Q1
しかし、電源電圧低下が中途半端だとアウト。
リセット起動に失敗します。

その具体例を引っ張り出してきました。「TK-80」の回路図です。

R2

   ※図面の日付 : 1976年6月10日  設計:T.Goto さん。

01

クロックジェネレータのリセット入力に、リセットボタンとともにつながっています。
特徴的なのが「Vbb -5V」の発生。
クロック出力を倍電圧(P-P値)整流しています。
8080は+5V、+12v、-5Vの3電源。
TK-80の-5Vは基板内で作っていましたんで、5Vと12Vで動いていました。

昔、リセットIC(電圧検出)でよく使っていたのがこんな回路。
Q2
「PST600」はミツミ製。
オープンコレクタなんで、外部からもリセット信号を与えることができます。
その後、消費電流が小さなS-80845(セイコーインスツル)に代替わり。
Q3
リセットスイッチ、コンデンサを直にGNDに落とすんではなく突入電流制限抵抗(100Ωでok)を入れておくと安心。
このあたりの具体例。  私の製作物から。
  (クリックで拡大↓)
R1
    ※この図は1989年10月 PC-9801のOrCADで書いてます。

マイコンは日立の「63701」。
リセットICはPST-520。
    ※プルアップ抵抗は集合抵抗でして、図の範囲外にいます
シュミットで受けて、さらに遅延させてリセット信号を発生。
リセットがLになる前に、NMI信号を発生させて「停電」を通知。
左下にはスーパーCAPによるバックアップ回路。

最近になると、マイコンのデバッグツールが出すリセットパルスを考えておかなくてはなりません。
従来のパワーオンリセット回路につなぐと、リセット時間が長くってデバッグツールが動いてくれません。
そこで、こんな対策をすることになります。
Q4
パワーオンリセットとデバッガからのリセット信号をゲートでOR。
しかしこれは面倒。

そこで、最近はこんなリセットICを使っています。
オープンコレクタ(オープンドレイン)ではなくCMOS出力。
ただし、デバッガーのリセット出力とは直接つなげません。
そこで、間に抵抗を挿入。
デバッガーのリセット信号を優先するようにしときます。
Q5

「BD5345」は、外付けCTでリセット時間が決まります。
もうひとつ、こんなの。
Q6
「STM811」は、リセット時間は内部固定で、外付けのリセットボタンをつなげるようになっています。
最近のリセットIC、いろんな検出電圧のが入手できるんで適材適所で。

| | コメント (5) | トラックバック (0)

2018年6月 5日 (火)

やっぱ、おかしいパナの「HCリレー」

過去記事に何度か登場している松下の「HCリレー」。
今回の修理作業でもおかしなのが出てきました。

21
※過去記事
2010年02月24日:壮絶死#10 接点がパ~になった「松下」のHCリレー

開閉しているのは負荷が「35Wモータ」の出力線と基板内部回路の切り替え。
モータ開閉側のB接点はブレーキ抵抗につながっています。

今回の故障は、このリレーの接触不良で「たまにおかしくなる」という故障が発生。
交換したら正常に。
見た目、接点は汚れていません。
しかし、気になるのがこれ。
22

2回路ある片側の「ベロ」だけが変色。
24

もう片方はキレイなまま。
「ベロ」を挟み込んでいる樹脂から、何かがしみ出してきているようにも見えます。
25
(クリックで拡大↓)
26
基板に実装すると接点があるほうが「下」になるんで、樹脂からの怪しい何かが「降りて」来ているようにも見えるでしょう。
しかし、なぜ、片側のベロだけに・・・

接点の接触抵抗を計ってみましたが、そんなむちゃむちゃな値じゃありません。
23

左上の箱が「1A出力の定電流源」。
四端子法で電圧ドロップを測定して接触抵抗を算出。
ざっとの結果。
・リレー1:
   A1 10m~20mΩ  モータ出力開閉
   B1 9.9~13.8mΩ  B接点はブレーキの抵抗に
   A2 34~150mΩ ←おかしな接点 変色側
   B2 36~120mΩ ←
・リレー2:
   A1 8.8~9.6mΩ
   B1 9.5~16.2mΩ
   A2 14~84mΩ ←
   B2 8.0~8.1mΩ
変色ベロ側の接触抵抗、接点の開閉により大きく変動して、安定しません。
故障の頻度からすると、もっと何度も開閉するような連続テストをしなくちゃならないようですが…

変色側の回路は内部回路につながっているほうで、こっちのほうが接触不良に弱い。
今回のリレー、モータ側の接点は大丈夫そう。
この装置、うちで設計製作したものじゃなく「忘れた頃にやってくる修理依頼品」。
今回のも、10年以上前に作られたもの。
その修理です。
悪いのはリレーだけじゃなく…
   3端子レギュレーターがアウトに
   抵抗の焼損
   トライアックの短絡
   ボリュームが接触不良
   電解コンデンサの寿命
   OP-AMPが飛び
   トランス(電源トランスにトリガ用のパルストランス)断線
などなど、ちょいとしたパワー回路なんで、いろんな故障が発生します。
このダイオードの不良 も同じシリーズの修理対象物です(基板のバージョンは異なるが)
パナのHCリレーに関するトラブル、自分の設計じゃないので深くは追求はしないんですが、やっぱり気になってしまいます。

※オムロンのリレーにかえたいのですが、パナの端子形状が細く(AP332431F)、オムロンのでは基板のスルーホールに入らないのです。

※参考
1A定電流回路  「555」の応用回路です


※追記
どのみち捨ててしまうものだから、可動部をバラして接点ベロの樹脂内の様子を観察しました。
11

右の金属は、通電オンでコイルにくっつく可動鉄片。
そこにも、サビのようなものが浮かんでいます。
フラクタル様な図形・・・
13
いったこれは何?

ベロを保持している樹脂を割ってみると、健全に見えた方(上側)にも変色が見られます。
14

もう一つのほうも。
15

モータの回路を断続している方の接点(上の写真の右上)は消耗していますが、内部回路を切り替えている右下の接点はぱっと見大丈夫そうです。
しかし、下の接点には、左のほうから怪しげな「模様」が近づいています。
樹脂から出た怪しい何かが悪さをしているような気がします。

| | コメント (0) | トラックバック (0)

2018年6月 4日 (月)

磁石でオン/オフ

「磁石」の検出に、使い慣れたホールICを注文しようとしたら、いつのまにか製造中止。
ATS137 : Dig-iKey

10

N極、S極どちらか一方だけを検出する「ユニポーラ」特性になっています。

Mag12

内部はこんな仕掛け(ブロック図)
Z3_
電源電圧3.5~20Vでオープンコレクタ。
保護ダイオードが入っているんで、電源の極性ミスに対して、ちょいと安心。

これを使ったツール、トラ技・2015年2月号 、「私の部品箱」の載せてもらっています。
それがこんな回路。
Z5_
このホールICを使って、磁石のNとSを調べようというものです。
こんな外観。
11
百均の「LEDツリー」にぶら下がる電池ボックスです。
単3電池2本で、パワースイッチ(スライドスイッチ)が付いています。
この、電池1本分のスペースに回路を組み込みました。

12

これの他、こんなツールも作っています。
例えば、何かの回転体に磁石を貼り付けてホールICを近づけると、その回転に同期したオン・オフ信号が得られます。
それをオシロや周波数カウンタで見るためのツールです。
回路図↓
Mag11
これの外観
13

白い2pコネクタ(JST XHコネクタ)から信号を取り出します。
これも単3電池1本で動作。
14

ホールICは箱の先端にくっつけています。
15

磁気ですんで、樹脂は透過するんですが、センサーの裏表が分かるように穴を空けています。
例えば、こんな応用。
ステップモータの回転軸に磁石をぺたり。
18
磁石がセンサーに近づくと、LEDが点灯するとともに、信号がオン。
19
モータ軸が、どのくらいの回転数で回っているか、計ることができます。

ATS137の代替品を探しておかなくてはなりません。
※Diodes IncのホールIC、AH337が新規採用非推奨、
オープンドレインのAH3362、AH3363が現行品のようです。


| | コメント (0) | トラックバック (0)

より以前の記事一覧