VS-CodeでPSoC4の開発+書込み

ModusToolBoxのEclipseのIDEがあるのですが、ちょっと重たくて使いにくい部分もあり、VS-Codeで開発できないかと調べると、可能であることがわかりました。いざやってみると苦戦してしまって、1日半かけてようやくEclipseのIDEで開発していた状態と同様に、開発から書込みまでできるようになりました。そこで、忘れないようにメモしておきます。

ーー

情報は公式サイトのPDFにありました。
Visual Studio Code for ModusToolbox™ user guide

VS-Codeの他に必要なExtentionは「C/C++ tools」「Cortex-Debug」「Arm Assembly」「ModusToolBox Assistant」「clangd」です。

ーー

「ModusToolBox Assistant」をインストールすると左のメニューアイコンにロボットアイコンが表示されます。それをクリックします。

「ModusToolBox Tools」の「Global」にある「Create Project」をクリックします。

BSPが起動して、ひながたになるプロジェクトを作成します。

ーー

今回つかう書き込み器は「WCH-Link」です。純正の「MiniProg4」でももちろん書き込めますが、安くて入手しやすい「WCH-Link」を使います。そのための設定を・・というところで苦戦してしまいました。

結果的には、そのままの設定で書込みできました。接続するピンは以下の4つです。

  • SWCLK
  • SWDIO
  • GND
  • 3.3V

書込みは、「RUN AND DEBUG」から書込むような情報が見つかるのですが、デバッグモードになってしまいました。今回は、ただ書き込んで、書込み終わったら動き出して欲しいので、その設定をタスクにしていきます。

「.vscode」の「tasks.json」に設定を追記していきます。

5〜6行目の間に以下を挿入します。

ーー

{
            "label": "Program PSoC4 using OpenOCD (KitProg3)",
            "type": "shell",
            "command": "/Applications/ModusToolbox/tools_3.4/openocd/bin/openocd",
            "args": [
                "-s",
                "/Applications/ModusToolbox/tools_3.4/openocd/scripts",
                "-c",
                "set PSOC4_USE_ACQUIRE 2",
                "-c",
                "adapter speed 2000",
                "-f",
                "interface/kitprog3.cfg",
                "-f",
                "target/psoc4.cfg",
                "-c",
                "kitprog3 power_config on 3300",
                "-c",
                "init",
                "-c",
                "kitprog3 power_control on",
                "-c",
                "program build/last_config/mtb-example-psoc4-capsense-csd-button-tuning.elf verify reset exit"
            ],
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": false
            }
        },

ーー

WCH-Linkで書込んでいる様子です。

PSoC4 : UART + Capsense Tuner

タッチセンサの感度調整ツール「CapsenseTuner」で、I2C通信を使う例はよく見ます。サンプルもI2C通信のみしかありません。でもUARTにも対応していて、CapsenseTunerでも接続先をUARTに設定することができます。サイトにも、できるよと情報があるのですが、実際のプログラムやプロジェクトの細かい設定までは、説明が見つかりません。

“PSoC4 : UART + Capsense Tuner” の続きを読む

PSoC4 : タッチセンサの反応をよくする

PSoC4の開発環境「ModusToolBox」で、タッチセンサとシリアル通信をするメモです。使用するPSoCは「CY8C4025AXI-S412」です。タッチセンサに使うクロック周波数を上げると反応速度が速くなったり、電源電圧を少し低くすると安定したり、SmartSenseのキャパシタの値を変更して、個別に調整できたりしました。

“PSoC4 : タッチセンサの反応をよくする” の続きを読む

PSoC4 : CapSense & UART(文字化けないポイント)

PSoC4の開発環境「ModusToolBox」で、タッチセンサとシリアル通信をするメモです。使用するPSoCは「CY8C4025AXI-S412」で、タッチセンサのオンオフ情報を、シリアル送信するサンプルです。

何も考えずにタッチセンサとシリアル通信を一緒に使うと、信号が文字化けしてしまいました。理由は、シリアル送信の実行の直後に、タッチセンサの再スキャンをしているためでした。シリアル信号が送信完了するまで時間がかかるのに、それを待たずにタッチセンサ処理が始まり、シリアル信号のタイミングがズレていくんだと思われます。解決するにはシリアル送信のプログラムを書く場所がポイントでした。

“PSoC4 : CapSense & UART(文字化けないポイント)” の続きを読む

塗装時の変形を抑える実験(1)

ちょうど1年前の今頃にも、木彫に液体ガラスを施工するために「接着と塗装の実験」をしていました。

当時は、お湯に4時間漬けるところ、途中で変形したため2時間で引き上げ、その後、水分を含んだ木が柔らかいうちに、なんとかクランプで挟んで、変形を抑えながら乾燥させることができました。しかしこの工程は見直す必要がありました。

“塗装時の変形を抑える実験(1)” の続きを読む