コメを噛め

コメを噛め

rerofumi の電子工作メモ

Archive for the ‘PSoC’ Category


hatena bookmark

プリント基板を作るために四苦八苦した「いるみさん」プロジェクトですが、一回できてしまうと私的には非常にたやすく基板作成ができるようになります。
そんな状況になったことで調子ぶっこいて、電池一本で駆動する小型版をオマケで作成することにしました。yytuneさんのコンサートライトを PSoC で別実装したような感じになります。
使用する PSoC は 8pin の CY8C27143。電池1本から 3.3V に昇圧するのにはやはりストロベリーリナックスのDCDCモジュールAS1322A を用意しています。
パワー指向の「いるみさん」と違って、マイコンと LED 両方の電圧を 1つの DCDC でまかなっていますので大電流が取れず制限抵抗も必要となることからあまり明るくはできません。
そこそこの明るさのものを安定して作るというのが mini の役割となります。


基板設計。
今回はオマケなので本当に回路図もなにもなくいきなりパターンを書いています。

Download: irumi_mini_garber_20101223.zip
ガーバーを出力して。


プリント基板を作って。

Download: psoc_irumi_mini_20101223.zip
ファームはいるみさんのを流用して。

で、完成。
1日でできる作業でした。
Read the rest of this entry »


hatena bookmark


マイコンに書き込むファームウェアの作成。
個人的に悩むことのないフェーズなのでプロジェクトファイルをぽこっと置いて終わりにしておく。

Download: led_irumi_20101221.zip

設計としては、PSoCのデジタルブロックを使って 3つの 8bit PWM モジュールを置き、それで LED の明度を指定している。なので MPU はその PWM モジュールに数字をセットするだけの役割でボタン監視ぐらいしか行っていない。
16bit のカウンターはウェイトタイマー用に 16ms 間隔での割り込みを発生させるためのもの。キーチャタリング防止とか、時間計測とかに使っている。

機能としては、ボタンでプリセットの色が変わっていき、ボタン長押しでじんわり色が変わるレインボーモードになるとか、ボタンを押しながら電源ONで点滅モードとか仕様通り。


hatena bookmark


いわゆるひとつのはんだ付け作業。


プリント基板さえ作れば、はんだ付けは簡単なお仕事。そう考えていた頃がおれにもありました……


簡単になるのはスルーホールのDIP部品だけじゃんかよ。表面実装はソルダーマスクがないとブリッジしまくるしまくる。
まあ、溝が 0.27mm しかないから当然かもしれないけれども。


ルーペで見ながらはんだ付けして、一個つける毎にテスターでショートしていないかをチェック。はんだ吸い取り線が大活躍しつつ、ヒーヒーいいながらなんとか実装を終えたのでした。


hatena bookmark

特に語ることもなく、K2CAD で黙々とプリント基板を作る。


こちらがすでに何度か出てきている LED ボード。
3色 LED とスイッチ用の表面実装トランジスタ、必要ならば制限用にチップ抵抗を取り付けられる。それを丸い形のプリント基板にするあたりがポイント。


PSoC とDCDCを乗せたコントロール基板、電源であるニッケル水素電池のサイズから外形が決まっている感じ。
電池金具の穴は外形レイヤーにつけてある。外形を 1mm のエンドミルでくりぬく際に、金具穴も開けてしまおうという魂胆。1mm という幅がちょうど良い感じなので。

上記二枚のガーバーデータ。レイヤーは、ソルダーパターン/外形/ドリル穴 の 3枚。
Download: irumi_garber_20101214.zip

CADデータを置いても良いんだけれども K2CAD なんだよな。使っている人いるのかなん。


hatena bookmark


電子工作部分の回路図はこんな感じ。
って、実は回路図引かずに直接基板設計してたからこれは事後に書き起こしたもの。

最初はプッシュスイッチにプルアップをつけていたけれども、実装時は PSoC 内のプルアップ回路を利用する事にしたから外したとか。ごにゃごにゃあって部品の値を変えたりとか細かい変更があった程度かね。


秋月で買った電池金具。
これを基板につけることで電池を実装する。というあたりを規定としてプリント基板の設計へ入っていくのでした。


hatena bookmark


