くろかわさんのメモ

くろかわさんがやっつけたイロイロのメモ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

NOKIA N800で国内のFMを聞く方法のメモ

NOKIA N800に搭載されているFM受信IC(TEA5761UK)は、日本のバンド(76MHz-90MHz)に対応してるのにN800では受信できない。
なんとかならないもんかと調べてみた。
このパラグラフでは調査の過程をメモしとく。
手っ取り早く試すなら読み飛ばしてください。

・ICの素性の調査
 ICの型番は下記の記事を見つけることですぐに判明した。
 PHILIPSのTEA5761UKと言うらしい。データシートも公開されているので、制御方法も簡単にわかりそうだ。

 塩田紳二のPDAレポートより
 Nokia「Internet Tablet N800」レポート
 http://pc.watch.impress.co.jp/docs/2007/1017/pda65.htm

・制御方法の調査
 データシートにはI2Cバスにて制御を行うとある。
 I2Cに投げるデータの形式も記載されていて、4WORD目のBLIMにビットを立てることで、Japanese FM bandになると書いてある。

・i2cホストドライバの調査
 Nokiaの提供するカーネルではOMAPのI2Cバスのドライバが提供されているので、I2CバスにTEA5761UKがそのまま見えているようだ。
 確かに /sys/bus/i2c/drivers/tea5761 として見えている

・i2cクライアントドライバの調査
 適当にキーワードでgrepすると下記のドライバが実体の様子
 drivers/i2c/chips/tea5761.c

・BLIMビットの制御を行っているか調査
 やってない。
 tea5761_power_up関数あたりでやってくれてもいいのに。
 周波数範囲のチェックもあるので、US/EU/JPのバンドを見ながらチェックするように変更しなきゃダメっぽい。

・念のためすでに実装されていないか調査
 BLIMビットを制御する必要があるので、定義名であるTEA5761_TNCTRL_BLIM でぐーぐる先生に聞いてみた。
 あれ?パッチがあるぞ?
 すでにパッチを作成済みの人が居るようです。

 pyFMRadio
 http://pyfmradio.garage.maemo.org/

と、言うわけでパッチを作成する必要がなくなりました。



N800への適応方法
・カーネルモジュールのビルド
 drivers/i2c/chips/tea5761.cに直接パッチを当てるため、カーネルの差し替えが必要です。
 tea5761モジュールが動的組み込みだったら楽だったのに、静的にカーネルへリンクされてるようです。

 ・・・。
 あ、pyFMRadioの人がコンパイル済みのカーネルを配布しているようです。ビルドする必要はなくなりました。


・カーネルの差し替え
 このあたりを参考にカーネルを差し替えた。

 Updating N800 Kernel, the different way
 http://www.wahlau.org/updating_n800_kernel_the_different_way

 焼きこむzImageが不完全の場合、起動しなくなるので注意すること。
 失敗しても、ファームウェアアップデートで復帰できそうだけどね。
 カーネルを飛ばしても私は知りません。


・再起動してpyFMRadioで確認
 無事国内のFMラジオが聞けました。
 python ./test.py って感じでテストしてみました。
 残念ながらそのままではhome-appletのラジオアプリではチューニングできません。
 日本の帯域に対応したFMラジオアプリを作る必要がありそうだね。

 カーネルを差し替えた後は、ioctlが追加されるのでioctlを引っぱたくアプリさえ作ればいいみたい。時間があれば作ってみたいけどな。



・参考までにNACK5を受信するスクリプト

from FMRadio import FMRadio
import time

r = FMRadio()
r.set_fm_band(r.FM_BAND_JPN)
print r.get_frequency_range()

r.set_frequency(79500)
r.set_volume(50)
print r.get_frequency()



・参考までにラジオをオフするスクリプト


from FMRadio import FMRadio
import time

r = FMRadio()
r.close()

スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。