PSoCを試食してみた

こんにちは、Operaです。

今回は一ヶ月放置せずに次の記事を書くことネタを見つけるができました、良かったですね。
ということで巷で噂の気になる子、PSoCを触ってみました。
ちなみに今回の記事は一応PSoC布教用なので、ちょっぴりだけ真面目に書いているつもりらしいです。

1,はじめに

まあなんで突然PSoCなのかというと、恐らくこのようなブログに来る人の多くがしている、”秋月電子の新商品チェック”をしていたら僕の目にPSoC 5LP Prototyping Kitという文字列が飛び込んできたのが始まりなわけですね。
今までPSoCは聞いたことしかない程度でしたが、1500円とお求めやすい価格であったのもありちょっと気になったので調べてみると
・回路図を組んでプログラミングし、マイコンを一つの回路として扱うことができる
・論理素子だけでなく、オペアンプやコンパレータなどのアナログ素子を使うことができる
なんていう特徴があるそうです。
論理素子のみの場合はCPLDなんかで事足りるわけですが、アナログ素子まで使えるだなんてまたすごい話じゃないですか。
ということで秋葉原に向かった時に気づいたらお買い上げしていたわけです。

ちなみにですが、買ってきてから調べてみたらマイコンの性能が低い分、600円とマイコンボードとしては破格の値段のPSoC 4200 Prototyping Kitなんてのもあったのでこっちも良さそうですね。

2,ボード本体について

マイコンボード本体は非常にシンプルな構成で、PSoC本体+ライターといった感じになっています。

DSC_0332.jpg

GPIOは38ピン。説明書いわく、基板上のインタフェースとしてはライター上のオレンジのLEDが電源、緑のLEDが通信、光ってはいませんがボード上の青のLEDがユーザー用のLEDで、またライター上のスイッチがリセットスイッチ、ボード上のスイッチがユーザー用のスイッチのようです。
初期状態ではボード上の青LEDが点滅するようになっています、つまりLチカのプログラムを組むまでもないわけですね(ちょっと悲しい)。
ライターの基板がそのままUSBになっていて、USBポートに直接接続することができるのは面白いですね。
本体にあるMicroUSB端子は通信用のようです。

3,ソフトのインストール

ソフトについては、製品のページよりダウンロードすることができます。
ページ下部に「CY8CKIT-059 Kit Setup (Kit Design Files, Creator, Programmer, Documentation, Examples)」があるのでそれをダウンロードしましょう。
インストーラがうんたらとか言われるので適当にそれもインストールすれば流れでどうにかなります。
インストール時には、下のような画面が表示されインストールする内容を選ぶことができます。

ps2.png

画面ではInstallation TypeがTypicalになっていますが、とりあえずここはCompeleにすればいいでしょう。

インストールが終わったら、何やらいくつかのソフトがインストールされますが使用するのは主にPSoC Creatorになるかと思います。

4,PSoC Creatorで遊んでみる

実際にPSoCの内部を組み立てていくソフトが、PSoC Creatorになります。
起動するとこのような画面が表示されるかと思います。

fig9.png

新しくプロジェクトを立ち上げる時は、Recent Projects→Create New Project...でプロジェクトの新規作成をします。
初めての場合はExamples and Kits→Find Example Project...で作例を探してみるのも参考になるかと思います。

プロジェクトを作成し、左のタブからTopDesign.cyschを選ぶと中央のような回路図の作成画面になります。

fig2.png

回路図内に配置できる部品は、右のタブの中から選ぶことができます。
とりあえずはカウンタでも作って遊ぼうと思い、各種モジュールを頑張って探してみると...

fig3.png

おおっとそれっぽいものが。次は繋いでみようと思い、回路図左のタブから線をつなぐアイコンを選ぶと

fig4.png

すげぇ、部品が繋がっちまった。こんなノリでつなげていくと、

fig8.png

4bitのカウンタができました!がしかし、これでは回路図上で完成しただけで、実際の回路とのピン番号の紐付けをしなければなりません。
ではまずはこのプロジェクトで使用するマイコンチップを指定しましょう。

