マイコン工作実験日記

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

制限承知で作り始めたが...

2010-05-25 23:19:42 | W-SIM
新たに作りはじめた基板ですが、実は大きな制約があります。このボードではAT91SAM7S256を使っていますが、このデバイスはSSCをひとつしかもっていません。前回作成したアナログ電話機ジャケットでは、SSCをふたつ持つAT91SAM7A3を使っていました。SSCをふたつ使っていたのは、SLICボードとW-SIMの要求する/生成するPCMクロックの速度の違いをAT91SAM7A3で変換してやるためでした。AT91SAM7S256ではSSCがひとつしかないので、上りか下りのどちらか一方向の速度変換しかできないことになります。

ほんとはAT91SAM7A3を使うべきなのですが、RAMが32KBしかなくて機能を追加するのが苦しかったのと、そのうちにSAM3シリーズでもSSCをふたつもったデバイスが新たに登場するのではないかという気がするので、それを本命として使いたいという気持ちが強まりました。そんなわけで、とりあえずは死蔵していたMMnetSAM7を使って片方向通話だけでもできる環境を用意して、リポ電池による動作と、機能追加をめざしてみることにしました。

と、まぁそんなつもりで作り始めたのですが、「次回のMTMこそは参加するぞ!!」という気分が高まってきたので、それに向けてまっとうにデモできるものを最重要視する必要性にかられてきました。とりあえず、リポ電池での待ちうけ時間測定までは調べてみるつもりですが、やはりまっとうにデモできる作品を準備するためには方針と優先度変更が必要です。おそらく、今後2カ月くらいでSAM3UとSAM3Sは入手可能になると(勝手に)推測しているので、次のようにして準備を進めていくことにします。

  • まずはSAM3U-EKにW-SIMをつなげて、シリアル部分だけでも動作確認しておく。
  • SAM3Sが入手できたら、そのAD/DAを使って送受話できるジャケットを作成する。
  • 並行して新ネタの準備を進める。

今年はとにかく、SAM3Sを当面の本命と考えて、これでジャケットを作ることを目標とすることにします。SAM3Sが入手できるまでの間は、SAM3Uでシリアルだけでも動作確認しておこうかと思います。ついでに、ひとつ新ネタを思いついたので、それを使った新型ジャケットも製作するつもりです。こちらは、現在ネタを仕入れ中。とりあえずは実験からの開始となりますですので、MTM06までにちゃんとした格好にできるかどうか。。


次作品の製作開始

2010-05-20 00:48:14 | W-SIM
Yoshiponさんにはプリント基板の製作を勧められたのですが、意気地のないわたしは やはりユニバーサル基板で組み始めてしまいました。



この基板は前作の改良版です。小型化することを目標のひとつとしていたのですが、適当な大きさの基板がなかったのでスカスカになってしまいました(基板を切断すればいいだけなんですが、それが面倒くさくて...)。この上にSLIC基板とLCDが載る予定です。SLIC基板がデカイので、どうしても横方向にはこの程度の長さが欲しくなります。SLIC基板を2つに分断してしまおうか迷ったのですが、万が一にも動かなくなったりすると出費がイタイので、結局そのまま使うことにしました。プリント基板起こすのであれば、SLIC部分も含めて製作しないとあまりメリットがありません。しかし、そうすると使用するトランスの選択や入手方法がわからないので、現在のわたしの技量ではちょっと手出しできません。

そんなわけで基板は小さくできませんでしたが、これまでUSBモバイル電源を使用していたのを、リポ電池にすることで小型化を計ることにしました。LDOで3.3Vを作り、さらにDC-DCでSLIC基板用の5Vを作ります。SLIC部分を3.3V単一で動かせないのが残念です。充電制御には、以前SparkFunから購入したMAX1555を使っています。

マイコン基板はMMsam7sです。このモジュールには3.3Vのレギュレータも載っているのですが、上述のようにリポ電池出力からLDOで3.3Vを作っていますので、モジュール上のレギュレータは使っていません。ユニバーサル基板が100x140mmですので、全体をハガキケースに入れるつもりでいます。

次のジャケットの構想

2010-04-26 23:36:22 | W-SIM
昨年はAT91SAMよりもLPC2388の方に力が入った1年となってしまいました。その影響もあり結局W-SIMジャケットは1種類しか作りませんでしたが、今年もそろそろ次なるW-SIMジャケットの構想(妄想?)を練ろうかと思います。

