🗐 電装工芸日記 - 舞台照明機器の製作とか -

能登半島地震で被災された方々にお見舞い申し上げます。

or 管理画面へ

ユーザ「電装工芸」の投稿[863件](26ページ目)

2023年5月 この範囲を時系列順で読む(電装工芸の投稿に限定) この範囲をファイルに出力する

Icon of admin
 LTC Generator のアルゴリズムを整理しています。
 これまで別々に考えてきた要素を一つにまとめて確認する作業ですが、潜在しているバグを見つけるのはパズルを解くような感じです。文法の間違えはアセンブラに怒られるのでわかりやすいのですが、アルゴリズムの間違えは自ら見つけないといけないからです。今は設計書の段階ですが、ソースを書く前に出来る限り潰しておきます。
 現地照明の仕事に来ていますが、他社さんのお手伝いですし、仕込み直し以外は楽屋待機なので暇つぶしに丁度よい作業です。

#タイムコード #PIC
Icon of admin
 MUSES01DのDI-1のエージングは185時間経過です。
 無改造品は80時間時点から変化はありません。高域の詰まり感が減少して伸びる感じが出ているのでエージングは望ましいと思いますが、この辺りが限界なのかな?
 MUSES01Dの方は高域の明瞭度が更に良くなり、主旋の裏にある細い音が一層聴こえる様になっています。特に無改造品では聴き取れない高域のリバーブ音が存在感を持って聴こえます。無改造品とはすでに別物です。ただ、「シャー」ノイズが耳に付くような気もします。S/Nが悪くなったのではなく、高域が主張されるのに伴って音源からの「シャー」も大きくなったようです。
 良し悪しはともかく、改造によって別物になった意味では現状でもアリだと思いますので、この後はエージングの時間を決めることでしょうか。本番中に音が変わっても困りますからね。変化が落ち着くタイミングを知りたいところです。

#音の世界
Icon of admin
 オレメモです。
 PICにおいてPORTx,nに対するbit反転方法。
 TMR1のコンペアで割り込みしてPORTの出力を反転すればパルスになりますから、差動バイフェーズで重要です。

; PORTAの3bit目だけ反転させる。
 MOVLW 00001000B  ; Wレジスタにフィルタ値を定義 3bit目だけ1
 XORWF PORTA,SELF  ; PORTAの3bit目だけを反転
 ※ 書式はXC8のPIC-as


 データシート読むとPORTxではなくLATxに対して計算を当てるのがいいらしいのですが、ここではわかりやすさのためにあえてPORT相手です。

 XORの計算は次の通り。
0 xor 0 = 0
0 xor 1 = 1
1 xor 0 = 1
1 xor 1 = 0

 PIC16系にはbit単位の反転命令がありませんので、反転させたいbitだけ1にしたフィルタ値をXORで当てます。
 左の値をPORTの現在値、右の値をフィルタ値とすると、2行目と4行目が反転になり、1行目と3行目は非反転になります。

 論理演算の基本ちゃ基本ですが、案外忘れてしまうのでメモメモ。

 アセンブラに限らずですが、出来るだけ簡単な計算で条件分岐を行うことが大事です。
 例えば処理を10回繰り返すとして、0から加算してカウンタが10になったことを判断するより、10から減算して0になったことを判断する方が好みです。PICのアセンブラの分岐処理は計算結果が0かで扱うのが自然だからです。
; 10回繰り返す
 MOVLW 10      ; COUNTに10を設定する
 MOVWF COUNT     ;
LOOP:
 ~ 10回繰り返す処理をここに書く ~
 DECFSZ COUNT,SELF  ; COUNTをデクリメント(-1)し、結果が0なら次行の処理を飛ばす
 GOTO LOOP      ; LOOPを繰り返す
 ~ 繰り返しの後の処理をここに書く ~

 DECFSZはDECFとBTFSSを組み合わせたマクロ命令みたいなものです。

 少し蛇足ですが、レジスタの現在値が0であるかを見るには、
