TRX-305 Hirado
ja7eif への返信 まずはサポート依頼内容の記述をお願いします。
実用できない問題がありしばらく放置していました。 問題点はSSB受信で約25Hzから30Hzずれているという現象です。 この件に関して西村氏にお伺いしましたが、残念ながら解決に至っておりません。 そこでこのプログラムを使用して解析を行いました。添付ファイル参照 最終バージョンにこのDSPをリンクしたものです。(オリジナル_800Hz_tone) 波形がなまっているのでFPGAのバグを修正しました。(変更後_1000Hz_tone) 2周期で1サンプリングデータが欠如しているのが鮮明になりました。 FPGAのプログラムを詳細にチェックしたのですがタイミングのずれとは考えにくいと思いました。 ではDMA転送のトリガーに原因があるのか、どこかで処理が遅延しているのか私には解析が出来ません。 解決への道筋を見つけてくだされば幸いです。 どうぞよろしくお願い致します。 池田
ja7eif への返信
すみません、主語が分かりにくいのではっきりさせてください。
問題点はSSB受信で約25Hzから30Hzずれているという現象です。
これはTRX-305の現象でしょうか、それともHIRADOの問題でしょうか。全文を読むとTRX-305の問題に思えます。
そこでこのプログラムを使用して解析を行いました。添付ファイル参照
「このプログラム」はHIRADOだと思われますが間違いありませんでしょうか。
2周期で1サンプリングデータが欠如しているのが鮮明になりました。
これはTRXの問題が鮮明になったのでしょうか、それともHIRADOの問題が鮮明になったのでしょうか。
返信ありがとうございます。 TRX-305の実用化を目指ししていたのですが、SSB受信音が25から30Hzずれることが発端です。 DSPはブラックボックスなのでまずはFPGAの解析を行っていました。 DA変換でバグがあり修正はしたのですが、どうしても周波数のずれは解決できません。 そこで、hiradoのDSPをリンクしてSAM復調プログラムのサンプルを利用してオーディオ波形を観察しました。 その結果2周期で1サンプリングデータが欠如することが分かりました。 TRX-305のDSPとhiradoのDSPが同じ問題があるとは思えませんが、hiradoのDSPが使用できるようになれば実用化も見えてきます。 SAM復調プログラムにある周波数を変えても2周期でずれが生じます。 これはhirado側のシリアル送信に問題がありそうなので、解決の糸口を求めて質問した次第です。 よろしくお願いします。 池田
ja7eif への返信
もうすこし詳しく確認させてください。
そこで、hiradoのDSPをリンクしてSAM復調プログラムのサンプルを利用してオーディオ波形を観察しました。 その結果2周期で1サンプリングデータが欠如することが分かりました。
これは、HiradoでSAM復調したところ、「2周期」で1サンプルデータが欠落しているという意味にとらえましたが 間違いないでしょうか。この場合の2周期とは何でしょうか。観測した波形の周期であれば、その周波数を教えて ください。
これはhirado側のシリアル送信に問題がありそうなので、解決の糸口を求めて質問した次第です。
Hiradoに入ってくるデータでもHiradoのシリアル受信機能でもなく、送信機能に問題があると踏んでいる理由が あれば教えてください。
平日は時間が取れませんが、週末にいただいた情報から設計を見直してみます。
ありがとうございます。 2周期の件は添付ファイルを参照していただけると分かります。 オリジナルの画像は最新バージョンのTRX-305のhiradoのDSPをリンクしたものです。 FPGAのプログラムバグで波形がぼけていました。 FPGAのプログラム修正後、波形が奇麗になったので1000Hzの復調波を観察したものです。 2周期で同期がずれています。500Hzにしても同じく2周期でずれが出ます。 FPGAとDSP間のプロトコルが分からないので、手探りで追いかけています。 FPGAからは63.476KHzサイクルでデータ要求フラグをDSPに出力し、DSPからは31.738KHzサイクルでオーディオ信号が送信されているようです。 (データ要求が63.476KHzなのも不思議に思っています。31.738KHzにするとサイン波になりません) FPGAの受信同期ずれがあるのかと探ってはいるのですが、上記のようにSAM復調波の周波数を変更しても同じ2周期でのデータ欠損は、DSPに何らかの原因があるのではと考えました。 TRX-305のDSPも同じ問題があるとすると、SSB受信のずれが納得できるのですが。 >Hiradoに入ってくるデータでもHiradoのシリアル受信機能でもなく、送信機能に問題があると踏んでいる理由が あれば教えてください。 FPGAからhiradoへの送信はオーディオ・データ要求のフラグですがこのタイミングのずれはないようです。 7年も経過してからのサポートリクエストは心苦しいのですが、捨てるにはもったいない器械ですので、よろしくお願いします。 池田
ja7eif への返信
原因はどこかで起きているクロックずれではないかと思います。
FPGAのプログラム修正後、波形が奇麗になったので1000Hzの復調波を観察したものです。 2周期で同期がずれています。500Hzにしても同じく2周期でずれが出ます。
この返事を読んでひとつ理解できましたが、あらたにわからないことも出てきました。 1kHz 2周期なら2mSに一度データずれが起きるはずです。しかし、500Hzも2周期なら 4mSに一度になっています。問題の周期と試験信号の周期が同期関係にありますので、 700Hzのように問題の発生周期との最小公倍数が大きそうな試験信号で観測すると 違うものが見えるかもしれません。
FPGAとDSP間のプロトコルが分からないので、手探りで追いかけています。
プロトコルというものはありません。同期データ転送であり、すべてはタイミング信号に 合わせて送りっぱなしになります。ですのでデータ要求というものもありません。なんとなく、 BlackfinのSPORTのTFSx信号をそう呼んでいるのではないかと思いますが。
私も厳密なデータフォーマット仕様書は提示してもらっておらず、多少のメモとメールによる 説明からプログラムを書いたので正確なことは言えませんが、FPGA->DSPとDSP->FSでFS信号の 周波数が違うのは、FPGAからの信号はIQになっていて情報量が多かったからだと思います。
63.476/31.738kHzとあまり見ない周波数になっているのは、FPGAのクロック系で信号 周波数が決まっているからでしょう。Hi-Fiではないので48kHzや44.1kHzに固執する必要はない はずです。
FPGA-DSP間のデータ通信のタイミング信号はすべてFPGAが作っており、DSPはタイミング 的なスレーブになっています。データフォーマットはかなり特殊ですが、私の理解では送受の フレームレートは倍数関係を保ったままジッターなく同期しているはずです。63.476/31.738kHzと 実測されたのなら、この倍数関係は間違いないようです。
DSP内部の処理は、受信(FPGA->DSP)タイミングを基準として、完全に送受が同期していると「想定しています」。 つまり、DSPの内部では1セットのI/Q信号の受信に対して、必ず1サンプルのオーディオ信号の 送信が行われるという仮定に基づいたプログラミングです。回りくどい言い方ですが、言葉を変えるなら 「データを受信したときには、送信も完了している」 と仮定しているという意味です。送受が同期しているということは、FPGAからのタイミング信号が 送受で同期しているとも言えます。
もし、この前提が成り立たないのなら、DSPで復調した信号は送受のフレーム周波数のずれに応じた 周期でおかしくなることになります。
話が長くなりましたが、どこかでタイミングのずれが起きているのではないか、と考えていらっしゃるのなら、DSPの RFSxピンおよびTFSxピンを同時に観測してください。この二つはそれぞれFPGA->DSPおよび DSP->FPGAのフレーム同期(ワードタイミング)信号です。
この二つのピンの信号が時間とともにずれるようならば、上の私の仮定が崩れていますので一定周期で 波形が乱れることの説明になります。対策としてはDSPプログラムにSample Rate Comverterを入れる ことになります。
この二つのピンの信号が時間とともにずれないならば、DSP内部でタイミングがずれているとは 考えにくいです。
オーディオコーデックの同期信号もDSP->FPGAの同期信号もFPGAが作っています。この二つの信号の フレームレート(ワードクロックの周期)も調べることをお勧めします。もし違うのならFPGA内部で 何らかのSample Rate Conversionが必要です。それが行われているか否かは私は知りません。
考察ありがとうございます。マスタークロックが65MHzと40MHzの2系統ありまして複雑になっています。初期のバージョンでは65MHzを分周した同期信号だけでしたが、DSPへの同期クロックが10MHzに変更になり、伴ってオーディオ・コーディックICへのマスタークロックも変わり、オーディオサンプリング周波数は39.063KHzとなっています。送信系統ではこのサンプリング周波数を使用していて、受信系統では65MHzを基準としたクロックが使用されています。なので受信のオーディオ信号のサンプリング周波数は31.738KHzになっています。この混在が原因で復調オーディオ信号処理においてバグが発生して波形が乱れていました。ご指摘のように500Hzと1000Hzの周期検証は通常は不適当かもしれませんが、当初800Hzで観測していて同様のずれを観測したものですから、2倍の周期観測を試みたのです。結果同じ現象でしたからクロックのずれは考えにくくなり、DSPの送り出しに何らかの原因がありはしないかと思い質問させていただいたのでした。TfsとRfsは追いかけているのですが、2信号の同時観察は行っておりません。FPGAから直に引き出されて影響を与えないIOが1ポートだけでしたから。どこかのポートをつぶして観察してみます。池田
時間がだいぶ経過しましたが、サポートのお願いは出来ますでしょうか? このページの使い方もほとんど知りませんが、連絡の手段はこれだけですのでよろしくお願いします。