これまでCODECチップを使ったり/使わなかったりとか、USB電話機を使ったり、普通の電話機をつなげたりとか、SIPとのGWを作ってみたりとか毎回趣向を変えてきましたが、そろそろ新基軸を打ち出そうにも思いつかないので、ここはいたってベーシックにいってみようかと思います。取り組みたいものには2種類ありまして...

その1
電話機ジャケットの作り直し。AT91SAM7A3を使って電話機ジャケットを作りましたが、こいつを見直してより実用的なものにしたい。ポイントは
  • もう少し小さくする。
  • MCUをAT91SAM7S256に変更する。死蔵していたMMsam7を活用する。
の2点です。SAM7A3では実験的にはMCIを使ってSDカードつなげたりしたのですが、32KBというRAMサイズの制限もあり電話機能と共存して使えませんでした。そこで今回はSDカードは削ってその分も小型化。できる限り部品数も低減した簡単なハードにする方向で。でも、結局はSLICボードの大きさがネックになりそうではあります。

その2
原点に戻って、キーパッドを使った端末を作る。こちらも少しは小型化したいんですが。。ハードも簡単化することにして、今度はCODECチップを使わずにすまそうと思います。つまりMCUでA/D変換とD/A変換をやろうかと。近頃のCortex-M3ではA/D, D/A共に12ビットできるようです。これなら通話品質としては充分に使えると思われます。

どちらも小型化のためには、プリント基板作るのが一番効果的なのですが、やはりとりあえずはユニバーサル基板で試作してみないと。。MCUについては、ほんとはSAM3Sを使いたいのですが、なかなか出てきません。その1の方もSAM3Sを使った方がいいのですが、とりあえずは死蔵在庫の消費に努めるためにSAM7Sで作り始めてみようかと思います。そして、SAM3Sが出たら、再度組み換えようかと。

その2については、とりあえずはSAM3Uを使っての勉強と、実験から始めてみようかと思います。SAM3Uには12ビットADはありますが、DAはありません。じつは、STM32を使えば全ての要件を満たせるのですが、ATMEL好きのわたしとしては、できればSAM3でいきたい!!

なんにも新しい機能が無いのも寂しいので、USBモデム機能くらは盛り込んでみようと思います。自分はNS001Uを持っているので、コイツのふりをしてVendor IDやProduct IDを返してやれば、Windowsにインストール済みのドライバやモデム infファイルをそのまま利用してデータ通信ができるはずです。


W-SIM対応機器開発評価キット

2010-04-21 22:39:27 | W-SIM
Yukiさんのつれづれ日記経由でW-SIM対応機器開発評価キットを知ったので、さっそく紹介を読んでみました。

まず、お値段が19,900円ととても安いので、ずいぶんと敷居が低くなった印象を受けます。技術資料だけでなく、W-SIM本体と1年間のパケ代が含まれていますしね。オマケ的にW-SIMコネクタ2種類まで用意されているのが微笑ましいです。ちなみにALPSのカタログによればW-SIMコネクタには8種類があるようで、Mouserには6種類の在庫があるようです。

開示される資料はパケット通信をおこなうのに必要な範囲に限定されるらしく、そのためにコンソーシアムの准会員という資格になるようです。提供対称は法人とか大学であり、個人向け提供はありません。データ通信の範囲であればATコマンド叩けばいいし、NS001Uのように月980円で済む端末を使えばキットよりも安上がりではあります。でも、キットで提供される技術情報を参照すれば、物理インタフェースの詳細や、電話帳などの資源のアクセス方法もわかるのだろうと想像します。

データ通信をおこなうだけであれば、NS001Uのような端末をUSBホスト機能を持つマイコンにつないで使えば、W-SIMソケットも必要ないので工作としては一番お手軽だなと思ったりしています。そのうちにATMELからOTG対応のSAM3Sとかが出たらやろうと目論んでいるのですが、まだまだ時間かかりそうですね。いっそのことLPC2388/LPC1768とかSTM32で実験した方がいいかもしれない。

# RX4201Nが生産完了になっていることを今頃になって知る。
# 月980円は、在庫処分セールだったのね。

Willcomの会社更生手続き開始に思うこと

2010-02-19 22:34:17 | W-SIM
こうなることはわかっていたとはいえ、やはりさみしい。そしてなによりもPHSがいつまで残ることになるのかが心配です。Softbankが支援するとはいえ、彼らは自分たちの欲しいところだけを採るわけで、興味が無い部分は切り捨てるでしょうから。周波数帯はもちろんですが、既存基地局のロケーションだって、そうとうな財産ですから、Softbankが欲しがるのは当然ですよね。

