ラジオ少年の楽しい電子工作、その他

AVRを使った簡単な回路の実験、そして日々のちょっとした出来事を書きます。

2ch電子ボリウム(NJW1159D)(6)

2016年03月30日 | 日記

何時もの木工ケースに入れて上手く動作するはずと期待したのですが、、、、な、な、な! 全くNG。

   

ATmega328からはデータは期待通りに出ています。

上記は-95dB時のデータです。Rchは0dBから-18dBまでは期待通りに減衰してますが、-19dBになるといきなり急激に減衰してしまいます。Lchは0dBでは波形が出ていますが-1dBでこれも波形が出ません。-16dB、-32dB,-48dB、-64dB、-80dBで波形がでます。

NJW1159が壊れているのか?一度変な電圧を架けましたので。取り替えて見ますか?何がオカシイのか、検討がつきません。

2016/3/30(水)

NJW1159Dを取り替えてみましたが、状況は変わらず、原因はプログラムにありそうな気がします。確かにデータは正しくATmega328から出されているのですが、それが1159Dに正しく書き込まれているのか?この辺が???です。

CLOCKの出方が仕様書と異なることが分かりそれは修正したのですが、どうもおかしな振る舞いをしている1159Dです。

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

CH340G

2016年03月26日 | 日記

自作Arduino uno基板でArduino IDE画面からのプログラム書込みが上手く出来ない状態でしたので、ちょっと調べて見ました。

中華製のArduino Unoもどき基板にそのCH340Gが使われています。CH340GのTXD,RXD,DTRとATmega328の該当端子を調べて見ました。

  CH340G                ATmega328

   TXD       1Kオーム        RXD

   RXD       1kオーム       TXD 

     DTR                コンデンサ        Reset

以上の様に配線されていました。私の場合DTRとResetを直接繋いでいます。違いはこれだけです。

そこで、コンデンサの値は分かりませんが取り合えず有り合わせの1000Pfを入れてみました。結果はOK、書込みが出来ました。

恐らく、Resetはパルスで出す必要が有るのでしょう。

 

2016/3/28(Mon)

DTRの振る舞いをATmega328のreset端子で観測して見ました。

Arduino IDE画面でプログラム書き込みを実行すると8usのLow パルスが出ています。それ以外はDTR、Reset端子ともHighになっています。

其れならば、C無しでも良さそうなものですが? 

コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

2ch電子ボリウム(NJW1159D)(5)

2016年03月25日 | 日記

電子ボリウムのプログラム作りで大分時間を取りましたが何とか出来上がりました。

エンコーダのパルスでLCD上の標示を+-させ、同時に電子VRに表示に相当したデータを出す必要があります。さらに、電源ON時はMUTE標示でエンコーダを左周りにした時はMUTE状態を維持させ、右回り時には-95,-94,-93dBと変わって行くようにし、-1dBまで廻して次に0dBになります。それ以上廻しても0dBを維持させるようにします。

ロジアナでデータをチェックしながらオボケ頭をフル回転?させ、期待通りになった?様です。(怪しい、、、かな)

ところが、ハードがいけません。DC-DCコンバータが行かれているのか-5Vは出てますが、+5Vが出てません。LCDは飛ばすしついていません。

   

残りのデータも大丈夫でしょう、多分。

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

2ch電子ボリウム(NJW1159D)(4)

2016年03月21日 | 日記

LCD標示は期待通りに動いてくれています。今度はNJW1159への制御データのチェックです。でも、最初からつまずいています。

LatchはLowになり、ClockはLch,Rchでそれぞれ16個出ていますが、肝心のATT量を示すDataに全く何も出ていません。

データは2バイトをMSBからClockのLowへ落ちるときに同期して1bitずつ送られるはずなんですが、、、、何かがオカシイ?

 

2016/3/21(Mon)

データは出るようになりましたが、-95dB ---> MUTE, -1dB ---> 0dB の処理が意外と大変。

data_l  = constrain(data_l, 0, 0xbe00);

constrainでデータの範囲を決めると肝心のデータが出てこなくなるし、そうなるとエンコーダを廻し過ぎたときにデータが変化してしまい、期待通りに動いてくれません。 難しいですな。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

2ch電子ボリウム(NJW1159D)(3)

2016年03月20日 | 日記

LCDを壊してしまいやる気が失せていたのですが、何とかロータリエンコーダの回転状態をLCD(古い液晶のもの)に標示させるところまで進みました。ロータリーエンコーダのプログラムも難しくやっと動きました。

    

電源ONでMUTE  ---> -95dB -->0dB --> -95dB ーー> MUTE と標示されます。

0dBにマイナス記号は要らないかな?

ロータリーエンコーダはタイマー割り込み(3ms)で状態を監視します。今のところチャッタリングや取りこぼしななさそうです。

次はNJW1159を配線してデータを送り込む部分を作ることになります。果たしてうまく行くのか?ノイズの影響はどうか?

NJW1159は+-電源を必要とします。これはDC-DCコンバータ(+-5V)を使う予定です。配線、特にグランドに配慮しないといけません。また、エンコーダを廻したときにチリチリとノイズが入る可能性がありますが、これは動作する段階にならないと分かりません。

 

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする