電子工作

macOSでPICの開発

| コメント(0)

 PICを使った開発がmacOS上に移行してやっと再開。

PICKIT3+書込みアダプター
 PICKIT3+書込みアダプター

 Microchip社のPICの統合開発環境がJavaベースになったのでmacOSでも使えるようになっているのは承知していました。ただ、いまひとつ乗れなかったので放置していたのですが、ATMELがMicrochipに買収されてAVRも同じ統合開発環境に組込まれているのを知って、それならばPIC&AVRの開発環境ともどもMPLAB IDE & AVRStudioから移行しようとしていろいろ試していました。

 一番の懸念材料がデバイスへの書き込み。
 古いMPLAB IDE+PICSTART plusという組み合わせで数年前に使っていたのですが、書き込み機として便利だったPICSATRT plusがシリアル経由である事もあり現行のMPLAB Xでは非対応になってしまってたのもあってしばらく放置状態になっていたのです。
 しかしMPLAB XのmacOS版ではドライバもインストールされPICKIT3が使えるようだったので確認作業を行いました。

 MPLAB Xを起動してデバッガを選択する時にPICKIT3を接続しているとちゃんと認識して選択できるようになります。
 しかしビルドしたプログラムを書込むのにPICKIT3ではデバイスに合わせたソケットが無くISPしか使えませんので、ターゲットとPICKIT3の間をISPのための配線をする必要があります。
 私が使用しているデバイスは8ピン、18ピン、28ピン、40ピンと多種類あり、PICSTART plusの時のように挿入位置を変えるだけでオKのお手軽な方法はとれず、デバイスに合わせたソケットを用意してそれぞれに配線しておく必要があります。
 いろいろネットで探しているとそんな面倒毎を解消できるアイテムを見つけました。
 ZIFの40ピンソケットにジャンパーが付いていて書込むデバイスに対応したショートピンを設定する事で多様なデバイスに対応できるようになっています。PICSTART plusのように挿し込み位置を変えるだけでOKではありませんが、デバイスのピン数に合わせたソケットと配線をしたアダプターは必要なくなります。

 実際に書き込みをする際はPICKIT3からターゲットに電源を供給する設定が必要ですが、この組み合わせで無事書込みを行える事を確認しましたので、今まで放置していたPICを使う案件が再開できます。

 まだ未確認ですがMPLAB XとPICKIT4の組み合わせでAVRのデバイスにも書き込みができるようなので、追って検証してみたいと思います。

コントロールアンプ(完成)

| コメント(0)

 パネル加工までが長かったですが何とか完成。

コントロールアンプ基板
 コントロールアンプ

 いつもの様に訳ありケースに収めます。
 当初作製してきていた各基板(コントロールアンプ部サラウンド&セレクター部)は+12Vの単電源で動き、それほど消費電流もありませんので、これだけのために電源を別に用意するのは勿体ないので電源ジャックは並列接続して2つパネルマウントして電源を中継できるようにしました。

筐体内部
 筐体内部

 入出力や操作部が多いのでそれらを接続するケーブル配線が多いので仕方ありませんが内部配線は結構スパゲティ状態になります。音の信号が通らないので問題ないでしょう。
 また、基板との接続には全てコネクター接続にしていますのでテスト時や取外し・取付けはラクチンです。何かあって基板を筐体から取り出さなければならない時は本当に助かります。
 実際、組み上がり直後のチェックでコントロールアンプ基板がうんともすんとも音が通らず、チェックのために取外し・取付けを何度も繰返しました。原因は配線ミスとかハンダ付け不良のようなケアミスではなくデータシートのアプリケーション回路に間違いがありました。使用したAN5836は音量や音質等の調整を電圧制御することで変化させるのですが、データシート記載のアプリケーション回路には調整用の可変抵抗の片方がVccに接続されておらずオープン状態。当然ですが全ての制御電圧がゼロなのでボリュームもゼロ、全く音が出なかったのです。
 これで本当に動くのか?と、ちょっと考え直してGNDの反対側をVccへ接続すると無事に完動。
 サラウンド&セレクター基板を元に戻してケーブル類を当初の状態に配線し直しして確認すると全ての機能が完動確認できました。
 コンロールンプ基板単独でのチェックや再組み付けを何度か行いましたが、コネクター接続ではなく横着して直接配線のハンダ付けだったらと思うとゾッとします。

 今回組み上げるにあたって基板を横並びに配置しようと予定していたのですが、並べてしまうと電源フィルターの基板を入れる余地が無くなってしまうためスペーサーを噛ませて二階建てとして解決。

 コントロールアンプ部の動作確認後にサラウンドも動作確認。
 モノラル音声では何も変化が出ませんが、音場があるステレオ音声だとブワッと広がるのが判ります。調整ボリュームを回すと広がり感の変化がちゃんとあります。効果を掛けすぎると音の低位が判らなくなります(苦笑)。
 低音・高音のもボリュームを回すと強調・減衰がはっきりとわかります。
 左右バランスは多分使う事が無いとは思いますが、回し切ると左のみ・右のみの音にちゃんと変わります。

 出力をいつも使っているYAHAアンプに繋いでじっくり確認してみましたがノイズも無くガサツキやモッチャリ感も無く至極普通の素直な音が出ます。当初からそのように組み上げていますが入力が2系統あるので音源を2つを切り替えて使えるのは便利です。

 デッドストック品活用プロジェクトとして始めましたが、実用的な物ができあがりました。ちゃんと使ってやろうと思います。

 こうなると多入力のための汎用ミキサーが欲しくなるんですよね・・・。そっちは回路が簡単なのでそのうち作る予定です。