こうなった原因としては、XGPサービスに関わる新規投資の負担の大きさがあげられていますが、サービス内容がXGPであろうがなかろうが、どのみち設備更新が必要な時期にさしかかっていたのではないでしょうか。PHSのデータ通信サービスが開始されたのは、確か97年だったと思います。それから10年以上が経過し、NTTパーソナル(ドコモ)とASTELが撤退した理由にはサービス加入者減はもちろんですが、設備の更新時期と重なってきたのが負担になったと聞いたことがあります。10年もたてば、基地局メーカの保守期限も切れるので、設備更新が必要となってきます。しかし、何万局もあるPHS基地局を設備更新していくには、時間もお金もかかることになります。

Willcomの場合とて同じでしょう。設備更新と合わせて新サービスであるXGPを展開するつもりだっただろうと推測します。これを従来サービスと、XGPとに分けて考えるということは、すなわち従来サービスの設備は更新されずに、切り捨てられることにならないかが心配です。すぐにサービスを止めるわけではないにしても、更新されない設備は次第に朽ちていくわけで、動かなくなったものは、もう誰も直さない/直せないわけです。なんか、近い将来、我が国の社会インフラの全て(道路、橋、水道とか)に共通しておこる事態のような気もして、気分が沈みます。

しかし、悪いことばかり想像していたって、何の役にもたちません。ここは、やはりダメ元で、思い切ったことをやって欲しいものです。わたしが希望するのは、値段よりも本来のW-SIMコンセプトの実現でしょうか。

  • まず、W-SIM単体で普通に販売して欲しい。端末ジャケットと組みでしか販売しないなんてW-SIMコンセプトの意味がないですから。
  • そして、技術情報の無償開示。コンソーシアム会員なんて、しょせん法人にしかなれません。技術情報を一般に無償開示して、ユーザと用途のすそ野を広げてほしいです。


開発に携わった各社の知財権がからむので、コンソーシアムとか組んで情報開示手順を踏む必要があったのだとは思いますが、そんなことしていても、もう誰の利益にもならないんじゃないでしょうか。調子の良かった時期には、Willcomは保有する技術を海外にもライセンスすることで、それなりの収入を得ていたようですが、もうそんなことで稼ごうなんて考えなくていいでしょうし。

技術開示されれば、すぐにでもW-SIMシールドと、それをサポートするライブラリとかが登場してきますよね。わたしも、買い置きのW-SIMソケットがまだいくつも残っているんで、今年も何かひとつくらいは作ろうと思います。


そろそろ2年なので

2009-12-01 01:12:52 | W-SIM
現在使用中のW-SIMを買ったのは、2年前の12月でした。つなぎ放題の2年縛り契約も切れるので、古い契約は解約を申し込んで、新たにNS001Uを契約してきました。「新つなぎ放題」と端末代を合わせても、月々980円。「新つなぎ放題」だけでも本来であれば3880円するのにで、とってもお得なキャンペーン。それでも3GとかWiMAXと比べると、「圧倒的に遅い」ので、今となっては都市部では人気ないでしょうかねぇ。





ついでに、1900円/月でキャンペーンしていたアドエスも契約。ヨドバシで最後の1台でした。W-ZERO3にするつもりだったのですが、わたしの場合、実用というよりもマイコンにつなげるのが目的なので、ちょっとでも安い方が嬉しい。というものの、スマートフォンというのも一度さわってみたいということでアドエスを選択。これで、音声とデータ契約のW-SIMが1枚づつになったので、用途に応じて使い分けできます。



音声契約端末からデータ契約端末を呼べば、Willcom同志で通話料タダになりますので、これで気兼ねなく通話試験をおこなうことができます。新しい端末を使って動画も作成してみました。



CDトランクに収納してみた

2009-08-31 23:16:49 | W-SIM
電話機ジャケットを無理やり携帯可能にするための次のステップは、なんといってもケースです。なにしろメイン・ボードだけでも100x140mmあるうえに、W-SIM青耳が基板に隠れないように耳を出しているために、さらに15mmくらい幅が必要です。おまけにメイン・ボードの上にSLICボードを載せているので、高さも必要です。そんなわけで、タカチとか秋月のケースには適当なものが見つけられませんでした。

100円ショップで手ごろなケースを探したところ候補となったのが、ハガキ100枚を収納するケースでした。こちらは、ちょうど基板と青耳がすっぽりと収まるサイズだったのですが、高さが足りないためにフタが閉まりませんでした。150枚収容のケースがあれば良かったのですが。。

