迷走の果て・Tiny Objects

迷走する日々の覚え書きです。自分で分かってることは省略してますので、念のため。

8pinPSoCでナイトライダーもどき・続き

作り直しました、同時に光るLEDは一個だけなので抵抗も一個でOKです。
電池ホルダも直付けして小さくしました。


プログラミングの様子。
psocknightrider_6.jpg
スポンサーサイト

8pinPSoCでナイトライダーもどき

初めてのことばかりです。

初めてCY8C24123Aを買いました。
初めてICソケットを使わずにPSoCを基板に直づけしました。
初めて実験もせずにくみ上げました、まぁ簡単な回路ですから。
初めてチップLEDを使いました。(5個入り210円也)ハンダ付けに難儀しました、一個どこかへ飛んでいってしまいました。
抵抗が5本なのにLEDが4個なのはそのせいです、(買いに行かなきゃ)

写真の上側にあるのはICテストクリップを使った8pinPSoC用の書き込み器(というには大げさか)です。
ただかなり前に買ったテストクリップなので接点がかなり汚れており、最初うまく書き込めませんでした。
汚れを落として使えるようになりました。


メモリ不足

先の基準電源をCY8C24223に移植しようとしたのですが、メモリ不足で出来ません。
CY8C27443は16Kあるのに対しCY8C24223は4Kしかないのです。
そこで無駄に凝った出力電流表示ルーチンの見直しやらCode Compression等を行い、4Kbyte内に収めました。

あれこれやっているときに書き方一つでサイズが変わることがわかりました。
以下の if else文を条件演算子を使って書き直してみると10バイトほどメモリサイズが増えてしまいました。

if ( Width == 1000 ) { wstr[0] = 1+'0' ; }
else wstr[0]= ' ';

wstr[0]=( Width == 1000 ) ? 1+'0' : ' ' ;

これを
wstr[0]= ' ';
if ( Width == 1000 ) { wstr[0] = 1+'0' ; }
とするとif elseより2バイトへりますが、処理速度は若干ですが遅くなります。
if が成立すると同じ変数(この場合は配列ですが)に2回代入することになるからです。

なお使ったのはImage Craftのコンパイラです。

PSoCを使った基準電源の試作・LPFのコンデンサを替える

LPFのコンデンサには0.1μFのフィルムコンデンサを使っている。
図体がでかいので、積層セラミックコンデンサがつかえないか試してみた。
パスコンによく使われる積セラは高誘電率系でDCバイアスによって容量が変化する。
村田製作所の積層セラミックコンデンサのFAQに示されたグラフによると15Vで容量が半分になってしまう。
ところが今回の回路ではコンデンサのDCバイアスは0V~5Vなので容量変化はそれほど大きくない。

温度特性もよくない。大川電通のサイトによれば結構変動するようだけど、室温程度ならそれほど大きくない。

今回のLPFは交流成分をカットして直流を得るのが目的だから容量が変化してカットオフ周波数が変化しても余裕を見て定数を決めておけば大丈夫だろう・・と、ここまで考えてコンデンサを0.1μFの積セラに入れ替えた。

一番リプルの大きい5V出力(デューティー比50%)をオシロで見たが以前と変らない。
今回のような用途だったら高誘電率系の積セラでもいいわけだ。

PSoCを使った基準電源の試作

PSoC基準電源4_3
スイッチ部を変更しました、ポートを節約するためです。
ダイオードマトリックスで作りました。
ダイオードマトリックス
必要なコードが得られるようにダイオードを配置し、次に必要のないダイオードを除去します。

ポートを節約するのは、機能を追加する場合に備えてです。
多チャンネル化したり、シリアルポート付けてパソコンで制御したり・・・等々。

