コメを噛め

コメを噛め

rerofumi の電子工作メモ

hatena bookmark


PSoC3 のテストボードを作ったよ、といっても一発で完成したわけでなく前回の基板は Rev.B となる。
最初に作った基板は一発では動作しなかった。


PSoC Programmer の JTAG chain で見えたり見えなかったりしているのだけれども、Erase とかがまったくできない状態。
初めて使うデバイスは流石に勝手がわからないものだねー。


こんなこともあろうかと作っておいた変換基板を使って書き込みのテストをすることにした。

小さい基板は JTAG ピンの breakout board。こういう細かいのはさくっと作れて楽しい。
でかい変換基板もなんか満足度が高くて嬉しくなる一品。

ブレッドボード上であーでもないこーでもないと試行錯誤を繰り返しながら書き込み試験。
いじり倒して結果わかったことは、

  1. JTAG の RST は nTRST ではなく XRES につなぐ
  2. 電源周りを一通りケアしないと失敗する
  3. JTAGなりSWDなりのラインはプルアップしておいたほうが安定する
  4. power cycle 書き込みがなんだか動かない

といったあたり。

結局基板が失敗したのは XRES につないでなかったからで、これはパッチしたら動き出した。なので Rev.B はRST ラインを修正したものとなる。 JTAG の場合は nTRST かと思いこんでいて失敗した。しかし、XRES の方に繋いだままソースコードデバッグもできたので、nTRST は何につかうのかわかんなくなった。

PSoC1 は適当ぶっこいて MiniProg からの ISSP をダイレクトに足に繋いだだけでも書き込めたので楽ちんだったが、PSoC3 は流石に一通り電源配線して、10uF の安定用キャパシタとかを挟まないと power cycle とかで失敗するみたい。
アナログVdd とかいらないだろとか思っていたけれども、このへんも配線した方が安定するとかそんな風味で。

5線の JTAG はそうでもないんだけれども、2線+XRES で書き込むSWDはこのへんの安定性をもろに食らうご様子。電源配線のうえ、プルアップしないとほとんど成功しなかった感じ。
しかしまあ、作ったテスト基板のほうではプルアップ無しで、SWD 書き込みとデバッグができていたのでさほど神経質になるようなほどでもないか。

で、最後の power cycle だけれども、これは本来 XRES でリセットしなくても電源投入直後のタイミングでほにゃららすると書き込みモードになるはず。なのだけれども、このときでも XRES が無いと書き込めなかった。
この件に関しては HirakuTOIDA さんの記事にそのものが記されていた。PSoC3の書き込み / PSoC3の書き込み(解決編)
うむむ、販売版の PSoC3 と最新版の PSoC Programmer + MiniProg3 でも駄目だったということは、MiniProg3 の Revision に因るのか。まあうちのは一番最初のロットだからなあ。

48pin だと XRES を GPIO としても使えるのだけれども、それをやってしまうと二度と書き込めなくなりそうである。100pinの奴は XRES が独立しているので問題なし。
まあ、XRES が使えるようにしておけばそれで良いので気をつけて使う方向で済まそう。

Leave a Reply