SLIC評価ボードを使うと、実際に電話機をつなげて鳴らしてみることができます。おおまかな説明はアプリケーションノート(AN204)に書いてあるんですが、詳細な機能と使い方はSLICのデータシートと照らし合わせて理解する必要があるようです。とりあえず、AN204にはトーンの出し方の説明だけは書いてあります。
SLICはダイアルトーンやDTMFトーンを生成するために、ふたつのTone Generatorを持っています。下図のようにTone Generatorのタブを選択して、生成する周波数やレベル、長さを指定してやって、"Load Values"のボタンを押してやると、指定したパラメータに応じて関連レジスタを自動的に設定してくれます。そして、回線状態を指定するダイレクトレジスタ64番に 0x01を書き込んでやると、実際に指定したトーンが流れてくるのが確認できます。この例では697Hzと1209Hzの生成を指定しており、DTMFの "1" に相当する音が出ます。
![](https://blogimg.goo.ne.jp/user_image/4c/33/b4284a94d63a4c189a0f95c8341caf3e.jpg)
いったん音が出れば、周波数の設定を変更して "Load Values"することで、生成される音を変えることができます。AN204が説明してくれているのは、ここまでです。ベルはどうやって鳴らすのかの説明すらありません。とりあえず、Ringingが関連するだろうくらいのことはすぐわかるので、その設定をしてみます。
# その後、Si3210用の資料にリングするための操作説明があることに気づきました。
![](https://blogimg.goo.ne.jp/user_image/6e/10/9d314900d1f4b1e2d6993af9efd6ed85.jpg)
ディフォルトではベル音の鳴動/休止のサイクルが米国仕様になっていたので、上図のように日本仕様(1秒/2秒)に変更して、"Load Values" しますが、ベルは鳴ってくれません。トーンを出すために、回線状態がActive状態に設定されているのが原因のようです。ちょっとデータシートを読むと、ダイレクトレジスタ64番に 0x04を書き込むと Ringing状態になることがわかったので、それをやってみるとベルが鳴ってくれました。結構、ウレシイ。
![](https://blogimg.goo.ne.jp/user_image/3d/44/fde3920b54412ab6e22f2f122d72a99a.jpg)
Gaugeのタブを選択すると、電話機への2本の線(RING/TIP)に加わる電圧や電流を表示してくれます。これらの値は、すべてレジスタから読みだすことができるので、それをグラフィックスで表示してくれているようです。"Continuous update"を有効にしておくと、リングの鳴動に応じでメータが動いてくれて楽しめます。
データシートを少し読んで、オンフック/オフフックの検出でレジスタの値が変化するように設定する方法もわかって、動作確認ができました。やはり、GUIを使ってレジスタの設定と値の変化が確認できますので便利ですね。しかしながら、LPTポートで制御できるのは基本的にSPIポートを介してのレジスタの読み/書きだけです。PCM信号はPCにはつながりませんので、実際の音声や音楽をPCM信号を介して電話機に出力するようなマネはできません。この部分はマイコンをつなげて動作確認をした方が良さそうです。
SLICはダイアルトーンやDTMFトーンを生成するために、ふたつのTone Generatorを持っています。下図のようにTone Generatorのタブを選択して、生成する周波数やレベル、長さを指定してやって、"Load Values"のボタンを押してやると、指定したパラメータに応じて関連レジスタを自動的に設定してくれます。そして、回線状態を指定するダイレクトレジスタ64番に 0x01を書き込んでやると、実際に指定したトーンが流れてくるのが確認できます。この例では697Hzと1209Hzの生成を指定しており、DTMFの "1" に相当する音が出ます。
![](https://blogimg.goo.ne.jp/user_image/4c/33/b4284a94d63a4c189a0f95c8341caf3e.jpg)
いったん音が出れば、周波数の設定を変更して "Load Values"することで、生成される音を変えることができます。AN204が説明してくれているのは、ここまでです。ベルはどうやって鳴らすのかの説明すらありません。とりあえず、Ringingが関連するだろうくらいのことはすぐわかるので、その設定をしてみます。
# その後、Si3210用の資料にリングするための操作説明があることに気づきました。
![](https://blogimg.goo.ne.jp/user_image/6e/10/9d314900d1f4b1e2d6993af9efd6ed85.jpg)
ディフォルトではベル音の鳴動/休止のサイクルが米国仕様になっていたので、上図のように日本仕様(1秒/2秒)に変更して、"Load Values" しますが、ベルは鳴ってくれません。トーンを出すために、回線状態がActive状態に設定されているのが原因のようです。ちょっとデータシートを読むと、ダイレクトレジスタ64番に 0x04を書き込むと Ringing状態になることがわかったので、それをやってみるとベルが鳴ってくれました。結構、ウレシイ。
![](https://blogimg.goo.ne.jp/user_image/3d/44/fde3920b54412ab6e22f2f122d72a99a.jpg)
Gaugeのタブを選択すると、電話機への2本の線(RING/TIP)に加わる電圧や電流を表示してくれます。これらの値は、すべてレジスタから読みだすことができるので、それをグラフィックスで表示してくれているようです。"Continuous update"を有効にしておくと、リングの鳴動に応じでメータが動いてくれて楽しめます。
データシートを少し読んで、オンフック/オフフックの検出でレジスタの値が変化するように設定する方法もわかって、動作確認ができました。やはり、GUIを使ってレジスタの設定と値の変化が確認できますので便利ですね。しかしながら、LPTポートで制御できるのは基本的にSPIポートを介してのレジスタの読み/書きだけです。PCM信号はPCにはつながりませんので、実際の音声や音楽をPCM信号を介して電話機に出力するようなマネはできません。この部分はマイコンをつなげて動作確認をした方が良さそうです。