ボス削ってワッシャ貼り付けて直してしまったけど。ネジバカは穴に細いビニール線つっこんで対応。2000円しないので、材料費と思えばイイかという感じ。いちおう、ぐるりとビニテ巻いて防水強化して終了。[電子工作一般]MicroCを使って秋月のPIC内蔵LCDをいじっています。いろいろな表示をさせようと機能を増やしていくと、あるところからLCD表示が崩れたり、マイコンそのものが暴走してしまいます。LCDを使わずに普通のキャラクタLCDとF88の組み合わせでも同じです。MikroCのLogファイルを見ると、次のワーニングが出ていることに気がつきました。トラブルが起きない場合はワーニングがありません。main.cうまくいくときとダメなときのRAMの使用量を比べてみました。BANKが0と1を超えるとMikroCはダメだと言うことが判りました。BANK-0と1の切り替えまではコンパイラーが旨くやってくれるようです。F689ではRAMのBANK構成は次のようになっています。これをみると、BANK-0で96バイトとBANK-1で80バイトですから、176バイトを超えるとダメということが判ります。たしかに110バイトで済んでいるコードは動いていますが、200バイトを必要とするコードはバグります。<追記>生成されるアセンブルコードの状況によっては176バイト以下でもダメな場合がありました。BANK-0の90バイト以内にしてうまくいきました。テーブルをやめてループで描画するようにして一気にRAM使用量を減らした結果です。これを回避するにはいくつかのアドバイスが有りました。MikroC以外のコンパイラを使うということです。秋月I2C液晶乗っているPICのRAMを目一杯使いたいときはMikroCを捨てなくてはなりません。純正のXC8は大丈夫っぽいのですが、ライブラリが貧弱なのでメンドクサイですね。MikroCはLCDライブラリとかが揃っているので採用したのですが。この液晶に拘らなければ、仮想リニアアドレッシング機能をもったPICを使えば良いだけですが。ピンコンパチで貼り替えできるのが見つかれば良いのですが。ググってもなかなか見つからなかったのでBlogで書いておきます。国内では全然見つかりませんでした。[電子工作一般]久しぶりの電子工作ネタです。測れるメーターを作りたかった。売っているのはあったけど高かったのです。作ろうと思えば作れるので。電力を計算するには掛け算が必要。これをアセンブラで書くのはイヤァな感じ。LCD表示も細かい事やろうとするとアセンブラでは結構めんどくさい。Cで書くしかないかなーと思いつつ、Cは苦手なので手を付けていませんでいした。重い腰を上げて、Freeで使えるCコンパイラを探しました。有名なのはCCSCですが無料版は無し。CというのがPIC対応で(AVR版もある)、無料版は2Kワードまでのバイナリを生成できるようです。Cを思い出しながらコーディングしてみました。CはANSI-C準拠ということで、「はじC」も役に立つというわけです。はじC、懐かしいでしょ?手持ちのPIC16F88に書き込みました。8ピンはF675、18ピンはF88を定番にしています。どちらも内蔵クロックを持っていて、A/Dから一通り入っています。数字だけの表示はOK。A/Dして、8bitに削って、10進→ASCII変換して出すだけ。一発でうまくいったので、欲を出して小数点を割り込ませたり(255Vを25.5Vと表示させる)、空いているLCD部分にバーグラフを追加したりといじり始めました。気がつけば夜中の2時近く。ある程度まではできたのですが、バーグラフのセグメント数を増やしていくとおかしな現象が出始めました。表示はループを使わずに、ステップ数文用意したテキストを全セグメント上書きする方法です。7桁を超えると、違う行の表示文字を壊します。グラフは2行目に出しているのに、1行目の表示を壊します。8桁を超えるとメモリーを破壊するようで暴走します。LCD表示がフィーバーしています。8桁までは、4桁、4桁に描画命令を分ければ可能なところまでいきつきました。8桁を超えるとだめなのです。LCDで空いているところは目いっぱい使いたいのが人情。何やっても8桁を超える表示は解決しないので、悩んでいてふと思いついたのが変態PICのアドレッシング。ROMもRAMもバンク分けされていて、RAMバンクの先頭付近はスペシャルレジスターが埋め込まれています。ROMもバンク毎にアドレスがとびとびになっています。固定テーブルをROMに持つ時は、特にアセンブラで記述するときはバンク超えを考慮しないとうまく動かないのです。これは完全に予想なのですが、もしかしたら不連続アドレスの問題をコンパイラが吸収していないのではないかと。あれば、メモリーを破壊するのも納得できます。ようするに、ツールのバグですね。最近、F88よりも安くリニアアドレッシングとして使えるF1827というチップが出ていて、それを買っていたのを思い出しました。今から考えればF88は当時最強!でしたが、かなり古い部類です。古いからこそ枯れていると思っていたのですが...F1827に変更しても、F88とピンコンパチでソースコードもA/D関係のレジスタを一部修正するだけでそのまま使えます。Cはバグっているようでした。あとはアナログ部分を作るだけ。電流検出はハイサイドに10mΩ程度のシャントを入れてOP-AMPで処理して入れてやる。この10mΩの抵抗を手に入れなくてはならないのがネックです。100mΩのセメント抵抗ならたくさん持っているのですけどね。100mΩでは20A流すと2Vロスしてしまうので、ここはなるべく小さくしたいのです。500Wと割り当てました。下の方はちょっと荒いですがLogです。[電子工作一般]これ、買ってみました。リチウムイオン各種、ニッスイ、ニッカド、鉛。なんでもこなしてしまう。リチウムイオンでは重要なバランス充電もできる。B6シリーズはコピー品でも品質が良いらしいです。Net上にある説明書を漁っていたら、キャリブレーション(電圧センサの調整)が出来る事を知ってやってみたらOK。キャリブレーションも出来ました。電源は12V系で範囲が広いのが使いやすいです。付属の電源供給ケーブルは細くてとても5A流せるようには見えません。5.5/2.5ΦのDCジャックなので、太いケーブルで作り直しました。入り口と出口共にパワーポール仕様にせ製作です。バランスコネクタはJST(日本圧着端子製造)のXHシリーズです。千石でハウジングとコンタクトを入手しました。[電子工作一般]秋月で入手したバーグラフLED(OSX10201-GYR1)とLEDドライバ(LM3916)を使って、VUメータ(ピークメータ)を作りました。問題は整流回路ですが、最初はショットキーバリアダイオードを使用してミキサーの出力を直接整流して入れたのですがうまくいきませんでした。-20dBのところが丁度Vfに引っかかったらしく、-16dBm位入れないと光りませんでした。LEDドライバの参考回路に合ったPNPトランジスタとダイオードを使った回路を見て、「おー、これは面白い」と思って作ってみたのですが、これはこれでイマイチ。トランジスタとダイオードの組み合わせが悪いのか、しかしダイオードの代わりに同じトランジスタをダイオード接続しても0Vが浮いてしまい-20dBが点灯しっぱなしになりました。-10dB以上は良い感じなのですが。そこで、OP-AMPを使用した理想ダイオード回路を採用することに。+/-両電源があれば簡単に綺麗に作れるのですが、ここは単電源で行きたいところ。エレキジャックのWebに参考となる記事があったのでマネしてみましたがこれもNG。あるレベルを超えるとマイナス側の波形が折り返してフルスケールで出てきてしまいます。細かく解析してみると、入力信号が約0.7Vmaxを超えると発生するようです。これは入力の保護ダイオードかなとピンと来ました。あるレベルを超えるとマイナス側が流出してしまうのですね。これは入力にクリッピングダイオードを付けてOP-AMPの外側で波形のマイナス側を切り落として入らないようにしたら成功。あとは細かいところを調整して、入力のDCドリフト(浮き)、出力の時定数を決めていい感じになりました。エレキジャックWebの記事http://www.eleki-jack.com/KitsandKids2/cat137/cat142/cat208/記事では「全波整流」になってますが、どうして全波になるかが納得できません。これは実験で解ったのですが、マイナス側の流出による折り返しで、1.4Vp-pより入力レベルが高い場合は、出力がフルスイングまで出てしまいます。あるレベルまでは全波整流に見えますがアンプの誤動作ですね。最終的に、こんな回路になりました。この回路なら、安定した動作をします。入力範囲はLM386の場合はレールトゥレールではないので電源電圧から少し下までなので、電源電圧12Vなら20Vp-p程度までは綺麗に出力します。[電子工作一般]Who-taroさんの所で紹介されていた電子オモチャ。http://moon.ap.teacup.com/who_taro/元ネタはこちら。http://yawatta.seesaa.net/article/298173788.htmlMicrochipのPIC12F1822を使った音モノです。圧電サウンダーを振動センサーに使用し、検出したら発音体に使うというアイデア。検出はコンパレーター機能を使っているようです。振動でプイプイ鳴くので子供は大喜びでした。鳴かせすぎて「うるさい!」と怒られています。フリスクのケースと、SDカードのケースに入れてみました。[電子工作一般]今年は小2の娘っ子。今年の工作はこれにしました。「PICでLチカ」はハードルが高すぎるので、PICのコード(アセンブラ)はパパが作りました。電子回路のハード部分まではやってあげて、コレを使ってどうしあげるかは娘次第。どんなのができるかな?ちなみに去年はピンホールカメラ(見るだけのやつ)にしました。これもちょっと早すぎだったかもしれませんが、クラスで大人気だったようです。[電子工作一般]NS73の入力レベルは100mV/140mV/200mVに設定できます。入力ATTは倍率1/11なので、それぞれの設定での100%変調入力レベルは次の通り。+9dBm業務用機器(ミキサー等)の0VUは+4dBmなので、140mVに設定するとほぼぴったりになる。チャージポンプ時定数は、標準の80usよりも125usにしたほうがS/Nがよくなる。プリエンファシスは日本の放送仕様は50us(デフォルト)。SU1000)があるのだが、定期的に自動動作しているノイズが入る事がある。これは、秋月のスイッチングACアダプタが一番うるさく入り、トランス式のACアダプタでも入る。4800円ちょっと高いけど、周波数安定度は抜群。届いた夜に組み立てて、S/N改善させようといじっていてパチッ!1時間で壊してしまいました。NS73が壊れたようなので(I2CバスがLowに引っ張られっぱなし)、NS73だけ発注。先ほど交換が完了して復活しました。ついでにUSB-DACキットも購入。1700円このDAC、ノイズ少なくて良いですね。I/Fよりも良い感じ。ROLANDのはUSBからのノイズが入るようで、無音だとジュルジュルとノイズが聞こえるんです。秋月のUSB-DACですが、電源部に使っているケミコン(100uF)が1個つぶれていました。気持ち悪いので手持ちの220uFを使用しました。Analog部とDigital部の両方とも220uFに交換。20WこれをPCで受信して、FMトランスミッターで送信して、家の中でFMラジオで聞きたい。ラジオはラジオで聞くのが良いのです。IPラジオでも、最後はラジオで。単なるこだわりですけどね。単3電池3本で使えます。この手のグッズはLEDが電池に直結の場合が多く、LEDに定格を超えた電流を流し続けているので寿命が短いのが多いです。長時間使用するとLEDの輝度がどんどん落ちていきます。PCの足元証明に使用しているバッファローブランドのUSBライトも直結らしく、半年も使っていないのに輝度が落ちてしまいました(直視してもまったく問題ない明るさまで)。電池ボックス内のネジ2つを外すと分解できました。配線を追うと、11個のLEDは全て並列に繋がっていて、電流制限抵抗は入っていませんでした。高級な機種ですと定電流回路が入っていて、電池が消耗してきても明るさは維持するのですが、安価なものは制限無しか抵抗1本の例がほとんどです。この製品の電流制限は、電池の内部抵抗と配線の抵抗に頼っているようなものです。1本あたり20mA程度になるようにしました。これで輝度は少し落ちますが、LEDの寿命はかなり延びるはずです。ソネットポイントこの広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。この広告は180日新規投稿のないブログに表示されます。