トラ技 2019 年 5 月号付録 PSoC4100S 基板 (3)

 2015 年 5 月 23 日付けの記事 (→こちら) と 2015 年 6 月 30 日付けの記事 (→こちら) で「PSoC 4200 Prototyping Kit」用に作った「タッチ鍵盤付き無限音階オルガン」基板を改造して、トラ技 2019 年 5 月号付録基板用に作り変えました。
 この基板のタッチ電極は「PSoC4 CapSense デザインガイド」で推奨される基準に即しておらず、「誤動作」する「失敗作」ですが、とりあえず手間を省いて機能を確かめるためにトラ技基板用に改造しています。
 CapSense コンポーネントの仕様変更により、ユーザプログラム部分も一部変更する必要がありましたが、「機能」は確認できました。
 元の基板の写真を下に示します。

 赤い基板の「PSoC 4200 Prototyping Kit」を取り去り、ソケットの一部を再利用してトラ技基板を実装したのが下の写真です。

 銅箔テーブで作成した電極の上には透明のテープを張って保護してありますが、銅が錆びて変色しています。
 回路図を下に示します。

 ホストとのシリアル・インターフェース部分と、MIDI インターフェース部分は別基板となっています。
 PSoC Creator のプロジェクトのトップ回路図を下に示します。 (図をクリックすると拡大します)

st_p41s_cysch.png

 PSoC 4100S シリーズには UDB (Universal Digital Block) はないので、PSoC 4200 Prototyping Kit で UDB を利用して実現していたシグマ・デルタ DAC は省略し、PWM による DAC のみ実装しています。
 PSoC 4100S に内蔵されている CapSense 回路は「第 4 世代」と呼ばれていて、「第 3 世代」である PSoC 4200 の CapSense 回路にハードウェア的な改良が施されていて、SN 比が向上しています。
 ソフトウェア的には、従来の CapSense_P4_CSD v2.x コンポーネントではサポートされず、新しい CapSense P4 v3.0 コンポーネントを使用する必要があります。
  v2.x と v3.0 はコンパチブルではなく、API の仕様が異なっており、それに応じてユーザプログラムも書き換える必要があります。
 実際、元の PSoC 4200 用のプログラムのままでは音程が半音程度 (約 6 %) 下がり、ジッタが生じて音が濁るという現象が生じました。
 原因を追究すると、コンポーネントのセンサをスキャンする関数で長い期間に渡って割り込みが禁止されていて、オーディオ出力が取りこぼされることが分かりました。
 元のプログラムでは、全センサ電極 (12 個) を一度にスキャンする作りになっていて、v2.x のコンポーネントでは問題がなかったのですが、v3.0 では仕様変更により問題となりました。
 センサのスキャンを 1 電極ごとに行うように変更すると、ほとんど問題がなくなりました。