チップの指定は、左のタブよりProject(プロジェクト名)が書いてある部分で右クリックをし、そこからDevice Selector...を選択することで指定することができます。

fig6.png

Device Selectorを起動すると、以下のようなウィンドウが表示されるかと思います。

fig5.png

まずはFamilyから自分のPSoCのシリーズを選び、そこから搭載しているマイコンを指定します。PSoC 5LP Prototyping Kitに搭載されてるCPU型番はCY8C5888LTI-LP097なので、それを選びます。他のマイコンを使っている人は、それの型番を探しだして指定すればいいでしょう。

次に、左のタブより(プロジェクト名).cydwrを選択するとマイコンのチップの画像が表示されます。

fig7.png

右側に自分が回路図上で設定した入出力ピンの一覧が出るので、それぞれどのピンを使用するのか指定します。
P2[3]のようにピン番号が表示されていますが、これはボードに刻印されている2.3ピンがそのピンになります。

DSC_0343.jpg

ピンの設定ができたら、あとは上のメニューからBuild→Build(プロジェク名)を選択してプログラムをビルドし、問題がなかったらDebug→Programを選択してマイコンに書き込みます。
エラーが有った場合は下部のスペースに表示されるので、それに応じて修正をします。
Programを選択した時にウィンドウが出てデバイスを選択するような画面になった場合は、プロジェクトで設定されているマイコンとUSBポートに接続されているマイコンが違うときに表示されるのでその時は再度確認しましょう。

実際に出力されている波形を見ると、以下の様な感じになりました。

DSC_0345.jpg

しっかりとカウントできていますね、問題なく動作しているようです。

5,おわりに

まあといった感じにPSoCを使ってカウンタを作ることが出来ました。
今までマイコンと聞いて敬遠していた人も、これなら論理回路やアナログICの代わりに使ったりすることもできるのではないでしょうか。
スポンサーサイト

2bitCPUを作りました

こんにちは、Operaです。

気づけば前回の更新から時間が経ってしまいましたね。
一応その後の基板加工結果を書いておきたいのですが、残念ながら基板加工機側のCADでKiCADのデータを上手く読み込むことができず、見事失敗して結局ユニバーサル基板で組んでしまいました...
なかなか基板加工機を使うのも難しいですね、KiCADのようにユーザーが少ないとなかなか厳しい物があるようです。

まあ例のごとく学業が忙しく試験があったりして全くもって工作ネタを消化できていないので時は遡り四ヶ月ほど前に作りました2bitCPUのネタを引っ張り出してこようかと思います。

まあまずなんでCPUか?って話ですよ。
普通ブラックボックスとして扱われていて最先端技術を駆使して作られているだろうCPUを作ろうと思う人間なんていうのはいないように思うわけですが実は電子工作をかじったことがある人間なら誰でも知っているだろうこんな書籍があるんですね→CPUの創りかた

この書籍では汎用ロジックICを使って4bitのCPUを創る方法を懇切丁寧に説明してあるのですが、ノリが緩いのもあり難しい内容でもすんなりと頭に入ってくるわけですね。
僕はちょくちょく読み返しながら読んでいったら普通に理解できたので、既にロジックICの基礎が頭に入っている方なら簡単に理解できる内容かと思います。
また、オームの法則レベルから説明してあるのでまるっきりの初心者でも何度も読み返せば理解することができるかと思います。まあ理解できたとしてそこから製作するのは茨の道でしょうが...

本を読んで実際に製作するのも良し、読み物として読んで楽しむのも良しの内容になっていますので、是非とも読んでみることをおすすめします。大学なら図書館にあったりするんじゃないですかね?

まあステマパートはここらへんにして自分の作った2bitCPUの話をそろそろ。
今回は学校の自主制作のネタとして使ったので、本当は4bitで作りたかったのですがあまり時間も無かったのでできなかったわけですね。ですので2bitのCPUとしました。さてその性能はと言うと...

汎用レジスタ : 2bit x 1
アドレス空間 : 2bit(=ROM容量は2byte)
プログラムカウンタ : 2bit
フラグレジスタ : 未実装
算術演算 : 2bitの加算のみ
最高動作クロック : 27MHz以下(ロジックICの動作周波数)
使われたICの数 : 10個

