2011年06月26日

Motorola XOOM HD Speaker dockの分解調査

XOOMとスピーカーHDドックを組み合わせて使っているが、いくつか思うところがあった。

  • ドックにUSB端子がない、ドックから降ろさないと開発モードもUSBストレージも使えない
  • 手持ちのオーディオアンプに音声を流し込みたい。できればデジタルで
XOOMの分解記事は数多くあれど、周辺機器の分解レポートは全く見当たらないので、 ちょっとドックを分解してみた。

注意:周辺機器の分解は非常に危険な行為です。 周辺機器が2度と使えなくなるばかりか、XOOM本体を破損する可能性もあります。 さらに悪い場合には発熱・発火により、財産・身体に被害を及ぼす可能性があります。 予め危険性を認識した上で作業を行ってください。

■ターゲット
これがXOOMスピーカードック。Amazon.comで入手。今ではAUショップでも買える。

speakerdock.jpg

■工具
ヘクスローブドライバまたはヘクスローブレンチ:
ネジ穴が六芒星になっているネジを締めるための工具。筐体をあけるために必要。 今回は六芒星の対角が2.7mmのものが必要。T10規格というらしい。 ヘクスローブレンチを西川電子部品で購入。 ANEXNo.630 T-10。

六角ドライバまたは六角レンチ:
ネジ穴が六角形になっているネジを締めるための工具。基板を取り外すために必要。 六角レンチセットから1.27mmのものを使用。

■手順

底面には防振ラバーが貼られている。安定感はgood。

speakerdock_bottom.JPG

防振ラバーの下には、筐体を止めるネジが隠れている。全部で9箇所ある。 ネジはヘクスローブのT10タイプ。全てヘクスローブレンチを使って緩める。

speakerdock_screw.jpg

金網っぽい部分を引っ張ると2つに分かれる。 HDMI端子は、太いケーブルでバイパスされている。 プリント基板周りには電源コネクタ、充電端子に伸びるケーブル、スピーカーに向かっていると思しきコード、 USBコネクタへ繋がっているケーブルが見える。 オーディオ信号はHDMIコネクタではなく、USBコネクタから取っているようす。 基板を取り外してみたところ、片面実装であった。スッキリしているが、実に多くの要素が詰め込まれている。

speakerdock_inside2.JPG

