2015年7月13日月曜日

I2Cってなんじゃいな。

PSoCまつり明けの記事としてはちょっと高難易度かもしれません。

さて、I2Cはアイ・ツー・シー、もしくは
アイ・スケア(スクエア)・シーと読みます。

I2Cはフィリップス・セミコンダクター(今のNXP)が開発した
2線式の双方向バスです。
シリアルデータライン(SDA)とシリアルクロックライン(SCL)の
2本を用いて通信をし100kbit/s,400kbit/s,1Mbit/s,3.4Mbit/s,5Mbit/s
の4つの通信スピードがあります。

UART(シリアル通信)と同じようにデバイス間の通信方式ですが
UARTとは異なり複数のデバイスとも通信することが出来ます。

I2Cには、デバイス同士にマスターとスレーブと言う関係性を持っています。

マスターのデバイスはスレーブに対する設定をしたり、スレーブが作ったデータを取ったりします。
スレーブのデバイスはスレーブ同士を見分けるための固定のアドレスと
レジスター(メモリーの集合郵便ポストみたいなもの)を持っています。
レジスターに設定やスレーブが用意したデータが格納され、
レジスター内のデータを返してマスター側とデータのやり取りをします。



多くの場合、I2Cの接続にはマスターが1つに対して
複数のスレーブが接続する単一マスター接続があります。
場合によって、複数のマスターと複数のスレーブを接続する
マルチマスター接続と言うのもあります。

I2Cで難しいのは8bitのセットで格納されているスレーブ側のレジスターです。
レジスターには0,1のビットが8個セットで格納されており、
格納してあるビット列で設定やデータの受け渡しをしています。
スレーブ側のレジスターに格納されているビット列を変更する事によって
スレーブ側の設定が変更されます。
また、一つのビットだけでも大きい意味を持つので、設定に関しては
スレーブ側のデーターシートを良く見る必要があります。
受け渡すデータも格納されている8bitだけでは無く、16bit,24bitと長くなる場合には
マスター側が「ビット演算子」を使ってデータを復元する必要性もあります。

ここまで分かっていればPSoCでI2Cを使う場合には問題ないかなと思います。
PSoCではCapSenseのモニターにもI2Cは使われており、何かとI2Cは登場する機会が
多いかなと思いますので、習得しておくと便利だと思います。

もしも、I2Cの細かい所を知りたい場合には
NXPの中の人が書いた解説を読むのが良いと思います。
https://developer.mbed.org/users/okano/notebook/i2c-access-examples/


次回は実際にPSoC5LPをマスター、スレーブ側を
センサーモジュールでI2Cの通信してみたいと思います。

2015年5月31日日曜日

PSoCまつり2015レポート


学生やホビースト、勉強家の社会人に向けたセミナー
PSoCまつり2015が去る5月23日に日本サイプレス東京の
会議室にて開催されました。
参加者は関係者を入れて、前回を1.5倍上回る32名となり
Twitterでは233tweetと前回を大幅に上回りました。



プレゼンテーションの内容

  • PSoCってなに?に。中村優友
https://drive.google.com/open?id=0B3nNx5DVbfPZaUl4ZVRaY0VncG8&authuser=0

  • ハード屋視点でPSoC使うとココが便利だよね! くろのす
https://dl.dropboxusercontent.com/u/1134773/ext/PSoC%E3%81%BE%E3%81%A4%E3%82%8A/PSoC%E3%81%BE%E3%81%A4%E3%82%8A2015_cronos_sv.pdf
  • PSoC4BLEのご紹介 田中範明(noritan.org)
https://drive.google.com/file/d/0B5BCGa5ZnIN4a2ZhVldtTTdpdGs/view?usp=sharing
  • ブラシレスDCモータの研究 たっちゃん

  • MDK-ARMでPSoCの開発 坪井義浩(@ytsuboi)
https://drive.google.com/file/d/0B5Smhi1tjGg6by1ONENXNWsxR3M/view?usp=sharing
  • P○Cでいいって言わないでっ @Hatris
http://www.slideshare.net/hatris/pc-48516828
  • USBSTICK から始めるFMファミリのご紹介 長濱みほ

  • PSoC流赤外線リモコンとコンポーネントの作り方 @betaEncoder

  • PSoC5LPとの戯れ 圓山宗智
https://drive.google.com/file/d/0B9jN7bxNVsZQUEl6bDAyRER6OW8/view?usp=sharing
  • PSoC5LPでUSBMIDI ectoyfan
http://ectoyfan.xrea.jp/PSoCfest2015presentation.pdf




配布された資料
https://drive.google.com/file/d/0B3nNx5DVbfPZLXVFdHF0UDVhX1E/view?usp=sharing

