«前月 最新 翌月» 追記

ぱぱネット(仮)


2009-11-06 熱が出たので休んだ [長年日記]

_ [雑記] 発熱

新型インフルか?! と思ったんですが、どうやら疲れによる 発熱のようです。2週間くらい残業しまくったあげくの出張だったからな...

_ [雑記] 申し合わせたようにAVアンプが届く

すごいダルいので箱から出しただけ。実は以前使ってた DENON AVC-1620の デジタル音声入力(だけ)がいきなり死んでしまってですね.... 絵は出るし、セットアップモードでのテストトーンも大音量で鳴るけど 一切入力音が出ない。普通こういうのはアンプ部が 壊れて電源はいらなくなるとか、そういう壊れ方じゃないっすかね? なんでデジタル部が壊れるんだDENONよ。

ともあれ、今のAVシステムだとアンプがないと全く音が出ないので、 急遽kakaku.comで人気が高くて安い奴を買ったというわけで。

_ [小物] YAMAHA AX-V565

しばらくAVコンポーネントの世界から遠ざかっていたんだけど、 なんか廉価版にもHDMIx4とか付いてるし、7.1chオーディオだしすごいね。 どうもBlu-rayあわせ?(PS3あわせ?)でガンガン機能アップした時期が あったらしい。

ところが......持った瞬間思ったぜ「やっちゃった!」と。 めちゃくちゃ軽いんじゃよ。

ふと中身を覗き込むと スッカスカ でした。 AVC-1620はもっとドンとした重量感があったのですが。