電源周りに注目したブロック図をざっくりと書いてみた。
ニッケル水素電池からの出力をマイコン用の昇圧回路とLED用の昇圧回路のそれぞれにわけて与えているところが今回の中心。定電圧が必要なマイコンと、電流次第で電圧が変動するLEDは分けておこうというお話。
LEDドライバーはLED専用なので制限抵抗無しでダイレクトにLEDを駆動できる。このため抵抗を追加する必要がなくて、余計な電力を食わずにすむはず。


マイコンは PSoC CY8C29466 の面実装パッケージ。以前 DigiKey で買った在庫がまだ手元にあったのでそれを使用。
PSoC でSMP(昇圧ポンプ機能)がついている奴って 28pin のになっちゃうのよね。

面実装部品を使おうと思えるのも、自分でプリント基板を作るからなのです。


hatena bookmark

honnori_fig1

ハードが完成したのでファームも完成させて Ver1.0 とした。
以前の版に比べての改良点は。

  • サーミスタの温度テーブルを Extruder2 のソースで使われているテーブルを流用、Extruder使用時とほぼ同じ数字が出るようになった
  • 真ん中ボタンでのヒーターOFF時に設定されていた目標温度を保存し、次回起動時にその温度が表示されるようにした
  • 温度上げ下げボタンにキーリピートをつけた
  • LCD表示を 16×2 のレイアウトに合わせて改変した

といったあたり。

PSoC Designer5.0 用のプロジェクトファイル&バイナリHEX
Download: hotplate_controller_v100.zip

ホットプレートコントローラー基板こと、「ほんのりさん」はこれにて完成となります。


hatena bookmark

honnori_icon1
CupcakeCNC 向けのホットプレート制御基板に「ほんのりさん」という名前をつけて、P板.com で製造してみた。

DSC00666DSC00662
つつがなく完成。配線ミスもなくいいかんじ。

DSC00664
毎度のシルク絵もこんな感じで仕上がっています。

Download: hotplate_controller_02.zip
基板の K2CAD 設計データと、gerber データの詰め合わせ。
gerber の方はそのまま出せば製造できるんでないかな。(デザインルールが許容範囲であればだけれども)

もうちょっとファームを改良する予定。


hatena bookmark

DSC00533
Cupcake CNC のホットプレートコントローラー基板完成。
こうまとまっているとなかなかに使いやすい。

DSC00526
基板に穴開け。地味にめんどい。

DSC00528
実装。
DSC00531
一本配線忘れていたのでパッチと、ヒーターへの電源をバイパスで補強。
あとマイコンのプログラミング端子もつけ忘れているけれども、これもジャンパでいいか。

感光基板による第二プロトタイピングも完成。
ファームももうちょっと手を入れないと。


hatena bookmark

前回、テスト回路とオシロで静電容量の変化を確認することができたので、今度はそれをマイコンで読み取る実験。

PSoC Designer 5.0 のプロジェクト: touch_test2.zip

モジュールは時間計測用の16bit counter のみ。
放電後、カウンタをリセットして充電を開始。監視するピンを立ち上がりの割り込み有効に設定しておいて、電圧が一定上に上がってきたところで割り込みがかかるようにしておく。
ピン割り込みが来たらカウンタを止めて値をよむことで(オーバーヘッドもりもりだけど)充電にかかった時間がそれなりにわかるといった仕組み。もし、カウンタがオーバーしたら回路が接続されていないということでフェイル処理を行う。
後は割り込みの度にピンを変えていくことで時分割に複数の入力を読み取っていくといったコードを書いてみた。

結果、ちょいと失敗。
いや、前回のオシロ計測時の波形で変だなと思ったのをそのままにしないで解決しておくべきだった。何が変かというと、充電完了時の電圧が2.5Vだったことなのだよね。
これってオシロ自体が 1MΩ の負荷として、電荷をGNDに落としていたということだったんだよな。なので、あのようなゆっくりとしたスロープになっていた。実際にテストするカーとソフトを作ってオシロを外してみたら、ものすごい勢いであっという間に充電されてしまって計測が困難な状態にww
結局本当の速度は35us とかで PSoC のM8コアで割り込みだのなんだのじゃ間に合わん速度になってしまった。

まー、でもpull-up抵抗を 2M, 4M と変えたり、オシロがつながっていたときみたいに 1M をピンとGNDの間につないだりとかして電流をコントロールすればテストコードで十分計測できたので今回は良しとしよう。