ハムフェア2023での頒布に向けて準備中。
開発の経緯
在庫切れのままのモールス練習機TTCW06の再頒布希望の声をちょくちょくいただく。大変ありがたい。基板を作って部品を調達すれば頒布できるのだけど、ちょっと違うことをやってみたくなった。
TTCWシリーズはTwin-T発振器で(ほぼ)正弦波を作っている。そこをマイコンに置き換えてみようかと。
元々、とあるエレキーキットを組み立てた際に音が不満だったことがTTCWxxを作るきっかけだった。なので、きれいな音のモールス練習機がほしいというのは大いに理解できる。
マイコンで正弦波
最近は半導体需要の高まりと円安とでワンチップマイコンも高騰。というか、そもそも手に入りにくい。しかし、ATtiny202なら安く(それでも以前の二倍近いが)、秋月にも潤沢に在庫があるみたい。ということで実験してみたのだけど、どうにも変なノイズが入る。
やり方が悪いのかと思い、同じことをATtiny85でやってみたら問題ない。
格安のATtiny202を使いたかったのだけど、期待通りに動かないのだからしょうがない。ATtiny85は値段がものすごく上がってしまっているが、マイコンでやるならこれかなぁ、と。
エレキー搭載
ATtiny85を使うことにすると、正弦波を作るだけだともったいない。プログラム領域もメモリもスカスカ。それならエレキーも一緒に入れたい。ATtiny85で動くエレキーで心当たりがあるのはYACK。以前、実験で試してみたことがある。
これをコンパイルしてメモリ使用量を確認したら、かなり余裕がある。何しろ元々はATtiny45用だったのだからATtiny85ならざっくり言って半分くらい余っていることになるだろう(ATtiny85への移植は、キーのメモリを2から4に増やしたため)。
メモリ量としてはYACKと正弦波生成の両方を載せても全然問題なく入りそう。あとはピンの割当やタイマの使い方で両者が両立できるかということ。これもソースコードを眺めてみるとなんとかなりそう。ただし、両方を同時に動かす(つまり、YACKのサイドトーンを正弦波にする)のは多分無理。どちらを使うかの切替式ならいける(YACK自体のコードはあまりいじりたくないのも切替式にしたい理由の一つ)。
モールス練習機のTTCWxxをハムフェアなど展示していると「エレキーは入っていないんですか?」と聞かれることが何度かあった。メールでもそうした問合せがあった。両方の機能を入れておけばそういう要望にも対応できる。
YACKの変更点
両方の機能を一緒に載せる場合、問題になるのがCPUクロック。正弦波を作るためにはできるだけ早いクロックで動かしたい。ATtiny85だと、内蔵クロックの上限は8MHz。一方、YACKは1MHzで動かすことを想定して組まれている(おそらく、消費電流を抑えたいのだろう)。
内蔵クロックの周波数はフューズビットで決めるので動作中に変更することとはできない。1MHzか8MHzのどちらかに決めなければならない。1MHzにすると、正弦波の質が落ちる。実際にやってみると落ちるどころかまともな音にならない。ということで、8MHzにせざるを得ない。
そのため、YACKを8MHzで動かすように改造することになる。ソースコードを見るとCPUクロックの周波数はマクロで使っているけれど、完全には値の変更に対応できていない(1MHz以外で動かすと上手く行かない箇所がある)。例えば、5msのカウントしているところ。そういう所がいくつかあるので手を入れる(大した数ではなかった)。
それと、実際に使っているとどういう動作状態にあるのかわからなくなってしまうことがあった。ディスプレイがないのでさっぱりわからない。特に慣れていないうちは操作ミスで意図しない状態になってしまって戻せなくなったりもした。リセットコマンドも用意されているのだけど、それもキー操作で行うので五里霧中な状態では無理。そこで、強制リセット機能を付けた(パドルの両方をつまんで電源入力。これはK3NG CW Keyerの真似)。
アンプ
マイコンからの出力なので、正弦波出力も概ねVppは0~Vccとなる。なので、エミッタフォロワくらいでスピーカを鳴らせそう。と思ってやってみたのだけど、スピーカを鳴らすとトランジスタとエミッタ抵抗がものすごく熱くなる。その上、音も小さいし、歪みがち。
結局諦めて、TTCW06と同じアンプICを使うことにした。部品点数は多くないので、面積的には大きめのトランジスタを使った場合と大差ないし。
実際の様子
外観など
TTCW06と同じく、チップ部品実装済みのキットで提供予定(実装済みのチップ部品の数は46点)。自分で実装するのはコンデンサやジャック類などの大型部品だけ。
サイズはTTCW06と同じ(約50x50x25mm)。
基板上ではTTCW06のTwin-T発振回路周りをマイコンに置き換えた格好。また、フューズ(ポリスイッチ)やアンプICなどを移動させてタクトスイッチの場所を確保した。コンデンサを一つ傾けてあるのは、外部スピーカ端子を実装する都合。
機能
- エレキー(YACK)
- Iambic A/B対応
- メモリ: 4ch
- コールサイン練習機能あり(聞き取って打ち返す)
- モールス練習機
- マイコンによる正弦波
- スプリアス測定時補助機能
- 25Hzキーイング
- トーン出力: 1500Hz(SSB用)、1000Hz(AM/FM用)
スプリアス測定時補助機能は、スプリアス測定の際のキーイング速度は25Hz(25ボー)と決められているので、その機能を付けた。また、音声の場合は1500Hzや1000Hzで調整することになっているので、これも付けた。
エレキー(YACK)動作時のサイドトーンは、上にも書いたように正弦波ではない。矩形波出力だけど、LPFを通しているので若干丸い音になっている。
動作の様子
ビデオで。
ビデオの流れは以下。
- 動作の切換え
- エレキー動作(単純に電源投入)
- モールス練習機(右パドルを押しながら電源投入)
- スプリアス測定補助機能(側面のボタンを押しながら電源投入)
- ボタン短押し: 25Hzキーイング
- ボタン長押し: 1500Hz出力
- ボタンダブルクリック: 1000Hz出力
- モールス練習機能でのトーン周波数変更
- ボタンを押しながら半固定抵抗を回す
このビデオではモールス練習機としての起動のために右パドルを押しながら電源を入れているが、モノラルプラグを使って縦振電源をつないでもOK(モノラルプラグだと、ステレオプラグのR-chに相当する部分がGNDとつながっている(一体化している)ので)。
制限事項(不満点)
機能的には満足なのだけど、動作的には不満点もある。
- ノイズ混入
計算で作っている正弦波なので正確ではあるのだけど、マイコン動作に起因するノイズが混入して音が濁る。上のビデオでわかると思う(トーン周波数変更中のノイズは仕方ない)。
周波数(トーン)によってノイズは変化する。プログラムをちょっと変えるとこれまた変化する。
当初は、キーイングの度にノイズが変化してしまっていたが、それはなんとか抑えた。ノイズの変化は音色の変化き聞こえるので、途中で変ると気持ち悪い。これを抑えられなかったらリリースは諦めようかと思っていた。 - トーン周波数の変化は段階的
クロックと分周の都合で周波数変化が荒くなる。十数Hz刻みにしかできない。
この二つは大いに不満なのだけど、逆に良い点もある。
- キークリック時の音がソフト
正弦波のスタートポイントを制御できるのでいきなりピークから始まってしまうことがなく、立上り音がソフト。停止時もいきなり止めずに漸減させている。 - チャタリングをソフト的に排除
ということで、ハムフェア2023での頒布に向けて準備中。
コメント