« 2018年12月 | トップページ | 2019年2月 »

2019年1月

2019年1月30日 (水)

1kHzの正弦波をDDSで発生

ちょいと仕事関係の「治具」製作の予備実験。
こんなのの出力波形を模擬します。
S2

風が当たるとクルクルと回って、内部の仕掛けが発電します。
出てくるのは風速に比例した正弦波交流。
風速、毎秒98メートル(むちゃ暴風だ)で1kHzの信号が出てくることになっています。
扇風機で風を送っても、そんなには回りませんので、これのつなぎ先の実験には模擬的な信号が必要です。
低周波オシレータをつないで、周波数から風速を逆算すれば良いんですが、治具となるとお手軽な操作が必須です。
そして必要な信号は「正弦波」。
1Hz~1kHzが出て欲しい。
まぁ、まっとうには「DDS」 用のICを使っての制御。
パルスをスイッチ・キャパシタ・フィルタを通して正弦波を得るなんて方法も考えられます。

アナデバのAD9833
を発注したんですが、手元にある部品だけでさっと作られないかと、試してみました。
最初はお手軽にArduino。
このページが参考になるかしら。
結局、Arduinoではなくこんな具合にATmega328Pで作ってみました。
Pr2r_2
・クロックは19.6608MHzに。
     (Arduino UNOは16MHz)
・R-2R抵抗ラダーで8bit D/Aを構成。
  2.5Vを中心に0~5Vを発生。
・周波数(風速)はデジタルスイッチで設定。
・最終出力は0Vを中心に、±5Vで出力。
・風速により出力レベルが変わるので、D/A値にVolume定数をかけて出力。
ざっとこんな回路に落ち着きました。
   ※これからケース入れ。
     電池で運用しますんで、5Vへの昇圧回路や-5V発生回路、
     Low BAT警報回路なんかも仕込みます。

ここで、DDSでの周波数関係を調べていると、「19.6608MHz」の水晶(シリアル通信ボーレート発生用として一般的)を使うと、「1Hz」単位の制御が割り切れるぞということが判明。
DDSのカウンタ加算値の計算、
   (「65536」 × 「sinテーブルのデータ数」 ÷ クロック周波数)  × 発生周波数
