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

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

or 管理画面へ

タグ「PIC」を含む投稿[23件](2ページ目)

Icon of admin
 LTC Generator の今の課題はPCのPythonからデータを送ってそれに則した差動バイフェーズの波形を出すことです。
 シリアル通信とコマンド処理を書き加えました。シュミレータでは思った通りの挙動をしたので次は実機テストです。
 ですが、この時間なので流石に寝ないといけません。デバグがすんなり終わればいいのですが、夜明けを迎えたら明日に差し障りそうです。
 いささか力尽きましたし、シュミレータでの確認が済んで気分的にも区切りが付いたので今夜は終わりにします。
 明晩、Pythonでシリアル通信して挙動を確認します。思った様に動けばPICのファームウェアは投了です。

#PIC #タイムコード
Icon of admin
 LTC Generator のPICはFIFOにデータを突っ込んで波形が出力するまでまとまりました。
 内部のテストルーチンによるものですが、データのリレーはシュミレーターで、波形はオシロスコープで確認出来たので、最も面倒な部分が成立した模様です。
 昨日一見動いたものの波形が安定せず悩みましたが、バグを手直しして今は期待した波形が出ています。0x00や0xFFはもちろん他の数値もOK。オシロスコープのトリガが引っかからず波形が読み取れない数値もありますが、この値が確認出来ればいいでしょうって値はいけたので、デバイスドライバ的なところが終わったと言えます。

 今後の課題はパソコンとの通信です。PIC側は過去実績、パソコン側はライブラリに頼れば左程難しくないハズ・・です。パソコンから受信した値をFIFOに突っ込んで期待した波形が出れば重要な機能は完了です。
 完成に至るには、PICからパソコン側にデータ送信の要求を送ったり、コマンドでfpsのモードを切り替えたりと課題は残っていますが、ハードウェアとデバイスドライバ的な部分がまとまればハードルは低くなります。

 ちなみに、今作っているのはシリアルで受信したバイトデータを差動バイフェーズで出力するだけの物ですから、TASCAMのプレーヤーのリモコンと組み合わせることも可能(正しくは不可能ではない)です。曲ごとのタイムコードをユニークする方法を考えなければなりませんが、これはこれで欲しい一品です。
 当然リモコンはフルスクラッチとなりますが、出来るだけ音響さんの環境を変えないためにこういった発想もありかなと。

#PIC #タイムコード
Icon of admin
 LTC Generator のプリアンプは回路を手直ししてOKになりました。
 バイアス電圧を当て、反転増幅回路の出力端子とマイナス端子の間の抵抗と並列に20pFのコンデンサを入れて解決しました。
 波形を示さないとわかりにくいのですが、コンデンサを入れる前は妙なノイズが出ていたのです。音声ではなく矩形波ですから周波数特性はそれほど気にしませんが、ノイズというか別波形が足されている状態はいただけない。
 回路修正用の基板も発注したので、プリアンプはとりあえずOKかな。

#PIC #タイムコード
Icon of admin
 FIFOなど、諸々書き加えたファームウェアも正常に動きました。
 自分で書いた送出停止処理の扱いを間違えて信号が出ないことに悩んでしまいましたが、テストプログラムが間違っていただけでした。肝心のモジュール本体は一発OKです。
 今回のPICはパソコンから送られてきたデータを淡々と差動バイフェーズで送り出すだけです。難しいことはパソコンでやれと、PICの名前の由来を考えろと。そんな作りです。
 データを差動バイフェーズで送出することは出来た。データのタイミング緩衝となるFIFOもどうやら正常に動く。残るはパソコンとの通信です。FT232RLを経由したシリアル通信ですが、PIC側はDMXで散々やったことですし、パソコン側はPythonなのでほんの数行で書けます。10分の空き時間で進められるものでもありませんけどね。

 あとはラインセレクタも必要です。
 音響さんからもらう本線LTCと自分のパソコンから送るチェック用LTCの2系統を切り替える必要があるからです。
 セレクタにはJRCさんのNJM2750が良さそうです。単電源で動く電子ロータリースイッチってイメージですね。
 NJM2750はアンバランスのLRを4系統から1つ選ぶって構成ですが、バランスのモノ4系統として使っても良さそう。
 今回はそこまで使わないけど、4系統のラインセレクタ基板を作っておけばいいかな?

#PIC #タイムコード #電子工作
Icon of admin
 FIFOの動作チェックをしました。
 バク無し・・・嬉しいような怖いような。
 FIFOはループメモリです。例えば10個のメモリを使うなら10個目を書いた後は1個目から書きます。これを続けます。読出しも同じ。
 ただ、読出しと書き込みはタイミングがシンクしませんので、読出しが書き込みを追い越さないこと、書き込みは一周以上先行しないことが重要です。これらの確認も出来ました。
 処理のタイミングとしては、読出しはLTCの送出に合わせてになりますが、書き込み(パソコンへのデータ要求とも言う)はメモリが空いたら行います。
 パソコンとの通信速度がLTCの送信速度より十分に速く、パソコン側のレスポンスも十分に早ければタイミングがズレることはありません。たぶん。
 読出しが書き込みに追いついてしまえばデータが無いことになりますので、新しいデータが入るまでLTCを送出しないだけです。

