fc2ブログ

2008年04月 の記事一覧

iPod充電器(ちょっと詳しいの)

iPod充電器で検索してくる人がいるようなので、詳しく書いてみることにした。

注意事項。
ここに掲載されている情報が100%正しいということ保証しないので、
この情報を用いての故障・事故等の責任は、当方は一切負いかねます。


で、とりあえず回路図。
見れば分かるけど、超簡単。つーか、でかすぎたな。


iPodCharger 20080429, originally uploaded by pman0214.


まぁ、見ての通り、
・D+はGND直結
・D-は一応15kでプルダウン
てな感じです。
D+を15kでプルダウンしたら動かなかったという経緯があります。
なお、D-もGND直結して動いた実績はあります。

iPod充電器iPod充電器(その後)を見ると、何でこんな中途半端な設計かが分かるかと。


で、次にコネクタのピン配置。
調べてもよく分からんところが多かったり、コネクタのどちら側から
見た図なのかが分からなかったりしたので、写真にして書き込みました。


USB connect type A 20080429, originally uploaded by pman0214.




えー、当然ですが、ここを見て作られる方は自己責任でお願いしますね。

GPL Cver on Intel Mac

GPL CverはVerilog HDLのシミュレータ。
名前の通り、GPL準拠です。

で、これをMacで動かしたときのメモ。


当然ですが、バイナリはないので自分でビルドします。
超簡単ですが、makefileをほんの少し書き換えたので、メモ。


1. ダウンロード

Pragmatic C Softwareからソースをダウンロード。
当たり前だけど、Downloadのページにある。
これを書いている時点の最新はgplcver-2.12a.src.tar.bz2。


2. 展開とmakeオプション変更

Safariだとデフォルトで展開されるけど、普通にtar.bz2で保存されている
ものと仮定しよう。ここでは~/tmp/srcに保存したことにする。

気分的にいつも~/tmp/buildの下でビルドするので、ここに展開。
で、makefileを微妙に改造。

[pMan@pMac:~/tmp/build]$ tar jxvf ~/tmp/src/gplcver-2.12a.src.tar.bz2
[pMan@pMac:~/tmp/build]$ cd gplcver-2.12a.src/src/
[pMan@pMac:~/tmp/build/gplcver-2.12a.src/src]$ cp makefile.osx makefile.osx.default
[pMan@pMac:~/tmp/build/gplcver-2.12a.src/src]$ vi makefile.osx


変更するのはarchitectureのオプション。

ARCHFLGS= -mcpu=powerpc → ARCHFLGS= -march=i386


要するに、

[pMan@pMac:~/tmp/build/gplcver-2.12a.src/src]$ diff -u makefile.osx.default makefile.osx ←ここまで一行ですって
--- makefile.osx.default 2008-04-29 13:49:52.000000000 +0900
+++ makefile.osx 2008-04-29 13:58:10.000000000 +0900
@@ -29,7 +29,7 @@
# omit frame pointer option needed for 25% speed improvment
OPTFLGS=-fno-strength-reduce -fomit-frame-pointer
# use this option for current Apple systems
-ARCHFLGS= -mcpu=powerpc
+ARCHFLGS= -march=i386

# select one of the sets of C flags - comment out others


ブログだと先頭のスペースが消えるのはご愛敬ということで。


3. make

あとはmakeするだけ。

[pMan@pMac:~/tmp/build/gplcver-2.12a.src/src]$ make -f makefile.osx



バイナリは../bin/cverなので、これを適当なところにコピーして終了。
そんなテキトーなインストールが嫌な人は、INSTALLを読んでまじめに
インストールしましょう。


追記 2008/07/06:
シミュレーション結果を見るのに使うのは、普通にGTKwave (on X11)でOK。
このあたり


追記 2012/03/14:
最近のMacは64bitなので、「-march=i386」ではなく「-march=x86-64」を指定する必要がある。
あと、ダウンロード元も無くなっているのでSourceForgeから落とす。

ディジタルシステム設計の本