となります。
65536は32ビットの下位16ビットを小数部として使うための乗数です。
sinデータテーブルは2のn乗値で今回は1024。
クロック周波数はがマイコンが処理するタイマー割り込みの周波数。
このクロック周波数が「19.6608MHz」の水晶だと1/300すれば「65536Hz」となり、16ビットの小数部の値と割り切れて1になり、sinテーブルをアクセスするための値が、1Hz=1024となって1Hz単位での計算だと割り切れるので周波数発生での誤差が出ません。
こりゃ知らなんだ。
問題は65536HzでCで書いた割り込み処理プログラムが動くかどうか・・・
まず、準備として正弦波データの作成。
JGAWK でさくっと作ります。  コマンドプロンプトで起動(笑)
# SINデータ作成
# ±120で作成 1024データ
BEGIN{
    pai = atan2(0, -1)     # π = 3.14の値
    for(i = 0; i < 1024; i++){  # 1024データ
        if((i % 10) == 0){      # 1行に10データ
            n = i
            c = 0
            printf("\t")
        }
        printf("%4d,", 120*sin(((i / 1024) * 360) * pai / 180))
        c++
        if((i % 10) == 9){      # 10個目出力完了
            printf("\t// %d\n", n)
        }
    }
    while(c < 10){        # 最後の行
        printf("     ")
        c++
    }
    printf("\t// %d\n", n)
}
それをこんな具合にプログラム内に取り込みます。
/*****  SIN 0~1023      *****/
//  中央値:128 振幅±120
const PROGMEM int8_t sin_tbl[]={
       0,   0,   1,   2,   2,   3,   4,   5,   5,   6,  // 0
       7,   8,   8,   9,  10,  11,  11,  12,  13,  13,  // 10
      14,  15,  16,  16,  17,  18,  19,  19,  20,  21,  // 20
      21,  22,  23,  24,  24,  25,  26,  27,  27,  28,  // 30
      29,  29,  30,  31,  32,  32,  33,  34,  34,  35,  // 40
   :  :
     -17, -16, -16, -15, -14, -13, -13, -12, -11, -11,  // 1000
     -10,  -9,  -8,  -8,  -7,  -6,  -5,  -5,  -4,  -3,  // 1010
      -2,  -2,  -1,  -0,                                // 1020
};
DDS処理はタイマー1のコンペアマッチ割り込みで。
/*****  タイマー1割り込み      *****/
//  DDD処理を実行
//  dds_cntの上位16bit中10bitでサインテーブルを読み出す
SIGNAL(TIMER1_COMPA_vect)
{
int16_t d;      // ±の値で
    PB0_H;                      // (!!!) 14pin
    dds_cnt += dds_step;        // DDSカウンタをカウントアップ
    d = (int16_t)((int8_t)pgm_read_byte(&sin_tbl[(dds_cnt >> 16) & 0x03FF]));
                                // 0~1023でsin波形テーブルをアドレス
    d = d * dds_vol;            // 出力ゲイン *0~*256
    d = d / 256;                // MSBを使う
    PORTD = d + 128;            // 128がD/A出力の中央値
    PB0_L;                      // (!!!) 14pin
}
PB0に処理確認用パルスを出して、実行の様子をオシロで見られるようにしておきます。
こんな実行速度でした。
S1
ATmega328P、頑張ってます。
HになっているのがDDS処理の実行部分。
前後にレジスタのpush、pop処理が入ります。
この割り込み処理、どんなふうにコード展開されているか見てみると・・・
ちょいと長いですが・・・
SIGNAL(TIMER1_COMPA_vect)
668: 1f 92       push    r1         PUSH,POPは2クロックで実行
66a: 0f 92       push    r0
66c: 0f b6       in  r0, 0x3f
66e: 0f 92       push    r0
670: 11 24       eor r1, r1
672: 2f 93       push    r18
674: 3f 93       push    r19
676: 4f 93       push    r20
678: 5f 93       push    r21
67a: 6f 93       push    r22
67c: 7f 93       push    r23
67e: 8f 93       push    r24
680: 9f 93       push    r25
682: af 93       push    r26
684: bf 93       push    r27
686: ef 93       push    r30
688: ff 93       push    r31
------------------------------------------
68a: 28 9a       sbi 0x05, 0         PB0テストパルス
68c: 80 91 11 01 lds r24, 0x0111     DDSカウント値
690: 90 91 12 01 lds r25, 0x0112
694: a0 91 13 01 lds r26, 0x0113
698: b0 91 14 01 lds r27, 0x0114
69c: 40 91 17 01 lds r20, 0x0117     DDSステップ値
6a0: 50 91 18 01 lds r21, 0x0118
6a4: 60 91 19 01 lds r22, 0x0119
6a8: 70 91 1a 01 lds r23, 0x011A
6ac: 84 0f       add r24, r20        カウント値に
6ae: 95 1f       adc r25, r21         ステップ値を加算
6b0: a6 1f       adc r26, r22
6b2: b7 1f       adc r27, r23
6b4: 80 93 17 01 sts 0x0117, r24
6b8: 90 93 18 01 sts 0x0118, r25
6bc: a0 93 19 01 sts 0x0119, r26
6c0: b0 93 1a 01 sts 0x011A, r27
6c4: cd 01       movw    r24, r26   SIN波テーブルアドレス計算
6c6: aa 27       eor r26, r26
6c8: bb 27       eor r27, r27
6ca: 93 70       andi    r25, 0x03
6cc: aa 27       eor r26, r26
6ce: bb 27       eor r27, r27
6d0: fc 01       movw    r30, r24
6d2: e4 58       subi    r30, 0x84
6d4: ff 4f       sbci    r31, 0xFF
6d6: 64 91       lpm r22, Z         8bit SIN波テーブル読み出し
6d8: 40 91 1f 01 lds r20, 0x011F
6dc: 50 91 20 01 lds r21, 0x0120
6e0: 64 03       mulsu   r22, r20   VOLUME値を乗ずる
6e2: 90 01       movw    r18, r0
6e4: 65 9f       mul r22, r21
6e6: 30 0d       add r19, r0
6e8: 11 24       eor r1, r1
6ea: 37 ff       sbrs    r19, 7
6ec: 02 c0       rjmp    .+4   ;0x6f2
6ee: 21 50       subi    r18, 0x01
6f0: 3f 4f       sbci    r19, 0xFF
6f2: 83 2f       mov r24, r19
6f4: 80 58       subi    r24, 0x80   +128して2.5V中心に出力
6f6: 8b b9       out 0x0b, r24       D/A出力
6f8: 28 98       cbi 0x05, 0         PB0テストパルス
------------------------------------------
6fa: ff 91       pop r31
6fc: ef 91       pop r30
6fe: bf 91       pop r27
700: af 91       pop r26
702: 9f 91       pop r25
704: 8f 91       pop r24
706: 7f 91       pop r23
708: 6f 91       pop r22
70a: 5f 91       pop r21
70c: 4f 91       pop r20
70e: 3f 91       pop r19
710: 2f 91       pop r18
712: 0f 90       pop r0
714: 0f be       out 0x3f, r0
716: 0f 90       pop r0
718: 1f 90       pop r1
71a: 18 95       reti
push、popの時間合わせて3.5u秒くらい。
メインの処理が3u秒くらいなんで合わせて7u秒ほど。
割り込み周期15u秒の1/2ほどを使って、うまく実行できてます。
ケース入れが完了したら、あれこれまとめて報告しますね。

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

