2018年05月20日

Open.Theremin@テストベッドに基板を移植するも断線が疑われる

基板を移植後に、MCUを搭載しない状態でテストベッド用の基板を装着してみたが、

IMG_8041.JPG

WCKをアサインしているはずの端子に信号が上がってこない。

Screen Shot 2018-05-20 at 20.34.58.png

信号ポートのch0/1にディテクターアウト、ch2にWCKをアサインしている筈なのだが、、、。

断線の可能性が高いので、再度バラして道通をチェックすることになった。

追記:


FPGAから出力されるクロックソースは、MCUからの起動信号("H"で起動)が必要なことを失念していた。確か、前にも別基盤で勘違いをやらかした記憶があるが、確認したところ端子の断線も無くひとまず問題は解決した模様。
posted by Yasuski at 21:06| open.Theremin

2018年05月19日

Open.Theremin@今更ながら回路の配線ミスを発見する

基板設計時の思惑を忘れてポカをやってる案件がまたもや発覚した。

リファレンス側のオシレーターを使ってディテクターとして使用するD-FFのクロックをチョッピングしているのを忘れて、そこにアンテナを繋ぐという無茶をやらかしていた。

実験の結果、10回転VRを用いてもチューニングのスイートスポットが狭い感触だった。 製品化する場合はクリティカルなポイントを探した後に上下の変化幅を調整することになるが、機械的な構造によって調整幅に影響が出ることになりそうだ。

ロータリーエンコーダーの切替え機構の不備もそうだが、異なるプラットフォームのために設計した基板の機能を切り貼りしてたのが仇になってる感じ。

試しにリファレンスとアンテナに対応するオシレーターを入れ替えてみたが、これが何故かメタメタな波形で使いものにならない。 

原因はアンテナ端子の接続ポイントを間違えるという凡ミスだったが、全てのVari-Cap駆動系オシレーターの配線をミスっているので、既存の基板には修正が必要。

WS001269.JPG

修正箇所はプリントパターンを2箇所ルーターで削って、コイルとアンテナ端子を接続するだけ。 リファレンス側にはアンテナを繋がないので、問題は発生しない。

WS001270.JPG

誤配線を修正後、正常な発振を確認した。 

posted by Yasuski at 16:13| open.Theremin

2018年05月18日

Open.Theremin@Vari-Cap調整用のVRを装着したケースに基板を移し替える

MCUの死亡を機にデジタル信号検証用に作ったトリマー用のVRを実装した筐体に基板を移し替え、素の状態でオシレーターの再チューニングを行うことにした。 予想通りリファレンス側の周波数が高めに出ていたので、これを下げる方向で再調整を行うことになる。

今回は再分解の手間が掛かってしまうが、予め基板裏にコンデンサーの時定数を調整するためのポートを設定しておけば、リード付きのコンデンサーを取り替えて気軽にチューニングを行える。 該当するSMDコンデンサーのランドには予めリード線用のスルーホールを設置してあるので、基板裏側のランドに丸ピンタイプのソケットを追加する。

一連の不毛な作業で思わぬ寄り道をしてしまったが、ここは一旦仕切り直してMCUが未実装な状態でアナログ側のチューニングに臨むのが正解だろう。
posted by Yasuski at 23:35| open.Theremin

Open.Theremin@新型基板の開発が頓挫中

新型テルミン開発の現状を箇条書きでまとめると、、、

1)アナログ部は概ね正常に動作している模様だが、D-FFによるディテクターの働きが正常かどうかはオリジナルの回路を実際に測定して確認する必要がある。

2)オーディオクロックの発振は正常に行われているが、MCUの動作を検証するシリアルモニターによる検証方法が、MCUに入力するクロックソースが別電源なために実行できないという問題がある。

3)起動時に音声が出力されない。テルミン以前の純粋な音声再生ルーティンが機能していない。

4)キャリブレーションモードへの移行を判定するモードスイッチは正常に動作している模様。

5)ただし、モードの移行をスイッチの押し時間で判定するタイマーがオーディオクロックによってドライヴされているため、ソフトウエア開発時の検証が出来ない。

6)実際に電源を投入して運用を行った状況ではロータリーエンコーダーの切り替えが出来ておらず、DACの出力電圧が変化しない。

7)オシレーターがチューン不能なため、ピッチ判定機能の検証が行えない。

8)手動でオシレーターをチューンした場合も、Volume側のLEDドライヴ(音声出力を判定している)が行えていないことが判る。音声が出力されない問題も絡んでくるのがポイントで、チューンの状態を確認できない。

9)電源とUSB通信端子の併用は、MCUの破壊をもたらす。

以上、判明している不具合をまとめてみたが、稼働までの道程は遠そうだ。

追記:


MCU2個目が死亡。