久々にAmazonアソシエイトを使ってみたくなったので、
勉強系の本の紹介でもしてみよう。

多分両方とも初心者向けではないので注意。
図書館でパラパラ見て、気に入ったら購入するのがいいかもね。


ディジタル回路を勉強するなら、これを読まねばあかん、という本。

定本 ディジタル・システムの設計―ディジタル技術の基礎からASIC設計まで定本 ディジタル・システムの設計―ディジタル技術の基礎からASIC設計まで
(1990/09)
猪飼 国夫、本多 中二 他

商品詳細を見る


いい本だと思う。
少なくとも、正論理・負論理という考えが書いてない本は却下。

この本が理解できると、論理を意識した読みやすい回路図を
書くことができるようになる。はず。

まぁ、ディジタル回路なんてなーんも知らなくても作れるけど、
この本に書いてあることくらいはおさえておくと、大きなシステムも
設計できるようになるかも。

「かも」と書いたのは、実際の設計は本に書いてない部分というのが
多くあるから、実践が必要という意味。


Verilog HDLを勉強しようとする方にはこちらがお勧め。

HDL設計練習帳―Verilog‐HDLとAHDLによる動くディジタル・システムの構築 (Transistor gijutsu special)HDL設計練習帳―Verilog‐HDLとAHDLによる動くディジタル・システムの構築 (Transistor gijutsu special)
(2002/04)
猪飼 国夫

商品詳細を見る


この本は、回路屋さん向け。
ソフト屋さんはこういう考えで回路を設計しないと思う。

でも、回路を設計するわけだから、こちらをお勧めしたい。


よくあるVHDLとかとの対比ではないので注意。
VHDLに関しては確か全く載っていなかったと思う。

AHDLを使ってきた人はすらすら読めるはず。
初めての人は、ディジタル回路の基礎が分かってないと
よく理解できないかも。

お片付け

先日、古いPCを処分することにして掃除した。

超古いFM-Vで、MMX Pentium 133MHzくらいだったかな。
ISAバスですよ、ISAバス。
メモリは最大256MBとかいう時代の代物。

# 実は80286機が基板だけ残ってたりするんだけど
# それはそれってことで


ともかく、それを

「・・・要らなくなったノートパソコン。使わなくなったステレオコンポなど。
 無料にて、無料にてお引き取りいたします・・・」

とか言って車で不要品回収してるとこに持っていってもらおうと思って
置いといた。

ようやく今日になってタイミングよく現れたので、ボロいキーボードと一緒に
渡した。ディスプレイがあるといいと言っていたので、新品のCRTディスプレイ
も渡したら喜んで持っていった。

東南アジアとかで売るのかね。
今更CRTとかどーでもいいし。こっちとしては処分にお金がかからなくて
助かった。


で。

そのCRTディスプレイを出すために、部屋がちらかってしまったので、
片付けることにした。
ホコリだらけで汚い汚い。結局軽く大掃除的作業になってしまった。

ついでに、といっていろんなところに手を出すから余計に作業が増えて・・・。
アホみたいだな。

昔買ったBB弾のおもちゃの銃とかもバラして捨てた。
昔のおもちゃはよく出来てる。結構苦労した。
最近こーゆーので遊ぶ子供を見なくなったなぁ、とか勝手に思った。


うーん。しかし疲れたな。

新聞読んでたら

新聞読んでたら、某大学の某プロジェクトの話が出ていた。

あー、そういえば高校の時の友人に何年か前に会ったとき、
こんな感じのプロジェクトをやってるって言ってたなぁ
などと思いながら読んでいくと、、、

「・・・プロジェクトリーダの○○○○さん(24)は・・・」

って、あれ?本人だし。

大学院に進んで、そのまま続けていて、今はプロジェクトの
リーダになってるみたいです。


結構びっくりした。でも何か嬉しかった。


それだけですが、何か?

泊まりがけ研修オワタヨ

えー、研修始まって最初で最後(?)の泊まりがけ研修でした。

