12V – 140V DC/DC の仮組みと IN-9 点灯確認 その2

2012-12-23 15.46.36

先日仮組みした、MC34063A / NJM2360A の昇圧回路で使用している部品を交換して確認。ダイオードが耐圧 100V の普通のをさしてたというオチがありまして、これを 1NU41 の SBD に交換。電流制限抵抗は 0.3Ω で。この状態で無負荷 140V の設定で 125V の出力となりますが、各パーツの発熱は無いと言っていいくらいになりました。電流制限抵抗外すと出力電圧は少し負荷が重くなっても変動しなくなりますが、スイッチも負荷がかかるので実際には 2A 相当を目処に 0.15Ω あたりで電流制限しつつ、FET に小さなヒートシンクを付けて十分安定させる感じが一番いいように思います。

これが、IN-9 のネオン管じゃなくて、IN-13 のニキシー管ならほぼ 1/3 の電流で駆動出来るのでもっと楽チンなのですが、さすがにありません。

新しいオシロ到着

2011-12-22 11.19.19

以前 20MHz まで測れる Kenwood のアナログオシロを持っていましたが、さすがにデカイ、重い、古いの理由で処分して以来オシロ無しの生活でありました。最近になってやぱり測りたいというのが出てきましたので、デジタルオシロを購入するはこびとなりました。ATTEN ADS1062C という 60MHz / 500MSa/s の求めやすいタイプです。付属品は

  • 本体
  • 60MHz 対応のプローブ2本 (購入にあたり参考にした他の方は 100M プローブ付属と書かれてましたが残念)
  • USBケーブル
  • マニュアル(英語)
  • ドラバイが入ってると思われる CDR

でしたので、恵まれてますかね。

2011-12-22 11.37.34

ということで、コタツの上でさっそく動作確認だけでも思い 1kHz の出力を入れて表示されるのを確認。p-p とか周波数とか表示してくれるのいいですね。基本部分は動いているので良しとしましょう。

なお、PCでキャプチャできるソフトとドライバが CDR にはいっていましたが、vmware の仮想マシン Windows XP 32ビット板(.NET Framework 4 Client Profile まで導入済み)の環境に入れましたが、見事に通信不可で動きませんでした。まぁ。USB フラッシュメモリに画面イメージは保存出来るのでいいといえばいいのですが… なんにせよ、相当古い機種で在庫放出みたいな製品ゆえというやつです。

Si4735 ラジオモジュールのブレッドボードからユニバーサル基板へ組み換え

2012-12-21 17.09.33

先日まで、ブレッドボード上であれこれ確認しながら使用していましたが、仕様もほぼかたまったのでユニバーサル基板へのせかえしたいと思います。今回は多分シリコンハウスで買ったと思う正方形の両面スルーホールのユニバーサル基板です。普段はベークの基板使いますが、今回は緑色のレジストのを使いました。なんとなくちゃんとした基板に見えるという見た目で選択です。

まだ、タクトスイッチの結線はしていませんが、今日のところはラジオ本体のハンダ付けは終わりまして、放送受信出来るのを確認。ここまで出来たら、コネクタの線の長さを調整しつつプラ板の取り付け位置を決めたいと思います。

Si4735 ラジオモジュールのケース検討

2012-12-19 21.46.46

ラジオモジュールの基本的な動作は実装出来たので、ぼちぼちケースにでも思いつつも、アルミのケースをハンドニブラで穴開けする気力もなく。さりとて裸のままもどうしたものかという状態。ダイソーで「カードスタンド-V 3」というのを文具コーナーで見つけまして買ってきた次第。飲食店などで、予約席とかを表示するのによく使われてるやつですよね。

大きさは横幅約18センチ×たて6センチメートルのメタクリル樹脂という材質で出来ているようです。さわった感じはやわらかいのでカッターなどでもなんとか加工出来そうな雰囲気はあります。ということで、今回はこれをケース代りにしてしまおうと思います。

テスト的に、液晶モジュールを挟んでみたところ、ん~ちょっと微妙という感じはします。液晶を挟んでるところが黒くなるとかは無かったのでまぁいいかなと。右側にタクトスチッチの基板をネジ止めして底辺に本体の基板と電池ボックス付けたら終りという感じです。ちなみに、下のネオン管も長さ的にどうかなと思って置いてみただけなのですが、固定の方法は考えないといけませんがなかなか良い感じではあります。なお今回のラジオモジュールでは使用しません。

12V – 140V DC/DC の仮組みと IN-9 点灯確認

2012-12-17 11.07.52

作成と言っても、とりあえずテストしてみようということで、衆議院選挙の投票のあとに日本橋行きましてパーツ購入。

201212161128

電流制限なし、FETの保護回路もない手抜きですがブレッドボードに一度組んでみまして、こんなんで 140V くらい出せるかなと動作確認。結果は動くんですけど、FET が熱持つなぁ。ヒートシンク必要な感じなので、付けたら問題にはならないと思いますがゲートの抵抗小さくしてみるのと、違うの差して見ますかね。という程度。といっても日本橋で普通に買えるのも知れてるし。という状態。秋月あたりで安いFET 通販してみましょかね。どっちにしても、140Vで30mAだと5W弱なので、そんなもんかなぁという感じはしてます。

