[[作業日誌]] 目次 #contents(); 過去の日記 -[[./自主課題]] -[[./マイコンペ]] -[[./2009年度]] [[つくったもの>./つくったもの]] *ご意見 [#y42b8a4b] #comment(); *6月3日 PSoCで水晶を使う [#jc39eab7] PSoC内蔵のクロックだけ(ILO)だと、最大+/-2.5%ずれる精度(accuracy) ここで、外付けの水晶を使うと、さらに高精度(accuracy)になる、はず。 やり方はTechnical Reference Manual(http://www.cypress.com/?rID=3208 )に書いてあるけど、 Application NoteのAN2027(http://jp.cypress.com/?id=1029&rtID=5&rID=26009 )の方が詳しい。 #というか最初TRMだけ見てたらハマった・・ **手順 [#y2c6589f] P1[0]とP1[1]の間に水晶を置き、それぞれの端子からコンデンサを付けてVddに繋ぐ。 Designerで、それぞれのピンの設定を以下のようにする。 | |Select|Drive| |P1[0]|XtalOut|Hight Z| |P1[1]|XtalIn|Hight Z| グローバルリソースを変更 |32k_Select|External| |PLL_Mode|Ext_Lock| 結論から言うと、P1[1]側に12pF、P1[2]側に100pFをつなげる(20 Pin SSOPの場合)。 PLLを使わない時は、TRMに書いてあるようにC1とC2(≒20pF)でいいんだけど、 実際使うときはPLLモードで使う(らしい)。 #ここは読んでてもなんとなくしか理解できなかった・・ **注意点 [#o8370c9a] P1[0]とP1[1]は、プログラムを書き込むピンでもある。水晶をつなげたままでもプラグラムは書き込める。 ただし!実行させるときはMiniProgは外さないといけない。MiniProg容量負荷が大きすぎる?のか水晶がしっかり発振できない。 &ref(miniprog.jpg,,50%); **結果 [#r6ebc1b1] 10kHzごとにパルスを出してみた。オシロスコープの周波数カウンタの表示。 |ILO(内蔵)|10.07kHz| |ECO(水晶)|9.94434kHz| -Accuracyは大体同じ値になった。 --#水晶〜端子間の基板レイアウトをうまくすればもっといい値が出た? -Precisionは違いが出てきた。 --ILOが10.070kHz〜10.074kHzの値をうろうろしていたのに対し、ECOは9.94434kHzでずっと一定だった。 **参考 [#w4bda9c7] ここのサイトがすごくまとまってました。http://bluefish.orz.hm/sdoc/psoc3.html *6月1日 [#u830c0a1] **オシロスコープ(TDS2024B)のUSBへのデータの保存 [#tfd4027e] 先生のページ(http://akita11.jp/plan/osc/ → Know-hows / Tips)に書いてあった。 手持ちの、Trancend 2GBではちゃんと波形を保存できました! **PSoC timer8の割り込み周期 [#md49642f] グローバルリソース SysClk 24MHz CPU_Clock CycClk/1 //割り込み関数 #pragma interrupt_handler Timer8_ISR void Timer8_ISR(){ //LEDモジュール LED_On(); LED_Off(); } 上の条件の時、タイマ割り込みの周期の上限は約46kHzだった。 これ以上の周期で割り込みをかけようと思っても、46kHzで頭打ち。留意しましょう。