PSoC Designer 5.0 Service Pack 5が出てました。早速インストール・・・の前にPSoC Programmer 3.06をインストールしておく必要があります。
どこが変わったのかよくわからんのですが(汗)、Pulse Width Discriminator (PWD)というユーザーモジュールが目につきました、これっていつからあったんでしょう?
リリースノートから一部引用すると
This UM provides highly useful fault-detection functionality for some projects. The main purpose of PWD is detecting signal preamble in the different communication protocols. Also, it can be used as hardware signal debouncer.
信号のプリアンブル検出(といっても何の事やら^^;;)やチャタリング除去に使えるらしい。
2009-07-02(Thu) | PSoC | comment : 0 | Trackback : 0
先の実験で使ったOneShotでチャタリング除去を試してみました。
まずは小道具。

手持ちのオシロはストレージタイプじゃないのでチャタリングみたいな単発現象はうまく観測できません。
そこで74HC393を使ったカウンタにLEDをつないだものを用意しました。

こんな回路です。

試したスイッチです、左側のマイクロスイッチはかなり以前に手に入れたものです(10年以上前かと・・・)
右のタクトスイッチは比較的最近です(のはずです^^;;)
まずは右のタクトスイッチで実験、カウンタに直接つないでオンオフするとカウンタは1〜4程度カウントアップします。
左のマイクロスイッチでは数十もカウントアップしてしまいます。古くて接点が劣化しているからでしょうか。
次にユーザーモジュールOneShot8を設定したPSoCにスイッチをつなぎ、出力をカウンタにつないでみると、タクトスイッチでは1ずつカウントアップします、チャタリングはうまく除去できているようです。
マイクロスイッチでは減ったもののそれでも3〜4程度カウントアップします、チャタリングは取り切れてません。試しにスイッチに並列に0.1μFのコンデンサを入れると1カウントずつアップするようになりました。
今回のOneShot8の設定はクロック0.25mSですのでデータシートのReluxTime(どう訳せばいいんでしょうか?)は2mSです。マイクロスイッチでチャタリングが取り切れていないのでもう少し長くする必要があるのかもしれません。
2009-06-24(Wed) | PSoC | comment : 1 | Trackback : 0
秋月で
LCD延長基板キットが発売されているを知りました。
600円かぁ、だったらというわけでユニバーサル基板の切れ端を利用して作ってみました。

ろくに考えず勢いだけで作ったので不格好です。

こんな感じです。
2009-06-16(Tue) | 電子工作 | comment : 2 | Trackback : 0
秋月で発売しているLTC1799モジュールとPSoCを組あわせて約30MHz〜0.01Hzまで可変出来るパルスジェネレータを試作してみました。

ブロック図です。LTC1799の出力をPSoCのデジタルブロックを使って10^N分周します。(Nの最大値は7です、もっと増やせますがあまり意味がないかと・・・)
ただしN=0には出来ないので、この場合のみ外部回路にて切り替えています。
また周波数カウンタも内蔵しています。
スイッチにてレンジを切り替えます。10^NのNをアップダウンさせます。
液晶ディスプレイの下段の数字はこのNです。
2009-06-13(Sat) | PSoC | comment : 0 | Trackback : 0


コンデンサがイナバウワ−してますが(汗)適当なのがなくってとりあえず付けたので足を切るのがもったいなくてこうなってます、近日中に買いにいきます。
当初VR1およびVR2は200Ωだったんだけど2SK241をとくに選別しなかったせいか、IDSSがばらついてしまい、結局大きめの可変抵抗器に付け替えました。ここら辺がシロートなんだよなぁ。
2009-06-11(Thu) | PSoC | comment : 0 | Trackback : 0
CY8C29466のデータシートのTable 11-22. AC Digital Block Specificationsから引用すると
CounterのMaximum Frequency(No Enable Input) は最大で 49.2 MHz (4.75V < Vdd < 5.25V)とある。
実際のところ49.2MHzを少しでも超えたら動作停止するわけではない(そんなことが出来たらそれはそれですごいことだと思うが)、私の使ったチップは公称値の140%でも動作している。
でもチップによってばらつきがあるだろうから60MHzで動作しなくなるのもあるかもしれない。
アマチュアとしては「70MHzでも動作してるからラッキー」なのだろうが、そんなことを期待して設計するわけにもいかない・・・・かな。
2009-06-05(Fri) | PSoC | comment : 0 | Trackback : 0

HC14を使ったオシレータに手持ちの
TC74HC4020をつなぎ、64分周させて周波数を測定してみた。64分周に深い意味ありません、テキトーにつないだだけです(汗

64分周した出力を左の秋月の周波数カウンタキットに入れてみました。計算してみるとほぼ1/64になってます。
ぴったりとは一致しません、ゲートタイムは共に1秒なんですが、ゲートが開くタイミングが一致してませんからね、今回のような安定していないオシレータでは無理ないでしょう。とはいえ約70MHzをカウントしているのは間違いなさそうです。

デュアル周波数カウンタなんだから他の入力に64分周した出力を入れてみました。
70252918/64=1097701.84375ですから、どんぴしゃです。
2009-06-04(Thu) | 電子工作 | comment : 0 | Trackback : 0

先の周波数カウンタの測定上限を調べるために、74HC14を使ったオシレータを作ってみました。

測定結果はなんと67MHz、ちょっとびっくりです。PSoCのカウンタモジュールはここまで応答するのか??
これが正しいかどうか確かめるすべがありませんが、ここまで行くとは思わなかった。
2009-06-03(Wed) | PSoC | comment : 3 | Trackback : 0
以前作ったのですが、回路とPSoCの設定を変えました。
以前より簡単な回路で動くようになりました。
カウントの上限はわかりませんが、写真のように32MHzが測定できています。
上のは24MHzの水晶発振器の出力を測定しています。
下のはLTC1799の出力です。


ユーザーモジュールCounter32を2つ使っています。
sysclockに非同期に設定します。
Counter32のデータシートによると
Maximum input frequency -- 48MHz Vdd=5.0V
とあります、ただし条件があります。
Provided enable signal is always high; otherwise, the limit is 24 MHz.
以前はEnableに別のカウンタで作ったゲートパルスを入れていたんですが、それによって入力上限が抑えられていました。
今回EnableはHigh固定としたので上限がのびましたが外部にゲートが必要となります。


2009-06-03(Wed) | PSoC | comment : 0 | Trackback : 0
いつまでも53歳というわけにはいかないですからね。
あと、念のための一文を入れておきました、まぁ大丈夫だとは思いますが、あくまで念のためです。
でもホントこういうことは書きたくないです。
2009-06-01(Mon) | ブログ関係 | comment : 0 | Trackback : 0
Page Top▲