モノホン?

| コメント(0)

 どうも(不正)コピー品かも。

LM3914N-1みたいな
 LM3914N-1みたいなデバイス

LM3914N-1正規品
 LM3914N-1正規品

 ちょっとお安い海外調達をして香港から発送されてきたデバイスなんですが、LM3914N-1はTexasInstruments(旧NationalSemiconductor製品です)がセカンドソースを出しているという話を寡聞にして耳にした事もありませんし、マーキングのロゴが微妙にNational Semiconductorがつぶれた様な胡散臭いものが付いていますし、パッケージ両端の1、9、10、18ピンの仕様も異なっているので、かなり怪しい(笑)。

 と、いうわけで手っ取り早くテストするのにブレッドボードは面倒だったので秋月のLM3914使用レベルメーターキットの基板だけを購入し、このデバイスと手持ちの部品を活用してサクッと製作し動作を確かめてみました。

LM3914レベルメーター基板
 レベルメーター基板
 注:秋月のキットで提供される物と部品は異なり、手持ち部品で構築した物です
   この写真の部品は一部キットで提供される部品と同じではありません。

 レベルメーターICとしてちゃんと動作します。
 正規品のデバイスと差し替えても動作的には同じに見えます。

 ちゃんと動く分、正体が分からない怪しさはありますが、製品や商品に使う訳では無く個人使用なので、まあ、良しとしてしまいます。よもや封止シール内にスパイデバイス等が入っているというのは勘弁願いたいですが。

温湿度センサー

| コメント(0)

 これまた死蔵品復活プロジェクト。

温湿度モニター
 温湿度モニター(AM2302)

 購入しておいて放置されているものを掘り出してきて使い物にするという事を最近続けています。この1-Wireで測定データをデジタルデータで取出せる温湿度センサーAM2302もそのうちの1つです。
 デジタルデータで取出せるのでアナログ出力からA/D変換する必要も無く、センサーの精度が良ければ変換誤差も無いため測定に掛けるプログラミングコストが低減されます。

 これまたArduinoのライブラリーが先人の方によって開発されていたので、有難く利用させて頂きました(GitHub:DHT-sensor-library)。
 使い方は至極簡単過ぎて拍子抜けするレベルです。
 取得したデジタルデータもちゃんと温度・湿度の数値に変換した値も得られるので、そちらをつかってサンプルスケッチを参考にサクッと試してみました。
