マイコン工作実験日記

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

着信音を鳴らしてみる

2015-11-28 14:56:19 | SLIC
フック検出ができたので、続いて着信音を鳴らしてみます。

着信鳴動させるには、RM信号をHレベルにして、FR信号でオン/オフを繰り返して鳴動させます。NTTの仕様では、着信時に極性反転することになっていますから、鳴動時にはFR信号を反転してLレベルにしてやり、オフフックが検出されたらFR信号をHレベルに戻してRM信号もLレベルにすることにします。FR信号には、PA2/TIM15_CH1を割り当てましたので、TIM15をカウンタモードで使い、compare matchにてCH1をトグルすることで鳴動させます。RF, RM, SHKの各信号の動作をSaleaeで確認してみました。まずは全体の様子。




3回、着信音が鳴ったところで受話器をオフフックしましたのでSHKがHレベルに変化しています。オフフック時にチャタリングが発生しているのが見えます。RM信号はFR信号をトグルしてベルを鳴らす期間だけHレベルにすることで、消費電流を抑制します。




ベルの鳴り方はNTT仕様に準じて1秒鳴らして、2秒休止としています。




ベルの鳴動周波数も16Hzとしており、標準的な周波数です。FRのトグル開始と終了の時にタイマーの動作設定を変更しているのですが、その際にヒゲが出てしまっているようです。動作上は問題なさそうなのですが、ちょっと気に食わないのでできれば修正したいところです。

まずはフック検出から

2015-11-22 14:26:12 | SLIC
Ag1171sとNUCLEO-L476RGは次のように接続しています。Vin/Vouには直流カット用のコンデンサがつながっていますが、この図では省略しています。





まずはSHK信号によるフッキングの検出処理から作業開始。PA0はEXTI0に設定して割り込みで検出することにしました。データシートにも明記されていますが、チャタリング処理を施す必要があります。実際に動作を確認してみたところ、写真の数年前に980円で購入した電話機ではオフフック時に10回程度、オフフック時に数回のチャタリングが発生していました。そこでデータシートにとおり10msのディレイをおいてフックイベントの判断してみたのですが、それでもまだチャタることがあるので、15ms待つことに。



チャタリングが除去されて、正しくイベント検出できるようになりました。

Ag1171

2015-11-20 12:26:30 | SLIC
今回のプロジェクトの目玉は、コレです。





SilvertelAg1171です。この会社、PoEやワイヤレス給電関連が目玉商品のようですが、わたしの目に止まったのは安価なSLICモジュールでした。以前、携帯できる電話機を製作した時には、SLICチップを単独で入手するのが困難であったため、150ドルくらいしたSilabsの評価ボードを購入して使っていました。このAg1171はなんと6ドルで買えてしまうのです(送料で23ドルかかりましたが..)。こんな安いモジュールがあったとは!!

ただし、SilabsのSLICチップと違って音声インタフェースはアナログとなります。また、SPIでコマンドを送っていろいろな制御するというような芸当もできません。SLICチップでは音声インタフェースはデジタルでしたので、PCMでつなげていましたが、Ag1171はアナログですので、マイコンのADC, DACを使ってつなげます。SLICチップはトーン生成機能を内蔵していましたから、SPIでコマンドを送ってやればダイアル・トーンやビジー・トーンを出すこともできました。Ag1171ではマイコン側でトーンを生成してDACで送出してやることになります。



制御信号もF/R, RM, SHKの3本しかありません。F/Rは極性反転の制御信号です。RMは着信音を鳴動させる際にHにします。Hの間にF/Rのトグルを繰り返すことで着信鳴動を発生させます。SHKはフック検出の信号で、オフフックするとHになります。電源は3.3Vで動作して、モジュール上のDC/DCで鳴動用の高電圧も生成してくれますが、その際に最大で500mA消費するといスペックになっています。

SLICモジュールは秋月の背の低いピンソケットを使って装着。電話機接続には、秋月のモジュラージャックDIP化キットを使ってみました。まずは、マイコンを使わずに単体での動作確認です。電源を入れて、TIP/RING間の電圧を確認。



45.5V出てますね。電話機をつないでオンフック/オフフックしてみてSHK端子が変化することも確認。モジュールはちゃんと動きそうです。

