知恵袋

Last-modified: 2009-07-12 (日) 16:55:35 (2845d)

PSoCな知恵袋

ちょっとしたハマりポイント、こうやったら上手く行ったなどなど一言シリーズで
長くなりそうな時は独立したページを作成してリンクしてください

PSoC Designer関係

  • ユーザモジュールのサンプルコードはモジュールのデータシートにありますが、Cypressのサイトには、サンプルプロジェクトがあります。 Design Resources-Resource Type:(をクリック)-Example Projects- PSoC Mixed-Signal Controllers

PSoC Express関係

  • コードを書かずに、GUIだけで機能実現を目指しているツール。回路図やdigi-keyなどの注文コードの入った部品表も出力される。
  • インストールして起動すると途方に暮れがちな雰囲気が漂いますが、下記で解説されています。
    いずれもVersion1時代のものですが、GUIに関してはほぼ同じです。(Ver1->2でPSoC Designerから独立し、単独インストールでも動作するようになった)

開発キット関係

  • CY3210-MiniEval1にはゼロプレッシャーソケットのシルクがありますが、300milのものはあまり売られていません。
    秋月電子で売られているARIESの物は、300milに改造できます。
    ・元ネタ http://www.geocities.jp/doggie_ele/psoc/socket/socket.htm
    ・とても親切 http://www.page.sannet.ne.jp/je3nqy/komono/aries/aries.htm
  • CY3240 I2C-USB Bridge Kit USB-I2Cインターフェースブリッジ
    J1用のジャンパソケットが付いて来ない。これを挿さないとサンプルは動かない。

Cコンパイラインストール(Hi-TECH C)関係

  • Cypressが以前から採用していたM8C用CコンパイラはImageCraft?社製であったが、提携関係を切って、今はHi-TECH社のコンパイラが標準になっている。ImageCraft?は基本的に有償のみであった、こちらは無料のLiteバージョンもある。 インストール方法や、PSoC Designer上での設定については、日本サイプレスがインストールマニュアルを用意している。 http://www.cypress-japan.co.jp/ccompiler/How_to_install_HiTECH_Lite.pdf

Cコンパイラ(ライセンスキー)関係

  • ライセンスを購入すると、PCコード(Payment Confirmation Code)が記入されたカードが送られてくるがこれはライセンスではなく、Cypressのサイトでライセンス申請すると、メールでlicense numberが送られてくる。
    申請はCypressのサイト、設計リソース-C-Compiler Licenseから行う。申請にはCypress portalのアカウント取得が必要。
  • CY3215-DK Basic Development Kit にはライセンスが付属しているが、PCコードの書かれたカードは付属していない。PCコードはICE Cube本体の裏側ラベル。
  • 手間をかけて入手したライセンスを入力する場所が、どうやっても入力できないと言う方はこちらへ。
    また、ライセンスのメールが届かないことがままあり、無理に英語でメールをしてさらに失望を深くしたくない方もこちら。 http://www.pastelmagic.com/tips/Clicense/clicense.html
  • 「PSoCマイコントレーニングキット本」添付のライセンス登録ページではちょっとしたハマりポイントがある。詳細は下記をクリック
    トレーニングキットでCライセンス?

デバイス関係

  • かつてCypressの日本法人サイトにあったCY8C27*43日本語データシート。
    現在はこちら。http://www.pastelmagic.com/sample/psoc_datasheet.lzh
  • PRoC CYWUSB6953に使われている48Pin QFNパッケージですが、 ダイセン電子工業 Q048という変換基板に実装できます。
  • PRoCで使用される13MHzの水晶発振子は、Digikeyで買えます。(表面実装です。) 535-9118-1-ND ï¿¥174
  • CYWUSB6935には、CYWM6935という基板実装済みのものが存在します。
    ヘッダにSPIインターフェースが引き出されており、PSoCなどでコントロールできます。
    ヘッダは2mmピッチですが、ヒロセのDF11や2.5インチHDDのソケットが使えます。


FirstTouch?をプログラマとして使う

下記クリックしてください。
FirstTouchをプログラマとして使う?


ビルド時のwarning:area 'Area Name' not defined in startup fileメッセージ (ImageCraft?)

  • PSoC Designerの4.2SP3以降で次のようなWarningメッセージが出ることがある。
"warning:area 'Area Name' not defined in startup file './obj/boot.o'
and does not have an link time address."
※実際には'AreaName'というのは'UART_1_RAM'といった名称になっている。

このWarningメッセージについてはSP3添付のRelease NotesのKnown Issueで

