cronos雑記

Archive for 12月, 2012

[ PSoC Creator ] 初めて触ったよ。(clockの追加)

by on 12月.29, 2012, under PSoC

実はAVRのRAMが手狭だなと思っていたの。
SPIを関数で吐き出すのも遅いしね。

そこで、所謂PLDが混載されたマイコン(PSoCx)をお勧めされて
いっちょ触ってみようか、となった訳。

PSoCと言っても色々シリーズがあるよね。
PSoC1,3,5,5LP とある中で、今回は5,5LPを対象にしたい。
5,5LPはCortex-M3コアなの。
ChaNさんのレポートを見るに、バイナリの効率も倍くらい見込めそうなので
Flashは額面の実質倍。 RAMもAVRの頃の64倍とか確保出来そうだ。

ただ。
IDEの作りが、ホント独特で
まず事始めに何をしたら良いのか皆目検討が付かなかった。
内蔵OSCが色々選べるようなのだけど、UARTを使おうとすると
内蔵OSCでは精度が足りないらしい というのを何処かで読んだので
学習も兼ねて、取り敢えずXTAL端子(XI/XO)端子から
クロックを与えたいかなと思ったりした。

PSoC使いの方にTLで教えて貰ったところ、MHz_XI端子に
水晶発振”器”(レゾネータではなく、オシレータ)を接続し
接続モードをECO(External Crystal Oscillator)にすると
動作が不安定になるらしく。
R*とか、AVRとかじゃ考えられない事なんだけど、PSoCってのは
汎用のGPIOピンに専用の機能(UARTとか、タイマとかね)が予め
割り当てられている一般のマイコンと違って、どのピンに何の
機能を割り当てるのか。 そこに割と自由度が有るみたいなんだな。

外部オシレータの接続先も同様で、IDEの上で定義が出来る。
が、オプションの階層が深かったり、定義出来る手段が多く
(PLDの回路図入力CADみたいな画面と、Cのソースと、あとクロック定義の画面。)
それぞれがどう関連付いてるのか分からん。
見てると眠くなっちゃうんだけど、何とか定義が出来たみたい。

方法は以下の通り。
1. TopDesign タブを開けて、Component Catalogから
 Cypress Component Catalog -> Ports and Pins -> Digital Input Pin [v1.80]
 というのを選び、TopDesignタブの方眼エリアにドラッグする。
2. ドラッグしたDigital Input Pinをダブルクリックし
 Typeタブ-> Digital Input と、その下階層のHW Connection にチェックを入れる。
3. 同じ子ウィンドウの中にあるName に好きな信号名を定義する。 (ここでは”sysclkとした。)
4. 次にピン定義。 *.cydwr というのを探し、ダブルクリックして
 その中にあるPinsタブを選ぶ。
5. デバイスの絵が出てくるので、絵の右側にあるネット名一覧(?)にある
 先ほど定義した”sysclk”が有るので、PortのエリアでGPIOピンを指定する。
 Pinのエリアで、ピン番号での指定も出来るみたい。
6. *.cydwr内の、今度はClocksタブを選ぶ。
 クロックの系統図みたいなのが出てくるので、右側にある”Digital Signal”の
 チェックを付け、有効化する。
 Nameの右側に[…]みたいなのが有るので、そこからさっき定義したっぽい
 clockに関連があるネットを選ぶのだけど、ここでハマった。
 定義したはずのピン名だったり、ネット名らしきものが出てこない。
 Show un-named signals ってのにチェックを入れたらNet_2みたいのが出てきて
 無事選ぶ事が出来た。
7. 当然、外部供給の周波数なんて未知なので、Signal Frequency: のエリアに
 突っ込む予定の周波数を書いておく。

これで定義出来たらしいんだけども、分からない事だらけだ。
Digital Signalとして登録した、新たに定義したsysclk と、
Net_2という信号との間にどういう関連があるのか。

そもそも、この方法で合っているのか。
もしダメで失敗した途端に内部コアと音信不通になったら、やだな。

Cypress本家から、PSoC5(LPではない)のデバイスを調達したのと
miniPROG3をゲットしたので、実際に動かしてみる用の評価ボードを
作って動作確認してみようと思う。

1 Comment more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!