Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
PSoC5LP超入門体験ハンズオン!@大阪日本橋
Search
Noguchi
June 29, 2019
Programming
1.1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PSoC5LP超入門体験ハンズオン!@大阪日本橋
2019.06.29 日本橋 共立電子にて行われたハンズオンの資料です。
Noguchi
June 29, 2019
More Decks by Noguchi
See All by Noguchi
Algyan-kansai-Kokuhyou2
techan
1
480
Other Decks in Programming
See All in Programming
すこし踏み込む CancellationToken
htkym
2
720
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
360
Java 27新機能 / Java 27 new features
kishida
2
150
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
350
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
3.1k
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
550
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
370
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
4
3.3k
AI活用は、個人から組織へ|マルチプレイヤーエージェントハーネス「QM」の社内活用事例 / AI use is moving from individuals to orgs
rkaga
1
140
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
160
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
130
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
320
Featured
See All Featured
HDC tutorial
michielstock
2
880
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
400
Designing Experiences People Love
moore
143
24k
Making the Leap to Tech Lead
cromwellryan
135
10k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
470
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
480
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
200
How to Talk to Developers About Accessibility
jct
2
550
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
460
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
940
Into the Great Unknown - MozCon
thekraken
41
2.7k
Transcript
PSoC5LP超入門 体験ハンズオン! Ver.2019.06.29 @tetnoguchi(twitter) / techa.nog(facebook) *画像はCypressのHPから拝借
PSoC とは。。。 のSoC マイコンコア + CPLDなイメージ。 シリーズは5系列。 PSoC1: M8C PSoC3:
8051 PSoC4: ARM CortexM0 PSoC5: ARM CortexM3 PSoC6: ARM CortexM0 + CortexM4 マルチコア *画像はCypressのHPから拝借 PSoC3/5 は CPUコアと12bitSARの有無がちがうだけ。。。
UDB(Universal Digital Blocks) CPLDみたいなもん(12入力 4出力のPLD) 必要な機能はUDBで、必要な分だけ用意すればいいよね! という思想。ここがほかのマイコンと大きく違う部分。 ただ、 PSoC5には最大24個。 PSoC4は最大4個
しかない。 その分安いけれど。 PSoc4は拡張性が大幅に削減されている PSoC5 *各TRMより拝借 PSoC4
PSoC4はアナログ系も大幅に簡略化 PSoC5 *各TRMより拝借 PSoC4 PSoC4 は アナログ系につかえるピンが制限されているし、機能もすくない。。。
肝⼼のUDBがない︕。。。。orz 代わりに IOSS GPIO (SmartIO)が配備されている。 LUTで任意のIOの状態をAND/ORできるようにしているので PSoC1的な取り込みなのかも。 あまり⾃由度はないから、使いにくい︖ *各TRMより拝借 ちなみに、
トランジスタ技術2019/5⽉号付属のTSoCは PSoC4100S。
今回は PSoC5LP (CY8C5888‐LTI‐LP097)で進める。。。 1500円でデバッガ付き! PSoC5LP PrototypingKit CY8CKIT‐059 http://akizukidenshi.com/catalog/g/gM‐09432/ 慣れたら、PSoC4にいくもヨシ。 こちらは600円だし。http://akizukidenshi.com/catalog/g/gM‐08446/
(PSoC4200 PrototypingKitは形状は似ているがデバッガではないでの注意。。) 標準デバッガは MiniProg3 (CY8CKIT‐002)だが、サイプレス直販で$99。 https://www.cypress.com/documentation/development‐kitsboards/cy8ckit‐002‐psoc‐miniprog3‐program‐and‐debug‐kit MiniProg4 (CY8CKIT‐005) が発売された。 サイプレス直販で$99。 https://www.cypress.com/documentation/development‐kitsboards/cy8ckit‐005‐miniprog4‐program‐and‐debug‐kit 必ず MiniProg3かMiniProg4であること! (秋月にはMiniProg1はあるけど、PSoC1用なので注意!) でも、当面はCY8KIT‐059のデバッガで十分。 切り離して、デバッグできる! *一部画像はCypress/秋月通商のHPから拝借
ボード仕様的には J1 = デジタル系 J2 = アナログ系 を想定しているように見える オンボードのSW/LED/コンデンサに注意 P1[0]/P1[1]もデバッグピンなので使えない!
SIOはスペシャルファンクションIO 5Vトレラントで、オープンドレイン設定可。 内蔵機能のI2Cもここに割り振られる。 PSoC3/5はIOバンクごとに電源電圧を設定 できるが、このボードでは不可。 VDDはUSB/Debugger経由だと5Vになるので 3.3Vで利用する場合はちょっと改造要。 *回路図はschematicより拝借
(準備) KitProgデバッガの確認
KitProgのファームバージョンがちがうとうまく書き込みできないので、バージョンを合わせておく。 KitProgをUSBで接続したうえで、PSoC Programmer を起動する。 バージョンがちがうと、『アップデートしろ︕』と怒られるので、 Utilities タブ から、Upgrade Firmware を選択。
つかってみよう! PSoC5
-Work 01- LEDを点灯しよう︕
今回のボードにはオンボードで、汎⽤のSWとLEDが接続されている。 まずは、これで⼩⼿調べ。 LED は IO(P2_1) LEDアノード GND と接続されているので、制御は正論理でよい。
SW は IO(P2_2) SW(open側) / SW(Close側) GND なので、 そのままつかうとSWが押されていない場合、オープン(ハイインピーダンス状態)になる! 内蔵プルアップ抵抗を有効にしてつかう。 Schematicの部分にコンポーネントを配置する。 SWとLEDなので、 LED Digital Output Pin (Pin_1) SW Digital Input Pin (Pin_2) に割り振る。 SWでLEDを制御したいので、 配線ツールで、Pin_2 と Pin_1 をつなぐ。 コンポーネントカタログから必要機能を ドラッグアンドドロップする
SWはプルアップされていないので、IO定義で内蔵プルアップを 有効にしてやる。 Pin_2 をダブルクリックして Drive modeをResistive Pull upにする
スケマティック(回路図 = xxx.cysch)ができたので 設定ファイル( xxx.cydwr )を開き、 ピン配置を決める。 LEDはPin_1 = P2[1]
SWはPin_2 = P2[2] なので、 右にあるピンをドラッグ アンド ドロップで配置したいピンに割り付ける。 できたら、いったんビルドする︕(メニューの Build-Build xxx)
必要なソースコードも準備されたので、 Debug – Program で 書き込んでみる。書き終わると⾃動的に実⾏されるので SW を 押して LEDが
変化するのを確かめよう︕︕
SWとLEDの論理が逆なので、反転動作をいれてみよう︕ Digital – Logic – Not をえらんで Pin_2 Pin_1
の間に配置と接続。 できたら、Build Program で動作確認。
-Work 02- Lチカいろいろ(Timer/PWM編)
こんどは、点滅動作をさせてみる。 まずは、オーソドックスにタイマーをつかって、チカチカさせる。 LED と SWにわりつけた Pin_1/Pin2の設定を開いて HW Connection のチェックをはずします。 こんな⾵に、相互接続部がなくなります
これで、ソフトからの制御のみになります
コンポーネントカタログから、TimerとInterruptを配置して 図のように接続する。(名前もこのように︕) 今回は1msのタイマーをつくるので、 Clock_1を10kHzに変更します。
Timer_1 の設定をします。 Clockが10kHzなので、 Period = 10 にすると、 1kHz = 1ms
のタイマーができあがります。 タイマーが完了したときに 割り込みを発⽣させたいので Interrupt On TC にチェックをいれておきます。 できたら、いったんビルドする︕ (メニューの Build-Build xxx)
基本ソースが⽣成されたので、 あとはプログラムを記述します。 CY_ISRは割り込みハンドラ。 割り込み発⽣した場合に 呼び出される特殊関数です。 今回は、 isrTimer_1 と紐づけていますね。 できたら、ビルドして 書き込んで確認しましょう。
同様のことはPWMでやるほうが簡単です。 PWMコンポーネントを配置して、 クロックとPin_1(LED)を 配置してください。 Pin_1 は HW Connection のチェックをいれるんですよね。
PWMの設定はこんな感じ。 10kHzが投⼊されているので 16-bit One Output Period=999 CMP Value = 500
これで 100ms周期 Duty=50% 完成。
基本設定が完了したので、 いったんビルド︕︕ ソースが⾃動⽣成されたので、 ソース改訂。 Pin_1 が ハード接続されたので ソフトは注釈化。 そして PWM_1を開始。
ここまでできたら、 ビルド & 書き込み︕
Debug – Program で 書き込んでみる。書き終わると⾃動的に実⾏されるので LEDがおなじように点滅するか、たしかめよう︕
-Work 03- UART をつかってみる
UART (Universal Asynchronous Receiver/Transmitter) は、調歩同期式シリアル通信。 要は、時間でIOをON/OFFしながら伝達する通信⽅式。 PSoCでも、もちろん⽤意されている。 コンポーネントカタログの Communication からドロップすると準備完了
P12_7 = TX P12_6 = RX に設定する *wikipedia
Resetピンに、Logic=0 を配置。 UART_1の設定を変更する。 Bits Per second = 115200 RX buffer
size = 64 にして、いったんビルドしておく。
ソースコードを⼊⼒する。 変数を⽤意して UART_1 をスタート 受信電⽂を得て、 UARTで送り返す。 できたら、ビルド&書き込み
TeraTermを起動して、『新しい接続』から KitProg USB-UART (COMxx) をひらく。 『設定』-『シリアルポート』 ボーレート = 115200 『設定』-『端末』で
送信 = CR+LF にする。 キーボードで押した⽂字列が 返信されてきているのを確認する。
-Work 03- USB をつかってみる
USBで疑似UART通信をおこなうコンポーネントも ⽤意されている。(USB-CDC) コンポーネントカタログの Communication からドロップすると準備完了
DesignWideResources の Clock タブで ⻩⾊いところを ダブルクリックする。 ILO = 100 kHz
IMO = 24MHz USB = Check できたら Build !
UARTのときとおなじ処理を つくってみた。 接続・再接続がめんどくさいけれど ほぼ、UARTとおなじ。
TeraTermを起動して、『新しい接続』から COMxx: USB シリアルデバイス (COMxx) をひらく。 『設定』-『シリアルポート』 ボーレート = 115200
『設定』-『端末』で 送信 = CR+LF にする。 キーボードで押した⽂字列が 返信されてきているのを確認する。 *Windows10以前のOSでは、 プロジェクトフォルダのしたにある ¥Generated_Source¥PSoC5¥USBUART_1_cdc.inf があるので、ドライバファイルとして指定します。
Windows10の最新アップデートがかかっている状態では USB-CDCがそのまま認識されるので、苦も無くつながるはずです。 初期のWindows10および8以前のOSでは、 プロジェクトフォルダのしたにある ¥Generated_Source¥PSoC5¥USBUART_1_cdc.inf があるので、ドライバファイルとして指定します。 また、Windows8では、署名つきドライバしか利⽤できないので このままではUSBをつかえません。なので、 https://freesoft.tvbok.com/win10/testmode.html を参考にして、
ドライバー署名の強制 を無効にしてください。
USBでの通信とUARTでの通信ができたので USBーシリアルコンバータも、これでできますよね︕ さー︕ つくってみよう︕ どうすればいいかな︖
CY8CKIT-059 PSoC® 5LP Prototyping Kit With Onboard Programmer and Debugger
https://japan.cypress.com/documentation/development-kitsboards/cy8ckit-059-psoc-5lp-prototyping-kit-onboard-programmer-and Download CY8CKIT-059 Kit Setup (Kit Design Files, Creator, Programmer, Documentation, Examples) https://japan.cypress.com/file/416376 CY8CKIT-059 Schematics.pdf https://www.cypress.com/file/443786/download CY8CKIT-059 PSoC 5LP Prototyping Kit Guide https://www.cypress.com/file/157966/download CY8CKIT-059 PSoC 5LP Prototyping Kit Guide https://www.cypress.com/file/157971/download PSoC5LP Technical Reference Manual https://japan.cypress.com/documentation/technical-reference-manuals/psoc-5lp-architecture-trm
お疲れ様でした︕ どうでしたか︖ これ以外にもいろいろな 便利なコンポーネントが⽤意されています︕ どんどん使ってみましょう︕
<改訂> 2019.07.01 追記 p34 USBUART_1_START関数のところも協調 P35/36 infファイルの指定不要とWin8での動作注意を補⾜