PSoCまつり2015のツイロガー
http://togetter.com/li/825276




PSoC4の体験コーナーでは
前回と同じでタクトスイッチを押したらLEDが消える
と言うプログラムを行いました。
体験希望の方が6名いましたので用意したボードが足りなかったので
PSoC5LPのボードを貸し出して体験していただきました。
今回は他のマイコンを使っていた方が多かったためか
驚かれた方が多い様でした。

参加者への「お土産」の正体は
CY8CKIT-042-BLE です。
PSoC4BLEの開発キットです。

またスイッチサイエンス様からは
特製の付箋セットとマグカップが
なんと、SPANSION様からは
FMマイコンのスターターキットが
参加者へと配布されました。

キャンセル待ちが30人強と沢山出てしまった点についての
反省はありましたが、無事に大成功を収める事が出来ました。


PSoCまつりは小規模であるからこそ
丁寧に、きめ細やかに、そして肩の力を入れなくてよい
そんなセミナーでありたいと思っております。
ですが、PSoCまつりは多くの方の力や知恵があって初めて開催する事が出来ます。
力を貸していただけるプレゼンターや協賛していただける会社様に
深い尊敬と感謝を持ってPSoCまつり2015の結びとしたいと思います。
本当にありがとうございました。
PSoCまつり主催 中村優友

2015年4月2日木曜日

PSoC Creatorでクロスコンパイル!!

PSoC3からPSoC5LPへまた、PSoC4からPSoC5LPへと
その逆場合でもPSoC Creatorでは簡単にプロジェクトの変更が出来ます。
ただし、PSoC同士の違いをある程度知っている必要があるので
少し注意が要ります。

さて、今回はPSoC4で作ったプロジェクトを
PSoC5LPのプロジェクトに以降する例にしていきたいと思います。

プロジェクトを開けた状態では左側に見えているタブは「source」
になっているはずです。


sourceタブの下にある「Components」のタブを開きます。
ここでは自分で作ったコンポーネントを導入やプロジェクトの管理で使います。


ここで「Project ***」を右クリックをします。
クリックすると、このプロジェクトについてどうするかについてのメニューが出てきます。
そこで「Device Selector」をクリックしましょう。



クリックすると、空のプロジェクトを作る時に
デバイス設定で出てくる画面が出てきます。


そこで、Familyの所からPSoC5LPを選んで任意の所をクリックをします。


クリックをすると、PSoC5LPのみが出てきます。
今回はCY8C5868AXI-LP035を選んで「OK」をクリックします。


クリックするとバックアップは取ってありますか?と聞かれます。
今回はOKをクリックして進みましょう。


そうするとデバイスがPSoC5LPに変わります。


後は、ピンアサインを調整してビルドをすれば
クロスコンパイル完了(/・ω・)/

2015年3月31日火曜日

PSoC Creatorのインストール方法 Ver.2

前回のPSoC Creator導入だと、ちょっと雑だと思ったので
丁寧なバージョンを作りました。

まずは、ブラウザで日本サイプレス
PSoC Createrのページを開きます。
http://japan.cypress.com/psoccreator/


ダウンロードのボタンをクリックすると


Cypressのログインを促されるので、ログインしましょう。



初めての場合は右側の新規登録を使いましょう。
フリーのメール等でも良いです。メールアドレスを入れると、
パスワードや名前、所属を聞かれるページが出てきます。


手続きを終わらせるとIDとパスワードを要求される画面に戻ります。
登録したパスワードを使ってログインしましょう。

ログインをするとダウンロードが出来る画面となります。
使うブラウザによっては、ダウンロードをアシストする
ダウンロードマネージャを導入されます。
必要が無い場合や、アシストのソフトウェアを入れたくない場合
ダウンロードマネージャの導入を拒否して
ダウンロードマネージャを使わない場合をクリックします。


ソフトウェアをダウンロードし終わると
インストールマネージャが立ち上がります。
「Next」をクリックして進みます。



インストールが始まると



インストールのタイプを聞かれます。



プルダウンメニューを開いて


「Copmplete」を選択します。
選択したら、「Next」をクリックして進みます。



サイプレスのライセンスとKeilのライセンスについての
承諾についての画面が出てくるので、ラジオボタンを
「I accept ...」に移動させて「Next」をクリックします。




そうすると、インストールの画面が出てくるので
全てのインストールが自動で開始されます。


インストールが終わると
PSoC Creatorを立ち上げるかどうか、アップデートをするか
リリースノートを見るかについての画面が出てきます。
少なくとも「Launch PSoC Creator」が付いた状態で
「Finish」をクリックしましょう。



