マイコン工作実験日記

Microcontroller を用いての工作、実験記録

SLICの初期化

2008-11-24 22:39:35 | SLIC


Si3215MLにはたくさんのレジスタがあるので初期化だけでも大変なのではないかと心配していましたが、アプリケーションノートのAN35に手順が明記されていました。RESET端子をLOWにする事から始まり、キャリブレーションも実行したりして、全部で28ステップにも及ぶ手順が記載されています。最初はAN35のとおりにプログラムを組んだのですが、実際に動作させたり調べたりした結果、以下の点を変更しています。
  1. 呼出し周期の変更 呼出し音は米国仕様の2秒鳴って4秒止まる設定になっているので、評価ボードでの実験の時と同じように日本流の1秒/2秒に変更
  2. オンフック電圧の変更 オンフック時にTIP/RING間に加わる電圧を48Vから12Vに変更
  3. オシレータ1の周波数設定の変更 日本仕様ダイアルトーンの生成に備えて400Hzに変更
オンフック電圧については、このあたりの情報を元に12Vにしてみました。実験用の電話機は6Vでも動作してくれました。

呼出時にかかる電圧としては、75Vを設定しています。ここも低くできそうなので、試しに74番レジスタを48Vにしてみたのですが、キャリブレーションが終了できなくなってしまいました。おそらく関係する他のレジスタの設定変更も必要となるのでしょう。

初期化ができたので、早速音声出力の試験です。全ての操作はモニタから対話的にコマンドを入れて行っています。
]]] MMnetSAM7X Console Monitor [[[
> 
> slic dump
   0: 33    1: 88    2: 00    3: 00    4: 00    5: 00    6: 60    8: 02
   9: 00   10: 08   11: 33   14: 10   15: 00   18: 00   19: 00   20: 00
  21: 00   22: 00   23: 00   28: 00   29: 00   30: 00   31: 00   32: 00
  33: 00   34: 00   36: 00   37: 00   38: 00   39: 00   40: 00   41: 00
  42: 00   43: 00   48: 00   49: 00   50: 00   51: 00   52: 00   63: 54
  64: 00   65: 61   66: 03   67: 1f   68: 00   69: 0a   70: 0a   71: 00
  72: 20   73: 02   74: 32   75: 10   76: 00   77: 00   78: 00   79: 00
  80: 00   81: 00   82: 00   83: 00   84: 02   85: 02   86: 00   87: 00
  88: 00   89: 00   92: ff   93: 34   94: 00   96: 1f   97: 1e   98: 10
  99: 10  100: 11  101: 11  102: 08  103: 88  104: 00  105: 00  107: 08
 108: 00
   0: fb97   1: 23fe   2: a981   3: 4b9e   4: c7dc   5: ff34   6: 3e57   7: fffb
   8: b2a9   9: ef71  13: edb6  14: 1a7e  15: e6ff  16: c333  17: dfec  18: 42c7
  19: bf6c  20: aeff  21: 2bdf  22: d94a  23: 32f8  24: e3f7  25: 236d  26: 5783
  27: bef9  66: c7ff  69: af54  70: e0b6  71: 68fd  72: f45d  73: f735  74: ffaf

> slic init
ProSLIC detected.
1652ms
> 
> slic dump
   0: 33    1: a8    2: 00    3: 00    4: 00    5: 00    6: 60    8: 00
   9: 00   10: 28   11: 33   14: 00   15: 00   18: 00   19: 00   20: 00
  21: 00   22: 03   23: 00   28: 00   29: 0c   30: 40   31: 00   32: 00
  33: 00   34: 00   36: 00   37: 00   38: 00   39: 00   40: 00   41: 00
  42: 00   43: 00   48: 40   49: 1f   50: 80   51: 3e   52: 00   63: 54
  64: 11   65: 61   66: 03   67: 1f   68: 04   69: 0a   70: 0a   71: 00
  72: 08   73: 02   74: 32   75: 10   76: 00   77: 00   78: 08   79: 00
  80: 07   81: 28   82: 3f   83: 3f   84: 01   85: 01   86: 00   87: 00
  88: 01   89: 00   92: 60   93: 38   94: 07   96: 00   97: 00   98: 11
  99: 10  100: 10  101: 0f  102: 03  103: 23  104: 09  105: d8  107: 07
 108: eb
   0: 7e70   1: 0038   2: 0000   3: 7870   4: 007d   5: 0000   6: 0000   7: 7ef0
   8: 0160   9: 0000  13: 4000  14: 4000  15: 1000  16: 3600  17: 1000  18: 0080
  19: 07c0  20: 376f  21: 1b80  22: 8000  23: 0320  24: 008c  25: 008c  26: 0010
  27: 0200  66: 1000  69: 00da  70: 6b60  71: 0074  72: 79c0  73: 1120  74: 3be0

> 
まずは初期化処理を実施。リセットして、各種レジスタの設定ならびにキャリブレーション。具体的にどのような調整をしているのかという詳細はてんで理解できていないのですが、全ての初期化処理を実施するのに1.652秒かかっています。初期化処理の最後ではSLICをアクティブ状態とし、オンフック電圧が印加されます。

> slic ring
>
> slic active
>
試しに呼出音を鳴動させてみます。うん、ちゃんと1秒/2秒の周期で鳴ってくれます。アクティブ状態に戻すことで、呼出音を止めます。掲載した写真では電話機のLEDが赤く点灯しているのがわかりますが、この電話機は呼出音の鳴動周期に合わせてLEDが点灯/消灯します。
> hello start
started.
> hello stop
> 
SSCを使ってSLICに対して音声PCM信号を送出するタスクを起動。受話器から"Hello, World"が聞こえます。SPI関連とPCM関連の両方とも問題なく動作しているようです。


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。