迷走の果て・Tiny Objects

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

気圧センサあれこれ

ストロベリーリナックス
 MPL115A2 気圧センサモジュール(I2Cタイプ)

秋月電子
 気圧センサ SCP1000-D01モジュール
 気圧センサ MPL115A2 ストロベリーリナックスで使われてるのと同じ。
 気圧センサ MPL115A1 こちらはインターフェースがSPI

スポンサーサイト

周波数カウンタの温度補償

自作の周波数カウンタで使っているPSoCは外部クロックで動かしている。
これには先の記事にも書いた10MHzのTCXOを使っているが、温度によって周波数が変化する。これを補償する方法を考えた。
ゲートタイムは10MHzを分周して作る。これにはPSoCユーザーモジュールのPWM24を使う。
PWMのwidth値は
ゲートタイム=width*(1/fclock)
なので
ゲートタイムを1秒とすると
width=fclock
となる。
fclockは温度によって変化しても、変化の割合が解っていればwidthを変えてやることによりゲートタイムを一定に出来る(はずである)。

ここで使うTCXOは先の測定の結果
22.3℃ 10.000002MHz
44.4℃  9.999986MHz
なので 22.1℃の温度変化で16Hz周波数変化する。
ここで16/22.1を16/22で近似しておく。
よって発振周波数は22℃以上で8/11(Hz/℃)で減少する。

温度<=22の場合
 width=10^7とする ....(1)
温度>22の場合
 width=10^7-(T-22)*(8/11)=10^7+16-(8/11)*T .... (2)

デュアル周波数カウンタのプログラムでLM35による温度の計算は
温度=(getADC+32)/63
となっているので(2)に代入して
width=10^7+16-(8/11)*(getADC+32)/63=10^7+(10832-8*getADC)/693

温度を測定し、それによってPWMのwidth値をかきかえれば温度補償が可能となる。
あくまで温度補償であって精度が良くなるわけではない。
さらに18℃より低い温度での測定をしていない、室内で使うのが前提なので問題はないと思う。

秋月のTCXO

手持ちがまだあったので秋月のTCXOを測ってみました。
秋月TCXO
以前の結果と同じで、40℃~45℃ぐらいに変曲点があるようです。

手持ちのTCXOの温度-周波数特性を測ってみた。

OCXOの実験基板ですが、作り直しました。
14pinのICソケットを付けてTCXOを取り替え出来るようにしました。
220Ω 1Wの抵抗を3本パラレルに接続してヒーターとしました。220Ωの抵抗は手持ちにあったから使っただけです。
温度センサはLM35に変更しました、テスタで温度が直読できるのが便利ですから。
TXO2605A_1.jpg
TXO2605A_2.jpg
以前、手創り屋さんで購入したTCXO TXO 2605Aを測ってみました。
残念ながらこれも売り切れで入手不可のようです。
TXO2605A_3.png

Poor man's OCXO

OCXOとはoven-controlled crystal oscillatorの略で、水晶発振器を恒温槽にいれて発振を安定にさせたものです。
ひょんな事から作ってみようと思いました。

前の記事でも書いてますが、既に販売終了になった秋月の12.8MHz水晶発振器は精度が良いと評判でしたので、以前に数個入手たことがあります。
それを分解し回路図まで載っけたサイトを見つけました。
こちらこちらです


分解してみました、水晶はHC-18/Uのようです。実は手持ちにポジスタを使った水晶オーブンがあります。ムラタ製で今は入手は無理なようです。
これを付ければOCXOになるんじゃないかと実験をはじめました。

TXCO2.jpg
実験基板です。ちょっとわかりにくいんですが石塚電子のサーミスタ103JTをはさんであります。温度を測定するためです。

TXCO4.png
測定結果です。水晶オーブンの電圧を少し変えては温度が安定するのを待って測定するのでとても時間が掛かりました。

20℃から40℃ぐらいまでは約2Hz/℃で発振周波数が低下しています。
40℃~44℃ぐらいまであまり変化せず、それ以上では発振周波数は上昇しています。
温度を42℃ぐらいで一定に出来れば安定な発振が期待できそうです。

ja3nplさんのサイトで秋月の12.8MHz水晶発振器の温度-周波数特性を載せてありました。(最後までスクロールしないと見えません)
40℃付近で周波数が一番低くなるのは同じですが、20℃から40℃ぐらいまでの周波数変化率がだいぶ異なります。分解し改造したのが原因かとは思いますが、本当のところはわかりません。