そんなワケで妥協して選択したのが、CDトランクというケース。手持ち用のハンドルがついているケースで持ち運びに便利なので、もともと製作中の基板を収容するのに使っていたケースです。あくまで製作中に利用するだけで、もう少し小さいものを探すつもりでいたのですが、結局適当なものをみつけられずに断念。サイズ的にはかなり余裕があるので、電池もラクラクと収まりました。



受話器をつなげてフタを閉めたら、ハイ、できあがり。↓これで、曲がりなりにも携帯可能だと言えるのではないかと自己満足(かなり曲がってるけど)。受話器とケースとが一体化していないので、持ち運びにくいのが一番の難点。なんか、うまい解決策はないかと思案してはいるのですが。。



そして、もうひとつの難点がLCD表示がみずらくなってしまったこと。ケースが若干乳白色がかっているために、表示が見にくいのです。まぁ、穴を開けてLCD部分だけ顔を出させればいいだけのことなんですが、適当な長さのスペーサの手持ちが無いので、ケースの中に入れたままです。



もう8月も終わりです。夏休みも最後になって、宿題の工作を無理やり仕上げた気分です。

電話機ジャケットの電源を用意する

2009-08-29 23:25:30 | W-SIM
ここのところ、ずっとLPC2388を使ってのMP3プレーヤの製作ばかりをやっているのですが、このブログへのアクセスを見てみると、W-SIM関連のページを経由して当ブログへといらっしゃる方が依然として多数いらっしゃるようです。そんな方々の期待に多少とも応えるべく(?)、久々に電話機ジャケットのボードを引っ張り出しました。製作している自分はつねに全体像を見ているわけですが、ブログでは製作過程を部分的に説明しているだけなので、ちっとも全体像が紹介できていないと常々反省しておりましたので、そのあたりの補充も兼ねて現状のご紹介です。



ハイ、まずは現在のボードの状況です↑。振り返ってみると、ボード全体の写真を載せたのは1月20日の記事が最後だったかもしれません。基本的にはその時から変化は無いのですが、唯一USB Type Aコネクタのついたケーブルを追加しました。手持ちのボロケーブルをぶった切ってつなげただけなんですが。このケーブルの目的は電源の供給です。これまでは、となりのUSB BコネクタをUSBシリアル兼電源として使っていたのですが、Bケーブルをつなげるとサイズが大きくなってしまい、ケースに収納するのに不向きになってしまうためです。

電源としてはリチウムポリマ電池を使おうかとも思ったのですが、充電回路に加えて今回のハードではSLIC用に5Vも必要なので、その昇圧回路まで必要になってしまいます。それならば最初から5Vを出してくれる市販のUSBモバイル電源を利用しようと考え、そのためにUSB Type Aコネクタを出したというワケです。

さて、そのUSBモバイル電源ですが、まず最初に手持ちのPanasonic製品↓を使ってみました。単3ニッケル水素電池2本から5Vを作ってくれるというものです。



ところが、このモバイル電源ではうまいこと電話機ジャケットが起動できません。電源オンでリセットが入って起動しかけて、LCDのバックライトも少しの間点灯するのですが、すぐと電源が落ちてしまいます。どうやらモバイル電源側が動作を停止してしまうようです。仕様では500mA流せることになっているのですが。。。起動時に思ったよりも大きな突入電流が流れているのでしょうか。。。ソフトでLCDやSLICボードへの電源投入シーケンスを作ってやるとか、できるだけ消費電力節約するように本当に必要な時にしか周辺I/Oにはクロック供給しないとかしてやれば起動できるようになるかもしえませんが、試行錯誤するのも面倒です。そんなわけで、この電源を使うのは断念。もっとも起動できたとしても、単3電池で何時間連続待機できるのか疑問ではあります。

そこで、もう少し強力な電源を準備することにして、購入したのがコレ↓です。サンヨーのeneloopブランドではありますが、リチウムイオン電池を使っている製品です。



今度は問題なく起動できましたし、通話もできます。これならまがりなりにも「携帯電話機」として使えそうです。連続待機時間はまだ調べていませんが、とりあえず一晩くらいは問題なさそうです。



SDカードへの通話録音