おめでとう(/・ω・)/
これで、PSoC Creatorが使える様になりました。




PSoC3を使うには、Keilコンパイラーの登録が必要になります。
PSoC Creatorを起動させたら、
メニューバーの「Help」⇒「Register」⇒「Keill」をクリックします。



コンパイラーをアクティブにするための画面が出てきます。


ライセンスIDコードを入手するために
「get license online」をクリックして
ARM社のライセンス登録をしましょう。
登録ではどのパソコンなのか、メールアドレス等を聞かれます。
登録を済ませると、登録したメールアドレスに
コードが送信されます。


メールの中にある「license ID Code (LIC)」にあるコードをコピーをして
コンパイラーをアクティブにする画面の
「New License ID Cose」の所に貼り付けます。
そうしたら、「Add license」をクリックします。
これで、Keilコンパイラーがアクティブになります。

これで、PSoC3も使える様になりました。(/・ω・)/

2015年3月5日木曜日

PSoCまつりのプレゼンター締切かな?

PSoCまつりのプレゼンター締切(2015年)




多くのプレゼンターの問い合わせがあり
今回のPSoCまつりは無事に軌道に乗る事が出来ました。

ありがとうございます。

各プレゼンターの準備の期間を考えますと
今回のプレゼンターの受付をおおむね終了したいと思います。

プレゼンターを考えていた方すみません
「駆け足で準備してもいい」っと言う方であれば
プレゼンターの受付はまだ、開いております。

どうぞお問い合わせお待ちしております。

2015年2月20日金曜日

PSoC4でリキッドレベルゲージを作ったよ。

日本サイプレスのブース目当てに
昨年の組み込み総合技術展(通称ET)に行ってきました。

そこで、PSoCで液体の量を測るデモをしていました。


液体の量を測るのは大変でレーザーや電極、超音波など
調整が大変だったり、センサーが高価だったりハードルが高いです。
液体の量を測る事は応用範囲が広いですね。
たとえば冷蔵庫の中にある液体や光に触れる事を避ける液体の量が分かったり
デザインのために液体の量が分からない事を解決したりと
言うような感じ。(医療系でも活用があるかな?)

液体にも少なくとも静電容量ができるはず。
静電容量ができるなら、PSoCにあるCapSenseをうまく使って液体の量を測れるはず。

今回は、ホームセンターで買ったプラスチックのボトルにアルミテープを貼って
アルミテープと液体との静電容量をCapSenseでそこに液体があるかどうかを測る
システムです。



作ろうと思ったきっかけは、コンビニにあるエスプレッソマシンのミルクが切れていた事に店員さんが気づいていないと言うことから。
このシステムの分解能はどうしてもアルミテープの数になってしまうので
1㏄単位での計測はちょっと厳しいかもしれないですね。




(赤線が液体の量です。)
難しいのは、GNDパターンでした。
ピアノの時より液体の場合ではGNDのパターンが重要でした。
始めはスライダー型のパターンにしたのですが、上手くいきませんでした。
これの理由にはCapSenseのアプリケーションノートにヒントがありました。
要は液体の静電容量にはちゃんとPCBのパターンにGND入れろって事でした。
なので、GNDパターンを丁寧に取るようにしました。

CapSenseで液体の量を測る場合では、ボトルが空の状態に
一度ならないといけないので、そう言う部分では改良が必要だと考えられます。
これでもまだ途中で、最終的にはPSoC4BLEを用いて
冷蔵庫の中にある液体がスマートフォンとかで分かるようになったら
いいかなぁと考えています。

2015年1月15日木曜日

Creator3.1環境でsprintf()の%fを使う場合

またも、トラブルシューティングの回です。

PSoC Creator3.1環境で
数値文字変換のSprintf();を使う場合
floatの変換をしたくても、出力されない場合があります。

PSoC Creator3.0では、リンカーが抜けていただけですが
3.1ではそれだけでは済みません。
ヒープサイズも変更してあげることで、3.1環境でも
%fを使うことが出来るようになります。


解決手順
先ず、3.0環境で行ったトラブルシューティング方法をする。

次に、ピンアサインやクロックの設定をする「****.cydwr」を開きます。


開いたら、「System」タブを開きます。

Heap Size(bytes)の項目が標準では0x80(128byte)となっているはずです。

これを0x80から0x200(512byte)に変更します。



変更したら再度コンパイルをして終了です。

3.0環境と比べると確かにヒープサイズの標準設定が小さくなっておりますが
3.0環境の半分の標準設定でもいいのにとつい、思ってしまいます。
リンカーの所も直してほしいです。(;´Д`)

*教えていただいた、のりたんさんありがとうございます。とても助かりました。