とりあえず、IN-9のネオン管は普通に点灯出来ますので、急ぎではないです。MC34063 のDC/DC なんてSPICEで事前チェック出来るんかな?アナログオシロ捨ててからオシロ無しでしたが、ゲート電圧見たいので3万ちょいの低スペオシロを手配しました。むむ

このあと、ゲートに2SA1015付けてゲートの電荷を流すように変えたら発熱はほぼいいでしょうという状態に改善したので、定番の回路が勝ちでしたな。

Si4735 ラジオモジュール、液晶の電源を変更してみました。

2012-12-16 15.42.24

I2C 液晶モジュールの電源を I/O ポートから取っていましたが、電源ラインからトランジスタ(2SA1015と2SC1815)のスイッチ回路経由で供給するように変更して動くか確認。とりあえずは問題なし、液晶に供給される電圧も電池の電圧になりますのでコントラストが濃くなりました。

ということで、液晶モジュール、Si4735ラジオモジュール、I2Cプルアップの電源をトランジスタスイッチ経由に配線を変更しました。プログラムは 0.0.2 のまま(液晶コントラストの値は修正必要ですが)変更していません。回路図が加筆修正されています。回路図は下記リンクより

Si4735 ラジオモジュールの回路図

Si4735 ラジオモジュールの更新を行ないました。

一連の Si4735 ラジオモジュールの記事を参考に製作チャレンジされた方から質問をいただきました。(Si4735 ラジオモジュール進捗と〆のコメントにて) 内容は、局の選択後に信号強度のSがリアルタイム更新されないけど対応はあるかというものです。今回その対応分のソースの zip を下のリンクに貼っておきます。また、以下は差分情報になります。

最新のソースは Si4735 ラジオモジュールの Blog 記事一覧 から取って下さい。

$ diff -p Si4735Radio_Ver0.01/ Si4735Radio_Ver0.02
diff -p Si4735Radio_Ver0.01/Si4735.cpp Si4735Radio_Ver0.02/Si4735.cpp
*** Si4735Radio_Ver0.01/Si4735.cpp 2012-12-15 09:31:55.671118400 +0900
— Si4735Radio_Ver0.02/Si4735.cpp 2012-12-15 09:32:02.617515700 +0900
*************** void Radio::updateFMTuneStatus() {
*** 163,168 ****
— 163,189 —-
}
}