; レジスタNUMの値は0か?
 MOVF  NUM,SELF  ; 自分自身へ値をコピー
 BTFSC STATUS,ZE  ; 計算結果がゼロかどうかで分岐
 GOTO  NUMisZERO  ; ゼロの場合NUMisZEROへジャンプ(CALLでもいいけど)

 MOVFで自分自身に値をコピーするとSTATUSのゼロフラグ以外変化しないので便利です。
 もちろんWレジスタにコピーしても同じ結果を得られますが、Wレジスタが変化しない方がスッキリまとまることが多いようです。

 てな感じで、PICのアセンブラのリハビリをしています。

#PIC
Icon of admin
 LTC Generator のファームウェアもボチボチ製作開始です。初期設定から整理を始めています。
 まずはPICとプリアンプの確認を兼ねてパルス出力のテストプログラムからでしょうか。これが思惑通りにならないと何も始まりません。
 30fps向けの2,400bpsと25fps向けの2,000bpsです。実際は倍の4,800Hzと4,000Hzのパルス生成です。
 生成にはTMR1をコンペアモードで使います。
 TMR1はタイマと呼ばれるもので、CPUクロックなどをキーにした自動カウンターです。時間の計測に使えます。
 コンペアとはタイマが指定の値になったらタイマの値を初期化しつつフラグを立てる機能です。一定の周期を得られます。
 周期を動的に調整して1時間あたりの総カウント数を出来るだけ正確にしようというのが今回の肝です。

#PIC #器具の製作 #タイムコード
Icon of admin
 MUSES01DのDI-1のエージングは135時間経過です。
 劇的ではないものの、時間経過と共に安定感と明瞭感が増しています。無改造品との違いも分かりやすくなってきました。
 今朝感じたことは、アコースティックギターのピックや指が擦れる音が一層明瞭に聴こえてきたことです。そういった音を主張したミキシングではありませんし、パルスに近い音が大きくなったワケでもありませんが、音の向こうの無音が以前より感じられる様になったとでも言えばいいでしょうか。聴こえるということは音が大きくなったかそれを隠す余計な音が無くなったかのどちらかですが、原因は定かでないものの、聴き取り難かった音が明瞭になったことは事実です。
 音作りは好みの世界で、低能率やノイズすら「味」や「色」とされることもありますが、ダイレクトボックスは楽器の音をPAに受け渡す入口ですから正確に次に渡すことが役目だと考えています。正確の意味は演奏者が作った音を足しもせず引きもせずということです。

 どこからの情報かわからないのですが、MUSES01Dのエージングは300~350時間らしいので半分経過です。

 ちなみに無改造品の変化は止まった気がします。そのため改造品と差が開いた印象があるのかもしれません。途中参戦なので少し短いですが、ここまでのエージング時間は約80時間だと思います。
 今後も改造品と共にエージングを続けますが、無改造品のエージングは歪み限界から-3dBのピンクノイズを100時間当てる、としておきましょう。

#音の世界
Icon of admin
 エージングの仕方を少し変え、これまでは抑えめの信号でしたが、歪まないギリギリのところから3dBくらい下げたレベルのピンクノイズを与えることにしました。
 海外の某メーカーのテクニカルノートにかなり高いレベルの信号を与えてエージングを行うとの記述があったためです。正解は不明ですが、メーカーが言うならやってみるべきです。
 これが功を奏したのかわかりませんが、3時間後にチェックしたところダイナミックレンジが明らかに広がっていました。MUSES01Dはエージングが済むと出力レベルが高めになりダイナミックレンジが広がるとのレポートもありますので、ちょうどそういう変化が起こるタイミングだったのかもしれませんけどね。
 これまでは無改造品に比べ少しだけ良い感じが続いていましたが、改造品が徐々に差を広げ始めています。

