<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>コメを噛め</title>
	<atom:link href="http://www.fumi2kick.com/komekame/feed" rel="self" type="application/rss+xml" />
	<link>http://www.fumi2kick.com/komekame</link>
	<description>rerofumi の電子工作メモ</description>
	<lastBuildDate>Thu, 12 Nov 2009 15:47:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>静電タッチセンサーの実験</title>
		<link>http://www.fumi2kick.com/komekame/archives/632</link>
		<comments>http://www.fumi2kick.com/komekame/archives/632#comments</comments>
		<pubDate>Thu, 12 Nov 2009 15:47:55 +0000</pubDate>
		<dc:creator>rerofumi</dc:creator>
				<category><![CDATA[PSoC]]></category>

		<guid isPermaLink="false">http://www.fumi2kick.com/komekame/?p=632</guid>
		<description><![CDATA[前回、テスト回路とオシロで静電容量の変化を確認することができたので、今度はそれをマイコンで読み取る実験。
PSoC Designer 5.0 のプロジェクト: touch_test2.zip
モジュールは時間計測用の16bit counter のみ。
放電後、カウンタをリセットして充電を開始。監視するピンを立ち上がりの割り込み有効に設定しておいて、電圧が一定上に上がってきたところで割り込みがかかるようにしておく。
ピン割り込みが来たらカウンタを止めて値をよむことで(オーバーヘッドもりもりだけど)充電にかかった時間がそれなりにわかるといった仕組み。もし、カウンタがオーバーしたら回路が接続されていないということでフェイル処理を行う。
後は割り込みの度にピンを変えていくことで時分割に複数の入力を読み取っていくといったコードを書いてみた。
結果、ちょいと失敗。
いや、前回のオシロ計測時の波形で変だなと思ったのをそのままにしないで解決しておくべきだった。何が変かというと、充電完了時の電圧が2.5Vだったことなのだよね。
これってオシロ自体が 1MΩ の負荷として、電荷をGNDに落としていたということだったんだよな。なので、あのようなゆっくりとしたスロープになっていた。実際にテストするカーとソフトを作ってオシロを外してみたら、ものすごい勢いであっという間に充電されてしまって計測が困難な状態にww
結局本当の速度は35us とかで PSoC のM8コアで割り込みだのなんだのじゃ間に合わん速度になってしまった。
まー、でもpull-up抵抗を 2M, 4M と変えたり、オシロがつながっていたときみたいに 1M をピンとGNDの間につないだりとかして電流をコントロールすればテストコードで十分計測できたので今回は良しとしよう。
]]></description>
		<wfw:commentRss>http://www.fumi2kick.com/komekame/archives/632/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>静電タッチセンサーの調査</title>
		<link>http://www.fumi2kick.com/komekame/archives/612</link>
		<comments>http://www.fumi2kick.com/komekame/archives/612#comments</comments>
		<pubDate>Tue, 03 Nov 2009 17:15:57 +0000</pubDate>
		<dc:creator>rerofumi</dc:creator>
				<category><![CDATA[PSoC]]></category>

		<guid isPermaLink="false">http://www.fumi2kick.com/komekame/?p=612</guid>
		<description><![CDATA[
マイコン電子工作でどのような入力スイッチを使うのかといった事は、割と重要でかつ楽しいところではないだろうか。
最近なにかと人気な静電型タッチスイッチをマイコンで作るという実験記事がChaNさんのサイトELMにある。「タッチ・センサの実験」
いつか自分でもやってみたいと虎視眈々と見つめていた次第。
今回は原理の説明と基礎実験までに。
原理については上記のChaNさんの記事で十分詳しく述べられているけれども、ちょいとわかりにくいところもあるので虎の威を借るごとく繰り返す感じで解説。

テスト用にタッチ電極を作成する。
ポジ感光基板で適当にパターンを作るのがよさそう。

ざっくりパターンを作成。

なにやらサンハヤトのポジ感光基板が「クイック」なるものになっていた。紫外線灯を使うと露光時間 2分とかで良いらしい。
前は感光面が青くて焼き付けるとうっすらパターンが見えていて焼き付けできているなというのがわかったのに、新しいタイプはほとんど無色で色が変わらないから不安に駆られる。でも現像液に浸すと緑色に変色してパターンが浮き出てくる。

エッチングしてテスト基板の完成。
久しぶりにプリント基板作ったな。

タッチセンサー部分の回路図はこんな感じ。
点線の四角い部分が静電センサーパネルで、空気を経由しつつある程度の静電容量を持ったキャパシタになっている。実際にはセンサーパネルから先には何もつながっていない。指が触れる際も直に触れると通電してしまうので、絶縁体で遮っておく。
pull-up抵抗経由で電位がかかるとマイコンのピンにも電圧がかかるが、センサーパネルがキャパシタの役割をはたし電荷が貯まるまでマイコンピンの電圧が規定値にならない。
電位がかかってからぐにゅにゅにゅにゅと電圧が上がっていく感じになるのだ。

その様子を計測した物がこれ。
今回作ったパネルでは、触れていないときの立ち上がり時間がだいたい 70us とかそんなあたり。
これをマイコンでどう制御、計測するのかというとGPIOのIN,OUTを切り替えることで放電充電を行いつつ電位を見るといった事を行うのだ。
1) 放電
センサーパネル上の電荷を放電するためにはマイコンのピンをOUTに設定し、0を出力する。
これでピンがGNDに落ちるためセンサー上の電荷が放電されることとなる。
2) 充電
放電状態から、マイコンのピンをハイインピーダンスのIN状態に設定する。
ピンはハイインピーダンスなのでpull-up電流はセンサーパネルに流れ込み電荷が貯まりピンにかかる電圧が上昇していく。
3) 計測
充電状態にするためGPIOをINに設定してあるので、あとはそのピンからの入力を監視し1になるのを待つ。
電圧が上昇していき、バッファの閾値を超えて1と認識される時がそのうち訪れる。この充電開始から、1になるまでの時間を計測するのだ。
センサーパネルに指を近づけると静電容量が変化する。
今回の様な回路で静電容量が異なるとどうなるかというと、電圧の上がる速度が変化し 3) で計測される時間が延びたり縮んだりすることとなる。