厳しいことで有名な外部の研修会社さんに頼むと聞いていたため、
どうなることやらと思ってましたが、結構きつかったです。


そして、分かったこと。
みんなスラダン読み過ぎ。

安○先生のありがたいお言葉のおかげで、
何とか無事に終わることができました。


まぁ、冗談抜きで、多くのことを学べてよかったよかった。

グリーンライン

今日は、某国家試験を受けに玉川学園に行って参りました。
その話はおいといて。

帰りに遠回りをして、先月開通した横浜市営地下鉄グリーンラインに
乗ってきたわけです。


グリーンラインをご存じない方のために軽ーく説明しますと、
3/30開業の中山〜日吉間を結ぶ地下鉄で、、、
面倒なので知りたい人はこちらをどうぞ。
http://www.city.yokohama.jp/me/koutuu/greenline/

あー。動力はリニアモータらしい。大江戸線もそうなんだとさ。
ちなみに車輪が付いていて、浮くわけではないです。動力だけ。


玉川学園→町田→中山→日吉という経路で、すごーく遠回りして帰ってきました。

↓中山駅入り口。あえてJRからの乗り換え口を使わないで、外から回る。

20080420 Yokohama, Green-Line, originally uploaded by pman0214.



↓当たり前だけど、行き止まりです。見えづらいか。


20080420 Yokohama, Green-Line, originally uploaded by pman0214.



↓中山に到着した電車。背低いな。ていうか、架線低い。パンタグラフ見えないです。


20080420 Yokohama, Green-Line, originally uploaded by pman0214.



↓車内の扉は透明。座席横のしきりも透明。すけすけって感じか。


20080420 Yokohama, Green-Line, originally uploaded by pman0214.



手前はグリーンラインの改札、奥は東横線の改札。改札が連続してる。
だったら乗り換え改札にしてまとめろよ、ってところなんだけど、なぜか
10mほど離れてる。謎だ。
↓注目の写真


20080420 Yokohama, Green-Line, originally uploaded by pman0214.



にしても、疲れた。

あだ名と検索

会社では朝スピーチとかいうのがある。
お題目は自己紹介 in details。

で、普通の自己紹介で語る機会がなかったあだ名を公開した。
まぁ当たり前だが、mixiで捕捉されだした。
とはいえ、最近はここに書くだけでmixiはあんまし見ないんだけどな。

ブログに切り替えたときにmixiの昔の日記は消えてしもたから、
見ても面白くないだろうな。


まぁ、ちまちま書いていこう。


あ。ついでに最近気付いたこと。
Cとかシェルスクリプトで検索してここに来る人が意外といるってこと。

Cに関しては他にいろんな人がいい記事を書いてたりするから、
シェルスクリプトに関してのメモを順次出していくのがいいかなぁ
と思ったのでした。

iPod充電器(その後)

先日書いたiPod充電器
追記は見てない人もいるかもしれないけど、そのままではiPodがスリープしたときに
充電できないという問題があった。


結論から言うと、未使用ピンの処理を変えたら動くようになった。
D+をGNDに直結した。
D-もつないでもいいのかも。面倒なので未変更。


少し調べたところ、ある電圧を出せばいいとか、プルダウンでOKとか書いてあった
んだが、どうもそうではなさそうな感じがした。

15kプルダウンが10kになっているからといって、プルダウンの効果が弱まるはず
はないし、逆に2.1Vとかの電圧を出さなきゃいけないってのは余計に納得できない。
実際、PCの端子電圧を測定しても0Vになっていたし。


で、プルダウンがうまくいっていないのだろうと思い、iPod接続状態で端子電圧を
測ってみた。

すると、、、D+端子に2.2Vあまりの電圧が出てる。
うーん。これはもしや、USB host controllerでは0Vを出力して認証をするのでは
なかろうか。
プルダウンは規格値の15kより小さいわけだから、それで浮くというのは考えにくい。

つまりはD+端子に0Vを出力してやればいいのだ。


で、怖いのでテスタの電流レンジでGNDと短絡した状態でiPodをスリープ状態に
してみる。
すると、見事に動く。というか、PCにつないだ時と同じ。