「ピピ」ちゃんお絵かき

正悟(次男)の「ピピ」ちゃんお絵かき。
色鉛筆で塗り塗り。
Image001

Image003

↓智ちゃん(女房)の頭上で休憩。
Image000

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

2019年1月25日 (金)

三和シャッター無線リモコンRAX-330コード設定

仕事場の※さまざまな電子機器、電子回路の修理依頼について をごらんになって、いろんな機器の修理相談が舞い込んできます。
皆さん困っておられるのが、旧タイプの無線リモコン。
メーカーに修理してもらえないのです。
三和シャッターの30MHz帯リモコンで、こんな依頼がありました。
  ・現用機の調子が悪い。
  ・ネットで中古の同型番リモコンを買った。
  ・しかし、コードが違うので使えない。
  ・コードを合わせて欲しい。
というのです。
左が新規に買われたリモコン。
見た目はキレイです。
11

しかし、新しいのの電池ホルダー部(単4×4本)をよく見てみると・・・
外観はキレイでも、電池の液漏れ跡。
12
スプリング電極を外して洗浄し、磨きます。
   ※腐食がひどい時は交換です
新リモコンは面実装ICが使われていましたが、機器コードの設定方法は新旧同じです。
13
10本あるジャンパー線を切断します。
    ※新基板はハンダ面にICが実装されている
14

送出コードを比較して正しく設定されたかを確認。
A1

電波の断続なんで、電波チェッカー で「音」になります。

現用品も電池液漏れの影響を受けていて、電池電極やボタンスイッチを交換しました。
終段回路の同調や、30MHzの信号強度を確認して作業は完了。
※参考
三和シャッター製リモコン RAX-330、RAX-110の修理メモ では送信電波を直接オシロで見ていましたが、電波チェッカーを使うと復調信号として波形を観察できます。

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

2019年1月24日 (木)

「明鏡止水」

冬の星座がラベルになった「一升瓶」。
ベテルギウスがほんのり赤くなっています。
長野県の「明鏡止水」の新酒でっす。

11

拡大↓
12

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

2019年1月18日 (金)

修理:LEDクリップライト、点滅!

「文鎮」 製造元の佐藤テック君からのhelp。
『機械の手元を照らしているクリップライトが点滅しだしたっ』っと。
11

クリップでどこにでも付けられて、頭はフレキで曲がるという仕掛けのもの。
電源をオンすると、5Hzくらいで点滅しちゃいます。
これでは使えません。
まずは、制御回路を拝見。
12

一次側と二次側の平滑コンデンサを新品にしてみましたが、状況は変わらず。
こんな制御チップです。
13

※検索 : LIS8512

使っていない足、切らずに残したまま使う足だけ基板にハンダしてあります。
まぁエエか。
LED部を取り出すと、10コのLEDが直列になっていました。
14

この右端の二つを指で押さえると全点灯するようになりました。
ハンダ付けの接触不良?かとハンダをやり直しても安定しません。
チップそのものを押さえると、治る時があるという状況。

別電源で駆動。
LED一つの電圧が約3V。
右から二つ目の↓
15
一つのパッケージに二つ発光部が入っています。
右端の↓  ハンダ付けをやり直しても一つしか光らず。
16

制御回路の様子を見てみると、定電流制御しているようで(約150mA)、この不安定な二つを短絡しても8つのLEDで光ります。

さてどうしたものかと思案。  8つにして修理完了とするか・・・
手持ちのLEDを探すと、この基板にハンダできる1Wクラスの白色LEDを発見。
不安定なのを取り外し、交換しました。

その光り具合がこれ。
17