2009-01-29 23:22:30 | W-SIM
SDカードアクセスができるようになったので、通話音声を録音してみます。とりあえずは、相手側の音声だけを録音です。録音は常におこなうこととし、オフフックした時点でファイル(rec.wav)をオープンすることにしました。WAVファイルのヘッダを書いたら、あとは20ms毎に160バイトづつ書き込んでいくだけです。そしてオンフックされたらヘッダ部分のデータ長部分を更新してファイルをクローズさせます。以下、動作の様子。
> Off-Hook
-I- SD/MMC card initialization successful
-I- Card size: 1882 MB
-I- Block size: 1024 Bytes
DTMF: 1
DTMF: 7
DTMF: 7
ATDT177##0
CONNECT 120000
connected!!
PROGIND:1
On-Hook
ATH
SD_Stop
newname = rec118.wav
SD_Stop
DISC
OK

>
ファイルをクローズしたら、ファイル名を変更しています。今のところブートからの経過秒数をつかってrecXXX.wavという名前にすることにしています。上の例の場合には、以下に示すようにrec118.wavというファイルが作成されています。ホントはファイル名で日付/時刻も表現したいところですが、LFNが使えないのでこれで我慢です。
> fat
-I- SD/MMC card initialization successful
-I- Card size: 1882 MB
-I- Block size: 1024 Bytes

shows directory list...
---------------------
 6676127 2008/11/23 21:09:54 AT91SA~1.PDF
  461024 2008/12/10 18:58:04 AT91SA~2.PDF
  245178 2009/01/01 00:00:00 rec118.wav
     122 2009/01/25 13:59:44 sample.txt
---------------------

dumping sample.txt...
---------------------
This is a sample text file created on the Windows.
If you can read this message, it means you can
access the FAT file.
---------------------
>
Windows Media Playerで再生してみましたが、問題なく録音できているようです。とは言っても、改善すべき点もいくつかあります。
  1. カードの抜挿を検出していないので、オフフックする度にf_mount操作をおこなっている。抜挿を検出して無駄なf_mountを無くしたい。
  2. 相手側音声しか録音していないので、ほんとの会話録音にはなっていない。上り音声も録音すべき。ミックスするまでもなく、ステレオ形式で書き込んで簡単に対応してしまおうかと考えています。
  3. やっぱり、ファイルにタイムスタンプが無いのは淋しいなぁ
順次対処していくことにしましょう。

音声スペクトルを表示してみる

2009-01-17 18:40:09 | W-SIM
電話機ジャケットでの発着信はアッサリと動いてしまったので、少し機能拡張してみることにしました。LCDとしてVoIP GWと同じNokia 5110を使っていますので、まずは音声波形の表示機能を持ってきましたが、これだけでは進歩が無いのでこんどはスペクトル表示もやってみることにしました。(表示するのは相手側から受信した音声だけとします)



FFTした結果をグラフ表示してやればいいという程度の理屈はわかってはいたのですが、何しろFFTなんてやったことがありません。まずは、いつも参考にさせていただいているChaNさんのオーディオ・スペクトラム・モニタの説明を読んで、動画を見ると刺激をうけて自分もやる気がでてきました。秋月LCD用のソースコードはAVRのアセンブラで書いてありましたが、ハミング窓を通してからFFTをかけて、結果はログ・スケールで表示するのが良いことがわかったので、ARMでも同じ流れで処理してやれば良さそうです。

とは言っても、AVRのアセンブラをARMのアセンブラで書きなおすほどの根性も無いので、Cで書かれたFFTのサンプルを探してみました。DTMF検出の時と同じように整数演算命令で済む固定小数点で処理しているものが欲しいわけです。すると、酔漢さんが解説記事を書いておられるのを見つけました。わたしが知りたいと思っていたことが要領良く整理してあり、サンプルコードも提示されています。はい、そのまま使わせていただくことにしました。

音声の送受信はこれまでのジャケットと同じく、20ms単位でDMAしています。8000Hzサンプリングですので、160バイトに相当します。そこで、FFTは256点毎に行うこととし、160バイトを受信する毎にFFTをかける範囲をスライドしていくことにしました。FFTの結果は、4000Hzまでの範囲に相当する128ドット幅で表示したいところなのですが、残念ながらNokia 5110は横84ドットしかありません。周波数の低い方から84ドット分表示することにしたので、2645Hz以上の周波数成分は表示されていません。実際の処理としては、20ms毎にW-SIMからの受信タスク(wsim_recv_task)が256点のFFTを実行し、横84ドット分の波形ならびにスペクトルのビットマップを作成します。そして、LCD画面の更新要求がwsim_recv_taskからphone_taskに送られ、phone_taskがビットマップ情報をLCDに対してDMAすることで画面の更新が行われています。

上掲の写真は、シャッター速度が遅かったために画面が流れてしまい、その結果黒い帯状の表示になってしまっています。動画を見ていただいた方が雰囲気がわかると思います。