これに伴いプログラムを見直しました。
変数の型宣言の間違いや、使ってない変数等がありました。(汗
ついでに二つのスイッチの同時押しで出力をすぐに0Vに出来るようにしました。

これで零号機ほぼ完成とします。ケースに収めなきゃ。
液晶無し写真
LCDを外してみました、PSoCにADR02、ICL7660等が見えます。

追記
無料オンラインストレージのWindows Live SkyDriveにアップロードしました。
公開条件を全員 (パブリック) にするのはちと不安なので(^^;)ともだちまでとしました。
必要な方はメール下さい。

デジットでお買い物

ダイセン変換基板
ADR02を載せるためにダイセンのD008を購入しました。

PSoCを使った基準電源の実験・暫定版2

PSoC基準電源4_2
計算が間違っていたようで、電流測定回路が9V以上で正しく測定できなくなります。
R10とR12を9.1Kにしました。(R9とR11を大きくしてもいいんですが)
これによってプログラム中の係数を変える必要があります(まだやってません)
C11とC12を追加しました、14bit ADCを使ってますが、変換結果は結構ばたつきます。
プログラム中で四回測定して平均を取ってますが、ノイズが減らないかと思って入れてみました、あまり効果ないです。

実験中は自作の±15V電源を使っていましたが、マイナス側は-3Vもあれば十分です。そこでICL7660を使って-5Vを作るようにしました。これなら15V程度のACアダプタで使えます。

RSコンポーネンツでお買い物

買ってしまいました、ADR02A。まだLM336-5も試していないのに。


8pin SOICですが、基本的に使うのは3pinだけです、何とかユニバーサル基板に載っけました。
ADR02_2.jpg
早速電源を入れてみます。手持ちのデジタルテスタでは5.00Vを示しました。お終い・・・^^;;
試したところ6.3V以上で安定しましたが、データシートでは7V以上で使うようになってます。

これで5mV以内の誤差、0.1%が無調整で得られるのですからありがたいものです。
ちなみにAD584は0.3%です。それだけ技術が進歩してるんですね。


マルツパーツ館でお買い物

会議が意外と早く終わったのでマルツパーツ館@日本橋に行ってきました。
先の日記で書いたAD584は性能はいいんですが高価です、実はもう一台作るつもりなのでもっと安くならないかと調べてたらLM336-5.0が見つかりました。

早速二つゲットしておきました、ついでにトラ技11月号も買いました。
帰りの地下鉄で読んでたらADR02なる5.0V電圧リファレンスがあるのを知りました。
帰宅して調べたらRSコンポーネンツで売ってます。
5個だと1075円也、送料は別ですが・・・
これならAD584一個の値段で5個買えます、注文するかも・・・・。

まぁ、とりあえずLM336-5.0を試してみないと。

PSoCを使った基準電源の実験・暫定版

PSoC基準電源4
ほぼ回路が決まりました・・・といいながらあれこれ改造を考えてますが。

パスコンは回路図では省略してますが、適当に入れてあります。
R7は15Ω(1/4W)を2本並列、R8は10Ω(1/4W)を2本並列にしてます、熱対策です。
オペアンプはLF411でなくてもいいのですがオフセット調整が出来る必要があります。
エミッタに入っている定電流ダイオードは電圧を下げたときの出力変化を早めるために入れましたが、ろくに考えずに入れたので効果のほどは疑問です^^;;。
バッファには手持ちにあったTC7S08Fを使いました、ハンダ付けには難儀しましたが(老眼なので)小さくていいです。
DIPのHC08でもかまわないのです。
電圧レファレンスにはこれも手持ちにあったAD584を使いました。
実は別の実験で使っていたのですが、ほったらかしになっていたので外して使いました。
マルツで1575円とお安くはないのでもったいないかなとは思ったのですが、精度や安定度は十分で調整も簡単です。
TL431などで5Vを作ってもいいと思います。

プロジェクトファイルはスイッチ入力に割り込みを使わず(割り込み処理が苦手なので・・・)とりあえず動けばいいとでっちあげたのでお恥ずかしい出来なので、まだ公開しません、必要な方はメール下さい。

PSoCを使った基準電源の実験・出力のリプルとリニアリティ

ぼけてますが、実験中の基準電源のリプルを測ってみました。
出力電圧5V、電流は100mAの場合です、10mV/div 5mS/divです。出力5Vの時がリプルが最大になります。
フィルタのCRを大きくするか、PWMの周波数を上げれば改善されると思います。
リプル

続きを読む »

どうやらPSoCを壊してしまったらしい。

実験中の基準電源にいくつか部品を追加した後、動かしてみると一つのスイッチが反応しない。
部品追加時にスイッチ廻りはいじってないし、導通もあるのだが・・・。
問題のスイッチ以外は正常に反応し、ちゃんと電圧も設定値通りに出ている。ふと気がつくと三端子レギュレータがかなり発熱している。
再プログラムするも同じ。別のチップに変えてプログラムすると正常に動作する。
どうやらスイッチをつないだポート廻りが壊れたのか?
正常動作しているチップの動作電流は25mA、具合の悪くなったチップは84mAだった。
具合の悪いチップに空っぽのプロジェクトつくってビルド、コンパイルそしてプログラムしてみた、消費電流は62mA。内部でどこかショートでもしたのか?でも原因がわからない。

PSoCとは長いつきあいだけど壊したのはこれが初めてである。

PSoC INSAMPについて



注意しないといけないのはINV_Outputが飽和しないことである。

INV_Output=(1+Ra/Rb)*INV_input-(Ra/Rb)*Reference

なので、PSoCのVcc=5VとするとINV_Outputは0V~5Vの範囲内に収まっていなければならない。

Ra/Rb=aとおく。

INV_Output=0Vの時
0=(1+a)*INV_input-a*Reference
変形して
INV_input=(a/(1+a))*Reference (1)

INV_Output=5Vの時
5=(1+a)*INV_input-a*Reference
変形して
INV_input=5/(1+a)+(a/(1+a))*Reference (2)

INV_inputは (1)から(2)の範囲内に収まっていなければならない。
ここでa=1、Reference=Vss(すなわち0V)とすると
INV_inputの範囲は0V~2.5Vとなる。

a=1、Ref Mux を BandGap+/-BandGap とし、Reference を AGND(すなわち 1.3V)とした場合
INV_inputの範囲は0.65V~3.15V。


PSoCを使った基準電源の実験・その後

段々タイトルがええ加減になってきたような・・・

回路図が間違ってたので訂正、部品定数の変更、追加などしました。PSoC基準電源4

今のところシングルゲートANDとLM317による電源は実装してません。

PSoC基準電源4
実験中、3Ωの抵抗に0.1V加えたところです。29.9mA流れてます。

PSoC基準電源3
拡大してみました、MiniProgで書き込むためのピンを付けました。
動作させながら使い勝手の改良が出来ます。

問題は5Vの三端子が意外と発熱すること、15Vを10Vドロップさせ、PSoCで30mA程度は流れるようなので0.3Wですから発熱も当然ですね、考えてませんでした。

PSoCを使った基準電源の実験・またもや続き

PSoC基準電源2
何とか一枚の基板に収めました(トランジスタは外付けですが・・・)
スイッチは左上が1Vアップ、左下が1Vダウン、真ん中上が0.1Vアップ、その下が0.1Vダウン、
右上が0.01Vアップ、下が0.01Vダウンです。

未実装の部品があるし、手持ちをつかったので大きすぎる部品があるし、まだまだです。

PSoC Designer 5.1 リリース

mattyさんのサイトで知ったのですがPSoC Designer 5.1がリリースされてました。

早速入れてみましたが、何が変わったのかよくわかりません(汗

新しい機能としてはInitialValueがあります。

引用します。

New Feature - InitialValue

A new InitialValue feature has been added to all pins in PSoC 1 devices. This allows the user to control the initial value of each pin. The InitialValue is automatically set for the user based on the drive mode of the pin, but the user can alter this value if needed.



各ピンの初期値をドライブモードによって自動設定してくれるということです。
Pull Upにしてスイッチをつなぐのはよく使う方法ですが、メインルーチンでそのポートに 1 を出力しておく必要があります。うっかりこれを忘れるとスイッチ入力として動作しません。
この新機能によってドライブモードがPull Up(とOpen Drain Low)の場合、自動的に 1 が出力されるのでメインルーチンで設定しなくてもスイッチ入力として使えるというわけです。

 | HOME | 

文字サイズの変更

プロフィール

edy

最新記事一覧(サムネイル画像付き)

DABP(Dual Amplifer Band Pass)フィルタとGIC(Generated Immitance Converter)の解析 Aug 22, 2017
百均のUSB LED電球(2) Aug 13, 2017
百均のUSB LED電球 Aug 11, 2017
状態変数型バンドパスフィルタ(2) Aug 05, 2017
状態変数型バンドパスフィルタの解析、発振回路に応用するため。 Jul 30, 2017
CJMCU Beetleを試す Jul 29, 2017
Arduino 互換ボード SS MICROを試す Jul 22, 2017
店の電飾(3)無限鏡(infinity mirror) Jun 25, 2017
店の電飾(2)回路の変更とスケッチ Jun 25, 2017
店の電飾 Jun 18, 2017

全記事表示リンク

全ての記事を表示する

ブログリンク

リンク

このブログをリンクに追加する

月別アーカイブ

08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  12  11  10  09  07  05  04  03  04  03  01  12  11  10  08  07  06  05  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  02  01  12  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  10  09  08  07  06  05  04  03  02  01 

カテゴリ

プログラミング (0)
freescale (1)
AVR (3)
テルミン (16)
緊急警報放送 (3)
78K (1)
PSoC (295)
地上デジタル放送 (2)
電子工作 (410)
HX711 (2)
ACS712 (6)
数学 (6)
パソコン (12)
PLC (14)
未分類 (39)
ブログ関係 (20)
スカイプ (37)
ロボット (1)
LTSpice (8)
OCXO (0)
arduino (32)
maxima (1)
フランクリン発振回路 (3)
GPS (3)
DTMF (1)
Linux (1)
KOMAINO (7)

タグリスト

最近のコメント

最近のトラックバック

メールフォーム

名前:
メール:
件名:
本文:

検索フォーム

アクセス

RSSリンクの表示

フリーエリア

FC2Ad

まとめ

Template by たけやん