迷走の果て・Tiny Objects

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

ダイナミック・リコンフィグレーション

dynamic050828_2.jpgdynamic050828.jpg

スイッチを追加してダイナミック・リコンフィグレーションによって機能を切り替えられるようにした。
写真ではちょっとわかりにくいが、基板中央下のスイッチで切り替わる。

例によって手探り状態でここまでなんとかできた。
もう少しプログラムを整理しないと。

スポンサーサイト

シール基板

こんなのがあったのか!シール基板

singlegate050827.jpg買ったものの小さすぎて使えなかったシングルゲートICもこれならなんとかなるかも

温度計・湿度計

temp_humid.jpg低抵抗計の空いてるポートに温度センサと湿度センサをつないでみる。
今のところダイナミック・リコンフィグレーションによって切り替えるようにはしていない。
ここまで来るのにわからないことだらけで、一つ一つクリアするのに時間がかかってしまった。
プログラムを書き、Buildして、MiniProgで書き込み、動作させてみる。おかしければ、調べ直して再度書き込む。その繰り返しだった。
手探り状態、まあ、これでも最初よりはましになったけど。


temp_humid2.jpg

低抵抗計その後。

miniohm070824.jpgシングルゲートICを買ってみたものの、あまりに小さくて使うのを断念。もっとこて先の小さな半田ごてを買わねば。
仕方なくHC08にした。SIP5ピンのシングルゲートってないのかな、ピン間隔が2.5ミリの。
コントラスト調整用の半固定抵抗を移動、入力保護用のダイオード追加、三端子レギュレータに放熱器をつける(まだ配線してないけど)
二つある3ピンコネクタには温度センサ(LM35)と湿度センサを繋ぐ予定。
普段は温度・湿度計としておき、必要なときだけ低抵抗計として使えるようにする。
今月号のトランジスタ技術を参考にしてダイナミックリコンフィグレーションで切り替えるようにしてみたい。

オシレータのための覚え書き

とりあえず覚え書き、本人以外にはちょっとわからんと思う。
range1470pFC1
range2760pFC2680pF+68pF
range31200pFC1+C2
range42000pFC31000pF+1000pF
range53200pFC1+C2+C3
range65200pFC44700pF+470pF
range78400pFC1+C2+C3+C4
range80.013μFC56800pF+6800pF
range90.022μFC1+C2+C3+C4+C5
range100.036μFC60.033μF+3300p
range110.058μFC1+C2+C3+C4+C5+C6
range120.094μFC70.047μF+0.047μF
range130.15μFC1+C2+C3+C4+C5+C6+C7
range140.25μFC80.22μF+0.022μF
range150.4μFC1+C2+C3+C4+C5+C6+C7+C8


コンデンサが15個もいるのか。そこまでせんでもええかなあ。
でも、ここまできたらあとは作り直すだけか、デジットに走らなきゃ。
それにしてもE6系列では合成は不可避だな。

LCDはどのポートにつけたらいいのか。

PSoC_pin.jpgPSoCでありがたいのはLCDが簡単につながること。
なんとLCD用のAPIがもれなく無料でついてくる!
ちなみのこのLCD、秋月電子ではこれ、バックライト付きもあるが1000円する。
大阪は日本橋のデジットでも同種のLCDが売っている。試してはいないが使えるはずだ。念のため店員に聞いてくれ。
ちなみにこの店の店員は元気で威勢がいい。がんばれデジット、大阪人として応援してるぞ!(その割には秋月でよく買ってるが)

話がそれてしまった。
「はじめてのPSoCマイコン」から始めた人はLCDはポート2に繋いでいるんじゃないかと思う。
先に製作した低抵抗計ではポート1にLCDを繋いでいた。LCDはどのポートに繋ぐのがいいんだろうか。

LCDport050816.jpg私が今使っているCY8C27443ではどのポートにもLCDを繋ぐことができる。

各ポートにはそれぞれ特技がある。
アナログ出力はポート0しかできない。
外部クロックやI2SCならポート1
ExternalVRefやExternalAGndはポート2

要は必要に応じて決めればいい、って全然答えになってないじゃないか。
ただMiniProgを使っている場合は先に書いたようにMiniProgがP1[0]とP1[1]を使うので注意が必要だ。
それを嫌ってP1[0]とP1[1]をMiniProgとの接続専用にするという手もあるが。


シングルゲートIC

低抵抗計でスイッチに直接信号を通さないためにはANDゲートが必要だけど、そのためにわざわざ14pinDip ICを使うのもスペースがもったいないと思ってたら、最近は便利なICがあるんですね。
シングルゲートIC(これは2入力AND)。実際インバータが一個だけ欲しいなんてことはよくあるんで、こういうICはありがたい。
singleagateAND.jpg

低抵抗計とMiniProgとの接続で注意すること

