cronos雑記

[ PSoC5 ] 試食。

by on 1月.19, 2013, under PSoC

今までAVRを使ってきたのだけど、firmwareが不自由なcronosさんは
RAMを使いすぎてカツカツで、ツラい開発に疲れました。
昔、PSoC1の頃に紹介して貰って、デバイス色々見て回った結果AVRを
選択していた訳なんだけども、最近また、MFTの時にPSoCイイヨって
オススメされたので、ちょっと調べてみた。

PSoCも世代が進んでいたようで、PSoC3(M8Cコア,8bit) , PSoC5(Cortex-M3,32bit)
なるものが出ている事に気がついて。 Cortex-M3はちょっと気になっていたので
PSoC5を味見してみようかなって事に。

デバイスは、Digikeyでも買えるんだけど、Cypress本家のHPから買う方が安くて
しかも送料無料(現時点)。 これは使わない手は無いよね。
で、デバイス買った直後にCypressがPSoC5LPをMPにしおった。
スピードも速くて同規模が安い。Cypressめ…。

デバッガ(MiniProg3)もCypress本家から調達したんだけど、こっちは送料掛かった。まぁ良いけど。

という事で味見ボードを作ってみている。

psoc5_01 psoc5_02

何しろリソースが潤沢なので、あれこれ載せてみたくなって、こうなった。
まだデバイス載せただけで配線はこれから。
QFNパッケージのデバイスは、ピンピッチ0.4mm。

・追記 13/01/19 23:58
電源配線を途中まで進めている。
0.4mmピッチの手半田は久々だけど、まぁ何とかなるもんだ。

PSoC5_03 PSoC5_04

・追記 13/01/29 23:54
取り敢えず全配線が終わった。 電源も載せたのでテキトーな電源でも開発okだ。

x2_10ab3bbc x2_10ab3c35 x2_10b26e8e

2 Comments more...

[ 頒布 ] 頒布一覧を纏めました。

by on 1月.15, 2013, under 未分類

頒布物が増えてきたので、頒布物の一覧ページを作成しました。

↓ これです。

http://www.cronos.ne.jp/kit/

Leave a Comment more...

[ 電子負荷 ] FW更新

by on 1月.15, 2013, under Virtual_Load

現在配布しております電子負荷のファームウェアにあった不具合を
Fixしたファームウェアを作成致しましたので、以下にて公開致します。
変更内容は…
1. 電流キャリブレーション機能の修正
電流キャリブレーション中に途中で中断した場合に、中断後も
キャリブレーション時の電流が出続けてしまう不具合を修正しました。

2. bコマンドの不具合改修(再)
bコマンドで表示される経過時間が、32767秒を超過すると
時間表示が負になってしまう不具合を修正しました。
修正後は、4,294,967,295秒まで拡張されています。

適用の程宜しくお願い致します。
リリースノート(Ver1.4)
ファームウェア(HEX)
ファームウェア(ソース、AVR Studio5.0_Project, 130115時点)

Leave a Comment more...