なお周波数の測定には自作の周波数カウンタを使いました。
基準クロックには10MHzのTCXOを使っています、これも温度変化の影響を受けるのですが、カウンタ内部に温度センサLM35を仕込んであり、内部温度を表示できるようにしてあります。測定中の内部温度は20℃から22℃でしたので、今回の測定結果に大きな影響はないと思います。

PSoCでPLL・その2

PLL_1.jpg
実験基板です。


実験中です、以前作ったデュアル周波数カウンタが役に立ちました。

12.8MHzの100/128倍にはなっていますが、一秒間(周波数カウンタのゲートタイムが一秒なので)のカウント数が計算通りになっているというだけで、ジッターが結構あるんじゃないかと思います。PSoCのクロックは24MHzですがその影響も考えられます。
大きくなりますがカウンタやゲートを使った方がそういう点では有利かもしれません。

LCDが外れる?

だいぶ前に作ったプロジェクトをPSoC Designer5.1で開いていくつか変更しプログラムしたところ動かなくなりました。
あれこれ調べてみるとLCDを port2 に設定していたにもかかわらず none になってました。なんでやねん。

そういえばPSoC Designer5.1で開いた時に、LCDモジュールのアップデートをするか?と聞いてきましたね。
アップデートしたんですが、あれで設定がリセットされたのではないかと思ってます。

久しぶりに焦りました。

PSoCでPLL

元ネタはこちらです。
秋月で販売されていた(2010年4月で販売中止になったそうです)12.8MHzのTCXOを基準発振源とし、PLLで100/128倍して10MHzに変換するものです。
これをPSoCを使って作ってみました。
PSoCPLLのブロックダイアグラム
ブロック図です、PSoCのPWMで12.8MHzを1/64とし200KHzを、同じく10MHzを1/50して200KHzを得ます、これを位相比較してフィルタに通しVCOの制御電圧とします。

PSoCXOR.png
位相比較はEX-ORを使いました、PSoCでは隣り合うDigtal Interconnet Rowは上の図のようにANDやOR等の論理演算が出来ます、ここでは A XOR B を選びます。
PLLの位相比較にEX-ORを使うとロックレンジが狭いという問題がありますが、この回路では周波数が固定なので問題ありません。
psocPLL.png
回路図です。スイッチは調整用です、オリジナルでは固定抵抗ですが、VCOがどれぐらい変化するのか知りたくて半固定抵抗としました、でも2KΩはちょっと小さすぎると思います、とりあえず手持ちにあったので使っただけです。
VCOはPSoCのDigInVを使い発振させます、この方法は以前に書いた記事にあります。
バリキャップを使って発振周波数を変化させます。
pongincolor20080708

自作の周波数カウンタで測ったところ
12.8MHz出力は12800008Hz
10MHz出力は10000006Hz
となりました。
12800008/128*100=1000006.25ですから計算は合っています。

CPUは各ユーザーモジュールをスタートさせるだけで後は何もしてません。

PSoCを使った基準電源の試作・ケースに仮止め

使わなくなった装置があるので、中身を取り出し、PSoCを使った基準電源を入れてみました。
まだ仮止めの段階です。使い勝手を知るためです。

数日前に作ったPSoCナイトライダーもどきにつないでみました、何ボルトまで下げても動くのかを知るためです。
2.37Vまで動作しました、2.36Vにすると動作停止します、そのまま放置したのですが、停止したままです。
あくまで今回使ったチップではこうなったというだけですが。

PSoC基準電源ですが、結構良い物が作れたと思ってます、自画自賛ってのはこういう事でしょうね。
仮止めじゃなくちゃんとケースに収めなければ。


 | HOME | 

文字サイズの変更

プロフィール

edy

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

BME280モジュールを使った温度・湿度・気圧計(2)DSO Shellを使って動作電流を測る Apr 23, 2017
BME280モジュールを使った温度・湿度・気圧計 Apr 23, 2017
DSO Shell(2)電源 Apr 16, 2017
小学一年生5月号付録 ドラえもん こえピアノ Apr 14, 2017
DSO Shell(1) Apr 13, 2017
非接触温度センサMLX90614を試す(6)プラケースに入れる Apr 03, 2017
アナログフィルタ Mar 28, 2017
非接触温度センサMLX90614を試す(5)Arduino pro miniを使ってみる Mar 19, 2017
非接触温度センサMLX90614を試す(4)耳内温を測ってみる。 Mar 12, 2017
非接触温度センサMLX90614を試す(3) Mar 11, 2017

全記事表示リンク

全ての記事を表示する

ブログリンク

リンク

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

月別アーカイブ

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)
電子工作 (390)
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 たけやん