(参考スケッチはこちら

 float型の変数をそのままprint()すると小数点以下が2桁表示されてしまいます。センサーの解像度は0.1℃/0.1%ですのでprint(var,1)のように小数点以下桁数を1桁に指定して表示出力します。
 湿度の0.1%が必要かと言うと必要ないのですが、温度の方が0.1℃まで表示しているので整数値では見映えしませんので表記を統一しました。
 温度と湿度が判れば不快指数も算出できますのでついでで計算して表示します。

 いろいろ試してみましたが温度は変化の対応がやや遅いようです。息を吹きかけてみると湿度はほぼ2秒間隔の測定でもどんどん数値が変わるのですが、温度の変化はやや緩慢です。それほどリアルタイム性を求める物でもありませんので、まあ問題無いでしょう。

I2C LCD 実働

| コメント(0)

 以前に購入した物の放置プレイ中のボードを動作確認しました。

I2C LCD/Arduino nano
 I2C LCD/Arduino nano

I2C LCD
 I2C LCD制御ボード側から

 あるでゅいーのナノ〜。いえ、Arduino nano のプロトタイプシールドを使ってずいぶんと放置していたI2CでLCDディスプレイを結線を少なく簡単に扱えるデバイスをやっと試すことができました。
 プロトタイプシールドはあれこれ試すには大変都合良くできていて、I2Cと電源周りが4ピンのまとまったコネクターで独立して実装されています。今回使用したLCD制御ボードのI2Cコネクターとピン並びも同じで判りやすいのも良かったです。他にもシリアル通信のTX/RX/VCC/GNDがまとまったコネクタもあります。
 今回はそのコネクターを利用して結線4本で制御できるLCD制御ボードのテストも兼ねてサンプルプログラムを走らせてみました。
 ライブラリに前回(かなり前ですが)紹介したLiquid Crystal I2C(GitHubのLCD_I2Cを参照)を使用します。
 詳細はGitHubのサイトのサンプルプログラムなどを参照して頂くとして、HD44780互換のコントローラを搭載しているキャラクターLCDであれば簡単に即時使えます。初期化におけるややこしい順序のコマンドやタイミング待ち等も用意されたメソッドが実施してくれて調整不要ですので便利ですね。
 制御基板はバックライト付きのピン配列に対応していますので、バックライトのオン・オフもメソッド関数が用意されています。
 ライブラリのサンプルスケッチではI2Cアドレスが0x27とされていますが、このボードの場合はPCF8574A(8ビットI/Oエクスパンダ)が実装されていましたのでI2Cアドレスは0x3Fとなります(サンプルのスケッチのままでは動作しませんのでご注意)。
 制御基板のジャンパーでアドレスは変更できる様ですのでバス接続で複数デバイス接続を行う場合は0x31〜0x3Fで使い分けをすることができます。

 先達の方が作製してくれていたライブラリのおかげで結線の少ない接続でキャラクタLCDを簡単に使う事ができるようになりました。

ATtiny2313Aテストベッド

| コメント(0)

 ちょっとプログラミングに戻ります。

ATiny2313テストベッド
 ATtiny2313テストベッド

 マイコンでプログラムや機器の開発を行う時に、お金があれば回路設計した後にプリント基板を発注すれば良いのでしょうが、個人の趣味にそこまで・・・と思っています。
 ブレッドボードを使うという手もあるのですが、毎回毎回同じ回路構成を組み直すのもバカらしいので、外部回路はブレッドボードを使い、MPU周りはすでにちゃんと組み上げた開発用ボード(テストベッド)を使っています。
 ファームウェアの無いArduinoみたいな物でしょうか。

 テストベッドボードでは内部発振器を使い外部発振器を使わない前提ですので水晶発振子などは実装せず、ISPコネクタ、リセット回路、電源周りのコンデンサーとそれらへのはいせんに加えて信号線はすべてヘッダピンで取出せるようにしておき、MPU周りの配線を毎回ブレッドボード上で組み上げるのを省略でき、ターゲットとなる回路のみを組めばよいのでラクチンです。

小物工具(#30)

| コメント(0)

 ちょい使いに自作測定工具。

簡易ロジックチェッカー
 簡易ロジックチェッカー

 回路的には何てことはない74HC14のインバーターで入力レベルに応じたLEDを光らせるだけのものですが、Hi・Lo判定だけでなく立ち上がり・立ち下がりのエッジを検出できるように微分回路を入れて微小幅パルスでも観測できるようにしてあります
 接続ケーブルを除き、全体を清涼菓子(現行品)のケースに入れてお手軽に使えるようにしました。

ロジックチェカー動作中
 動作中(入力オープン状態なので全点灯)
 上からHi / Lo / Pos Edge / Neg Edge

 清涼菓子のケースでは通常のバナナジャックが使えませんので、プローブや電源の接続部は小型のチップジャックを使います。
 微分回路のコンデンサーによる負電圧発生がありますが、保護ダイオードをつけずに内蔵の保護ダイオードに任せてしまいます。ただ入力のゲートにはさらに外付けで保護ダイオードをつけました。
(参考回路図はこちらPDFを参照

 プローブピンはテスト棒のついたケーブルをつないで検査したい部分へ当てます。
 この回路、実はずいぶん以前にPICツールボックスを作った時と同じ回路で、PICの書き込みをPICSTART PlusからPICkit3のISP書き込みへと移行したためツールボックス自体がほぼお蔵入り状態になっていたので別に単独機能で使えるように再製作したものです。
 ちょっとマイコン系の製作を進めるにあたって先立って作っておきました。

PSG音源

| コメント(0)

 懐かしいと思う人はそれなりの年齢。

PSG音源
 PSG音源

 ふとした事で超懐かしいデバイスであるAY-3-8910Aを入手しました。
 私が入手したのは現行のMicrochip製ではなくオリジナルメーカーであるGI(General Instruments)の物でしたが、使い方は同じです。
 入手しただけでは「鳴りもの」デバイスが可哀想ですので世の中、先陣の片の上に乗せてもらおうと探してみるとArduinoを使ってMIDIデバイスとして鳴らせるスケッチと回路図等を公開していらっしゃるのを見つけました(詳細はこちら)。

 回路規模も大きく無いので部品が揃ったところでサクッと製作。アナログ系の場合と違いデジタルの配線は余程でない限り気を遣わなくて良いので作りやすかったですね。信号線はいつものようにUEWを使って配線しました。

 参照サイトに制作方法やスケッチ等の情報一式が入手できますのでそれらを見ながら製作を行い、ダウンロードしたスケッチを書込めばおしまいです。
 使用しているArduino Pro Microの入手が面倒くさかったですが、それ以外はキーデバイスのAY-3-8910さえ入手してしまえばなんて事ありません。

 AY-3-8910(Proigrammable Sound Generator)はPC-6001/mkIIやFM-7/77、MSXに相当デバイスが搭載されていて、鳴らされる音を聞くと往時の雰囲気が甦ります。他にも様々なアーケードゲーム機にも搭載されていましたから、ゲームサウンドの方で馴染みがある方も多いかも知れません。

 それにしても現在もMicrochipがこのデバイスを製造しているのは驚きでした。
 どこに需要があるのだろうと思うぐらいです。昔のアーケードゲーム機の保守部品としては数が知れていますし、どこで用途があるのでしょうか・・・。

コントロールアンプ(その2)

| コメント(0)

 もう少しイロをつけてみたくなりさらにデッドストックを活用。

セレクタ+サラウンド基板
 セレクタ+サラウンド基板

 先日のコントロールアンプ部にさらに機能を付加する為の基板を追製作しました。
 わけありケースのフロントパネルにロータリースイッチを使ったセレクターが収まらないのもありましたし、2入力であれば通常の機械式スイッチで切替しても良かったのですが、スイッチの接触不良でガリガリなるのがイヤだったので電子式セレクターにしました。
 アナログスイッチでという案もあったのですが、専用のオーディオ信号切替デバイスの手持ちがありましたのでそれを活用することにしました。新日本無線(JRC)のNJM2520D(オーディオスイッチ)を使います。内部バイアスがあるので単電源で音声信号(AC信号)をそのまま取り扱えます。
 さらにサラウンド基板は以前に一度作ってお蔵入りしている基板があったのですが、コントロールアンプの基板にXHコネクターを使用しているのと、セレクターと同じ基板に載せてしまおうと思ったので新たに作り込みました。
 デバイスはJRCのNJM2701D(3Dサラウンドオーディオプロセッサ)です。

 どちらのデバイスもTVやVTRでの用途を前提としているのだと思いますが+12V単電源で動作します。
 サラウンドのON/OFFと効果の強さを選択できるように、外部スイッチとポッドを外付けしてデバイスの機能を十分に活用してやろうと思います。

 パネルレイアウトを検討中なのですが、ポッドにスイッチにサラウンド・オンのインジケータLED等々とかなり盛りだくさんでパネルに実装される物が多く、バランス良く配置する為にデザイン検討中。加工は丸穴だけですので、デザインが決まればサクッと作れる...はずです(苦笑)。

コントロールアンプ

| コメント(0)

 ディスコンのデッドストック活用プロジェクト。

コントロールアンプ基板
 コントロールアンプ基板

 昔に店頭で入手していてデータシートもあったので放置していたのですが、ぼちぼちとそのようなデッドストックになってしまっている部品を使って機器を組み上げる方向に持って行きたいので、とりあえず基板を製作しました。

 回路はデータシートの応用回路に示されたままですが、それなりにコンパクトにまとめてみました。両面スルーホール基板だったので、ジャンパの下にカプトンテープで絶縁しなければならないのが面倒でした。
 基板への入出力はすべてXHコネクターで行います。

 この松下(現Panasonic)のTV用ICであるAN5836は単電源+12Vで動作し、外付け部品も少なく、左右バランス・高音・低音・音量の調整を電圧で制御するタイプのデバイスです。
 制御するための可変抵抗器は音声信号を通さないので音響仕様でなく、さらにBカーブの単連で制御でき、汎用品で充分である等、コストダウンにかなり有利な設計を採用しています。
 元々の音質がどの程度か全然見当がつかなかったのですが、コンデンサー類は全て音響データに関連する物でしたので、汎用品ではなくオーディオ用の部品をつかってみました。またその部分の抵抗も金属皮膜にしています。

 あとは筐体(パネル加工)と外付け部品の配線をするだけですが、パネル加工にまた時間を取られそうですので、この後が直ぐ進展するかがちょっと怪しい...。

次のページ