もう呪われているとしか思えないが、どうも通信の途中にUSBケーブルを引っこ抜いて死亡させるという愚を犯していた気がする。

毎度、書き込み時の情況はモニターしていた筈なのだが、偶に通信が遅延してそれを認識せずにやらかしていた感あり。

で、モードの切り替えだが、LEDの表示のみが働いていたようで、モードの切り替えを確認するLEDマーカーを追加しても反応しないことから、理由は判らないがなんらかの機能不全が発生している模様。

基本的には稼動状態だった旧システムからコードを移植しているだけなんだが、何故不具合が発生しているのか全く見当がつかない。
posted by Yasuski at 17:15| AudioElectronics

Open.Theremin@またもやMCUをぶっ壊してしまう

テルミンの筐体を乗り換える前に、MCUに内装されているDACのコントロールを暫定的に復活させて、オシレーターの可動域を再チェックすることにした。

とりあえず、リファレンス側の周波数が修正されたが、肝心のロータリーエンコーダーが動作不良っぽく、トリムが全く効かない。

マイコン独立で動作確認したところ、ロータリーエンコーダーの機能は生きているようだ。電源を並立駆動させてMCUを飛ばす不手際を再度やらかさないようにしなければならないが、LEDの点灯には外部電源が必要なのとMCKの供給がFPGA経由なのでクロックを噛ませた状態でソフトウエアの検証を行えない。

で、外部電源とUSB経由のプログラミング&シリアル通信でソフトウエアの状態を監視する作業を半日やってみたが、先ほどまたもやMCUをぶっ壊してしまって今日の作業は終了。 どうもTeensyはMacと相性が悪いのではないかという疑惑が頭をもたげてくる。

今日明らかになった問題点はキャリブレーションモードに入れない状況で、モードの切替が出来ないために、チューニングが一切効かなくなるという重篤な状態なのだが、MCUがRGBエンコーダーのクリックを受付けなくなった矢先にご逝去されたという状況がヒントになるかもしれない。 つまりプログラム単体ではなくハード由来のバグの可能性をも示唆しているのだが、現時点では有効な解決策が見えてこない。

ちなみに、RGBエンコーダーの機能を切り替える条件判定の部分でstatusを読んでいたが、ここでプログラミングをミスっていることが判明。 modeを読んで条件分岐を行わないとpotは切り替わらないのだが、この部分では本来は追加したキャリブレーション専用のスイッチを押してチューンを行うつもりだったことを思い出した。
posted by Yasuski at 01:02| open.Theremin

2018年05月17日

Open.Theremin@スケッチを専用基板に対応させる

昨晩からスケッチの精査を開始しているが、まずはプッシュスイッチの状態を判定するために設定した時定数にミスが発覚、これを修正する。

WS001267.JPG

次に、ロータリーエンコーダの2面設定を廃止し、単純化を行った。 以降、キャリブレーションは純アナログ方式で行うことになる。

WS001266.JPG

続けてコードの検討を行っていくと、Wavetableの参照後にローカルで音源のミックスを行っている箇所が怪しい。 ローカルの音声処理は、後々のことを考えて24bit幅に統一することが望ましい。 中間出力のデータはノーマル系とサチュレート系の処理を個別に行っておく。

WS001265.JPG

ミックス時の非線形リミッターは16bit幅から24bit幅に処理幅を広げているが、最終的にはこれをDACに合わせてbitshiftを行い辻褄を合わせる。 こちらも、サチュレート系の音声は分離して処理を行っている。

WS001268.JPG

その後、ソフトウエアをMCUに書き込んで通電したところ、無事キャリブレーションモードに入ることが出来た。

ただ、DACへの電圧供給を止めた影響でリファレンス側のオシレーターに周波数変動が発生してしまった。 ここでアンテナ側のチューンをやり直してもVRTを接続した時点で調整が無効になりそうなので、VRTが装着された別のシャシに回路を積み替えてチューンを行ったほうが良いだろう。

posted by Yasuski at 06:46| open.Theremin

2018年05月16日

Open.Theremin@オシレーターを調整した後にディテクターの動作を確認する

Vari-Capへのコントロール電圧が0Vの状態で物理的な手段で調整を行った。

調整箇所はオシレーターの時定数を決定するCで、Pitch側は100pFに24pFを追加、Volume側はデフォルト値の150pFを100pFに交換し、20pFを並列に配置した。

調整後の波形は歪んだ感じの妙なスプリアスが出てしまうが、

Screen Shot 2018-05-16 at 4.02.07.png

Screen Shot 2018-05-16 at 4.08.16.png

ディテクターの出力をオシロスコープで観測する限り、差分の出力は正常に行われている模様。



で、少々心配なレベルで出力波形がナマッている。 

WS001264.JPG