で、 フロントステレオ2chのみスクリューレット だった.....('A`)ソリャよく調べなかった俺が悪いけど、センター/サラウンドは例のバネ式洗濯バサミだった。これはひどいだろ。2.4万円のAVC-1620でも 全チャンネルだったぞ。

極めつけ。 SPDIFの光/同軸がライン固定! .....つまり 光端子はAV1、と決まっていて変更できない。D端子もマップが決まってる。こんなのアリなのか? 組み合わせがあらかじめ決まってるって ことは少ない入力端子をフル活用することはできないってことじゃないの('A`)萎えるわ。

まあ、この総HDMI時代にアナログ入力でごちゃごちゃ言ってるのは 俺だけかもしれないナ。素直に他のレコーダ含めて買い替えを検討 するべきだろう。また金かかる....onz

え?良かったところはないのかって? FMチューナ内蔵なのは良かった(笑) というか知らないで買ったのかよ!>俺

本日のツッコミ(全3件) [ツッコミを入れる]

_ クマ三郎 [るぅ嬢が「で、音は?」と聞いております。]

_ 通りすがりのあいあん [お大事に〜(^^)ノシ]

_  [夜になったら熱あがってきたし。しかしま、DSPの性能はYAMAHAが段違いにいいな。シアターホールを複数選べるwww..]


2009-11-09 秋の夜長に重低音 [長年日記]

_ [小物] ビクターSX-DW303

まあ、結論から言うとサブウーハーをなめてましたね。 重低音を補完するだけじゃん?近所迷惑じゃん?みたいな。

買ったのは3店回って最後の店にあった中古のSX-DW303。 DENONやYAMAHAの安めの出物を蹴って買った理由は 入力ONで電源ON になるスタンバイモードが あったから....というだけだったんだが。本体は中古と思えないほど 奇麗だったし、剛性感もあってなかなか良い買い物をしました。

設置してびっくり。明確にサラウンドスピーカーに余裕が感じられ るようになった。中高域の音の移動がよくわかるようになったというべきか。ウーハー自体は、どこから重低音鳴ってるのかいまいちわからんが、 CoD4やっていると戦場の包み込むような不安感、爆発音が ゲームを盛り上げてくれます。よく死ぬけど(汗;

そんなにウーハーのボリュームをあげなくてもいいんだね。 これは早めに買うべきだった。

_ [雑記] しかし

アンプがYAMAHA メインとサラウンドがDENONのスピーカー サブウーハーがビクター DVDレコがSONY カー....なんたる混成合唱団....そういやパナソニックがないな(笑)

本日のツッコミ(全2件) [ツッコミを入れる]

_ 匿名希望 [私は死語となったオーディオマニアであります。 昔、長岡鉄男さんか誰かが 「スーパーウーハーはどこに置いても問題ない。..]

_  [会社にはJBLの40万くらいするスピーカーがあったのですが、 どこぞの馬鹿が棚を倒したら壊れました。犯人見つからず...]


2009-11-11 EZ-USB買った [長年日記]

_ [雑記] ITプラザあああああああああああああ

見積メール出したらいつの間にか発注したことになったでござる(^^; 会社にお伺いたててから発注しようと思ったのに。 てなわけで、以下の基板が 私物 と化した訳でござる。

EZ-USB FX2

_ [開発] USBターゲット開発

EZ-USB FX2ってのはサイプレスのUSBコントローラ内蔵マイコンが載ったボード。「個人でもUSBデバイスが開発できる!」ってマニアの間では一時期盛り上がった。このチップの特徴は「CPUが動いてなくても仮のUSBターゲットとして起動」し、PCからUSB経由で気軽にプログラムを書き込めるところ。i2cやJTAGを引き出さなくてもいいわけだ。

まあそこから5年くらい経って、マイクロチップ系(PIC)も 富士通のFRマイコンとかでも最初からフラッシュ書き込み用の ローダーが焼かれてるチップが出てきてるけど、そこは温故知新ということで。

ちょろっと暇を見つけて遊んでみるつもり。もちろんホスト側はLinuxで(笑)無謀カナア....


2009-11-12 EZ-USBで遊んでみる(1) [長年日記]

_ [開発] Windowsで動作確認をする

まずはWindowsで動作確認を。EZ-USB基板の半田盛りを見ると「如何にも手作り」という 雰囲気がアリアリなので、本当はテスタくらい当てた方がいいのかもしれないけど、 USB差したくらいで壊れるならITプラザに突っ返すので、とっととUSBケーブルを接続することにする。

製造元であるCYPRESSではWindows用の 開発キットを用意してくれている。トップの検索から「CY3684」で検索すると CY3684 EZ-USB FX2LP Development Kit というのが出てくるので、SETUP_FX2LP_DVK_1004.exeをダウンロードしてインストールする。

EZ-USB FX2基板をUSBケーブルでPC本体に接続すると、いつもの認識画面になるので、 Cypress純正ドライバをインストールする。

ドライバインストール

スタートメニュー/Cypress/USB/CyConsoleを起動して認識されているか確認する。

CyConsole

さらにEZ-USB Interfaceを起動すると、各エンドポイントの状態取得、EEPROMの書き込み、 CPUの動作状態制御などができるようです。

_ [開発][Linux] Linuxで開発環境を整える

一般的にはKEIL社の8051プロセッサ用コンパイラを購入するか、オブジェクトサイズに制限のある 評価版コンパイラを入手して開発するようだ。が、面倒くさいので 最初からLinux で開発環境を整えることにする。LinuxディストリビューションはDebian GNU/Linux Lennyで。

_ [開発][Linux] コンパイラなどのインストール

apt-cacheコマンドでクロスコンパイラsdccを検索すると....

$ apt-cache search sdcc

sdcc - Small Device C Compiler (DFSG version)
sdcc-doc - Small Device C Compiler (documentation, DFSG version)
sdcc-libraries - Small Device C Compiler (libraries, DFSG version)
sdcc-ucsim - Micro-controller simulator for SDCC (DFSG version)
sdcc-doc-nf - Small Device C Compiler (documentation)
sdcc-libraries-nf - Small Device C Compiler (libraries)
sdcc-nf - Small Device C Compiler
sdcc-ucsim-nf - Micro-controller simulator for SDCC

DFSG(Debianガチガチ)に即したバージョンと、non-free版の2種類があるようだ。 「あるようだ」 、とか他人事みたいに書いてるけど、 皆様の予想通り 最初DFSG版インストールしてハマりました... 8051サポート入ってないんだもんなあ...必ずnon-free版を入れましょう。

# apt-get install sdcc-nf sdcc-libraries-nf sdcc-doc-nf

あと8051の逆アセンブラdis51もインストールしておく。

# apt-get install dis51

さらにホスト側にUSBユーザランド実装のlibusbが入っていなければインストールしておきましょう。 最終的にはネイティブのUSBターゲットドライバを開発するんだろけど、ファームウェアをデバッグ するような段階ではユーザランドで実装します。後述するfx2_programmerというコマンドも コレを呼び出しています。

# apt-get install libusb-0.1-4 libusb-dev

_ [開発][Linux] fx2_programmerのインストール

EZ-USB FX2の特徴は...

  1. EEPROMが空の状態でも「とりあえず」ブートする
  2. ターゲットのCPUを止める
  3. ファームウェアをUSB経由でRAMに書き込む
  4. CPUを再度スタート
  5. ワオ!別のデバイスに変身だ!

ということなので、PC側に、ターゲットCPU制御とファームウェアダウンロードを行うソフトが必要です。 Windowsの場合は先ほどのEZ-USB Interfaceでできるんだが、Linuxの場合は fx2_programmer を使います。ダウンロードはsourceforge.netからfx2_programmer-2.0.2.tgzを。

そのままコンパイル...と言いたいところだがココでも ハマった。 エンドポイントのオープンができないんだよね。PS/2コネクタ全盛だった数年前とは違って、 最近のPCではマウス/キーボード等もUSBを使っている。USB汎用デバイスが接続されていると、 そのままではlibusbが動かないことがある。その対策コードのパッチを用意しました( fx2_programmer.patch)。

# tar xvzf fx2_programmer-2.0.2.tgz
# cd fx2_programmer
# patch < fx2_programmer.patch
  patching file fx2_programmer.c
# make fx2_programmer
# cp fx2_programmer /usr/local/bin

できあがったバイナリfx2_programmerは/usr/local/binあたりにコピーしておきましょう。

_ [開発][Linux] ファームウェアのコンパイル

基板が動くかどうかもわからないうちからファームウェアをゼロから書く...のは無理なので、 fx2_programmerの作者さんが用意してくれているテストファームを使うことにします。 上のホームページから辿れるリンクはことごとく404 Not Foundだけど、 Sourceforge.net側から探したらあった。 8051ディレクトリ からいくつかファイルを落とす必要があります。cvs checkoutでもよし、ファイル少ないから ブラウザでちまちま落としても間に合うでしょう。こんなディレクトリ構造でOK。

8051/
8051/ex3/Makefile
8051/ex3/ex3.c
8051/ex3/program_and_start.sh
8051/include/fx2regs.h
8051/include/fx2regs.inc

コンパイルは8051/ex3へ行ってmake...だけど、そんな複雑なことをしているわけではなく結果的に

# sdcc -mmcs51 -I../include/ ex3.c

が実行されているだけです。mcs51ってのが今回のCPUアーキテクチャ8051の指定ね。

※余談だが、8051系列のアーキテクチャは古いPCマニアなら1度は目にしているはず。 PC/ATのキーボードを分解するとWinbond製のICが載ってたじゃないですか。 あるいはマザボ上のシリアルとか統合したSuperIOチップ。 あの中身が8051だったはず。うろおぼえだけどね...。

とりあえずこれでPC側の設定はほぼ終わり。明日以降は実機でファームウェアを動かさねば。

本日のツッコミ(全1件) [ツッコミを入れる]

_ Albertareft [The prostate related is central to the section of a male's..]


2009-11-13 EZ-USBで遊んでみる(2) [長年日記]

_ [開発][Linux] 8051のオブジェクトもろもろの話

前回の手順でファームウェアサンプルであるex3をコンパイルすると、 いろいろファイルが生成されるのだが、実行ファイルに相当するものは ex3.ihxというファイル。 Intel Hex形式で 記述された8051のオブジェクトコードだ。

:03000000020008F3
:0300610002000397
:0500030012011780FE50
:080064007A007BF87C007D02AC

でも、これだとなんだかわからないので中身を覗いてみる。逆アセンブラはdis51。

$ dis51 < ex3.ihx

CSEG AT 0000h
	LJMP L0001

L0004:
	LCALL L0005
L0006:
	SJMP L0006

L0001:
	MOV SP, #9h
	LCALL L0002
	MOV A, DPL
	JZ L0003
	LJMP L0004

おお、それらしいじゃないですか。演算はほぼ全てAレジスタ(アキュームレータ)を起点として 行うようです。どのアドレスが内部メモリでどれがI/Oマップなのか未だにわかりませんが。 ex3は基本的にEP6をIN(PCからみた場合、ターゲットからだと出力になる)に初期化して いるだけのようです。が、ex3.c本体も、できあがったihxを逆汗した結果も、 割り込みテーブルの初期化とか全くしてないように見えるんだが...これでいいのかな。 スタートアップコードはほとんど全く付加されず、元ソース由来のニモニックばかりだねえ。

_ [開発][Linux] fx2_programmerで実機にダウンロード

ex3に添付されているprogram_and_start.shというシェルスクリプトが、 そのままfx2_programmerの使用例になっている。

EZ-USBは認識のたびにバスID,デバイスIDが変わってしまう。むろんEEPROMで独自のIDを 持ったファームウェアを毎回ブートするようにすれば変わらないようにもできるが、 今割り当てているのはLinux Kernel側のusbdevだ(多分)。

fx2_programmerを使うと状態がダンプできる。上記のシェルスクリプトは ダンプした結果から'UNCONFIGURED'という行をgrepで抽出して、バスIDを環境変数BUS, デバイスIDをDEVICEにセットする。本来、ネイティブドライバではベンダーIDや プロダクトIDで(もちろんEZ-USB、Cypressが決めたIDではなく自社で取得したIDね) 検索する部分を、半自動でやってくれるわけね。

# fx2_programmer any any dump_busses
Dump of USB subsystem:
 bus 006 device 001 vendor id=0x1d6b product id=0x0001
 bus 005 device 001 vendor id=0x1d6b product id=0x0001
 bus 004 device 001 vendor id=0x1d6b product id=0x0001
 bus 003 device 001 vendor id=0x1d6b product id=0x0001
 bus 002 device 002 vendor id=0x04b4 product id=0x8613 (UNCONFIGURED FX2)

以降、環境変数BUS,DEVICEを使ってfx2_programmerコマンドを呼び出せば、 ある程度対話的にEZ-USBを制御できるというわけ。8051をリセットする場合は

# fx2_programmer $BUS $DEVICE set 0xE600 1

となる。0xE600は何なの?と思ってfx2regs.hを見ると、CPUを外部から コントロールするためのI/Oアドレスのようだ。

EXTERN xdata _AT_(0xE600) volatile BYTE CPUCS ;  // Control & Status

書いてる値「1」は、Cypressの開発キットと同時にインストールされる テクニカルリファレンス(EZ-USB_TRM.pdf)をひくと、1でCPUがHOLDされ、さらに 0を書くとリセットかかるみたいなことがかいてある。

Reset line

ここがEZ-USBのおもしろいところなんだけど、 CPUCSってのはUSB coreのポート であって、それがCPUのリセット信号に直結されている構造なんだな。 一般的なマイコンボードだとCPUが絶対的支配者でUSBペリフェラルがサブであるが、 EZ-USBではUSB Coreのほうがえらいということか(TRMのFigure7-1)。

program_and_start.shは、先ほどコンパイルしたファームウェアを以下のコマンドで ダウンロードしている。

# fx2_programmer $BUS $DEVICE program ex3.ihx

その後0xE600に0を書いて、この瞬間から8051が動き出すというわけだ。 うまくできてるなあ。

# fx2_programmer $BUS $DEVICE set 0xE600 0

_ [開発][Linux] 読み出しベンチマーク

fx2_programmerにはbluk_benchというコマンドが用意されていて、 ひたすら指定したエンドポイントを所定バイト数、所定チャンクで読み出して時間を測定してくれる。

# fx2_programmer $BUS $DEVICE bulk_bench 0x86 102400000 2048
Read 102400000 bytes in 26 seconds and 184313 microseconds.
Rate of 3910738 bytes/second

約4MB/s (32Mbps)。USBバルク転送でこれだけ出てれば十分というべき...いや やはり遅いのか?400Mbpsくらい出すにはどうしたらいいんだろう。

ex3.cのソースみてたらバグ発見。

/* configure ep6 to be quad buffered */
EP6CFG=(EP6CFG & ~3)|3;

これだとEP6CFGの値は0xe3になる。TRM 8-4をみるとquadバッファするためには0xe0に しないといけない。下位2bitが11だとトリプルバッファだね。

しかもトリプルといいつつFIFOBUFの設定は各1回しかやってない。どういうことなんだろうか。 なんとなくだが、上記ベンチマークは シングルバッファの結果 な予感がする。 実質的にはSlaveFIFOで動作しているわけではない(入力側の回路がない)ので、 USB的には固定バッファを送り出しているだけだから、最大速度出てる可能性もあるけどね。 あとはバッファ長か?PC側ドライバの問題か?

_ [開発][Linux] 雑感

Cypressのテスト用ファームウェアはex3より遥かに複雑だけど、 初期化関連はきちんとやってるようなので、今度はこちらを読んでみようと思います。 USBも8051もわからないことだらけだけど、とりあえずEZ-USBは 敷居低い、素性良い 印象は受けました。


2009-11-20 ひぎゃあああああ [長年日記]

_ [小物] 我が家の録画マシンで活躍していたPT1

いきなり壊れた(;_;)
電波弱いかと思ってdB測定するとNHK総合で25dB前後なのでことさら悪いというわけでもない。そもそもコントロールはできているようだからLinuxドライバのせいというのも考えにくい。カーネルバージョンアップしてないしな。

なぜこの段階で壊れるのか。まあ先週マシンを隣の部屋に移動したからなんだろうけど・・・その後数日は動いてたしなあ。

まいった。EZ-USBどころではなくなってしもうた。

_ [小物] アースソフトPT2

秋葉原兎あたりで断続的に販売してるらしいけど、まだ俺のような一般人が容易に入手できる状態ではないな。毎週土日徘徊してるような廃人か転売ヤーしか。

年末テレビ録画できないのはマジ勘弁なので、文句垂れてないでどうにかせねば。

本日のツッコミ(全4件) [ツッコミを入れる]

Before...

_ TOGA [そういや会社の同僚も同時期に壊れたって言ってたな。ソニータイマみたいなもんだったりして。]

_ エイザ [「同僚も同時期に壊れた」って・・・読み方によっては怖い・・・。]

_  [壊れた....えひゃひゃひゃひゃひゃひゃひゃひゃ(゜∀゜って感じかな。 まあ実際にはPT1は壊れてなくてLinux..]


2001|04|
2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|03|04|05|06|07|08|09|10|11|12|
2014|01|03|04|05|10|

[BANNER]
このサーバーをもう12年も維持しているかと思うとめまいがしますよ。
ツッコミ機能は、ハンドル名が完全日本語じゃないと登録できません。
また、本文にURLが含まれていても登録できません。
いずれもSPAM対策です。
[Panda Papanda]
2009年
11月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

[Papanda]  [Kuma]  [Tomorin]  [Iron]  [Eiza]  [Dokkin]  [Honya]  [Zyou]  [Tsuyo]  [Bike]  [KoeBBS]  [Chukei]  [portal]  [tvmatome]  [KaoPaku] 

訪問者数:(11777+2560143)