[ 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...

[ 電子負荷 ] FW更新

by on 11月.12, 2012, under Virtual_Load

@honet さんに電子負荷用のGUIを作っていただきました。
@honetさんありがとう!><
https://launchpad.net/vloadctl

現在配布しております電子負荷のファームウェアにあった不具合を
Fixしたファームウェアを作成致しましたので、以下にて公開致します。

変更内容は…
1. アボート機能の追加
 ご要望頂いていた、bコマンド・Pコマンドへのアボート機能を追加致しました。
測定中に”q” or “Q”を入力する事により、測定を途中終了する事が出来ます。

2. bコマンドの不具合改修
 bコマンドで表示される経過時間が、32767秒を超過すると
時間表示が負になってしまう不具合を修正しました。
修正後は、4,294,967,295秒まで拡張されています。

3. bコマンドへ累積消費容量表示を追加
 測定時間間隔と、消費している電流から
消費された容量を計算、mAh単位で表示します。

適用の程宜しくお願い致します。

リリースノート(Ver1.3)
ファームウェア(HEX)
ファームウェア(ソース,AVR Studio5.0 project,121111時点)

Leave a Comment more...

ボトムパッド付きQFN部品。

by on 9月.02, 2012, under 未分類

最近頒布しているボードに、やたら小さい部品が載っているじゃない?
あれ、QFN(Quad Flatpack No Lead)というパッケージなのだけど
eagleでライブラリを作ったり、実際に実装するにあたって
cronosさんが気にしている所を纏めておこうと思いました。

取り敢えず、eagleのライブラリ作りについて纏めたので下に置いておきます。

#追記 (120913_0020) 手半田でのデバイス実装手順を掲載しました。
QFN部品のEagleライブラリ登録 & 部品実装のしかた

Leave a Comment more...

[ 電子負荷 ] FW更新

by on 8月.05, 2012, under Virtual_Load

現在配布しております電子負荷のファームウェアにあった不具合を
Fixしたファームウェアを作成致しましたので、以下にて公開致します。

変更内容は、電流キャリブレーションのデータを参照するブロックで
電流指示値からD/Aコンバータへのデータに変換する処理において
設定電流値全域で、5mA~25mAのキャリブレーションデータのみを
使用していた不具合のFixとなります。
設定精度に関わる変更となります、適用の程宜しくお願い致します。

リリースノート(Ver1.1)
ファームウェア(HEX)
ファームウェア(ソース,AVR Studio5.0 project,120805時点)

1 Comment more...

[ 電子負荷 ] 最終仕様

by on 7月.22, 2012, under Virtual_Load

先日、無事FPGA-Cafeさんに電子負荷4セットを納入させていただきました。
TLの中で触れた最終仕様をblogの方にも掲載しておこうと思います。

耐圧:30V
電流0~5A(1mA Step, 設定確度約0.1%)
電圧モニタ(0~30V, 1mV Step, 確度約0.1%)
電流モニタ(0~5A, 1mA Step, 確度約0.1%)
※設定・モニタ確度はキャリブレーションの精度に依ります。

定電流出力モード
バッテリ放電特性測定モード
電源出力電流-垂下電圧測定モード

PCとの通信:USB経由。(I/Fは電気的に絶縁されています!)

・添付の組み立てマニュアル
http://bit.ly/P6oiDC

・セット内容物
1. 電子負荷ボード (x1ヶ)
2. パワーFET (x3ヶ)
3. 熱伝導シート (x3ヶ)
4. 330Ω抵抗 (x3ヶ)
5. ヒートシンク (穴加工済み x1ヶ)
6. 組み立てマニュアルカード (x1ヶ)

Leave a Comment more...

[ 電子負荷 ] 完成

by on 5月.15, 2012, under Virtual_Load

 今までに見つかった全ての問題に対応し、基板の改版を行った。
完成した電子負荷を使った測定例を以下に示す。

電子負荷の利用例(1): 秋月パワーLEDの順方向電圧-順方向電流特性。
 電流は最小分解能の1mAステップで変化、電圧は1mVステップで記録しています。
 http://bit.ly/JMMOat

電子負荷の利用例(2): 実験用可変電源の負荷電流-出力電圧特性測定。
 http://bit.ly/J3KkWh

電子負荷の利用例(3): Li-ionバッテリの放電特性測定。
 …ダメバッテリの例 http://bit.ly/KfpwHM

 ボードとFETのセットを、FPGA-Cafe Fablab Tsukubaで頒布する予定です。
価格・時期は追ってご連絡します。
http://www.fpga-cafe.com/

 回路図・ソースコードは全て公開します。
ソースについては、機能拡張等を行われた場合フィードバックを頂けますと助かります。
回路図
ソースコード (AVR Studio5.0 project,120515時点)

6 Comments more...

[ 電子負荷 ] 困った問題。

by on 4月.30, 2012, under 未分類

困った。
精度高く電流制御が出来て、電流モニタも出来たまでは良かったのだけど
端子電圧の測定値に誤差が出てしまう問題がなかなか解決出来ない。
分かっているのは電流0の時は値がよく安定している事と
電子負荷に電流を喰わせると、喰わせている電流値に比例して
測定電圧に誤差が出てくる事。

電圧測定端子の電圧をテスタで測っても想定通りの電圧で
モニタ電圧のように誤差は出ていない。

結果的に、GNDの電位差が誤差を引き起こしていた模様。
今回の電子負荷は、大電流が流れる定電流回路のリターン側を
制御回路のGNDと同一電位として構成していたのだけども
電流が流れると、配線抵抗x電流で発生する電圧分だけ
全く電流が流れていないGNDとの間で電位差が出ちゃうわけ。

悪いことに、大電流側をボード上のGNDにしてしまっていたために
電位が高い側のGNDがボード上の基準となってしまい
それよりも(電圧降下分だけ)低い電圧をADCが正しく受けられなかったみたい。

その証拠に、電位差が出ているGND間をショートしてやると
電圧計のマイナス側がしっかり測定範囲に入ったため
テスタの指示値とモニタ値が一致した。

何の事だか分からないと思うけど、結局はADCの入力範囲を
超えた入力を(結果的に)しちゃってたって事。
そりゃ正しく測れないわな。

原因が分かれば修正は簡単。
ボードのGND接続点を変更、電流を最大で流しても問題ない事が確認出来た。

Leave a 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!