さて、6ドルのモジュールを買うのに送料で23ドル使うのはもったいないので、ついつい4台買ってしまいました。ひとつは予備でとっておきますが、残り2台をお分けします。ご希望の方はsirius506の売店でポチッてください。

久しぶりのA基板

2015-11-16 22:17:04 | Weblog


NUCLEO-L476RGを搭載するための基板を作成。主要パーツのコネクタを配置して、電源周りはほぼ配線完了したところです。右側と上部にはまだ空きがあるので、そのうちに用途を考えようかと思います。コネクタに実装するモジュールについては、次回以降の記事で説明していくことにします。

不便になった(?)Mouser

2015-11-14 19:36:24 | Weblog
先日、NUCLEO-L476RGをMouserで買ったのですが、ここしばらく部品買っていなかったので、それがMouser Japanができてから初めての買い物になりました。ポッチた時の発注確認メールも日本語で届くようになりましたし、発送のお知らせも香港からではなく japan@mouser.comから届くようになりました。しかし、それよりも気になったのが、これまでは配送業者としてFedExか DHLを選択できていたのに、FedExの一択になってしまったことでした。

気づくと、こんなページができていました。


まったくもって残念なことです。わたしの住所だと府中営業所の配達圏内に入ってしまうため、ここから配達にきちゃいます。宅配業者に比べると再配達処理が遅いので、不便なことったらありゃしません。サインをもらうのが基本的な配達姿勢となっているので、ディフォルトでは宅配BOXにも入れてくれません。そこでちゃんと宅配BOXに入れてもかまわないという登録もすませてあるのですが、過去に2回連続で営業所に持ち帰られてしまっています。それ以来、FedExは2度と選ぶまいと決めていたのですが。。。

こんな経験を積んでいたので、とっても心配していたのでしたが、今回はちゃんと宅配BOXに入れてくれてありました。FedExの配達員にちゃんと登録確認する習慣が身についたことを祈りたいです。

切断

2015-11-03 13:38:10 | Weblog
先日、積み基板のひとつであったNucleo-F103RBをようやくと使ってみたたところなんですが、新しいNucleo-L476RGに目を奪われて、購入してしまいました。機能的に魅力的で遊んでみたい誘惑に勝てませんでした。NucleoはDiscoveryと違ってセンサーの類のオマケが一切載っていないので、全ピンが自由に使えるのが試作利用には便利で魅力的です。ST Linkがあるのも便利なのかもしれませんが、J-Linkを使うのがもはや前提条件となってしまったわたしには余計なものでしかありません。せめてFreedomのように ARM標準の10ピンJTAGコネクタのパターンでも用意しておいてくれればよかったのですが、それもありません。そこで、今回は購入早々ではありますが、思い切ってST-Link部分を切断することにしました。




ST-Link部分を切断すると電源も外部から供給しなければなりません。基板上には500mAのLDOが載っていますので、外部から5Vを入れて使うこもできますが、今後の実験では3.3Vを500mA以上使うことも見込んでいます。そこで、外部にJTAコネクタだけでなく、3.3Vレギュレータも用意して電源は3.3Vで供給する予定です。

このあいだまで使っていたNucle-F103RBと並べてみました。どちらも64ピンのパッケージを使っているので、ベースの基板は同じMB1136になっているのですよね。



元の基板は同じでも、実装されている部品には違いがあります。左側のF103RBではクリスタルはST-Linkにしか実装されていません。ST-Linkからの8MHzをF103RBに回すことができるので、普通はこれでも困りません。一方、右側のL476RBでは32Kのクリスタルが実装されています。搭載するチップの機能によって違っているのかと思いきや、ボードのバージョンによる違いのようです。同じMB1136 rev Cでも、F103RBの方はC-01というバージョンで32Kを使わない構成に設定されており、右の方はC-03という新しいバージョンのため、32Kクリスタルが実装されており、それを使う構成になっているようです。

L476では内蔵の48MHZ RCクロックを32Kクリスタルでキャリブレーションしながら動かすことで8MHzクリスタル無しでもUSBを使うこともできるようなので、これは助かります。