オーディオ部分はTIのD級パワーアンプ。TPA3113D2。 (解説記事

さて、問題はXOOMからパワーアンプにいたるパスがどうなっているかということである。 ここで2通りの実装が考えられる。

  • USBオーディオクラスのチップが貼り付けてある。
  • USBのコネクタにオーディオのライン出力を同居させている。
後者の実装は、いくつかの海外製スマートフォン、たとえばHT-03Aなどで使われている。 海外の掲示板で同じようなことを言っている人を発見した。 (androlib: Some general insight into the HD Dock and potential reason why no USB on docks

パワーアンプから丹念に配線を追って行くと、怪しい10ピンのICに突き当たる。

audiopath.jpg

このチップは、microUSBのデータ端子とパワーアンプの入力フィルタに繋がっている。 しかし、刻印の文字数が少なすぎて、まったく型番を調べることができなかった。 「0STI」「JER」と書いてあるように見えるが、アルファベットの判別自体が難しい。 役割は

  • USBオーディオクラスのチップ(ピンが少なすぎ、近くにクリスタルがない)
  • プリアンプ(オーディオ信号を無理やり流し込んでも音が鳴らなかった)
  • アイソレータ
のいずれかだろうが、良く分からない。オシロがあれば簡単に分かるのだが…。知人に借りる相談をしようかな。

一応、分かる配線をメモしておくと

1接続先不明
2パワーアンプLch
3USBコネクタGND端子
4パワーアンプRch
5電源GND
6USBコネクタD-端子
7470オームを通して9番ピン
8電源5V
9470オームを通して7番ピン
10USBコネクタD+端子
気持ち悪いことに、3番ピンと5番ピンは繋がっていない様子。

良く分からないまま、とりあえず閉腹。ちゃんと動作することを確認。

posted by yuji_at_radiance at 16:56| Comment(0) | TrackBack(0) | ハードウェア | このブログの読者になる | 更新情報をチェックする

2009年10月03日

SmartQ5 with Android

CoviaからSmartQ5 with Androidが届いた。Amazon2次予約枠で注文したので届くのは10月半ばかと思っていたが、意外と早い。キャンセルがあったのか、増産体制が整ったのか不明。

パッケージ。北京智器のハコではなく、Coviaのパッケージになっている。 covia_sq5a_package.jpg

説明書と本体。Androidのハードウェアスイッチは、側面の3つのボタンが割り当てられている。説明書にはごく簡単なハードウェアの説明のみ。分かる人向けという感じである。 covia_sq5a_turorial.jpg

無線技術適合証明のシール。これで国内で電波飛ばしても大丈夫。 covia_sq5a_seal.jpg

androidのアプリケーションランチャー。日本語入力ツール、FlickWnn/Simejiがインストールされている。カメラ非搭載でも、カメラアプリケーションのランチャーがある。加速度センサー非搭載なので、画面のタテヨコ切り替えはメニューキーの長押しで行う。 covia_sq5a_apps.jpg covia_sq5a_top.jpg

どうやらバッテリーの充電中はAndroidの電源を切ることができない(メニューから電源を切ってもすぐに再起動してしまう)。あと音量の調節はどこでやるのだろう?とりあえず移植できたのでリリースした感が若干あるが、製品としての出来栄えは使いながら検証していこうと思う。とりあえず、液晶保護シートの入手と、無線LAN環境の構築が最優先か。こんなに早く届くと思ってなかったのだ。

CoviaのWebサイトからユーザー(と開発者)コミュニティの掲示板とファームウェアダウンロードサービスに行くことができる。要メンバ登録だが、必ずしも購入者じゃなくても(今のところ)良いみたい。個人輸入者も歓迎てなことを言っている。Android marketやpdfビューアーなどのソフトが追加されるので、2次予約以前のユーザは必ずファームアップデートを受けたほうがよいだろう。

posted by yuji_at_radiance at 13:12| Comment(0) | TrackBack(0) | ハードウェア | このブログの読者になる | 更新情報をチェックする

2009年03月29日

秋月PICライターの妙な挙動

USB内臓のPICマイコンを時々使っている。 いつの間にか秋月電子のPICプログラマ(Ver4)がUSB内臓PICの書き込みに 対応していたことが分かったので、数年ぶりに秋月ライタを引っ張り出してみた。

最新のPC側ソフトをダウンロードしてきて実行したところ、動きがもっさりしすぎていて、何も操作を受け付けない。しかも、ライタとの通信中(?)にCPU使用率が100%になってしまう。これは間違いなく通信用のサブルーチン内でビジーウェイトをかけているに違いない。それでもデュアルコアプロセッサでCPU使用率100%って一体どういうことだろう。

とりあえず、PICプログラマの動作をシングルコアに強制してみる。タスクマネージャーのプロセス一覧で右クリックメニューを出すと、プロセスとCPUコアの関連付けウィンドウが出る。とりあえずCPU0のみで実行するように設定したところ、もっさりした動きが緩和された。なんでこうなるのか理由はわからない。

追記:windowsを再セットアップしたらまともに動くようになった。USBシリアル変換のドライバが傷んでいたとか?

posted by yuji_at_radiance at 10:43| Comment(0) | TrackBack(0) | ハードウェア | このブログの読者になる | 更新情報をチェックする

2009年02月21日

LM4881ヘッドホンアンプ

National SemiconductorのLM4881を使ってヘッドホンアンプを作ってみた。LM4881の製作記事は他のサイト・ブログでも上がっているが、総じて「構造は簡単だが音質は悪くない」と好評である。そこで、ラジオさえまともに作れたことのないくらいアナログ回路と相性の悪い私も一つ作ってみることにした。

回路図はnational semiconductorの「代表的なアプリケーション」を踏襲。低音を通りやすくするために(?)ハイパスフィルタのコンデンサを増量気味にする。
HeadphoneAmp_scheme.png

部品は、秋葉原のマルツパーツ(LM4881)と千石電商(コンデンサ、抵抗器類)で入手した。その道を極めていらっしゃる方々は、LM4881はコンデンサの特性がよく現れると云う。そう言われても部品の良し悪しはよく分からないので、音響用のコンデンサを何種類か買うことにした。
買ったのは、
  • ニチコンのMuse ES 4.7uF 25V
  • 東信工業の音響用コンデンサ 1000uF 16V
  • ルビコンのMCZ 超低ESR 1000uF 16V
・・・いや、豚に真珠とか言わないで。分かってるから。

ブレッドボードで仮組みしたところ、うまく動きそうなのでユニバーサル基板上に組んでみる。なお、東信の1000uとMCZを入れ替えてみても音の違いが分からなかった。
・・・いや、だから猫に小判とか言わないで。分かってるからホント。
出来上がった基板がこれ。
HeadphoneAmp_board.jpg
緑の電解コンデンサがMuse ES、黒がMCZ、銀色が東信である。LM4881のパスコンには積層セラミックを使った。積セラはオーディオに使ってはいけない説と使っても大丈夫説があって、結局どっちなのかよく分からない。

試運転したところ、動作は良好であった。このアンプ基板は別の工作のコンポーネントとして使う予定。さて・・・。
posted by yuji_at_radiance at 23:51| Comment(0) | TrackBack(0) | ハードウェア | このブログの読者になる | 更新情報をチェックする

2009年01月14日

SPI書き込みルーチン(RAIDケース修理:その5)

Sレコード受信処理について取り立てて説明することもないので、SPIの説明を最後にしておこうと思う。

STM45PE20のデータシートには12個のコマンドが記載されている。通信のフォーマットにしたがってこれらを分類すると

  • Command(1バイト)
  • Command(1バイト) + Read(>1バイト)
  • Command(1バイト) + Address(3バイト)
  • Command(1バイト) + Address(3バイト) + Write(>1バイト)
  • Command(1バイト) + Address(3バイト) + Read(>1バイト)
の4通りに分類できる。

さらに、これらの通信は1バイトの読み出しと書き込みから構成される。

したがって、1バイトの読み書きルーチンを作成し、ボトムアップ的に通信ルーチンを組み立てるのがよさそうである。

SPIはクロック同期プロトコルで、SDOとSDIが独立している。データとクロックの位相関係が4通りある(このあたりはInterface誌の2009年2月号が詳しい)らしい。STM45PE20の場合、クロックが立ち上がるときにデータが読み込まれる。 よって、マスタが1bit送受信する過程は、データを出す→クロックを立ち上げる→データを取り込む→クロックを立ち下げるということになる。

STM45PE20はクロック周波数25MHzまでいけるらしいので、殆どウェイトを入れずにIOポートを動かしても大丈夫であった。

実はADuC7026にハードウェアSPIが内蔵されているけど、それは内緒の話。

書き込んだEEPROMを基板に半田付けしたら、元通りに動いた。 そのまま運用はさすがに怖いので、ファームウェアアップデートをかけて、めでたしめでたし。

posted by yuji_at_radiance at 22:34| Comment(0) | TrackBack(0) | ハードウェア | このブログの読者になる | 更新情報をチェックする

2009年01月12日

PC側プログラム(RAIDケース修理:その4)

PCからARM基板にファームウェアを送信するために、PC側ソフトを作成する。とりあえず、VisualStudio2005を使ったが、ちょっと変更すればmingwやcygwinでも動くはず。

マイコン基板と正しく通信するためには、文字化けや異常動作を回避する手順を定めておく必要がある。
今回は
  • PC→Writer Sレコードを16行送る(256Byteに相当)
  • PC→Writer 文字'W' (書き込みを命令)
  • (実際にEEPROMに書き込む)
  • Writer→PC 文字'Y' or 文字'N' (Yなら成功)
  • PC→Writer 次のSレコードを送る
という形にした。 マイコン基板からPCへ一定時間以内にY or Nが帰らない場合、PC側プログラムはマイコン基板が応答しないとみなして処理を中断する。データシートによると、ST45PE20の消去→書き込み操作は50msもあればできるらしい。通信時間を考慮しても数秒あれば十分終わると考えられる。

シリアルポートの操作はwindowsAPIのCreateFile関数を使って行う。普段はファイルの読み書きに使う関数であるが、ファイル名にCOM2などと指定するとシリアルポートを開くことができる。もちろん、実際にポートがある場合に限るけど。

ちょうどこんな感じである。

#define COMNAME "COM9"
  ...
  HANDLE hComPort;
  hComPort = CreateFileA(COMNAME, GENERIC_READ|GENERIC_WRITE, 0, NULL, 
	                 OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
  ...

これでReadFile, WriteFile関数を使ってシリアルポートを読み書きできる。しかし、マイコン基板と通信するためには、より詳細な設定を行う必要がある。そのために必要なのがDCB構造体, COMMTIMEOUTS構造体とSetCommState, SetCommTimeouts関数である。今回だと115200bps、パリティなし、ストップビット長1、受信タイムアウト20秒といった設定にする。

int setupComPort(HANDLE hComPort){
	DCB    dcb_cur;
	COMMTIMEOUTS com_timeout;
	//Setup COM Port
	GetCommState(hComPort, &dcb_cur);
	dcb_cur.DCBlength = sizeof(DCB);
	dcb_cur.BaudRate  = 115200;
	dcb_cur.Parity    = NOPARITY;
	dcb_cur.StopBits  = ONESTOPBIT;
	dcb_cur.fParity   = FALSE;
	dcb_cur.Parity    = NOPARITY;
	com_timeout.ReadIntervalTimeout         = 0;
	com_timeout.ReadTotalTimeoutMultiplier  = 0;
	com_timeout.ReadTotalTimeoutConstant    = 20000;	//20 second
	com_timeout.WriteTotalTimeoutMultiplier = 10;
	com_timeout.WriteTotalTimeoutConstant   = 100;
	SetCommState(hComPort, &dcb_cur);
	SetCommTimeouts(hComPort, &com_timeout);
	return 1;
}

Sレコードの断片は256Byte境界に合うように送らなければいけない。Sレコードファイルのデータが連続していない場合、受信側が正しくデータを再構成できず、書き込みに失敗してしまう。 objcopyが生成するSレコードは0番地から最終番地まで連続だったので、今回はチェック・並べ替えの処理は殆ど入れていない。要するにサボりである。

posted by yuji_at_radiance at 21:10| Comment(0) | TrackBack(0) | ハードウェア | このブログの読者になる | 更新情報をチェックする

2009年01月01日

書き込みプログラムのブロック図(RAIDケース修理:その3)

M45PE20書き込み器のブロック図を下に示す。

SPIWriter_block.png

SteelVineのファームウェアをシリアルポート経由で送信するPC側プログラムと、ファームウェアを受け取ってSPI経由でM45PE20に書き込むマイコンプログラムの2種類を作成する。

SteelVineのファームウェアはバイナリファイル(RAWイメージ)の形で公開されているが、通信を確実にするためにSRecord形式に変換する。GNUのツールチェインがインストールされているPCならば、objcopyを使って簡単に変換できる。

$objcopy -I binary -O srec SVFirm.bin SVFirm.srec

PC側プログラムは、マイコン側プログラムと同期をとりつつ256Byte分の書き込みデータをシリアルポートに出力する。

マイコン側プログラムは、通信ブロック、SRecordパーサーブロック、M45PE20制御コマンドブロック、SPI低水準IOブロックから構成される。

(次回に続く)
posted by yuji_at_radiance at 22:01| Comment(0) | TrackBack(0) | ハードウェア | このブログの読者になる | 更新情報をチェックする

2008年12月07日

IAR WorkbenchでOlimexのUSB-JTAGデバイスを使う

IAR社のIAR Workbench体験版とOlimex社のARM-JTAG-TINYを組み合わせてARMのJTAGデバッグを行う方法を説明する。ターゲットデバイスとしてADuC7026(DesignWave付録基板)を使用する。

DesignWave基板にはARM標準配列の20ピンコネクタが用意されており、CPUボードに直接JTAGデバッガを接続することができる。

ARM-JTAG-TINYのインストーラーCDにはARM開発用に調整されたEclipseが入っている。しかしながらCPU依存ライブラリ(スタートアップルーチンやペリフェラル定義のヘッダファイル)が含まれていないので、いきなりプロジェクトを開始するのはちょっと面倒である。Philips社(現NXP)のLPCシリーズのサンプルはいろいろあるので、そのまま流用できそうだが、AnalogDevices社のADuCシリーズのリソースは自分で作るか有志が公開しているものを探し出すしかない。対して、IAR Workbenchは商用のツールということもあって、多くのデバイスに対応している。

IAR Workbench上でJTAGデバッグができるようになるまでの手順を説明していく。

インストール

ARM-JTAG-TINYの付属CDからOlimex OpenOCD Dummiesをインストールする。なぜかEclipseも入ってしまうが、気にしないことにする。USB-JTAGドングルを接続して、デバイスドライバもインストールしてしまう。FT2232は複数のUSBインターフェースに見えるのでドライバも複数回要求される。別に故障ではないので、その都度ドライバの場所を指定してやればよい。

特に何も指定しないと、OpenOCDのファイル一式がC:\gccfd\openocd以下にインストールされる。

OpenOCDサーバーの初期設定をする。

OpenOCDサーバーを起こすためには、設定ファイルを用意する必要がある。openocd\bin\configs以下にあるarm7_ft2232.cfgをベースに次のようなファイルを作成する。ファイルの名前をolimex_aduc7026.cfgとしておこう。

olimex_aduc7026.cfg
#daemon configuration
telnet_port 4444
gdb_port    3333

#interface setting (for Olimex Tiny USB)
interface ft2232
ft2232_device_desc "Olimex OpenOCD JTAG TINY A"
ft2232_layout "olimex-jtag"
ft2232_vid_pid 0x15BA 0x0004
jtag_speed 3

reset_config trst_only

#jtag scan chain setting (for ADuc7026)
#  Currently, IDCODE is not cared by OpenOCD daemon ??
#format: L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask IDCODE)
jtag_device 4 0x1 0xf 0xe

#target configuration
daemon_startup reset

#select debug target
#format: target  
#format: target arm7tdmi   
target arm7tdmi little run_and_halt 0
run_and_halt_time 0 30

#working_area    
working_area 0 0x00011F00 0x0100 nobackup

もしかするとworking_areaを設定するとおかしな動作をするかもしれない。(今のところ、問題は出ていない。と思う。)

コマンドラインから

$./openocd-ft2xx.exe -f olimex_aduc7026.cfg

とすることでOpenOCDサーバーが起動する。終了したいときはCtrl-Cで。

IAR workbenchの設定

ADuC7026向けのリンカ設定のやり方は別記事で説明するとして、OpenOCDと連携する方法を説明する。 まず、メニューバーからProject→Options(ALT+F7)と進んで、プロジェクトのオプション設定ダイアログを開く。Categoryリストの中からDebuggerという項目を選択する。プルダウンメニューを操作してDriverにGDBサーバーを選択する。
iar_setup1.png

続いて、Categoryリストの中からGDB Serverを選択する。TCP/IP addressのところには127.0.0.1 3333と入れる。3333はOpenOCDの設定ファイルに書いたgdb_portの値である。127.0.0.1は自分自身(localhost)のアドレスである。試してないけど、適切なアドレスを入れれば他のPC上のGDBサーバーにも接続できる。はず。

ソフトウェアブレークポイントがうまく働かないようで、何箇所かブレークを設置するとマイコンがおかしな動作を始める。対策としてBreakPointsタブのdefault breakpoint typeをHardwareにしておく。ついでにRestore Software BreakPointも外しておく。

デバッグの開始

最初にUSB-JTAGドングルを接続し、OpenOCDサーバーを立ち上げておく。IARからデバッガを起動するとファームウェアをデバイス上にアップロードしてmainの直前(スタートアップルーチンの直前の場合も)でコアを待機させる。後はステップ実行もブレークもやりたい放題。

posted by yuji_at_radiance at 17:52| Comment(0) | TrackBack(0) | ハードウェア | このブログの読者になる | 更新情報をチェックする

マイコン選び(RAIDケース修理:その2)

numonyx社M45PE20のスペックを抜粋すると次のような感じ。
  • 3.3V動作
  • 容量1MBit = 128KByte
  • MCUとの通信はSPIプロトコル使用(SPIクロックは25MHzまでOK)
  • 書き込みはページ(256Byte)単位
とりあえず書き込み用マイコンはが満たすスペックはこんな感じになる。
  • 3.3V動作、または3.3VIOに対応
  • PCとの通信機能、UARTかUSB
  • 256Byte(1ページ分)以上のRAM
手持ちのマイコン(ボード)はこんなものがあった。
  1. PIC: PIC16F648
  2. PIC: PIC18F2550マイコンボード(秋月電子)
  3. H8: H8-3664マイコンボード(秋月電子)
  4. ARM: STM32マイコンボード(DesignWave付録)
  5. ARM: ADuC7026マイコンボード(DesignWave付録)
  6. PC: パラレルポート直叩き
条件、自分の腕前に合うものを絞り込むとこうなる。
  1. NG: PIC16F648: Cコンパイラを所有、3.3V動作可能、メモリが不足している
  2. NG: PIC18F2550: Cコンパイラを所有、メモリ2KByte、5V動作オンリー
  3. NG: H8-3664ボード: Cコンパイラを所有、メモリ2KByte、5V動作(ボードは3.3Vをサポートしない)
  4. OK: STM32マイコンボード: Cコンパイラを所有、USB利用可能、3.3V動作
  5. OK: ADuC7026マイコンボード: Cコンパイラを所有、JTAGポート搭載、3.3V動作
  6. OK: パラレルポート: ノウハウなし、ケーブルを自作する必要がある
とりあえず、Design Wave付録のARMマイコンボードが使えそうな感じ。開発環境としてIARの体験版とOlimexのOpenOCDを既に持っている。STM32ボードにはARM用デバッグコネクタがついていないので、ADuC7026ボードを使って書き込み器を作ることにする。

(次回へ続く)
posted by yuji_at_radiance at 15:53| Comment(0) | TrackBack(0) | ハードウェア | このブログの読者になる | 更新情報をチェックする

RAIDなハードディスクケースを修理する(その1)

気がついたら前回更新(しかもアレすぎる内容)から4ヶ月たっていた。でも気にしない。

今回から数回のテーマは、ここ1ヶ月くらいの試行錯誤について。

ある人たちに頂いたHDDケース(scythe製、eSATA鎌蔵RAID)のファームウェアアップデート中にうっかり電源が抜けてしまいました。やってしまったかと思いつつ電源を再投入するもまったく反応なし。ファームウェアが破壊されてしまったみたい。「スクラップ?」の6文字が頭をよぎるけれど、価格を調べてみて結構高いのでびっくり。しかも頂き物。これは修理するしかない。

鎌蔵RAIDに使われているメインのチップはSilicon Image社のSiI5744である。商品紹介のサイトによると、USB、PC側SATAポート、HDD側SATAポートx2、GPIO、I2Cといった入出力があるらしい。しかしながら、肝心のデータシートがないので、ファームウェアがどこに格納されていて、どうやれば手動アップデートできるのかさっぱり分からない。

資料がないのでスクラップ確定かと思っていたところ、ファームウェアのダウンロードサイトにfor manufacturingとfor GUI updateの2種類のファームがあることに気づいた。for manufacturing(製造時書き込み用)のファームウェアをダウンロードしてみると、容量がきっかり256KByteある。どうやらフラッシュメモリに書き込むイメージファイルらしい。で、容量でピンと来た。これってフラッシュメモリを外付けしているんじゃないか。

鎌蔵RAIDの主基板を取り出してみると、SiI5744のすぐ近く、U6と書かれたパターンに8ピンSOPのICが取り付けられている。よく見るとSTマイクロエレクトロニクスのロゴと「M45PE20」という文字列が刻印されている。とりあえず検索をかけてみると、容量256KByteのSPIシリアルフラッシュメモリであることが分かった。イメージファイルの容量と完璧に一致する。(もしかすると、単なる偶然かもしれないけど)

とりあえず半田こてでU6を取り外してピッチ変換基板に固定する。あとはテキトーにマイコンを使って書き込めばなんとかなるだろう。

(次回へ続く)

追記:STMicro Electronicsの不揮発メモリ部門はnumonyx社に移管されたようです。フラッシュメモリの情報は、numonyx社M45PEに記載されています。
posted by yuji_at_radiance at 00:50| Comment(0) | TrackBack(0) | ハードウェア | このブログの読者になる | 更新情報をチェックする

2008年08月12日

GBA Expansion Pack for DSLinux

え〜と、状況が状況なので、あまりこういうことは書かないほうがよいのかもだけど。

GBA Expansion Pack (for G6 M3/Real 32MByte)は、R4 M3/Simplyでは動作しない。カードを挿してもDSLinuxは認識しない。

M3さくらはGBA Expansion Packを認識する。freeコマンドを使うと2MByteくらいだったRAMが32MByteくらいに増えている。

以上、わかる人だけわかって。
posted by yuji_at_radiance at 23:15| Comment(3) | TrackBack(0) | ハードウェア | このブログの読者になる | 更新情報をチェックする

2008年07月21日

トラ技78KUSBマイコンの書き込み器を作る

トランジスタ技術2008年8月号付属のuPD78F0730マイコンのフラッシュROM書き換え器を作ってみた。トラ技付属の基板にはトラ技BIOSなるプログラムが書き込んであって、BIOS経由で書き込み(ただし、BIOS領域は書き換えられない)できる。簡単なプログラムならBIOS経由の書き込みで十分であるが、でかいデータをROMに置きたい場合や割り込み処理をユーザープログラム側でやりたい時はBIOSが邪魔になってくる。
では改めて。78F0730マイコンの書き込み回路は78K0/KX2シリーズ(78F05xx)の書き込み回路と同じものが使える。ちなみに回路図と書き込みツールは、NECエレのサイトから入手できる。アプリケーションノートには78F0730にも適用可能と書いてないが、書き込み方式の説明がほとんど同じようなので大丈夫と信じることにする。
書き込みツールはシリアルポート経由で通信を行うらしく、端子同士の接続は次のようになっている。
PCのTxDRS232 IC マイコンのRX
PCのRxDRS232 IC マイコンのTX
PCのRTSRS232 IC NOT マイコンのReset
電源5V マイコンのFLMD0
RTS信号の扱いはちょっと厄介で、RS232レベルコンバーターICを通したあと論理を反転してからReset端子に入れる必要がある。どうせならソフトウェア的に反転処理をすればよかったのに、なんでこんな仕様にしたんだろう?
公開されている回路図では、論理反転のために74のnot回路が使われていた。さすがに6回路入りのnotを使うのは馬鹿らしいので、回路図を次のように書き直してみる。
78f0730wr_scheme.png
付属基板を使う場合、Reset端子は10kオームでプルアップされているので、not回路はトランジスタ1個のオープンコレクタで実現できる。
実はもっと簡単だけどボツになったアイデアがある。RTSピンのレベルがLowの時にReset端子の電位が下がればよいのだから、下の回路図のようにRS232レベルコンバーターとトランジスタを省略することができる。
78f0730wrez_scheme.png
実験では無事に書き込めたが、RS232のLowレベルは-7Vくらいあるはずなので、マイコンの過電圧保護ダイオードが間違いなく動作している。そういうわけで、あまりお勧めはできない。
実装ではちょっとがんばって、DSub9ピン用のケースに詰め込んでみた。ハーフピッチの基板とフラットのADM3202を使えば何とか入る。
78KWR_circuit.jpg
ケースを閉めたところが下の写真。
78KWR_appearence.jpg

####
せっかく作ったけど、トラ技9月号が出ると用なしなんだろうな、コレ・・・
それどころか、トラ技のAppendixに記事載ってたのね・・・。
posted by yuji_at_radiance at 01:00| Comment(0) | TrackBack(0) | ハードウェア | このブログの読者になる | 更新情報をチェックする

2008年06月21日

SN18000をケースに収める3〜ファン装着〜

CPUの廃熱でケースの電源装置が熱を持ってしまった。このままでは夏を越えるどころか数週間で天国へ逝ってしまいそうな雰囲気である。とはいえ、排気が溜まってしまっていることが問題なので、

  • 排気を筐体の外へ確実に追い出す

  • あるいは冷たい外気を大量に吸い込む


とかすれば解決できるはずである。

今回は、筐体に大きく排気口を開けて排気ファンを取り付けることにした。大口径低速のケースファンを取り付ければ、騒音も小さくなるはずである。

それでは、今回のお買い物リスト。
■.材料
1 8cm級ケースファン(薄型・静音)ainex CF-80SS 2000rpm size=80 x 80 x 15
ファンの厚みはきわめて重要である。厚さ15mm以上のファンはヒートシンクに当たる。
2 8cmファン用ファンガード ainex CFG-80
別になくてもよいけど、モノや指を突っ込んでしまう事故を防げる。

■.図面
天板(ふた)を下図の寸法で切り抜く。丸く切り抜くのが苦手なら多角形にすればよいと思う。実際のところ、radianceの天板は不等辺8角形に切り抜いている。

schema_cooling1.png

■.レシピ
1 図面に従って(別に従わなくてもいいけど)、天板に排気口とねじ穴を開ける。ケースファンを取り付けるときは、筐体の内側から外側へ風が吹くようにすること。こうすることで、熱が溜まりにくくなり、かつ、埃がケース内に溜まらなくなる。
2 ケースGA677iBKに元々ついていたケースファンを取り外す。うるさいだけで冷えない小型ファンをまわす必要はない。
3 CPUファンの配線を取り外す。うるさいだけで〜(以下略)。
4 CPUファン電源コネクタに大型ファンのケーブルを接続する。これで、BIOSやOSは大型ファンをCPUファンとして認識する。

これらの作業は2月末ごろやっていたのだが、6月半ば現在もマシンは快適に動いている。


radiance_cooler1.jpg
ふた(天板)を閉めた様子。ファンの直下がCPUヒートシンクである。排気はちょっとあったかい。
posted by yuji_at_radiance at 22:00| Comment(0) | TrackBack(0) | ハードウェア | このブログの読者になる | 更新情報をチェックする

2008年06月16日

SN18000をケースに収める2〜廃熱問題〜

時間がだいぶ空いてしまったが、前回の記事では、電源ケーブルを自作してSN18000をGA677iBKに組み込む手順を説明した。がんばって組み立てたマシンを仮運用していたところ、新しい問題に直面した。やたらとマシンが熱を持つのである。

しばらく様子を観察したところ、筐体のふたを閉めて運用すると、CPU付近とDC-DCコンバーター付近が異常に熱くなることが判明した。DC-DCコンバーターは電解コンデンサを大量に搭載しているので、高温になるのは大変にまずい。(CPUが熱くなるのもよろしくないけど)

DC-DCコンバーターが熱くなる理由は簡単。CPUの廃熱がモロにDC-DCコンバーターに当たっているのである。下の写真を見るとわかるとおり、CPUファンが吸い込んだ空気はヒートシンクを冷却しつつ左右から吹き出す。左側に吹き出した熱風はマシンの外に出られるが、右側に吹き出した熱風はマシンの中に溜まってしまうのである。

img_radiance_inside1.jpg


とりあえず、CPUの冷却方法にひと工夫が必要である。
posted by yuji_at_radiance at 23:15| Comment(0) | TrackBack(0) | ハードウェア | このブログの読者になる | 更新情報をチェックする

2008年05月05日

SN18000をケースに収める

VIAのmini-ITXマザーボードSN18000は、ボードの裏面にCFスロットとmini-PCIスロットが取り付けられている。このため市販のほとんどのmini-ITXケースには収めることができない。

G-Alanticのmini-ITXケースGA677iBKは裏面にスロットが取り付けられたマザーを搭載できるらしいということで、今回はこれを採用した。(もしかすると他にも搭載可能なケースがあるのかも知れないが、チキンだから試すことができなかった。)

これで、マザーボードをケースに組み込むことができて万々歳と言いたいところだが、実際はすんなりと行ったりはしない。
GA677iBKには80W級の電源装置が搭載されているが、付属するATX電源ケーブルは短すぎてSN18000の電源コネクタに届かないのである。
実はT-Zoneの1Fの展示コーナーでは、「ケーブルの長さが足りない」ので「延長ケーブルを買ってね」と警告のポップが貼られていたりする。

延長ケーブルはゴツイし長さがぴったりではないので、小さいケースに納めるわけにはいかない。代わりのケーブルを買おうにも、20ピン両オスのATX電源ケーブルなどというアヤシイ代物を売っているわけがない。仕方がないので自作することにする。

■.材料
1 ATX電源延長ケーブル20ピン(40センチ以上)
2 4ピン電源分岐ケーブル、Serial-ATA電源分岐ケーブル (適宜)
3 ATX電源コネクタ ケーブル側オス20ピン (1個)
4 ATX電源コネクタのピン (最低20個 練習用含めて24個以上推奨)

1と2は自作部品を扱う店なら1000円くらいで手に入る。3と4は電子工作の店、たとえば千石電商で300円くらいで手に入る。あとは圧着ペンチが必要だが、ラジオペンチでも事足りる。

■.レシピ
1 ATX電源延長ケーブルの結線順序を覚えておく。
2 ATX電源延長ケーブルの必要な長さを測って、マジックペンで印をつけておく。(大体35センチくらい)
3 ATX電源延長ケーブルを1本1本切断して、ピンを圧着して、ATX電源コネクタにハメる。
4 必要に応じて4ピンコネクタやSerial-ATA電源コネクタのケーブルを圧着する。

作業のポイントは、全部の線を一気に切ってしまわないこと。線の数が多いので確実にカオスになってしまう。あと、ケース付属のATX電源ケーブルにはSerial-ATAの電源コネクタが付属していないので、Serial-ATAのハードディスクを使いたいならばコネクタを追加しておくとよい。

配線ミスを2回厳重にチェックしてから、最小限の部品を接続して電源を入れる。うまく起動すれば・・・おめでとうございます。


最後に、とてもとても大事な話。
電源ケーブルの自作は大変に危険な行為です。高価な部品を破壊する恐れがあるほかに、感電や漏電による火災のリスクを伴います。また、短期的にはうまく動いたとしても長期的なストレスに伴ってトラブルが発生することが十分に有り得ます。くれぐれも自身で責任の負える範囲でお願いします。

つまり、
「よい子のみんなはぜ〜ったいにマネしちゃだめだよ」
posted by yuji_at_radiance at 22:33| Comment(0) | TrackBack(0) | ハードウェア | このブログの読者になる | 更新情報をチェックする

2008年05月02日

radianceシステム構成

radianceの設計コンセプト、運用目的は、

  • 小型の自作機を作る

  • 静音、低消費電力である

  • PC Linuxをインストールして、様々なサービスを動かす

  • ブロードバンドルーター代わりにする

  • テレビ・ラジオの録画録音をする


といったところです。名前の由来は、なんとなく。

初代radianceは、IBM NetVista A21(中古)にFedora Core5をつっこんだものでした。

現行の2代目radianceは、VIA EPIA SN18000GをベースとしてCentos5を動作させています。

以降スペックを簡単に(2008年5月2日現在)

  • M/B: VIA EPIA SN18000G

  • CPU: VIA C7 1.8GHz (on board)

  • MEM: UMAX PC2-5300 1GByte

  • HDD: HGST 120GByte 2.5inch Serial-ATA 型番忘れた

  • case: G-Alantic GA677iBKを改造

  • others: Radio Shark

  • OS: Centos 5

  • Services:

    • SSH

    • Samba

    • PPPoE



posted by yuji_at_radiance at 18:50| Comment(0) | TrackBack(0) | ハードウェア | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。