#音の世界
Icon of admin
 MUSES01Dに換装したDI-1はエージングが110時間ほど経過し安定してきました。昨日の中域が詰まった安っぽい音は解消しています。
 無改造品より良いのですが、手間暇お金をかける程の印象はまだありません。

 良い点を特筆するなら、生ギターの高音弦やハイポジションは圧倒的に良いことです。弦が擦れる音や細い響きに立体感があります。
 ダイレクトボックスの役目は楽器のレベル変換ですし、DI-1の不満点は高域の詰まった感じですから、これはこれで良いのかもしません。

 ただ、並列で音を通している無改造品も日に日に良くなってきている印象があります。
 上記の特筆点では改造品に負けますが、エージングしたら無改造品でもいいんじゃないか!?という予感もしています。

 ちょっと違う分野ですが、次の様なyoutube動画がありました。
「エイジングするとエフェクターの音はどう変わるのか」
 
 MUSES01D化したDI-1はもっと変わります。

#音の世界
Icon of admin
 LTC Generator の基板をハンダ付け。
 表面実装部品の取り付けはオーブントースターを用いたリフローです。手順が決まれば簡単です。
 リフローに関する過去記事
20230522221900-admin.jpg 202305222219001-admin.jpg
 当たり前ですが、KiCADで描いた3D図のままです。
 Windows11がCOMとして認識しましたので、Pythonでシリアル通信が出来るハズです。
 この後はPICのファームウェアを書きます。MPLABX-IDEも使えるようにしましたので地道に書いていきます。

 基板に書いた抵抗値が一部間違ってました。
 データは修正しましたが、次の製作では注意が必要です。

#電子工作 #器具の製作 #タイムコード
Icon of admin
 DI-1の音が小さくなった原因というか対策ですが、7vくらいになっていた9v電池を新品にしたら治りました。
 ファンタム電源で動かしていたので電池は無関係だと思ったのですが・・・。古い機体だから電池の扱いが違うのかな?オペアンプがよくない方向に行ったワケでないことを確認できたのでヨシとしましょう。
 現状の音ですが、DI-1特有の高域がモッサリする感じが無くなり、スッキリと上まで伸びて音像は明瞭ですが、どことなく安っぽい音に感じるかもしれません。高域が良くなった半面、中域が細くなって音の分離が弱くなった印象です。手間ヒマお金をかけて改造するレベルかは微妙。
 300時間として残り200時間。。。。

#音の世界
Icon of admin
 PICのファームウェアを書くのは久しぶりなので最新版のMPLABX-IDEをインストールしました。現時点でv6.10です。
 しかし、MPASMが入っていません。アセンブルするためのツールですが、これが無ければアセンブラソースが扱えません。
 こりゃ困った。
 ネットを徘徊したところ、MPASMが入っているのはv5.35までとのこと。v5.40以降はXC8(Cコンパイラ)のアセンブラを使えってことみたいです。

追記
 v5.35をインストールしましたが、MPASMは64bitOSでは使えませんときた。
 アセンブルは実行されるのに警告が出ます。
 今は動いても将来的に問題がありそうなので、XC8のアセンブラを使うことにします。

追記
 MPLABX-IDEはv6.10、XC8はv2.41、アセンブラはXC8のPIC-asにしました。書式が少し違うだけで要領がわかれば簡単です。MPASMをMPLABX-IDEで使っている方なら、細かい設定は先達のサイトを検索して頂けば解決すると思います。
 こちらのサイト「XC8 アセンブラの使い方 1(MPASM 移行)」が参考になりました。
 私が以前のソースを変更したのは次の3点です。
1)ラベル文字列の最後にコロン「:」を付ける。
2)数値書式を変更。
3)ORGで指定していた開始アドレスの指定方法を変更。
 PICの動作は確認していませんが、アセンブルは正常終了しました。
 コンフィゲーションビットの設定はソースコードに記述するのがXC8の流儀みたいです。

#電子工作

■当面の課題

桜のライトアップの季節です。花粉症の季節でもあります。
自分は平気ですが、花粉症の部下は死にそうな顔をしています。

編集

■全文検索:

複合検索窓に切り替える

■複合検索:

  • 投稿者名:
  • 投稿年月:
  • #タグ:
  • カテゴリ:
  • 出力順序:

■日付検索:

■カレンダー:

2023年5月
123456
78910111213
14151617181920
21222324252627
28293031

■カテゴリ:

■最近の投稿:

最終更新日時:
2024年5月3日(金) 19時30分54秒