フック検出ができたので、続いて着信音を鳴らしてみます。
着信鳴動させるには、RM信号をHレベルにして、FR信号でオン/オフを繰り返して鳴動させます。NTTの仕様では、着信時に極性反転することになっていますから、鳴動時にはFR信号を反転してLレベルにしてやり、オフフックが検出されたらFR信号をHレベルに戻してRM信号もLレベルにすることにします。FR信号には、PA2/TIM15_CH1を割り当てましたので、TIM15をカウンタモードで使い、compare matchにてCH1をトグルすることで鳴動させます。RF, RM, SHKの各信号の動作をSaleaeで確認してみました。まずは全体の様子。
![](https://blogimg.goo.ne.jp/user_image/29/15/31f35cefaf6e26a81f422e6b8662005d.png)
3回、着信音が鳴ったところで受話器をオフフックしましたのでSHKがHレベルに変化しています。オフフック時にチャタリングが発生しているのが見えます。RM信号はFR信号をトグルしてベルを鳴らす期間だけHレベルにすることで、消費電流を抑制します。
![](https://blogimg.goo.ne.jp/user_image/5b/a8/5f2ccb91f4fffbc80032494f0b3b159b.png)
ベルの鳴り方はNTT仕様に準じて1秒鳴らして、2秒休止としています。
![](https://blogimg.goo.ne.jp/user_image/6f/92/ded77b06dcf61d7b698d56d30db181db.png)
ベルの鳴動周波数も16Hzとしており、標準的な周波数です。FRのトグル開始と終了の時にタイマーの動作設定を変更しているのですが、その際にヒゲが出てしまっているようです。動作上は問題なさそうなのですが、ちょっと気に食わないのでできれば修正したいところです。
着信鳴動させるには、RM信号をHレベルにして、FR信号でオン/オフを繰り返して鳴動させます。NTTの仕様では、着信時に極性反転することになっていますから、鳴動時にはFR信号を反転してLレベルにしてやり、オフフックが検出されたらFR信号をHレベルに戻してRM信号もLレベルにすることにします。FR信号には、PA2/TIM15_CH1を割り当てましたので、TIM15をカウンタモードで使い、compare matchにてCH1をトグルすることで鳴動させます。RF, RM, SHKの各信号の動作をSaleaeで確認してみました。まずは全体の様子。
![](https://blogimg.goo.ne.jp/user_image/29/15/31f35cefaf6e26a81f422e6b8662005d.png)
3回、着信音が鳴ったところで受話器をオフフックしましたのでSHKがHレベルに変化しています。オフフック時にチャタリングが発生しているのが見えます。RM信号はFR信号をトグルしてベルを鳴らす期間だけHレベルにすることで、消費電流を抑制します。
![](https://blogimg.goo.ne.jp/user_image/5b/a8/5f2ccb91f4fffbc80032494f0b3b159b.png)
ベルの鳴り方はNTT仕様に準じて1秒鳴らして、2秒休止としています。
![](https://blogimg.goo.ne.jp/user_image/6f/92/ded77b06dcf61d7b698d56d30db181db.png)
ベルの鳴動周波数も16Hzとしており、標準的な周波数です。FRのトグル開始と終了の時にタイマーの動作設定を変更しているのですが、その際にヒゲが出てしまっているようです。動作上は問題なさそうなのですが、ちょっと気に食わないのでできれば修正したいところです。