結論。
D+、D-はGNDに直結してよし。
否。D+はGNDに直結しなきゃダメ。

あ。これを見て作る物好きな方、自己責任でお願いします。

C言語の再帰呼び出し

Cの再帰呼び出しって、何かよく分からん。
いや、自分を呼び出すっちゅーのは分かるんだが、
なーんか今ひとつ実感がなくて。

そういえば書いたことないから分からんのか、と思い、
試しに書いてみた。

# ブログに表示する都合上、スペースが全角スペースに
# なってるけど悪しからず。

#include <stdio.h>

int sum(int number);

int main(void)
{
 printf("%d\n", sum(10));
 return(0);
}


int sum(int number)
{
 int rslt;

 if (number > 1) {
  rslt = sum(number-1) + number;
 } else {
  rslt = number;
 }

 return(rslt);
}




単に1からの和を求めるだけの関数sum。
要するに

sum(n) = sum(n-1) + n
sum(1) = 1

なわけだから、それを実行してるだけ。


んー。何か分かったような気がするぞ。
ソートのプログラムとかで使ってみよう。

iPod充電器

iPod充電器を作った。



20080405 iPod charger, originally uploaded by pman0214.


前にも作ったけど姉が使ってるので家にない。


5VをUSBのコネクタに出すだけで、後は未使用ピンの処理とかだけだから
簡単っちゃあ簡単だな。


1. 材料を揃える

・ユニバーサル基板
 手元にあった小さいヤツ。
・電源
 秋月のマイコン用のがあるからそれで。
・電源ジャック
 手元にあると思いきや、全部使ってしまったから仕事帰りに千石で購入。
・USBコネクタ
 その昔、古いPCから外したヤツ。
・ケース
 100円均一で基板より一回り小さいやつを購入。


2. 基板の加工

ケースに入るように基板を少し切る。
適当でいいけど、ねじを使いたくなかったから、
ぴったりはまって動かなくなるようにする。


3. 部品取り付け & 配線

ピン配置に注意してUSBコネクタをつける。
強度がしっかり保てるようにする。
D+、D-端子は15k(探すの面倒だったから10kにした)でプルダウン。
電源の入り口は適当な大きさのアルミ電解をつっこんでおく。


4. 箱加工

電源ジャックを付ける穴をあける。
ドリルで大きいのをあけて、テーパ・リーマで広げる。
USBコネクタを差す部分は四角く穴をあける。


5. 電源ジャック取り付け

電源ジャックに電線を付けてから仮留めする。
線を穴に通すのを忘れずに、電源を基板につなぐ。
ここはコネクタにするほうがいいけど、まぁそんなにすごいものでもないから直結。


6. 箱におさめる

中で基板を動かなくすることがポイント。
まぁ加工の段階で別途固定する必要があるかどうかは決まるけど。

完成。



20080405 iPod charger, originally uploaded by pman0214.


「800円くらいなんだから買えばいいだろ」というのはごもっとも意見だが、
手元にほとんど部品があるのに作らないのは、ものづくり魂が許さんのじゃ。


追記 2008/04/08:
どうやらiPod nano(第2世代)はこれでは充電できんらしい。
スリープ時はこのままでは充電できないらしく、一定時間経つとスリープ
してしまうから、このままではダメポ。

調べるか・・・。

とりあえず1日目終了

まぁ初日なんて、にうしゃしきとかせつめいとかがメインだから。

無難に終了。
死にそうだったあの頃から見れば、ありえないくらいに余裕のある生活だな。

研修も頑張らねばいけないけど、何か勉強したくなるような方向を見つけることに
するかのぉ。

まぁ大学院に来たときも思ったけど、すごい人はいっぱいいるんだなぁ、
というのが率直な感想だ。


初日が終わっても、前日と何も変わらず不安だらけだけど、
そんな中でも前へ一歩踏み出す勇気を持とう。
研究もそうだったし。何とかなる。何とかなる。