低抵抗計ではPSoCのP_1_0、P_1_1はそれぞれLCDのD4、D5につながってる。そしてMiniProgもP_1_0、P_1_1を使っている。
LCDのデータシート調べたら、D0~D7は双方向性だった。
LCDに書き込むだけでなく、LCDから読み出すこともできる。
MiniProgを繋いだとき、おかしくなったのはLCDが出力モードになっていて、MiniProgと出力がぶつかったためと思う。
MiniProgを繋ぐときはLCDのREかRWをLowに落としておかないといけないようだ。
とりあえずデータシート見ての推定だけど。

続きを読む »

PSoCで低抵抗計、その後

miliohm050814.jpgとりあえず作ってみました。
ラッピング用のワイヤ(AWG30 0.26φ)を10センチほど切って測定しているところ。

電線の抵抗値=抵抗率×長さ÷断面積
銅線の抵抗率は0.0172[Ωmm^2/m]
長さ0.1m、断面積0.053mm^2だから
抵抗値は32mΩと計算できる。測定値は28mΩ、こんなものか。

MiniProgと接続するためにP_1_0、P_1_1およびXRESを外部に出している。
P_1_0、P_1_1はLCDにも接続している。そのためかLCDを外さないとMiniProgがPSoCを認識しなかった。


miliohm050814_2.jpg三端子レギュレータはまだ配線していない。
オリジナルと比べて
入力保護用のダイオード(D4、D5)をまだつけていない。
圧電ブザーをつけていない。(U4、R8)
R2が手持ちの関係で100Ω。

またまたPSoCオシレータ

psocosc050813.jpg8月10日の記事の通りにコンデンサを入れ替えた。
ただ0.47μFがなかったので0.22μFを二個並べた。
コンデンサがやけに目につく。
あと三端子レギュレータをつけた。当初は手持ちの78M05を使うつもりだったけど、秋月電子で低ドロップタイプのTA4805Sを買った。もちろんこれだけでは送料と代引き手数料がもったいないのであれやこれやと買い込んだ。

psocosc050813_2.jpg3.333KHzの波形。階段状の波形はフィルタ入力、0.5V/div。
滑らかなほうはフィルタ出力、02V/div、よく見るとでこぼこがある。これは周波数がフィルタのカットオフよりかなり低いからだ。
最低レンジ以外はひとつのコンデンサしかオンしていないが、これを周波数によって複数のコンデンサをオンするようにプログラムを書き換えればある程度対処できると思う。

続きを読む »

Application Note 2207についての疑問

R10とR11で1/2Vccを作ってR4~R7に繋いでいるが、Ref Muxは[Vdd/2]+/-Band Gapとなっている。
だったら余っているピンからVdd/2を出力すればR10、R11およびC14は省略できるんじゃないのか。
わざわざ外付け部品使ってるのはなにか理由あるんだろうか。
AGndのノイズが問題なのか?AGndBypassをEnableにしてP2[4}にコンデンサ繋げばいいんじゃないか。
データシート(Document No.38-12-12 Rev.*J)の32ページFigure3-9には0.1μF程度のコンデンサを繋げば1KHz以上において約14dBノイズが減少するようだし。

PSoCで低抵抗計

アプリケーションノート2207
ロックインアンプを使った低抵抗計。
スイッチの接触抵抗などの低抵抗を測れるのだそうだ。

ロックインアンプは学生の頃(といってももう四半世紀前)いじっていた。懐かし。
PSoCでできるのか。とりあえず読んでみないと。

続きを読む »

PSoCオシレータの改良

20050810100102.jpg


考えてみればC1は常時GNDに接続しておけばいい。
C2およびC3の値を変更する。C4以降はC1の値と比べて大きいので変更しなくてもいい。
これで新たにC7を追加できる。

C1=470pF fc=68KHz 30~10KHz GNDに接続。
C2=1000pF fc=21KHz 10~3KHz
C3=4300pF fc=6.8KHz 3~1KHz (なければ 2200pF+2200pF)
C4=0.015μF fc=2.1KHz 1~0.3KHz
C5=0.047μF fc=680Hz 300~100Hz
C6=0.15μF fc=210Hz 100~30Hz
C7=0.47μF fc=68Hz 30~10Hz

出力にはOPampを使う、手持ちにあったのでCA3130でやってみよう。
矩形波出力はどうしようか。

使用前・使用後

filter050809.jpg
8月6日の回路を組んでみた。

30KHz.jpg10KHz.jpg1KHz.jpg100Hz.jpg

左から30KHz、10KHz、1KHz、100Hz
どれも上がフィルター入力、下がフィルター出力。
縦1Volt/div。
階段状のギザギザが取れて綺麗になっているのがわかる。

続きを読む »

小さなことからコツコツと。

Ref Mux : [2 BandGap]+/-BandGap

PGAを配置して以下の設定を行う。
Gain : 1.000
Input : AGND
Reference : AGND
AnalogBus : AnalogOutBus_3

AnalogOutBus_3はP_0_2に接続。

プログラムは簡単。
PGA_1_Start(PGA_1_MEDPOWER);

これでこれでP_0_2から2.6ボルト出力されるのを確認した。