+ void Radio::updateFMRsqStatus() {
+ int i;
+
+ i2c.beginTransmission(SI4735ADR);
+ i2c.write(0x23);
+ i2c.write(0x20);
+ i2c.endTransmission();
+ _delay_ms(2);
+
+ i2c.requestFrom(SI4735ADR, 6);
+ for(int i = 0; i < 6; i++) { + switch(i) { + case 4: + FMrssi = i2c.read(); + break; + default: + i2c.read(); + } + } + } + void Radio::updateAMTuneStatus() { int i; *************** void Radio::updateAMTuneStatus() { *** 191,196 **** --- 212,237 ---- } } + void Radio::updateAMRsqStatus() { + int i; + + i2c.beginTransmission(SI4735ADR); + i2c.write(0x43); + i2c.write(0x00); + i2c.endTransmission(); + _delay_ms(2); + + i2c.requestFrom(SI4735ADR, 6); + for(int i = 0; i < 6; i++) { + switch(i) { + case 4: + AMrssi = i2c.read(); + break; + default: + i2c.read(); + } + } + } int Radio::getFMFreq() { return(FMfreq); diff -p Si4735Radio_Ver0.01/Si4735.h Si4735Radio_Ver0.02/Si4735.h *** Si4735Radio_Ver0.01/Si4735.h 2012-12-15 09:31:55.795125500 +0900 --- Si4735Radio_Ver0.02/Si4735.h 2012-12-15 09:32:02.628516300 +0900 *************** class Radio { *** 41,46 **** --- 41,48 ---- void seekDownAMFreq(); void updateFMTuneStatus(); void updateAMTuneStatus(); + void updateFMRsqStatus(); + void updateAMRsqStatus(); int getFMFreq(); int getAMFreq(); int getFMRssi(); diff -p Si4735Radio_Ver0.01/Si4735Radio.cpp Si4735Radio_Ver0.02/Si4735Radio.cpp *** Si4735Radio_Ver0.01/Si4735Radio.cpp 2012-12-15 09:31:55.816126700 +0900 --- Si4735Radio_Ver0.02/Si4735Radio.cpp 2012-12-15 09:32:02.638516900 +0900 *************** void loop() { *** 146,151 **** --- 146,152 ---- switch(mode) { case FM: radio.updateFMTuneStatus(); + radio.updateFMRsqStatus(); ffreq = radio.getFMFreq(); int tmp01, tmp02; tmp01 = radio.getFMFreq() / 100; *************** void loop() { *** 154,159 **** --- 155,161 ---- break; case AM: radio.updateAMTuneStatus(); + radio.updateAMRsqStatus(); afreq = radio.getAMFreq(); sprintf(msg, "AM %4dkHz S:%i", radio.getAMFreq(), radio.getAMRssi()); break; $ [/code]

あと、Atmel Studio6 のプロジェクト設定で、以下ハードコピーのように delay マクロ用の周波数定義を入れておくと良いです。

201212141958

Si4735 ラジオモジュール進捗と〆

11月30日の夕方に、Atmel Studio のプロジェクト作成したようですので 1週間経過です。まぁ全てこれに注力しているわけではなく、余裕のあるときにやっていますので工数的には少ないです。今の段階でインプリ出来ているのは

  • 受信周波数 AM 531kHz ~ 1602kHz, FM 76.0MHz ~ 90.0MHz
  • AM/FM 切り替えボタンによるバンド切り替え
  • 選局は、シーク UP/DOWN のボタンによるサーチ方式
  • アンテナは、AM/FM 共にロッドアンテナ
  • 液晶コントラスト調整(6段階)
  • 音量調整ボタン
  • アナログ音声出力 3.5φステレオジャック
  • 電源 ON 時以前の状態を復元
  • 電源 3.3V(電池可)
  • 電流 稼動時 20mA, 停止時 0.1~2μA(データシートより)

のようになってます。安物ラジオの条件達成なので個人的な目標も達成です。基板起しとケース入れるという作業は残ってますがね。

2012/12/8 追加開始: 上記機能までインプリしたソースと回路図を再掲します。

Si4735 ラジオモジュールの回路図
最新のソースは Si4735 ラジオモジュールの Blog 記事一覧 から取って下さい。

ソースファイルは、各種資料をもとを作成させていただいています。商用利用はお断り。二次配布もお断りします。
2012/12/8 追加おわり

このラジオモジュール使った短波受信ありのラジオも発売されているようですので、もうちょっと改良するところはありそうです。パット思いつくのは以下の点ですが、短波だけは試したいなと思います。

  • 短波(31mバンドあたり)が使いものになるのか動かしてみる。
  • フェライトアンテナでは AMが飽和して音声が出なくなる局がある。(ハリガネで結構受信出来る)
  • USB シリアル変換を付けて、ホストコントロール出来るようにする(普段ならデバック用に付けますが今回付けてないので)
  • アナログ出力のドライブ能力のせいか、音量上げるとクリップしてると一発でわかるのでバッファ用のアンプは付けたい。(↑の写真のように簡易アンプはさむと実用的にはなる)、ラジオチップのアナログ部分は 5V まで上げられるが、このモジュールは VDD と共用という仕様。
  • アンプ付けるとボリュームによる音量調整が出来るので、ボタン2個減らせる。→ だけど単三2本から4本くらいに電源変更したくなる。

個人的にはこのモジュールの基本的な使いかたはだいたいわかったので、妥協出来る切りのいいところでまとめてしまいたいなと思います。ほとんどこれにて終了状態ですけどね。

Si4735 ラジオモジュール構成検討中 その3

今日も少し構成変更しています。変更点は電源OFF/ONのボタンを着けた。ということです。AVR マイコンの PowerDown モードにするということです。電源 ON はあれこれ考えましたが結局リセットボタンとしました。これで初期化からいくので十分というやつです。(途中電源ディレイなども考えたけど…これが一番シンプルでした)

ただ、電源 OFF の課題は消費電流が減ってないことです。


動作時、20mA ,マイコン PowerDown モードで、10mA と。ただし、ラジオモジュールが動作時19mA 出てて、PowerDown 後はほぼ 0mA なので、この10mA はどこから出てきたのか不思議という状態。落す前にI/Oポートの処理せんといけないのかぁ。

あとは電源 OFF 時に周波数などを EEPROM に書いて、電源 ON 時に戻るようにしたいです。

電源 OFF/ON はタクトスイッチでいくとして、各ファンクションのタクトスイッチが多いので、I2C キーパッド使えるかなぁと思いつつちょっと悩み中なのと、シリアル I/F 付けて、デバック用も兼ねてホストからコマンド送れるようにするかどうか。むむ

Si4735 ラジオモジュールのプログラミングその3

本日は、FM / AM の基本処理追加とシーク動作出来るようにプログラムの修正をしました。とりあえずボタン2つ付けまして、周波数 Up/Down させるようにしました。あとはボリューム操作と AM/FM 切り替えを付けたら市販されているラジオキット相当になりそう。

		   text	   data	    bss	    dec	    hex	filename
		   5380	     34	     97	   5511	   1587	Si4735Radio.elf

AMもバーアナテナ無しで、NHK第一、第二は受信出来ているので動作確認終ってます。大半のプログラムは出来てるという状態です。これで↑のように5511バイト。余裕あります。気になるのは、電池が、3.3Vから3.0V まで電圧下がりましたが、液晶のコントラストがすごく変化して薄くなりました。こいつの調整も必要そうというところです。