左が指を離したときの状態(平常時)で、右が指を近づけたときのもの。
差が小さくわかりにくいかもしれないけれども、指を近づけると電圧の上昇がゆるやかになり結果閾値を超えるのに時間がかかるようになる。
時間として 70～150us という値だったので、この程度の時間を計測できるなら静電タッチパネルを判別することができるだろう。
静電タッチセンサーの特徴として静電容量の変化が連続的であることがあげられる。
指が近づくにつれて充電時間が長くなっていく、今回のテスト時も指の距離でむにむにと波形が変わるので結構見ていて面白かった。
またそれを利用する事で、指がセンサーとセンサーの間に居たときおおよその位置を割り出すことができる。なので、4枚の静電タッチセンサーしかないのに、その上なら指の位置を256段階で感知することができるとかいったメリットを持つ。
実際問題、人間がGNDに触れず開放端で触れたとき妙なノイズがのり線が暴れる。ノイズはのるものの、電圧上昇カーブは変わらないみたいなので閾値周辺の扱いさえ注意すれば計測することはできるだろう。
後はマイコンの制御で実際に充電時間を計測できるかなのだけれども、その実験はまた次の機会に。
追記: 人体がGNDに触れていない時のノイズが乗った波形。

]]></description>
		<wfw:commentRss>http://www.fumi2kick.com/komekame/archives/612/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Gingerの基板</title>
		<link>http://www.fumi2kick.com/komekame/archives/607</link>
		<comments>http://www.fumi2kick.com/komekame/archives/607#comments</comments>
		<pubDate>Sun, 18 Oct 2009 09:30:36 +0000</pubDate>
		<dc:creator>rerofumi</dc:creator>
				<category><![CDATA[AVR]]></category>

		<guid isPermaLink="false">http://www.fumi2kick.com/komekame/?p=607</guid>
		<description><![CDATA[
More-Catさんが新しいGinger基板を使い切れないくらい作成したとのことでお裾分けしてもらった。
ちょいと検討していることがあったのでPepperでできそうな事について2～3質問していたら、Pepperの基板も送ってくれた。
献品御礼。 (←いっぺん言ってみたかった)

実験を検討していたところだったのでPepperの部品は一通り買いそろえてあった。写真は早速組んでみたところ。
実はなんかポカしたらしくまだ動いていなかったり。追って調査修正予定。
PepperのFuseはよっぽど必要でない限り Reset Disable にしない方が吉。
手が空いたらいじっていこう。
]]></description>
		<wfw:commentRss>http://www.fumi2kick.com/komekame/archives/607/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>HDL開発のおすすめ入門書</title>
		<link>http://www.fumi2kick.com/komekame/archives/603</link>
		<comments>http://www.fumi2kick.com/komekame/archives/603#comments</comments>
		<pubDate>Fri, 02 Oct 2009 15:43:16 +0000</pubDate>
		<dc:creator>rerofumi</dc:creator>
				<category><![CDATA[CPLD]]></category>
		<category><![CDATA[FPGA]]></category>

		<guid isPermaLink="false">http://www.fumi2kick.com/komekame/?p=603</guid>
		<description><![CDATA[
先日部屋を掃除していたら、混沌の奥底から探していた本が発掘された。
「HDLによる高性能ディジタル回路設計」　私がHDLを学習する際に大いに参考となった一冊である。
著者は森岡澄夫。いまやSOMESATで有名な「超電磁P」の森岡氏である。
この本が氏の著書だと言うことに気がついたのはうかつにも森岡氏と会ってから大分たってからのことだったのだけれども、書籍のタイトルを見ただけで「あー、あの本かー」と思ったほどに印象深くかつ参考になる一冊だった。
サブタイトルに「ソフトウェア感覚を離れてハードウェアを意識する」とあるように、ハードウェアとソフトウェアの違いや、ハードウェアはこういう風に設計するんだよといった方針をわかりやすく教えてくれる。
他に類のない良著なのだけれども、これ一冊ですべてが完結するわけではなかったりする。あくまでも「どういった方針で作るのか」で終わっているので、実際に FPGA を設計したりするためには VHDL や VerilogHDL の文法解説書が別に必要になるのだよな。
FPGAに興味があるという初心者は、まずこの本を最初にざっくりと読んでデジタル回路とはどういうものかをつかんでから入るのがオススメ。
CQPICことPIC16F85コンパチCPUのVHDLソースコードも付いてくるよ。
]]></description>
		<wfw:commentRss>http://www.fumi2kick.com/komekame/archives/603/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mac に Snow Leopard を入れてみた</title>
		<link>http://www.fumi2kick.com/komekame/archives/599</link>
		<comments>http://www.fumi2kick.com/komekame/archives/599#comments</comments>
		<pubDate>Mon, 31 Aug 2009 16:25:47 +0000</pubDate>
		<dc:creator>rerofumi</dc:creator>
				<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.fumi2kick.com/komekame/?p=599</guid>
		<description><![CDATA[MaxOSX　の新バージョンがリリースということで早速我が家の Mac　の片方に入れてみた。(両方でないところに慎重さが見られる)
正直、Macとして使う分にはなんも問題は見られない。通常のUX的には本当に変化に乏しい堅実なアップデートだのう。
一部動かないプログラムがあったのだけれども、これはPowerPCバイナリを動かすRosettaが標準ではインストールされないからだった。ディスクからオプションとして追加インストールする。ちょっとびっくりもしたけれども、最近はPowerPCバイナリを所有して使っている人の方が珍しいか。
問題ないのはあくまで「普通のMacとして」使っている人なのだけれども、MacOSX を Mach カーネルなUNIX系OSとして使っている人には結構劇的な変化があるっぽい。
『Snow Leopardにアップデートした後に気をつけること 主にMacPortsとrubygemsについて』という記事が大変参考になりありがたかった。
Portsは使っていないけれどもGemsは使っているからなあ。実際にアップグレードしたらrakeが起動しなかった。入れ直して解決。
他にも SDL-1.2.13 のビルドで失敗するようになった。
SDLはあえて1.2を必要としているのでなんとかしたいねえ。
]]></description>
		<wfw:commentRss>http://www.fumi2kick.com/komekame/archives/599/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GP2X Wiz の手応え</title>
		<link>http://www.fumi2kick.com/komekame/archives/596</link>
		<comments>http://www.fumi2kick.com/komekame/archives/596#comments</comments>
		<pubDate>Wed, 26 Aug 2009 17:41:07 +0000</pubDate>
		<dc:creator>rerofumi</dc:creator>
				<category><![CDATA[GP2X]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.fumi2kick.com/komekame/?p=596</guid>
		<description><![CDATA[そういえばアナウンスするのを忘れていたけれども、GP2X Wiz のページを作っていた。
PSPやGP2Xでおなじみの TCGS−CAR をイニシャルタイトルとして置いてある。
ひとまず開発環境が整って、無事動かせるようになったという事ですな。
以前言っていたタイマー問題なども調べたので GP2X Wiz の雑多な情報を書いておくことにしよう。
■ タイマー問題
GP2X とか通常のシステムでは 1ms の単位で取れていたタイマーが Wiz では 10ms でしか取れない。何とかならんかと調べていたけれども、どうやら Wiz のカーネルでは clock() 関数が(数字の精度はともかく)10ms単位のカウンタで更新されているということらしい。なのでこれを見ている多くのタイマー系が全部 10ms 単位になってしまうという結果。
何で10ms じゃダメなのかというと、60fps という数字は約 16ms だから。
タイマーを使ってゲームを定速で動かすのはきついのでどうするかというと、ハードウェアレジスタにアクセスして V-Sync を取ることにした。
このへんレジスタへのアクセス方法(/dev/mem を mmap() してアドレスを直接読み書きする)は mame4all あたりのソースコードを参考にするのが良い。
mame4all は SDL とかを使用しておらず、キー入力と画面描画は直接ハードにアクセスして行っているから。(サウンドはカーネルドライバをつかっている)
■ インターレース問題
Wiz をちょいと弄るとわかるのだけれども、ELディスプレイがちょいと変わったインタレースで描かれている。この辺ディスプレイをインタレースにして半分ずつ描くというのは携帯の安いディスプレイでは珍しくはなく、PSPも3000番台になってLCDが綺麗になったら実はインタレースだということが見えるようになってしまいコームノイズがやり玉に挙げられている。
Wiz の EL も 60Hz で半分ずつ描かれているようなのだが、その Even と Odd が対角線で分かれている。つまり、画面を三角形2つに分割してその2つを交互に描いている。
これがどういうことかというと60FPSでゲームを動かすと斜めに絵がずれる。画面半分の三角形は今のフレームだが、もう半分は前のフレームが表示されているのだから。
じゃあ画面上部からの描画ラスタというタイミングはないかというとこれもちゃんとある。
なので画面swapを VBlank で行わないとラスタとインタレースの両方でフレームギャップを生じてしまうというとほほさ。
Wiz の次ロットから LCD になるという噂もあるけれども、それはこの奇妙なインタレースを改善するためなのかもしれない。
■ タッチパネル
GP2X-F200 ではタッチパネルが付いていたものの、デバイスファイルを直接読みとる方式だったと思う。
Wizではカーネルのマウスドライバとして扱われているらしく、SDLのマウスで読めるらしい。
■ ボリューム
相変わらずただのボタンで、音量はアプリが自前で音量をコントロールするソフトウェアボリューム。
■ [...]]]></description>
		<wfw:commentRss>http://www.fumi2kick.com/komekame/archives/596/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SDLをインストールするrakeスクリプト その２</title>
		<link>http://www.fumi2kick.com/komekame/archives/591</link>
		<comments>http://www.fumi2kick.com/komekame/archives/591#comments</comments>
		<pubDate>Sun, 16 Aug 2009 09:43:17 +0000</pubDate>
		<dc:creator>rerofumi</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.fumi2kick.com/komekame/?p=591</guid>
		<description><![CDATA[前回の記事では、SDLとSDL_image,SDL_mixer をビルドする rake file を作った。
おかげで Cygwin 環境に自前 SDL ライブラリを導入するのが容易になって自分自身で満足していたり。
今度はこれを拡張して、本来の目的である arm-linux-gnu な環境へ対応したクロス開発ライブラリをビルドできるようにした。お目当ては GP2X wiz 用の開発環境構築だけれども、同じ arm-linux-gnu なターゲットである BeagleBoard や OpenPandora でも使う予定。
まあ、このへんをもにもに作成してクロス開発環境構築の経験値を積もうというのが一番の目的だったりするけれども。
てなわけで GP2X wiz の開発ができるところまで確認できたので Ver0.0.2 release
Download: fumi2_sdl_build-0.0.2.tar.gz (7kb, tar+gz)
前回の 0.0.1 では必要な patch や README がアーカイブから抜けていたので、あれ自体は動かしても最後まで動作しなかったかもしれない :-)
こいつでビルドするための toolchain は既に方々から提供されているものを使う。
このへんの gcc+glibc も同じような rakefile で提供してみたいものだが、最近は crosstools-ng を使うのが一般的だし、手応えとしてかなり難しそうだというのがあるので課題として積んでおくことにする。
今回ので GP2X wiz のクロス開発環境が構築できたのだけれども、その対応のために Ver0.0.2 ではいくつか変更を施している。一番大きいのが libjpeg を最新の v7 から v62 にダウングレードしているところ。
libjpeg v7 [...]]]></description>
		<wfw:commentRss>http://www.fumi2kick.com/komekame/archives/591/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ICの中身を取り出してみる</title>
		<link>http://www.fumi2kick.com/komekame/archives/587</link>
		<comments>http://www.fumi2kick.com/komekame/archives/587#comments</comments>
		<pubDate>Sun, 09 Aug 2009 16:41:19 +0000</pubDate>
		<dc:creator>rerofumi</dc:creator>
				<category><![CDATA[Parts]]></category>

		<guid isPermaLink="false">http://www.fumi2kick.com/komekame/?p=587</guid>
		<description><![CDATA[【ニコニコ動画】【夏の】ICのコアを剥いてみた【火遊び】
Make: Japan Blog で「ICのガワを溶かす方法」という記事を読んでとても心惹かれる。あのパッケージの中に入っているきらきらのシリコンダイを手にして眺める事ができるというのだから。
しかし記事で紹介されている手法は硝酸で溶かす方法でちと準備が容易とは言い難い内容。
その記事の下の方に補足として「ガストーチでパッケージを焼き尽くすとシリコンだけ残るぜ」といった事が書いてあった。それだ。それならできる。
てなわけでやってみた。これはどちらかというと結果よりも過程が画的に面白いものなので動画にしてあげておいた。

シリコンダイを入手してどうするのかというと、透明レジンに封入してデスクトップアクセサリに仕立ててみた。これを光にかざしてきらきらと虹色に輝くパターンを眺めることができるのです。


動画内ではちと表示時間が短めだったシリコンダイのスナップショット。ブロマイド？
CPLDはテクニカルノーツに書いてあるブロック図そのまんまがパターンとして見えるのが面白い。Spaltan3E は 90nm プロセスだから細かすぎてあんましパターンが見える形でひかってくれなかったのです。
]]></description>
		<wfw:commentRss>http://www.fumi2kick.com/komekame/archives/587/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>「もなか」を作ってみる</title>
		<link>http://www.fumi2kick.com/komekame/archives/576</link>
		<comments>http://www.fumi2kick.com/komekame/archives/576#comments</comments>
		<pubDate>Thu, 06 Aug 2009 19:13:58 +0000</pubDate>
		<dc:creator>rerofumi</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[かなで]]></category>

		<guid isPermaLink="false">http://www.fumi2kick.com/komekame/?p=576</guid>
		<description><![CDATA[
もあさんが「奏」インスパイアなMIDIコントロールターミナルの「もなか」を公開開始したもよう。
同じくもあさんが作成している、GingerのファームをUSB-MIDIに置き換えて奏っぽくした代物。V-USB(旧AVR-USB)というAVRで動くUSBスタックを利用しているので、PCとはUSBで直接つないでつなげるという優れもの。このV-USBはObjective Development社が提供していてフリーで使えるUSBスタックなのだけれども、USBベンダーIDを ObDev 社が提供していて、アマチュアでも容易にベンダーIDとデバイスIDを付けることができるといったあたりがすばらしい。通常USBデバイスを作っても、USB Implementers Forum に数十万のお金を払ってベンダーIDを取得しないとそれを配布することはできない。なのでアマチュアがUSBデバイスを作ることができても、頒布することはまず無理なのだよな。V-USB はそのベンダーID部分を ObDev 社が肩代わりしてくれている。その代わり、5個以上配布するときはデバイスIDをコマーシャルライセンスで購入してね、といったビジネスモデル。
前書きが長くなったけれども、ようするに「もなか」はUSB接続できる「奏」なのですな。便利な。
インスパイア元としては一つ作ってみるしかないだろう。といっても、Gingerは持っていないので、適当に部品を買い集めてGingerクローンを自作することにした。

出力のピンソケットはGinger互換ではなく、奏互換で 10ピン×2 としてみたあたり。
単に部品箱に余っていたというのもあるけれども。

裏は相変わらずこきたない。
制作自体はさほど問題はなかったのだけれども、AVR慣れしていないのもあって動くまで4日くらいかかってしまったあたり。

最初は回路図でISPコネクタのRESETをAVRのRESETにつなぐというのを見落としていてプチはまり。考えてみりゃそうだよねえ、とか思いながら修正をする。
秋月で適当に「ATMega88おくれ」といって買ってきたけれども、今はATMega88P しかなくて、それが無印88とびみょうに違うのね。
最初はFUSEの事をすっかり忘れていて、クロックが発振していねえなぜだ！と騒いでみたり。そいやFUSE設定を忘れていたわと見てみたら、GingerのMakefileに書かれているFUSEと違っていて面食らう。

ATMega88PでのFUSE設定はこんな感じで。たいしたものではないけれども一応。
ようやくクロックも正常に 12MHz を発振していて、さてとと思ったところでUSB機器として認識されない状況に。こういう時何が原因かわかりにくいので困る。
うんうんと数日健闘していたのだけれども、結果としてこれは私の配線ミスだった。USBバスのpull-up抵抗を USB-2pin に仕込まないといけないのを 3pin の方に噛ましていたというオチ。
修正したら見事動き出す。ばんざい。
そんなこんなでうちのGingerクローン基板と「もなか」が完成。
みんなも作ってみては？
]]></description>
		<wfw:commentRss>http://www.fumi2kick.com/komekame/archives/576/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>こんにちは！PSoC3 ～ PSoC Creator の世界</title>
		<link>http://www.fumi2kick.com/komekame/archives/564</link>
		<comments>http://www.fumi2kick.com/komekame/archives/564#comments</comments>
		<pubDate>Sat, 01 Aug 2009 13:43:47 +0000</pubDate>
		<dc:creator>rerofumi</dc:creator>
				<category><![CDATA[PSoC]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.fumi2kick.com/komekame/?p=564</guid>
		<description><![CDATA[PSoC3/5 の開発環境は新規に提供される &#8220;PSoC Creator&#8221; というものになる。PSoC1 の &#8220;PSoC Designer&#8221; とはまた違った感じの特徴がある代物。

PSoC Creater にはARMのGCCが含まれており、PSoC5ではそれを利用することとなる。
PSoC3 の 8051 Cコンパイラは Keil の C51 を利用するが、別ダウンロードでインストールする必要あり。C51 は30日間の free trial なので一応すぐ利用する事が可能。そのあとはライセンスをアクティベートする必要があるのだけれども、ここではとりあえず省略。
CD 内にある PSoC DevelopmentKit つーのはドキュメントやサンプルをインストールしたり Keil C51 をダウンロードしてインストールしたりするお役立ちバッチの模様。

PSoC1 の時は PSoC Designer を立ち上げるといきなり内部ブロック配線図が表示されてびっくりしたけれども、PSoC Creator の場合は回路図エディタがでんと表示されてそれなりに度肝を抜かれる。
必要なユーザーモジュールを配置していくところから始まるのは変わらないっぽい。
まずは PSoC の定番、プログラムに依らずにモジュールだけで LED チカチカでもやってみましょか。

PSoC Desighner は内部のブロック構成が見えていて、そこにモジュールをはめていくといった電子ブロックの様な楽しみがあったけれども、PSoC Creator ではそういったチップ側の都合は隠蔽されていてより抽象度の高い形で設計を進めていくことになる。
俺はこういう機能が必要なんだと設計すると後は開発環境とコンパイラとチップがうまいことやってくれるとかそんなイメージで。

カウンターも置いてからビット数を決める形に。そのビット数でいくつデジタルブロックが必要なのかということはあまり考えなくて良いということになったらしい。もちろん裏では考慮しておかないとブロックが足りなくてビルドできないということになっちゃうけれども。
モジュールを置いて、IN/OUT も決めましたと。次にピン配置をどう指定するの？

リソース編集を開くと、ピンアサインや割り込み管理などといったチップとソフトの間のリソースが管理できる模様。
このピンアサイナーをみて「おーっ」と思った人は PLD 開発の経験がある人ではないだろうか。逆にマイコン開発しか経験が無い人はただただ面食らうような、そんな気がする。

今回作ったLEDチカチカモジュール。カウンターを使いたかったので 24MHz クロックを入力しているけれども、 1KHz の低周波クロックもあってサンプルコードではそれを利用していた。
右の方にある緑の四角はピンIN/OUTモジュールで、ピン出力するときはこれを使うのがお作法らしい。ソフトウェアでIN/OUTピンを使うときもこのモジュールを置いておいてソフトウェアアクセスに設定しておく。メリットは数ビットまとめたバスにできることと、ポートセグメントを気にせずにバスアクセスできること、名前が付けられることなど。チップやレジスタレベルでのポートも抽象化してしまう方向なのだろう。
ちなみにビルド中このモジュール図が VerilogHDL にいったんトランスレートされてからフィッティングしているみたいなんだけれども、見た限り HDL を直接書くことはなさそう。難しそうではなくて、なさそう。

モジュールを動かすのに Counter_1_Start(); [...]]]></description>
		<wfw:commentRss>http://www.fumi2kick.com/komekame/archives/564/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