右端の二つが交換したもの。
色がちょいと違いますが、交換品のほうが明るい。
この↑撮影。
リコーGX100でISO100、シャッター速度1/2000秒。F=9。
直視できないほど明るいです。
※過去記事 似たような故障
パナソニックLED電球 LDA7D-A1 寿命! :2016年01月03日

LED電球の故障、点滅=LEDそのものがアウトと故障診断できるかも。

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

2019年1月16日 (水)

修理:2.5Φステレオ・プラグGND部断裂

10年ほど前に買ってもらった大声トライアル
そのスタートがうまく行かない時があるということで、帰ってきました。
原因はスタートスイッチのケーブル先端に付けた2.5Φステレオ・プラグ。
このGND部金属が断裂して接触不良状態になっていました。

11

別の角度で。
12

無理なチカラがかかって、ポキッっということだったんでしょう。
スイッチそのものも接触不良が発生していたので、新品に交換しておきました。


※余談
ストックしてあったスイッチ↓(オムロンの照光スイッチ)で行こうかと調べましたところ・・・
21

導通チェッカーでの試験 だと、A接点が接触不良になるんです。
導通チェッカーの検査電圧・電流は「0.5V / 0.1mA」。
接点に流れる電流が小さいので、安定しないのでしょう。
接触抵抗が大きく出てしまい、ブザー報知が安定しません。
この↓右側の「ホロホロブザー」(3V / 20mA)だとちゃんと導通が
確認できますんで、接点そのものは生きています。
22

接点の定格を見ますと、微少負荷適用タイプでも「5V / 1mA」以下は接触不良の原因となるっと記されています。
FA用途で使う24Vだと0.2mA。
一般負荷用接点だと24Vで30mAほど流せっと。

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

2019年1月11日 (金)

修理:イグナイターの駆動デバイス交換

旧車愛好家からの修理依頼。
古い日産セドリック(といっても、半導体が使われている)のイグナイターの制御デバイスがおかしいようだから交換してみて欲しいということで作業を行いました。
交換デバイスは依頼者が手配。
日立製HF8311 という型番。
12
左のがアウトので取り外したもの。
右のが交換品。

イグナイターのコイルに張り付いています。
11

この交換作業で直ったのかどうか、現時点、まだ不明。
連絡待ちです。

  ※ばっちしエンジンが始動!とのことです。



不要になった古いデバイス、パッケージを開封してみました。
(クリックで拡大↓)
13

焦げた痕や断線した痕が見当たらないので、ほんとのこのデバイスが不調の原因だったのかはまだ不明。
メンテを頼んでいる車屋さんのご意見で、交換してみたらどうだろうかとなったそうです。
14

パワー段、トランジスタかサイリスタか? それともFET?
このイグナイターの後段にディストリビュータが来て、6つの点火プラグに高圧が分かれます。


※抵抗測定レンジの開放電圧がちょいとでも低いのっと探してみましたら、0.4Vのテスターが見つかりました。
テスター棒の先を触れられる部分4カ所の抵抗値を、+/-極性を変えて計ってみました。
11
同じ番号の所は導通あり。
その結果です。
赤  黒               黒・赤で
1 - 2  2.25kΩ      1.78kΩ
1 - 3  2.34kΩ      1.87kΩ
1 - 4  ∞           7.4MΩ
2 - 3  88Ω         88Ω
2 - 4  ∞           7.4MΩ
3 - 4  ∞           7.4MΩ

「∞」の所、極性を変えると、高い値ですが抵抗が出てきました。

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

2019年1月10日 (木)

バッテリー放電器の通信 トラブル事例

アルミケースが廃番になったため頒布を中止した放電特性記録機能付きバッテリー放電器
組み立て済み品の頒布 を案内していたのですが、この在庫もあと 二つ 一つ になりました。
この放電器、PCのCOMポートとつないでシリアル通信します。
放電条件の設定や、放電特性の記録をやりとりするのです。
こんな具合につながります。
左がPCのCOMポート。  右が放電器。
Rs232_1
放電器には9pinのオスコネクタ。
PCのオス9pinコネクタとは、両端にメスのコネクタをつけたストレートケーブルでつなぎます。
いわゆるRS-232Cでのシリアル通信なんですが、今ふうのPCにはCOMポート(D-SUB 9pinコネクタ)が備わっていません。
この放電器基板を作ったのが2005年。
当時のPC、たいていはCOMポートを装備していましたんで。
   ※WinXPの時代
