Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Tetsuya Noguchi
PDF, PPTX
5,187 views
PSoC4 ことはじめ -BLE版-
PSoC4BLEを使って、遊んでみよう! 的なWorkshop資料
Devices & Hardware
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 44
2
/ 44
3
/ 44
4
/ 44
5
/ 44
6
/ 44
7
/ 44
8
/ 44
9
/ 44
10
/ 44
11
/ 44
12
/ 44
13
/ 44
14
/ 44
15
/ 44
16
/ 44
17
/ 44
18
/ 44
19
/ 44
20
/ 44
21
/ 44
22
/ 44
23
/ 44
24
/ 44
25
/ 44
26
/ 44
27
/ 44
28
/ 44
29
/ 44
30
/ 44
31
/ 44
32
/ 44
33
/ 44
34
/ 44
35
/ 44
36
/ 44
37
/ 44
38
/ 44
39
/ 44
40
/ 44
41
/ 44
42
/ 44
43
/ 44
44
/ 44
More Related Content
PPTX
PSoCまつり「PSoCの美味しい料理法」
by
betaEncoder
PPTX
PSoC Powered Human Powered Airplane
by
HirakuTOIDA
PPTX
PSoC4 BLEで作る簡単無線センサーユニット
by
Kenta IDA
PDF
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
by
Hirotaka Kawata
PDF
あなたの知らないnopたち@ラボユース合宿
by
MITSUNARI Shigeo
PDF
FPGAスタートアップ資料
by
marsee101
ODP
MPSoCのPLの性能について
by
marsee101
PDF
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
by
Hirotaka Kawata
PSoCまつり「PSoCの美味しい料理法」
by
betaEncoder
PSoC Powered Human Powered Airplane
by
HirakuTOIDA
PSoC4 BLEで作る簡単無線センサーユニット
by
Kenta IDA
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
by
Hirotaka Kawata
あなたの知らないnopたち@ラボユース合宿
by
MITSUNARI Shigeo
FPGAスタートアップ資料
by
marsee101
MPSoCのPLの性能について
by
marsee101
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
by
Hirotaka Kawata
What's hot
PDF
Intel TSX 触ってみた 追加実験 (TTAS)
by
Takashi Hoshino
PDF
OVPの等価回路モデル
by
マルツエレック株式会社 marutsuelec
PPTX
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
by
marsee101
PDF
xv6 + mist32 + mruby
by
Hirotaka Kawata
PDF
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
by
Hirotaka Kawata
PDF
Ras piでrt linux
by
Hideki Aoshima
PDF
本当にわかる Spectre と Meltdown
by
Hirotaka Kawata
PPT
Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介
by
Kazuhiro Takahashi
PDF
Intel TSX HLE を触ってみた x86opti
by
Takashi Hoshino
PDF
Cpu pipeline basics
by
Shinichiro Niiyama
PDF
高速な倍精度指数関数expの実装
by
MITSUNARI Shigeo
PDF
REFERENCEの等価回路モデル
by
マルツエレック株式会社 marutsuelec
PPTX
Kiso sekkei 01rev03
by
tetsuya matsuno
PDF
LTspiceを活用したスタートアップ機能の等価回路モデル
by
マルツエレック株式会社 marutsuelec
PDF
Pynqでカメラ画像をリアルタイムfastx コーナー検出
by
marsee101
PDF
OpenCM IDE、OpenCM 485 EXPを用いてのDynamixel Xシリーズの制御
by
ROBOTIS Japan
PDF
高位合成ツールVivado hlsのopen cv対応
by
marsee101
PPTX
20161120_HPCでFPGAを使ってみたい_fpgastartup
by
HPCシステムズ株式会社
PPTX
Twitter for PC-G850
by
Masayuki Sugahara
PDF
TensorFlow XLA とハードウェア
by
Mr. Vengineer
Intel TSX 触ってみた 追加実験 (TTAS)
by
Takashi Hoshino
OVPの等価回路モデル
by
マルツエレック株式会社 marutsuelec
ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)
by
marsee101
xv6 + mist32 + mruby
by
Hirotaka Kawata
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
by
Hirotaka Kawata
Ras piでrt linux
by
Hideki Aoshima
本当にわかる Spectre と Meltdown
by
Hirotaka Kawata
Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介
by
Kazuhiro Takahashi
Intel TSX HLE を触ってみた x86opti
by
Takashi Hoshino
Cpu pipeline basics
by
Shinichiro Niiyama
高速な倍精度指数関数expの実装
by
MITSUNARI Shigeo
REFERENCEの等価回路モデル
by
マルツエレック株式会社 marutsuelec
Kiso sekkei 01rev03
by
tetsuya matsuno
LTspiceを活用したスタートアップ機能の等価回路モデル
by
マルツエレック株式会社 marutsuelec
Pynqでカメラ画像をリアルタイムfastx コーナー検出
by
marsee101
OpenCM IDE、OpenCM 485 EXPを用いてのDynamixel Xシリーズの制御
by
ROBOTIS Japan
高位合成ツールVivado hlsのopen cv対応
by
marsee101
20161120_HPCでFPGAを使ってみたい_fpgastartup
by
HPCシステムズ株式会社
Twitter for PC-G850
by
Masayuki Sugahara
TensorFlow XLA とハードウェア
by
Mr. Vengineer
Viewers also liked
PDF
手抜き大好きPSoC
by
hatris
PDF
MDK-ARMでPSoC開発
by
Yoshihiro Tsuboi
PDF
Fuji sakuraでmbedを!
by
Tetsuya Noguchi
PDF
使ってもらうための小型超音波集束装置
by
Takayuki Hoshi
PDF
超音波を利用した先端研究 ~集束超音波による非接触作用力の応用展開について~
by
Takayuki Hoshi
PPTX
Arduino / ArduBlock の簡単なプログラムと回路の例
by
mitunaga
PPTX
ブレッドボードの使い方と Arduino に簡単な回路をつける例
by
mitunaga
PPTX
Arduino 入門
by
mitunaga
PDF
【18-C-7】GPUコンピューティングが世界を変える~GPGPUで開発をはじめるために知っておくべき10個のこと
by
Developers Summit
手抜き大好きPSoC
by
hatris
MDK-ARMでPSoC開発
by
Yoshihiro Tsuboi
Fuji sakuraでmbedを!
by
Tetsuya Noguchi
使ってもらうための小型超音波集束装置
by
Takayuki Hoshi
超音波を利用した先端研究 ~集束超音波による非接触作用力の応用展開について~
by
Takayuki Hoshi
Arduino / ArduBlock の簡単なプログラムと回路の例
by
mitunaga
ブレッドボードの使い方と Arduino に簡単な回路をつける例
by
mitunaga
Arduino 入門
by
mitunaga
【18-C-7】GPUコンピューティングが世界を変える~GPGPUで開発をはじめるために知っておくべき10個のこと
by
Developers Summit
PSoC4 ことはじめ -BLE版-
1.
PSoC ことはじめ (BLE版) Ver.2016.10.28
@tetnoguchi(twitter) / techa.nog(facebook)
2.
PSoCとは。。。 Cypress社のSoC マイコンコア + CPLDなイメージ。 シリーズは4系列あり。 PSoC1:
M8C 異色すぎる!! PSoC3: 8051 PSoC4: ARM CortexM0 PSoC5: ARM CortexM3 CypressのHPから拝借PSoC1 高機能PAL/GALみたいなもん
3.
UDB(Universal Digital Blocks)
CPLDみたいなもん(12入力 4出力のPLD) PSoC5には最大24個。 PSoC4は最大4個 しかない。 PSoC3 と 5は CPUの違い 8051(8bit) vs CortexM3 と 12bit SAR-ADCの有無 がちがうのみ PSoc4はCPUは同じでも拡張性が大幅に削減されている
4.
4はアナログ系も大幅に簡略化
5.
PSoC4にもシリーズがあるんだよね…. ほんまに普通 のマイコン OpAMPつけて アナログ強化 OpAMP+UDB Universal Digital Block(UDB) 12入力4出力の
PLD * 2 と データパス(簡易ALU) を内蔵した特殊ブロック。 簡易版CPLD 要はCPUを介さずに いろんな処理を行えるよう にできる 便利ユニットなのだ!
6.
同じPSoC4でも 4100系と4200系では大違い! UDBこそがPSoCらしさそのものなので、 必ず4200系を選ぶべし! PSoC4-4100系 PSoC4-4200系
7.
今回は PSoC4BLE搭載の CY8CKIT-042-BLE-Aで進める。。。 PSoC初心者なら PSoC5LP
PrototypingKit CY8CKIT-059 http://akizukidenshi.com/catalog/g/gM-09432/ がおすすめ。 1500円でデバッガ付きで格安だから。USBもちゃんとついてるし。 慣れたら、PSoC4にいくもヨシ。 こちらは600円だし。http://akizukidenshi.com/catalog/g/gM-08446/ 標準デバッガは MiniProg3 (CY8CKIT-002)だが、サイプレス直販で$89。 RSやマルツでは12000円ほどする。 (http://japan.cypress.com/documentation/development-kitsboards/cy8ckit-002-psoc-miniprog3-program-and-debug-kit) 必ず MiniProg3であること。(秋月にはMiniProg1はあるけど、PSoC1用なので注意!) CY5682 などの同梱キットをかえば7000円程度で入手可。 https://store.macnica.co.jp/products/cypress_cy5682 でも、当面はCY8KIT-059のデバッガで十分。 今回つかう CY8CKIT-042-BLEだと 高い分だけあって デバッガ機能もあって使いやすいとはおもう。
8.
PSoC4BLE PioneerKit ベースボード R-LED
P2_6 G-LED P3_6 B-LED P3_7 SW P2_7 UART-TX P1_5 UART-RX P1_4 CapSense P2_1/P2_2/P2_3/P2_4/P2_5 F-RAM (0x50) SDA P5_0 F-RAM(0x50) SCL P5_1 UARTがKitProgのUARTに接続されているので KitProgのUSBで即シリアル接続が確認できる。 F-RAMはFM24V10(1Mbit=128KB)が接続され ている。 PSoC4BLE R-LED P2_6 G-LED P3_6 B-LED P3_7 SW P2_7 KitProg(PSoC5LP)
9.
ソフト、つくってみる。。。
10.
PSoC Creater 3.3をベースに使ってみる。 File
- New – Project を選んで CY8C5888LTI-LP097を選択して進める
11.
ここまでくれば、あとは挙動を作るのみ。 右端にあるコンポーネントを適当にマウスで、配置していく。 コンポーネントをダブルクリックすると、 設定画面もでてくるので、適宜設定すべし!
12.
スケマティック(回路図)ができたら、 設定ファイル( xxx.cydwr )を開き、 ピン配置を決める。 右にあるピンをドラッグ
アンド ドロップで 配置したいピンに割り付ける。 できたら、いったんビルドする!(ここ重要!!)
13.
関連ソースコードが 一気に生成されるので、あとは これらを使うソースコードを追記していけば めでたく完成することになる!!
14.
-Work 00- LEDを点灯しよう!
15.
Schematicの部分にコンポーネントを配置する。SWとLEDなので、 LED Digital
Output Pin SW Digital Input Pin に割り振る。 SWはプルアップされていないので、IO定義で内蔵プルアップを 有効にしてやる。 Pin_2 をダブルクリックして Drive modeをResistive Pull upにする
16.
SWでLEDを制御したいので、配線ツールで、 Pin_2 と Pin_1
をつなぐ。 スケマティック(回路図)ができたので 設定ファイル( xxx.cydwr )を開き、 ピン配置を決める。 LEDはP2[6] = 赤 SWはP2[7] なので、 右にあるピンをドラッグ アンド ドロップで配置したいピンに割り付ける。 できたら、いったんビルドする!(Build-Builde xxx)
17.
必要なソースコードも準備されたので、 Debug – Program で
書き込んでみる。書き終わると自動的に実行されるので SW を 押して LEDが 変化するのを確かめよう!!
18.
-Work 01- LEDを調光制御してみる!
19.
調光制御するだけだと面白くないので、 SWに連動して各LEDが切り替わるようにし てみる。 ついでに、徐々に調光値が変化するように\ (^o^)/ 青字は気にせず、こんな風に 配置してね。 Clockは今回10kHzに。
20.
PWMの設定はこんな感じ。 10kHzが投入されているので Period=99で 10ms周期。 Compare=50だとDuty50%。 わかりやすいね。 Interrupt部で On Terminal
Count Event にチェックすべし! これで1周期おわりごとに割り込み 発生できる。
21.
Timerのほうもこんな感じ。 10kHzが投入されているので Period=10 で 1ms周期なのが分かる。 Interrupt
On TC にチェック!
22.
基本設定が完了したので、 いったんビルド!! ソースが自動生成された ので、動作を作成するぞ。 PWMとタイマーの初期化と 割り込みベクタの指定 一定間隔で徐々に輝度を上げて上限に達したら 徐々に下げていく。下限ならまた上げていく SWが押し下げられたら、出力LEDを切りかえる
23.
実際の割り込みの処理はこんなかんじ。 PWMの更新周期で 次回のDutyを設定する 単純に時間計測用の 減算タイマーがあるのみ。
24.
Debug – Program で
書き込んでみる。書き終わると自動的に実行されるので SW を 押して LEDが 変化するのを確かめよう!!
25.
-Work 02- LEDを調光制御してみる! その2
26.
PSoCにはきれいに調光するためだけに 設計されたPrISMというコンポーネントがある。 色は色相環に従って徐々にR->G->Bと遷 移するようにしてみる。 SWに連動して各LEDが切り替わ るのは同じ。 青字は気にせず、こんな風に 配置してね。 Wikipediaから抜粋
27.
基本はあまりかわらない。 一定時間ごとに色相情報から RGBを生成するだけ。 Hは色相だけど SとVはフル値固定。 色相(H)を0~359までぐるぐるまわす SWが押し下げられたら、出力LEDを切りかえる
28.
割り込み部はタイマーだけ
29.
PrISMに値を与える部分。 IはHSVのSと等価のはず。 まぁ、今回は関係ないけどね。
30.
HSVRGB変換部。 ネットにあったJavaのサンプル ほぼそのまま。。。
31.
-Work 03- LEDを調光制御してみる! その3
32.
BLEを使えるようにしてみる。 まずは、BLEのコンポーネントを追加する。 できたら、いったんBuildする!
33.
カスタムプロファイル で GATT Server設定する。 GAP
は Peripheral でOK. Profileタブで 新たに サービス追加。 Server部で右クリックして、 Custom Service を選択すればOK
34.
追加された Custom Service を
RGB LED Service にリネーム(わかりやすくするため) 同じく その下の Characterristicも RGB LED Characterristic にリネームしとく。 標準サンプルを使いたいので UUIDは16bit 値で CBBB にする。
35.
標準サンプルを使いたいので UUIDは16bit 値で CBB1
にする。 Fields = uint8 array = 4 Read / Write にチェック
36.
Custom Descripter は削除しちゃって、 代わりに User Descriptionを 追加!
37.
RGB LED Controlとか、適当に名前をつけとく
38.
BLE 03 とか、適当に名前をつけとく ここの名前で、自分の接続先デバイスかどうかを判別するので 適当に。。。(できるだけ短くしてね)
39.
Advertisement Packetの項目で Local Name Service
UUID をチェックしとく。
40.
Securityの項目で No Security No Input
No Output No Bonding を設定 これでコンポーネントの設定は終了。 OK で 終了できる
41.
一旦、ビルドするといろいろファイルが付加される。 ただ、肝心のやりとりする部分がないので、 Cypressのサンプルから、ファイルをもってくる。 (BLE_Handler.c) 割り込み応答用の関数 void StackEventHandler( uint32
eventCode, void *eventParam ) で、状態を判定できるので、全部入りがうれしい。 このファイルを、プロジェクトに追加する。 (今回は、それなりに用意。) ソースは別途みてね。 void StackEventHandler( uint32 eventCode, void *eventParam ) のなかで、 CYBLE_EVT_GATT_DISCONNECT_IND 接続断の場合の処理を追加。 CYBLE_EVT_GATTS_WRITE_REQ: 書き込み指示があったら更新する。
42.
あとは main.cの初期化部に CyBle_Start( StackEventHandler
); を実装すれば、割り込み処理される! CyBle_Start( StackEventHandler ); // BLE関連のイベントハンドラを別ファイルに定義 for(;;) { CyBle_ProcessEvents(); // BLE ハンドル処理 スマホのCySmartで接続したら、 LEDの調光画面がつかえるよ~~
43.
スマホにCySmartアプリを導入して起動すると。。。 UUIDを合わせてあるので、 標準アプリのRGB調光部がそのまま つかえる
44.
~あとがき~ BLE部はかなり端折ってしまってるorz でも、標準のサンプルからもってくればそれほど難しくない。 というか、ほかのBLEデバイスにはないくらい、隠蔽してくれている。 BLEデバイス側をつくるには、最小限、これでいいって思えるくらい。 Service – Characteristic の部分は、これの延長で、適当にすればなんとかなりそう。 ただ、BLEの部分は割り込みで処理されるので、 mainなどの通常処理との間では排他処理など、少し考えないとダメ。 そこらあたりは、おいおい、やりましょー。 お疲れ様でした! ~あとがき~
Download