「はじめてのPSoCマイコン」p.82には別のうまい方法が載ってたけど、こういう基本的なやり方も体験しておかないと。
これで一つ理解が進んだ。
でもほとんどまだわからないことばかり。

フィルタをつけるための覚え書き

psocoscfilter.jpg

とりあえず考えたことを記録しておく。

C1=470pF fc=68KHz 30~10KHz
C2=1500pF fc=21KHz 10~3KHz
C3=4700pF fc=6.8KHz 3~1KHz
C4=0.015μF fc=2.1KHz 1~0.3KHz
C5=0.047μF fc=680Hz 300~100Hz
C6=0.15μF fc=210Hz 100~30Hz

P_1_2~7はオープンドレインドライブLowにしておく。

PSoCオシレータ、その後2

ectoyfanさんのサイトで符号つき整数を符号つき10進表記の文字列に変換するBytetoIntStrを見つけた。ありがたい、感謝。
以前紹介したprintfは便利だけど、ちょっと数字を表示するだけならBytetoIntStrを使った方が処理が速い。
またしてもプログラムを書き換えてみる。
ロータリーエンコーダをかなり速く回してもぴたりと表示がついてくる。
printfを使った場合は速く回すとまれに追いつかない場合があった。

続きを読む »

PSoCオシレータ、その後



ロータリーエンコーダにコンデンサを付けた。PSoCのデジタル入力はシュミットトリガなのでチャッタリング除去できると思ったからだ。
ポートはプルアップに設定しておくと5.6Kでプルアップされるので抵抗を外付けする必要がない。
上の図の抵抗は手持ちの関係で470Ωを使ったが、100Ωぐらいでいいからつけておいた方がいい。
狙い的中。ロータリーエンコーダを一回転させる、そして逆に一回転、すると元の周波数にもどる。
当たり前のようで、以前はならなかった。
場合によってはソフトよりハードで処理した方がいいという例かな。

PSoC用printf

はじめてのPSoCマイコンに付属するCD-ROMのプロジェクトファイルを使うと液晶表示にprintfが使えて便利。
実はこれは前書の著者であり、パステルマジックの代表者でもある桑野雅彦氏が開発されたものだ。
こちらからプロジェクトファイルが入手できる。感謝。

続きを読む »

PSoCオシレータ、その後

ここ数日、はじめてのPSoCマイコン第5章のテストオシレータで遊んでいる。
オリジナルでは20KHzの整数分の一の周波数しか出せない。
すなわち、20KHz、10KHz、6.666KHz、5KHz・・・といった具合だ。
Device EDitorのGlobal ResourcesからVC1=SysClk/Nの値を3から2に減らしてみた。
こうすれば最高周波数は30KHzになるはずだ。すんなりうまくいった。
だったら1にしちゃえば最高60KHzになるはずだ、と思ってやってみたものの、うまくいかいない。
表示はちゃんとするのだが、出力が出ない。
理由がわからない、まあろくにデータシートも読まずにいじってるんだから無理ないか。
多分フィルタの入力周波数に上限があるんだろう。調べないと。

ちなみにこのPSoCオシレータ、電流は約55mA。
006P電池を三端子レギュレータで5Vに落として使おうと思ってたけど、意外と電流が流れる。
ローパワーモードってのがあるのかもしれない。これも調べないと。
手持ちの適当なACアダプタから電源供給できるようにしよう。
三端子は78M05が手持ちにあるのでそれを使うことにする。


続きを読む »

 | HOME | 

文字サイズの変更

プロフィール

edy

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

脈拍センサーMAX30100を試す(5) May 20, 2017
MT3608モジュールを使ったDSO Shell用電源 May 16, 2017
脈拍センサー MAX30100を試す(4)MAX30100_Registers.h を調べる。 May 13, 2017
脈拍センサー MAX30100を試す(3)正常動作?? May 12, 2017
脈拍センサー MAX30100を試す(2)スケッチとライブラリー May 10, 2017
脈拍センサー MAX30100を試す(1) May 08, 2017
Studuino用電池ボックスを作る(2) May 06, 2017
Studuino用電池ボックスを作る May 05, 2017
MT3608モジュールのテスト Apr 30, 2017
BME280モジュールを使った温度・湿度・気圧計(2)DSO Shellを使って動作電流を測る Apr 23, 2017

全記事表示リンク

全ての記事を表示する

ブログリンク

リンク

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

月別アーカイブ

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)
電子工作 (399)
HX711 (2)
ACS712 (6)
数学 (6)
パソコン (12)
PLC (14)
未分類 (39)
ブログ関係 (20)
スカイプ (37)
ロボット (1)
LTSpice (8)
OCXO (0)
arduino (28)
maxima (1)
フランクリン発振回路 (3)
GPS (3)
DTMF (1)
Linux (1)
KOMAINO (7)

タグリスト

最近のコメント

最近のトラックバック

メールフォーム

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

検索フォーム

アクセス

RSSリンクの表示

フリーエリア

FC2Ad

まとめ

Template by たけやん