ダイナミック・リコンフィグレーション
2005-08-28
温度計・湿度計
2005-08-27
低抵抗計の空いてるポートに温度センサと湿度センサをつないでみる。
今のところダイナミック・リコンフィグレーションによって切り替えるようにはしていない。
ここまで来るのにわからないことだらけで、一つ一つクリアするのに時間がかかってしまった。
プログラムを書き、Buildして、MiniProgで書き込み、動作させてみる。おかしければ、調べ直して再度書き込む。その繰り返しだった。
手探り状態、まあ、これでも最初よりはましになったけど。
今のところダイナミック・リコンフィグレーションによって切り替えるようにはしていない。
ここまで来るのにわからないことだらけで、一つ一つクリアするのに時間がかかってしまった。
プログラムを書き、Buildして、MiniProgで書き込み、動作させてみる。おかしければ、調べ直して再度書き込む。その繰り返しだった。
手探り状態、まあ、これでも最初よりはましになったけど。
低抵抗計その後。
2005-08-24
シングルゲートICを買ってみたものの、あまりに小さくて使うのを断念。もっとこて先の小さな半田ごてを買わねば。
仕方なくHC08にした。SIP5ピンのシングルゲートってないのかな、ピン間隔が2.5ミリの。
コントラスト調整用の半固定抵抗を移動、入力保護用のダイオード追加、三端子レギュレータに放熱器をつける(まだ配線してないけど)
二つある3ピンコネクタには温度センサ(LM35)と湿度センサを繋ぐ予定。
普段は温度・湿度計としておき、必要なときだけ低抵抗計として使えるようにする。
今月号のトランジスタ技術を参考にしてダイナミックリコンフィグレーションで切り替えるようにしてみたい。
仕方なくHC08にした。SIP5ピンのシングルゲートってないのかな、ピン間隔が2.5ミリの。
コントラスト調整用の半固定抵抗を移動、入力保護用のダイオード追加、三端子レギュレータに放熱器をつける(まだ配線してないけど)
二つある3ピンコネクタには温度センサ(LM35)と湿度センサを繋ぐ予定。
普段は温度・湿度計としておき、必要なときだけ低抵抗計として使えるようにする。
今月号のトランジスタ技術を参考にしてダイナミックリコンフィグレーションで切り替えるようにしてみたい。
オシレータのための覚え書き
2005-08-19
とりあえず覚え書き、本人以外にはちょっとわからんと思う。
コンデンサが15個もいるのか。そこまでせんでもええかなあ。
でも、ここまできたらあとは作り直すだけか、デジットに走らなきゃ。
それにしてもE6系列では合成は不可避だな。
range1 | 470pF | C1 | |
range2 | 760pF | C2 | 680pF+68pF |
range3 | 1200pF | C1+C2 | |
range4 | 2000pF | C3 | 1000pF+1000pF |
range5 | 3200pF | C1+C2+C3 | |
range6 | 5200pF | C4 | 4700pF+470pF |
range7 | 8400pF | C1+C2+C3+C4 | |
range8 | 0.013μF | C5 | 6800pF+6800pF |
range9 | 0.022μF | C1+C2+C3+C4+C5 | |
range10 | 0.036μF | C6 | 0.033μF+3300p |
range11 | 0.058μF | C1+C2+C3+C4+C5+C6 | |
range12 | 0.094μF | C7 | 0.047μF+0.047μF |
range13 | 0.15μF | C1+C2+C3+C4+C5+C6+C7 | |
range14 | 0.25μF | C8 | 0.22μF+0.022μF |
range15 | 0.4μF | C1+C2+C3+C4+C5+C6+C7+C8 |
コンデンサが15個もいるのか。そこまでせんでもええかなあ。
でも、ここまできたらあとは作り直すだけか、デジットに走らなきゃ。
それにしてもE6系列では合成は不可避だな。
LCDはどのポートにつけたらいいのか。
2005-08-16
PSoCでありがたいのはLCDが簡単につながること。
なんとLCD用のAPIがもれなく無料でついてくる!
ちなみのこのLCD、秋月電子ではこれ、バックライト付きもあるが1000円する。
大阪は日本橋のデジットでも同種のLCDが売っている。試してはいないが使えるはずだ。念のため店員に聞いてくれ。
ちなみにこの店の店員は元気で威勢がいい。がんばれデジット、大阪人として応援してるぞ!(その割には秋月でよく買ってるが)
話がそれてしまった。
「はじめてのPSoCマイコン」から始めた人はLCDはポート2に繋いでいるんじゃないかと思う。
先に製作した低抵抗計ではポート1にLCDを繋いでいた。LCDはどのポートに繋ぐのがいいんだろうか。
私が今使っているCY8C27443ではどのポートにもLCDを繋ぐことができる。
各ポートにはそれぞれ特技がある。
アナログ出力はポート0しかできない。
外部クロックやI2SCならポート1
ExternalVRefやExternalAGndはポート2
要は必要に応じて決めればいい、って全然答えになってないじゃないか。
ただMiniProgを使っている場合は先に書いたようにMiniProgがP1[0]とP1[1]を使うので注意が必要だ。
それを嫌ってP1[0]とP1[1]をMiniProgとの接続専用にするという手もあるが。
なんとLCD用のAPIがもれなく無料でついてくる!
ちなみのこのLCD、秋月電子ではこれ、バックライト付きもあるが1000円する。
大阪は日本橋のデジットでも同種のLCDが売っている。試してはいないが使えるはずだ。念のため店員に聞いてくれ。
ちなみにこの店の店員は元気で威勢がいい。がんばれデジット、大阪人として応援してるぞ!(その割には秋月でよく買ってるが)
話がそれてしまった。
「はじめてのPSoCマイコン」から始めた人はLCDはポート2に繋いでいるんじゃないかと思う。
先に製作した低抵抗計ではポート1にLCDを繋いでいた。LCDはどのポートに繋ぐのがいいんだろうか。
私が今使っているCY8C27443ではどのポートにもLCDを繋ぐことができる。
各ポートにはそれぞれ特技がある。
アナログ出力はポート0しかできない。
外部クロックやI2SCならポート1
ExternalVRefやExternalAGndはポート2
要は必要に応じて決めればいい、って全然答えになってないじゃないか。
ただMiniProgを使っている場合は先に書いたようにMiniProgがP1[0]とP1[1]を使うので注意が必要だ。
それを嫌ってP1[0]とP1[1]をMiniProgとの接続専用にするという手もあるが。
シングルゲートIC
2005-08-16
低抵抗計でスイッチに直接信号を通さないためにはANDゲートが必要だけど、そのためにわざわざ14pinDip ICを使うのもスペースがもったいないと思ってたら、最近は便利なICがあるんですね。
シングルゲートIC(これは2入力AND)。実際インバータが一個だけ欲しいなんてことはよくあるんで、こういうICはありがたい。
シングルゲートIC(これは2入力AND)。実際インバータが一個だけ欲しいなんてことはよくあるんで、こういうICはありがたい。
低抵抗計とMiniProgとの接続で注意すること
2005-08-15
低抵抗計では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に落としておかないといけないようだ。
とりあえずデータシート見ての推定だけど。
LCDのデータシート調べたら、D0~D7は双方向性だった。
LCDに書き込むだけでなく、LCDから読み出すこともできる。
MiniProgを繋いだとき、おかしくなったのはLCDが出力モードになっていて、MiniProgと出力がぶつかったためと思う。
MiniProgを繋ぐときはLCDのREかRWをLowに落としておかないといけないようだ。
とりあえずデータシート見ての推定だけど。
PSoCで低抵抗計、その後
2005-08-14
とりあえず作ってみました。
ラッピング用のワイヤ(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を認識しなかった。
三端子レギュレータはまだ配線していない。
オリジナルと比べて
入力保護用のダイオード(D4、D5)をまだつけていない。
圧電ブザーをつけていない。(U4、R8)
R2が手持ちの関係で100Ω。
ラッピング用のワイヤ(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を認識しなかった。
三端子レギュレータはまだ配線していない。
オリジナルと比べて
入力保護用のダイオード(D4、D5)をまだつけていない。
圧電ブザーをつけていない。(U4、R8)
R2が手持ちの関係で100Ω。
またまたPSoCオシレータ
2005-08-13
8月10日の記事の通りにコンデンサを入れ替えた。
ただ0.47μFがなかったので0.22μFを二個並べた。
コンデンサがやけに目につく。
あと三端子レギュレータをつけた。当初は手持ちの78M05を使うつもりだったけど、秋月電子で低ドロップタイプのTA4805Sを買った。もちろんこれだけでは送料と代引き手数料がもったいないのであれやこれやと買い込んだ。
3.333KHzの波形。階段状の波形はフィルタ入力、0.5V/div。
滑らかなほうはフィルタ出力、02V/div、よく見るとでこぼこがある。これは周波数がフィルタのカットオフよりかなり低いからだ。
最低レンジ以外はひとつのコンデンサしかオンしていないが、これを周波数によって複数のコンデンサをオンするようにプログラムを書き換えればある程度対処できると思う。
ただ0.47μFがなかったので0.22μFを二個並べた。
コンデンサがやけに目につく。
あと三端子レギュレータをつけた。当初は手持ちの78M05を使うつもりだったけど、秋月電子で低ドロップタイプのTA4805Sを買った。もちろんこれだけでは送料と代引き手数料がもったいないのであれやこれやと買い込んだ。
3.333KHzの波形。階段状の波形はフィルタ入力、0.5V/div。
滑らかなほうはフィルタ出力、02V/div、よく見るとでこぼこがある。これは周波数がフィルタのカットオフよりかなり低いからだ。
最低レンジ以外はひとつのコンデンサしかオンしていないが、これを周波数によって複数のコンデンサをオンするようにプログラムを書き換えればある程度対処できると思う。
Application Note 2207についての疑問
2005-08-13
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ノイズが減少するようだし。
だったら余っているピンから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で低抵抗計
2005-08-10
アプリケーションノート2207
ロックインアンプを使った低抵抗計。
スイッチの接触抵抗などの低抵抗を測れるのだそうだ。
ロックインアンプは学生の頃(といってももう四半世紀前)いじっていた。懐かし。
PSoCでできるのか。とりあえず読んでみないと。
ロックインアンプを使った低抵抗計。
スイッチの接触抵抗などの低抵抗を測れるのだそうだ。
ロックインアンプは学生の頃(といってももう四半世紀前)いじっていた。懐かし。
PSoCでできるのか。とりあえず読んでみないと。
PSoCオシレータの改良
2005-08-10
考えてみれば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でやってみよう。
矩形波出力はどうしようか。
使用前・使用後
2005-08-09
小さなことからコツコツと。
2005-08-07
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には別のうまい方法が載ってたけど、こういう基本的なやり方も体験しておかないと。
これで一つ理解が進んだ。
でもほとんどまだわからないことばかり。
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には別のうまい方法が載ってたけど、こういう基本的なやり方も体験しておかないと。
これで一つ理解が進んだ。
でもほとんどまだわからないことばかり。
フィルタをつけるための覚え書き
2005-08-06
PSoCオシレータ、その後2
2005-08-05
ectoyfanさんのサイトで符号つき整数を符号つき10進表記の文字列に変換するBytetoIntStrを見つけた。ありがたい、感謝。
以前紹介したprintfは便利だけど、ちょっと数字を表示するだけならBytetoIntStrを使った方が処理が速い。
またしてもプログラムを書き換えてみる。
ロータリーエンコーダをかなり速く回してもぴたりと表示がついてくる。
printfを使った場合は速く回すとまれに追いつかない場合があった。
以前紹介したprintfは便利だけど、ちょっと数字を表示するだけならBytetoIntStrを使った方が処理が速い。
またしてもプログラムを書き換えてみる。
ロータリーエンコーダをかなり速く回してもぴたりと表示がついてくる。
printfを使った場合は速く回すとまれに追いつかない場合があった。
PSoCオシレータ、その後
2005-08-05
PSoC用printf
2005-08-03
はじめてのPSoCマイコンに付属するCD-ROMのプロジェクトファイルを使うと液晶表示にprintfが使えて便利。
実はこれは前書の著者であり、パステルマジックの代表者でもある桑野雅彦氏が開発されたものだ。
こちらからプロジェクトファイルが入手できる。感謝。
実はこれは前書の著者であり、パステルマジックの代表者でもある桑野雅彦氏が開発されたものだ。
こちらからプロジェクトファイルが入手できる。感謝。
PSoCオシレータ、その後
2005-08-01
ここ数日、はじめての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が手持ちにあるのでそれを使うことにする。
オリジナルでは20KHzの整数分の一の周波数しか出せない。
すなわち、20KHz、10KHz、6.666KHz、5KHz・・・といった具合だ。
Device EDitorのGlobal ResourcesからVC1=SysClk/Nの値を3から2に減らしてみた。
こうすれば最高周波数は30KHzになるはずだ。すんなりうまくいった。
だったら1にしちゃえば最高60KHzになるはずだ、と思ってやってみたものの、うまくいかいない。
表示はちゃんとするのだが、出力が出ない。
理由がわからない、まあろくにデータシートも読まずにいじってるんだから無理ないか。
多分フィルタの入力周波数に上限があるんだろう。調べないと。
ちなみにこのPSoCオシレータ、電流は約55mA。
006P電池を三端子レギュレータで5Vに落として使おうと思ってたけど、意外と電流が流れる。
ローパワーモードってのがあるのかもしれない。これも調べないと。
手持ちの適当なACアダプタから電源供給できるようにしよう。
三端子は78M05が手持ちにあるのでそれを使うことにする。