#PIC #タイムコード
Icon of admin
 気分転換にFIFOを書いてみました。初期設定を含めても50行くらいです。
 ループメモリを非同期で読み書きする構造ですから、それぞれのアドレスカウンタの扱いが肝です。当初悩んだものの、条件を整理すれば案外簡単でした。アルゴリズムの設計大事です。
 こういったモジュールは例外も想定して慎重に動作確認をしなければなりませんが、実機だと確認が難しいのでMPLABXのシュミレータの出番です。ステップ毎のレジスタの変化を観察したいのです。
 MPLABXのシュミレーターは使い方がイマイチわからんのですが、操作メニューが違うだけでやることはv8.92と同じでしょうから、先達の書き込みを参考に探ってみます。

追記
 シュミレーターの使い方は次のサイトがわかりやすい。というか、この通りにやったらシュミレート出来ました。
 MPLAB X の使い方(Simulator編)
 MPLABv8.92とはデザインが違いますが、やっていることは同じなので慣れればいいかなと。PICの中身を知らないと何が何やらですけど・・・
 テスト用に少し書き換えればFIFOの挙動をチェック出来ます。

#PIC
Icon of admin
 LTC Generator のPICのファームウェアを書いています。
 今日の課題は「バイトデータ送出モジュール(補正機能付)」です。信号を出す要の部分でしょうか。
 30fps、29.97fps、25fps、24fpsに対応する予定ですが、それぞれに適したパルス波長を作る部位です。
 1時間単位の計測方法が無いので精度の確認は出来ませんが、オシロスコープで確認する限りは適切なパルス長です。
 データ送信も確認しました。0x00と0xFFを繰り返し送出するテストですが、ちゃんと差動バイフェーズの波形が出ています。そこそこ面倒なアルゴリズムですが一発で動いてしまい嬉しいやら寂しいやら。
 データに応じた波形が出せる状態になったのでファームウェアは一旦お休み。
 この後は、プリアンプの手直し、パソコンからFT232RL経由でデータを送るテストプログラムの作成と続きます。

追記
 そういやFIFOモジュールを書いてない。
 これは先にやっておきましょう。

#PIC #タイムコード
Icon of admin
 MPLABX-IDEv5.50、XC8_pic-as、PICkit3 の組み合わせでPICが動きました。
 今までは古い古いMPLABv8.92を主に使ってきましたが、MPLABXへの引っ越しが終わった感じです。出来るだけ新しいMPLABXを使わないと対応デバイスやら動作クロックの制限があって不便だったのです。
 PICに対して行う要点は同じですが、大事なところが微妙に違うのには難儀しました。特に、プログラムメモリアドレスの指定とコンフィゲエーションビットの設定という超重要項目の設定方法が全く違うのには泣かされました。先達の情報に感謝です。
 TMR1をコンペアモードで動かして所定の基底パルスが出ています。25fps向けの4,000Hzなので折り返しは250usec.です。オシロスコープにしっかりと波形が出ています。

 基本的なところがクリア出来ましたので、試行錯誤で散らかったソースコードを掃除して次のステップです。

追記
 音声信号に変換するプリアンプ回路が思った様になりません。
 アナログは苦手です。

追記
 先達の情報にこんなんがありました。
 単電源でアンバランス-バランス変換 その2
 単電源でオペアンプを使う際の注意点というか基本が読み取れる回路図です。自分は単電源での使い方を間違って覚えているかもしれません。
 試しにブレッドボードで組んでみましょう。
 つか、苦手な要素はテストしてから基板作れよっ・・

追記
 上記のサイトの回路を参考に、プリアンプ回路の修正基板を描いてみました。オペアンプを搭載するDIP8ピンのパターンに被せる基板です。
20230531131752-admin.jpg 20230531132020-admin.jpg
 全てを作り直してもいいのですが、無駄になる物が多いので、すでに入荷済みの基板にはこの手で使おうかなと。聴くものじゃありませんので多少ノイズが出ても支障ありませんし。
 オーダーするのはブレッドボードでのチェックの後にしますケドね。

#PIC #タイムコード
Icon of admin
 PICをプログラムするのに開発ツールのMPLABXと書き込み機のPICkitを使っています。
 最新のMPLABXでアセンブラファイルを作ったので書き込みのテストを始めたのですがPICkit4が正常に動かない。認識はされているのに書き込みをすると正常な通信が出来ないとエラーを出します。イロイロ試すものの一向に改善しません。
 こんな時はヴァージョンを落とすのも対策の一つです。原因がMPLABXにあるのかPICkit4にあるのかわかりませんので、開発ツールも書き込み機も世代を落とします。条件はXC8のアセンブラとPICkit3が使えることです。ver5.40、5.45、5.50が該当します。
 ダウンロード済みだったver5.40を試すとアッサリ解決。正常なログが出ました。試行錯誤の6時間はなんだったのでしょう。
 当面、ver5シリーズの最終版であるver5.50を使うことにします。

 PICが正しく動くかのチェックはこれからです。正しく書きこんだ顔をしているのにダメって可能性もあるので安心するのは早いです。
 PICkit4が動かないのは困りますが、こういった開発ツールではヴァージョンアップの過渡期によくあることです。気にしても始まらない。

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

#タイムコード #PIC

■当面の課題

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

編集

■全文検索:

複合検索窓に切り替える

■複合検索:

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

■日付検索:

■カレンダー:

2023年6月
123
45678910
11121314151617
18192021222324
252627282930

■カテゴリ:

■最近の投稿:

最終更新日時:
2024年4月28日(日) 10時15分49秒