>超低性能<

アドレス空間2bitってアレですよ、プログラム4行書いたら終わりですよ!!!!そのプログラムに用意されている命令はというと、
MOV A, Im : レジスタにイミディエイトデータを書き込み
OUT A : レジスタのデータを出力ポートに出力
ADD A, Im : レジスタのデータにイミディエイトデータを加算
JMP Im : イミディエイトデータのアドレスにジャンプ
※Im(イミディエイトデータ)とは・・・命令とセットで組み込まれた数値データ

一応ですが、命令がたった4つしかなくてもカウントアップやLチカぐらいはできるんです...(それしかできません)

そして完成した2bitCPUがこちら。

PK7_60832.jpg

なんか三枚ぐらい基板が刺さってますね、一応左からクロック・リセットモジュール、DIPスイッチROM、出力ポートになっています。
マザーボードに基板が刺さってるだなんて、ホンモノのPCみたいでしょう?
動作するとこんな感じです。

PK7_61002.jpg

一応Lチカさせてるつもりですがそう見えませんね、そりゃ写真だもの。
本の作者さんがデバッグ用にLEDたくさんつけるとカッコいいよねと書いていたので至る所の信号線にLEDをぶら下げました。
一応デバッグには役立ったような、役立たなかったような...まあカッコいいので良しとします。
プログラムに関しては、Lチカやカウントアップの動作を確認できましたが、何故かジャンプ命令がうまく働かないタイミングがあったり。原因が全く持って不明だったので無かったことに。

ちなみに裏面はこんな感じです。

PK7_60842.jpg

当初の予定ではめっちゃ焼きそば配線(スパゲッティではない)のはずでしたが幸い配線量が少ないのと、基板が広かったのでジャンパ線少なめでどうにかなりました。

ここからは細かいハナシ。
ROM基板はこんな感じになっています。

IMG_20150612_1323162.jpg

なんでROMなのにDIPスイッチかって?元々の本の内容がそうだったし、わざわざ不揮発性のまともなメモリを買うより書き込みも読み込みも簡単だからさ。
ここには命令2bit+数値データ2bitの4bitのセットが4つ分格納されているので、スイッチの数もそんな感じになっています。

romBoard2.png

実はこの基板だけCAD使って設計してたり。3D表示楽しい。

クロック・リセットモジュールはただのNOTを使った発振回路とパワーオンリセットのモジュールです。

IMG_20150612_1323272.jpg

各スイッチは左からリセットスイッチ、手動クロックスイッチ、クロック速度切替スイッチ、自動クロック/手動クロック切替スイッチとなっています。クロックは平常時は1Hz/10Hzの選択となっていますが、本気を出してCR定数を変えるとMHzオーダーの動作も夢ではない...?

製作途中に完成した基板を乗っけてそれっぽい気分を味わっていく。

IMG_20150612_1323372.jpg

この手の複雑は配線作業については、回路図を印刷して配線済みのところを塗っていくと非常に便利です。塗る手間よりデバッグする手間。

IMG_20150612_1323472.jpg

製作に関しては一週間もかからず完成したような気がします。まあ本に書いてあるとおり4bitで作っていたら配線量が倍近くになるのでもっと時間がかかるかと思いますが。

以上、ただでさえ最低限の動作しかできない4bitCPUを2bitにまで縮小して作ってみたお話でした。
自分でCPUの命令セットを考えたりするだなんてとても贅沢なお話です、みなさんも自分の手で自分だけのCPUを作ってみてはどうでしょうか?

では、また今度。
プロフィール

おぺら

Author:おぺら
強電から弱電まで狭く浅くやっています。
強電:コイルガン(充電&発射部)、テスラコイル
弱電:コイルガン(制御)、鉄道模型版PRC&CTC、マルチコプター
最近はエンジン回して遊んでいます。

最新記事
カレンダー
05 | 2015/06 | 07
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 - - - -
検索フォーム
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
訪問者数
リンク
ブロとも申請フォーム

この人とブロともになる