H/Lの判定は入力端子のヒステリシス設定によるので、結果は実機で検証する必要がある。 MCU側の動作がかなり怪しく、ハード/ソフト両面からの検証を行わなければならない。

とりあえず現時点では制御電圧がゼロの状態で調整を行っているが、ベストな方法は1/2VCCの制御電圧をVari-Capに印加した状態で行うべきだろう。 

WS001155.JPG

プログラム側の調整が完了した時点でオシレーターの基本発振周波数を設定するVRTを接続した後に、改めて調整が必要。
posted by Yasuski at 07:01| AudioElectronics

2018年05月12日

Open.Theremin@アンテナ接続時の周波数変動を調べる

アンテナ接続・アリ/ナシの比較を行った。

Screen Shot 2018-05-12 at 4.39.48.png

Pitch側が約14kHz、Volume側が約10kHz周波数がダウンするようだ。

Screen Shot 2018-05-12 at 4.34.26.png

未だにこのオシレーターの特性をよく判っていないのだが、過渡的な変化を追う限り、アナログ的な用法(直に音を拾う)には向かない印象がある。 スイートスポットでリニアな部分を拾って制御信号に変換するイメージ。 LのQが高いのはダメというのが通説なのだが、SMD系でQの低いコイルは存在するのだろうか?

ハニカム巻きコイルの実装は不可能ではないが、ケースを選ぶのと、相互干渉が問題になりそうだ。

今回行った測定で得られた諸々の周波数変動をまとめると、

1)アンテナ接続時の変動がPitchが14kHz / Volumeが10kHz 
2)TrimCapによる可変域が6~7kHz 
3)Vari-Capの可変域が約10kHz

というリザルトが得られた。

アンテナの長さはPitch/Volume共に50cmだが、アンテナのシェイプの違いが原因で変動値に差が出たと思われる。
posted by Yasuski at 12:25| open.Theremin

Open.Theremin@VariCapに直接コントロール電圧を入力して周波数の変化を観測する

VolumeAnt側のリファレンス用オシレーターのVariCapに直接コントロール電圧を入力して周波数の変化を観測した。

IMG_8036.JPG

制御電圧は0~3.3Vのフルスケールで大凡10kHzの変化幅が得られるようだ。



周波数の変化は大雑把に468kHzから478kHzだったので、アンテナ側はマージンを考えて、非接触時に473kHz辺りの周波数になるようにCの修正を行えばよいだろう。

実際に部品の展開を観た感じでは、リファレンス側の周波数を下げる方向で考えたほうが良いかもしれない。

ついでにPitch側の周波数を修正したが、更にVolumeの下側までLの定数を増やして再調整すべきだろう。



Antenna側のオシレーターに装着されたTrimCapを操作して、周波数の変化幅を測定した。

0~8pFのスケールで実測値7kHz/実効値6kHzといったところ。

このオシレーターに使用した部品の組み合わせでは、1pF辺り800Hz+の変化が得られるようだ。



計測の結果、Volume側がAnt接続側を32kHzアップ=-40pF、Pitch側がAnt側を27kHzダウン=+34pFする必要あり。

周波数は、この辺のCの時定数をいじって調整することになるが、Cの値を減らす方に手間が掛かってしまう。

32294546_1853512138012569_3068609749076410368_n.jpg

C5を100pFに減らして、C2で調整 & C25に33pFを追加といった形になるか。
posted by Yasuski at 03:27| open.Theremin

2018年05月07日

Open.Theremin@AnalogDiscovery2で出力波形を観測する

オシレーターの出力周波数をスペクトラム・アナライザで計測した。

Screen Shot 2018-05-06 at 16.28.48.png

Volumeオシレーターの周波数はリファレンス側が高く、、、

Screen Shot 2018-05-06 at 16.25.47.png

Pitchオシレーターはアンテナ側が高いことが判明した。 

PitchオシレータではLの並列化を行って発振周波数の調整を行ってみたが、周波数が高過ぎる結果となった。

Lを直列にするかCの値を増やして発振周波数を250kHz前後にシフトした方が良いだろう。

Screen Shot 2018-05-06 at 16.00.52.png

ディテクターに相当するD-FFによる差分をPWMに変換する回路は正常に動作している模様。

Screen Shot 2018-05-06 at 0.38.13.png

予備のSCKアウトはロジックレベルを5Vに変換した後の波形を観測したが、波形の鈍りが酷く、バッファアンプの追加が必要。

キャリブレーション・モードに入れない問題はMCUを解析モードに設定してシリアルデータを観測しなければ解決しない雰囲気だが、キャリブレーションという行為自体の必然性に疑問が生じてきているので、純アナログ的なチューニング方法に転換することを考えたほうが良さそうだ。
posted by Yasuski at 07:57| open.Theremin