COMポートの無いPC、そこで登場するのがUSB変換アダプタ。
ところが、この「接続用ストレートケーブルを省ける」んじゃないかと、こんなUSB変換アダプタを選ばれてしまうのです。
これだと、中継ケーブル無しで放電器のコネクタに 挿さります。
10
ところが、この「メス」コネクタのUSB変換アダプタは、PCのCOMポートに直挿ししてPC間で通信しようという用途。
TXDとRXDの信号の向き(入出力)が逆になっています。
これを放電器のオスコネクタに挿しても通信はできません。
   ※TXD:送信データどうしが衝突!

秋月電子の
を買っていただき、オス(USB)・オス(放電器)間両端メスのストレートケーブルでつないでもらうのが間違いありません。
   ※あるいはこんな中継コネクタ
      ミニジェンダーチェンジャー(9Pメス-9Pメス)

放電器側の9ピンコネクタを「メス」にして、「メス:PC/オス:放電器」のストレートケーブル(COMポートの延長ケーブル)でつなぐように設計しておけば良かったんですが・・・

※現状のまま、放電器のコネクタをオス→メスに変えると・・・使えそうな気がしますが、ピン番号の並びがひっくり返ってしまって使えません。

アマゾンの変換アダプタのカスタマーレビュー にも「クロス接続」云々という話が出ています。
まさにこれです。

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

女房、インフルAを発症!

いつも頑丈な女房。
一昨日から発熱。
さっき、ご近所のかかりつけ医へ行ってきたとメール着信。
「インフルエンザA型」だって。
『たぶん、ご主人にうつりますよ(笑)』っと先生が言ってたと。

カゼ、一番に私がひいて、それが家族に広がるというのがいつものパターン。
さて、今回は・・・・

※昨年の
撃墜された~  インフルB
     しっかり女房にうつしてました


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

2019年1月 8日 (火)

サトーパーツのクリップ:C-100

試しに買ってみました。
 ・C-100クリップ

11

とりあえず、黒と赤を一つずつ。
  ※シンチュウの輪っかはこちらでハンダ付けしたもの。
端子台のネジをはさむのに特化した口先。
エエ感じの口先です↓。
12

常用しているのはミヤマ電器のMJ-008 :いわゆるミノムシクリップ。
   ※ワニロクリップ じゃない。
      →ワニ口クリップ で検索。
13
これでネジ頭をつかむと、グラグラしてよくありません。
C-100だとこんな具合にしっかりと。
14

とりあえず2個しか買っていないので、リード線を引き出すんじゃなく、テスター棒や別のクリップ、オシロのプローブを当たれるようにシンチュウ棒をハンダしてみました。
15

クリップ本体(C-100-K)と、6色そろった絶縁カバー(C-100-C)を別個に注文できるようです。

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

2019年1月 5日 (土)

「川面観測中」って?!

恒例の年末夜警。
12月29日と30日の二日間、夜8時頃から町会の皆さんで夜警を行っています。
その時の話です。
「下間君、こんなのがこの前から着いているんやけど・・・」と平野川横の道を歩いている時に教えてもらいました。
明るくなってから見に行くとこんな様子。

11

12

「川面観測中」「触れぬようにお願いします」っとテープを貼られた板が防護柵にくっつけてあって、川面のほうにカメラ(らしきもの)が取り付けられています。

13

盗難防止用にワイヤーと錠前が付けられていますが、細工は素人っぽい。

14

15

16

平野川の管轄は「大阪府寝屋川水系改修工営所」。
公的なものだと役所の名前が記されているでしょうし、学術的なものだと連絡先くらいは書いておくでしょう。
誰かの個人的興味で設置したものなのでしょうか?

それにしてもこのカメラ、ほんとにちゃんと動いているのか?
どこからも電源は供給されていないいないようだし、インターバル撮影するにしても電池運用だと電池容量が厳しいでしょう?
太陽電池で充電している様子は無いし。

なんとなく気持ち悪いんで、役所に問い合わせてみます。

※参考
大阪府河川カメラ

※その後
工営所から電話連絡があり、
 ・「大阪大学」が研究のために設置した。
 ・こちらには設置の届けがされている。
 ・所有者を記さなかったのはごめんなさいと。
ということです。

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

2019年1月 1日 (火)

2019年もよろしくです。

コザクラインコの「ピピ」です。

本年もよろしく。
A1

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

« 2018年12月 | トップページ | 2019年2月 »