This warning message can be safety ignored.

と書かれているとおり、無視してしまって構わない。(なぜかこの後のDesignerに添付されるRelease Notesには書かれていないが)
要するに、boot.asmの中に'Area Name'領域が取られてないということなので、無理やりなくしたいなら、boot.asmの元ネタである、boot.tplを書き換えてGenerete Applicationしてboot.asmを再生成してやれば良いが、あえてそこまでするほどのことも無いだろう。

ビルド時のinterrupt function requires addressメッセージ(Hi-TECH C)

  • #pragma interrupt_handlerを使ったサンプルソースコード等をHi-TECH Cでコンパイルすると次のようなWarningメッセージが出る。
"!WC:\xxx\main.c(38):(690) interrupt function requires address (warning)"

このWarningは無視して構わない。
Hi-TECH Cの場合、PSoC Designerに依存せず、ありがちなマイコン開発環境と同様に全部のソースコードを1から書き上げていくようなことにも配慮している。このための「お助け機能」として割り込みハンドラの後ろにアドレスを指定すると、割り込みのエントリからいきなり割り込み関数に飛ぶようなコードが自動生成される機能がある。
書き方はこんな感じ

#pragma interrupt_handler my_handler
void my_handler(void) @ 0x0006
{
}

This interrupt function requires addressというのは、このアドレス指定が無いけど良いの?という意味。PSoC Designerを使っている分には、割り込みエントリはboot.asmが担っているので、Hi-TECHの自動生成機能は出番が無い。

Sleep時の消費電流測定結果(参考)

下記クリックしてください。
Sleep時の消費電流?

PSoC Programmerのアップデートチェック外し

下記クリックしてください。
プログラマのアップデートチェック外し?

Designer 4 with Imagecraft なプロジェクトを Designer 5 で読んだとき HI-TECH C コンパイラを使ってくれない

Designerはコンパイラを複数選択することができるようになっている.コンパイラによって生成されるコードも異なるので、

  • 既存のプロジェクトはどちらのコンパイラ用なのか
  • 新規のプロジェクトでどちらのコンパイラを使うのか

を判定して意図されている側のコンパイラを使うようになっている. このためImageCraft?を使ってビルドされていたプロジェクトをそのまま読み込むと、ImageCraft?のコンパイラを使おうとする。これをHI-TECHに切り替えるには

Project - Settings - Build - Compiler

のSelect C compilerでHI-TECH を選ぶといい.ちなみに、

Tools - Options - Build - Compiler

の Default compilerは新規プロジェクトで選択されるデフォルトのコンパイラの指定なので、新規に作成するときはこちらも要チェック.

CPUが24MHz動作時にLCD表示がうまく行えないことがある

PSoC Designer5.0 Service Pack 5-Build972(Jun,24,2009)でLCDを使っているときにCPUが24MHz動作しているとプログラム中の特定のところでLCDへの表示がうまく行えないときがある。
以前のDesignerで動いていたプロジェクトをこのバージョンで読み込んで再ジェネレートしても発生する(再ビルドだけなら大丈夫)。現象を意図的に再現するのは難しくて確実に再現するパターンをは掴めていないけれども,LCD_Positionでカーソル位置を大きく動かした後に表示が来ていたりすると発生しやすいようだ。
原因と思われるのはLCD.asmの中で液晶パネルのレディ待ちをするCheck_Readyルーチン。以前のものはReadyになるまで無限ループだったのが,このバージョンからはデッドロック回避のためか255回ループで抜けるようになっている。どうやらこの255回というのが短すぎて,液晶がReadyになりきらないうちに次のコマンドを送ろうとしておかしくなってしまうこというカラクリらしい。
もし,不幸にして液晶パネルとの組み合わせでこの現象が発生してしまったら、元ネタファイルを書き換えてしまうのが確実だろう。
LCD.asmの元ネタは

c:/Program Files/Cypress/Common/CypressSemiDeviceEditor/Data/Stdum/LCD/lcd.asm

このオリジナルは念のために

copy lcd.asm lcd_org.asm

などとして,コピーして保存しておく.あとは .LCD_RDY_LOOP:と .UNLOCK:近辺を次のようにコメントアウトしてしまえば良い.

;    push  X
;    mov   X,255
.LCD_RDY_LOOP:
;    jz    .UNLOCK
;    dec   X
    jnz   .LCD_RDY_LOOP
.UNLOCK:
;   pop   X

これで問題プロジェクトをGenerateからやり直せばうまくいくはず。