--/--/--  --:--    スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2007/12/25  19:12    新しいPCを買いました
念願の新しいPCを買いました。
スペックは、

CPU Core2DuoE6750
メモリ 4GB
マザボ P5K-E
グラボ RADEON X300
HDD 500GB
電源 550W
ケース SOLO

といった感じです。
使ってみたら、一応普通には動くのですが、
3Dゲームをするとフリーズしてしまいます。
感じやっぱりグラボがだめみたい・・・
そのうち買い換えるしかないんです
でもお金がもうないorz
さてどうしようか・・・
スポンサーサイト
2007/12/19  23:08    HIDaspを作ってみた - 2
性懲りもなくまたHIDaspを作ってみました。
昨日作ったのが雑だったもので、もうすこし小型化してみました。
HIDasp-mini

写真の通り、今回はUSBフラッシュメモリをイメージして作りました。
横にあるのがバッファロー製のUSBメモリです。
とりあえず目標のUSBメモリ型は達成できたかな?
たぶん、ユニバーサル基板ならこの大きさが限界だと思います・・・
まあもっとチップ部品を買えば別ですが、持ち合わせの部品だとこれが限度です。
これで持ち運びにも不自由しません!
このHIDaspとUSBメモリを合わせて持ち歩いて、
USBメモリの方にHIDasp対応avrspxと書き込むHexファイルを持ち歩けば、
どのPCでも書き込むことができます。ドライバのインストールは不要ですしw
あと、今回の2作目はUSBの5Vを基板にも出力できるようにしました。
t2313の下のジャンパピンを上につけると出力できます。
あとサイズの問題で、アクセスランプのLEDは今回は省きました。
とりあえずそんな感じです。


次はちゃんと専用基板焼いてもっと小さくしたいな(ぁ
AVR
2007/12/19  00:04    HIDaspを作ってみた
同じ部活のS君が簡単に作れるUSB接続のAVRライタを作っていたので、
私も作ってみました。
HIDなAVRライタ - びんづめ堂
HIDasp - PukiWiki
とりあえず上のページが主要なページです。

びんづめ堂さんで紹介されているのが今回製作するHIDaspです。
このライタの利点としては、
・安価なATtiny2313で作ることができる。(秋月でt2313は120円
 ↑2008/7/27追記:秋月では現在100円Tiny2313が購入可能となった。
・USBaspはドライバをインストールする必要があるが、HIDaspはHIDクラスなのでドライバのインストールが不要である。
・USBからそのままSPIに変換するので、USB-シリアル変換ICが不要である。
が上げられます。
また欠点は、
・USBaspやELMさんのCOMライタ、SPIブリッジよりは少し遅い。(そこまで遅いわけではないが、他のAVRライタよりは少しだけ遅い)
が上げられます。
まあ欠点の少々遅いところは人の感性次第かもしれません。
びんづめ堂さんのところにマイコンのファームウェアや、HIDaspに対応したAVRSPXも置いてあります。

最初に回路図です。
HIDasp回路図

びんづめ堂さんのところにはUSB AVRの回路に付け足せばよいと書いてあるのですが、
これではうまくいきません。
なので、二番目に上げたURLのPukiWikiさんを参照します。
そこにUSBのD-とD+の接続の訂正が書かれています。そこを参照して作れば大丈夫です。
上に上げた回路図はちゃんと訂正済みの回路図です。

後はその回路図どおりに回路を組みます。
HIDasp写真

これが今回私が作った回路です。
さすがに3時間で作ったということもあり、雑で即席感がしてしまいますねorz
次作るときはもっと綺麗に作りたいと思います・・・

ファームウェアの書き込みです。
ELMさんのCOMライタやUSBaspを使ってファームウェアを書き込みます。
あと注意すべきなのは、ATtiny2313のLowヒューズビットを書き換える必要があります。
Lowヒューズビットを11101110に変更すれば大丈夫です。
(なぜかHexファイルが6KBぐらいあるのに、2KBのメモリの2313になぜ書き込めるのか、なぞですが)
↑解決済み。詳しくはhttp://amenotiyukizora.blog76.fc2.com/blog-entry-154.html#comment参照

さて完成したら、回路をチャックした後、PCのUSBポートに接続します。
HIDクラスなので、ドライバをいれたりせずに勝手に使えるようになります。
デバイスマネージャーでみてみると、
HIDaspデバイスマネージャー

といったぐらいで、うまく動作してるのが見れます。

後はプログラムの書き込みですが、
やり方はびんづめ堂さんのところに書いてあります。
とりあえず、こんな感じ。
HIDaspコマンドプロンプト

注意するのは、AVRSPXはAVRWikiのものでは無理なことと、
HIDaspで書き込む際は、「AVRSPX」の後に「-ph」が無いと書き込めません。
例)AVRSPX -ph -r
これでマイコンの状態を読み込めれば完成となります。


簡単ですね!
これから部活ではこのライタを進めてみたいと思います。
みなさんもぜひ作ってみては?
AVR
先日記述しました、AVRでビット指定する話
あれでは自分で読んでもわかりずらかったので、もうすこしまとめてみます。
最初は先日の内容と一緒なので飛ばしてもらっても構いません。

AVRでは基本的に、PORTやPINなどのレジスタで、1バイトでデータを扱うことができますが、
1ビットでのデータは扱うことができません。
なので、AVRではビット演算を利用して1ビットのデータを扱ってきました。
例)PORT|=_BV(BIT)
  PORT&=~_BV(BIT)
  bit_is_set(sfr,bit)
これをdefineして、
例)#define sbi(PORT,BIT) PORT|=_BV(BIT)
  #define cbi(PORT,BIT) PORT&=~_BV(BIT)
  #define ibi(sfr, bit) (bit_is_set(sfr,bit)?1:0)
sbi(PORTB,PB0)やcbi(PORTD,PD7)のように関数的に1ビットを書き換えていました。
しかし、この場合は0にするにも1にするにも別の関数を使用するため、
もしポートAのビット0にプルアップされたSWが接続されていて、ポートBのビット0のLEDを接続し、
SWが押されていたらLEDを点灯、押されていなかったらLEDを消灯するには以下のようなプログラムになります。
例)
  if(ibi(PINA,PA0)==0){
    sbi(PORTB,PB0);
  }
  else{
    cbi(PORTB,PB0);
  }

これではわざわざif文を使用しなくてはならず、行数も増えてしまいます。
ではもっと簡単に上記の動作をするプログラムを書くにはどうすればいいのかといいますと、
レジスタ自体のビットに直接アクセスし、そこを1か0に書き換えればいいわけです。
ここで、参考にしたのはH8マイコンのヘッダファイルです。
H8マイコンでは構造体と共用体とポインタを使用し、ビットに直接アクセスしています。
例)P1.DR.BIT.B0 = 1;
これでポート1のビット0に1を書き込んでいます。
ヘッダファイルはどうなっているかといいますと、

struct st_p1 {
  unsigned char DDR;
  char wk;
  union {
    unsigned char BYTE;
    struct {
      unsigned char B7:1;
      unsigned char B6:1;
      unsigned char B5:1;
      unsigned char B4:1;
      unsigned char B3:1;
      unsigned char B2:1;
      unsigned char B1:1;
      unsigned char B0:1;
    } BIT;
  } DR;
};
#define P1  (*(volatile struct st_p1  *)0xFFFFC0)

となっています。
説明するのはここでは面倒なので省略します。
構造体と共用体とポインタを使用していることを覚えておいてください。
ではこの方法でAVRでもビットごとにアクセスはできないだろうか?という話です。
というわけで、ヘッダファイルを書いて見ました。

struct st_pa {
  union {
    unsigned char BYTE;
    struct {
      unsigned char B0:1;
      unsigned char B1:1;
      unsigned char B2:1;
      unsigned char B3:1;
      unsigned char B4:1;
      unsigned char B5:1;
      unsigned char B6:1;
      unsigned char B7:1;
    } BIT;
  } PIN;
  unsigned char DDR;
  union {
    unsigned char BYTE;
    struct {
      unsigned char B0:1;
      unsigned char B1:1;
      unsigned char B2:1;
      unsigned char B3:1;
      unsigned char B4:1;
      unsigned char B5:1;
      unsigned char B6:1;
      unsigned char B7:1;
    } BIT;
  } PORT;
};
#define PA  (*(volatile struct st_pa  *)0x39) // PA Address

といった感じで書けばH8のようにビットに直接アクセスできます。
使い方は、下記のとおりです。
例)
  PA.DDR = 0xF0;
  PA.PORT.BYTE = 0x33;
  PA.PORT.BIT.B7 = 1;
  a = PA.PIN.BIT.B0;

DDRは今まで通り、16進数でしか記述できません。
PORT、PINに関してはバイトでもビットでも記述することができます。
以上の書き方で、先ほどのプログラムを書くと、
例)  PB.PORT.BIT.B0 = ~PA.PIN.BIT.B0;
といったように一行で書けてしまいます。
これで便利にプログラムを書くことができますね。

先ほどのAVR用のヘッダファイルの例についてすこし説明したいと思います。
最初に構造体でポートAのレジスタのかたまりをつくります。
struct st_pa{
のところです。
次に、各レジスタの記述をします。
上からみていけば、PINが次にかかれています。
バイトでもビットでもデータを扱いたいので、共用体を使用します。
union{
のところです。
BYTEと書けば普通に1バイトでそのレジスタを扱うことができますが、
BITと書けばビットで扱うようにしたいので、
また共用体の中で構造体を使用します。
しかし、普通に構造体をしようしては、ビットごとにアクセスはできないので、
ビットフィールドを使用します。
ビットフィールドは、例えば通常charで宣言すれば1バイトの領域を使用しますが、
ビットフィールドで記述することにより、必要なビット数だけ使用できるようになります。
例) 
struct{
  unsigned char abc:1;
}ABC;
これでchar型でありながら、1ビットだけ扱うことになります。
詳しくはビットフィールドでググってみてください。
ここで説明すると説明に相当かかなければいけないので。
ここでは、1バイト(8ビット)のレジスタを扱うので、
構造体の中で、ビットフィールドを使用した8つのchar型があります。
これで、そのcharを指定することによって指定したビットだけにアクセスすることができるのです。

ここで、気づいた方もいるかもしれませんが、
H8のヘッダファイルではB7からB0へ降りていくのに対して、
AVRのヘッダファイルではB0からB7へ上昇していきます。
これは、処理する処理系によって、ビットオーダーが違うためです。
H8はビッグエンディアンであるのに対して、
AVRではリトルエンディアンなのです。
なのでもしH8のようにビッグエンディアンで記述してしまうと、自分の思ったビットでは無いビットを間違えて指定してしまいます。
もし自分でこのようなビットフィールドを使用する場合、処理系の特徴にあわせて記述することが必要です。
もし別の処理系から移植する場合は気をつける必要がありますね。

以上のように構造体・共用体・ビットフィールドを使用して、ビットにアクセスしています。
そしてヘッダファイルの最後で、defineを使用し、レジスタのアドレスをポインタで指定しています。


長々書いてしまいましたが、とりあえずもしこの1ビットでデータを扱いたい場合は、
前の記事のヘッダファイルをincludeすれば可能です。
まだATMEGA8515のヘッダファイルしか作ってませんが、
ほかのヘッダファイルもつくっていきたいと思います。
2007/12/08  23:13    テストが終わって久々の休日は
久しぶりにちょっと遠くのパソコンショップへいってみました。
チラシには読まずにいったのですが、
なんかいろいろ安かったみたいでかなりの人が来てました。

気になったのは、
AMDの新しいCPU「Phenom 9500」が27700円で先着3名で売ってたりした。
クアッドコアで2.2GHzだそうな・・・
まあクアッドコアにしては安いかな?
普通は30500~32000円らしいのでかなり安かったみたいです。
でも言ったときにまだ2つあって、次みたらあと1つになってました。
まあ私はIntel派なので買いませんでしたがw

あと、PC2-6400の1GBメモリが2枚組みで4970円でした。
そしてまた衝動買いしてしまいましたwww
前に買っておいた1GBのメモリと同じメーカーの同じメモリだったのでいいかなってw
あわせて1GB*4枚=4GBになりましたwww
しかし、まだうちにはDDR2がさせるPCがないので、
またこれも自作PC組むまでお預けorz
正月には組みたいな・・・

後は、BluetoothアダプタのUSB端子ぐらいの大きさのアダプタが1970円でした。
これはすぐに売り切れたらしく、行ったときにはもう売り切れてました。
まあほかにもいろいろ売ってました。

あと、やっとうちの地域にもGF8800GTが来たようで、
そこのお店でも2つのメーカーの8800GTがうられていました。
はやくオリジナルクーラーつきがでないかなぁ・・・
とりあえずでるまで購入は保留です。
正月はバイトがんばってPCをちゃんとしたので組みたいです。

現在の予定
CPU Core2Duo E6750
メモリ PC2-6400 1G*4枚
マザボ P5K-E
グラボ GF8800GT
HDD 320GB
電源 500Wぐらい?
ケース SOLO
DVDドライブとかマウスは適で
キーボードは新しいの買いました。

そんな感じかな?
今もう購入済みなのは
メモリとキーボードだけ。
後はどうにかしないとw
とりあえず画面も17型液晶が調達できているので、
なんとかなるかな?って感じです。

明日は何しようかな・・・?
2007/12/07  19:48    テスト終了~
やっとテスト終わりました。
テスト中に思ったのは、せっかくこのBLOGにAVRを調べにきてくれる方に
AVRの情報を調べるには、ちょっと大変かなってことです。
なんせ、日常のことからマイコンまでいろいろ記事かいてますからw
というわけで、もう一度ちゃんとAVRにまとめた記事を書いて、
これからAVRの技術的な内容の記事は、
このBLOGのカテゴリで、「AVR」というカテゴリを新しくつくり、そのカテゴリにしようと思います。
まあそんな感じです。

続きはAVRマイコンを使っている人には朗報ですし、分からない人にはとことん分からない話。
見たい人だけ見てください。
続きを読む
2007/12/06  21:48    富士通恐るべしw
ノートパソコンを修理にだしていたのですが、
修理状況のページをさっきチェックしたらすごいことにw


富士通修理状況ページより

現象
お客様のご申告現象、パソコンから異常音が発生する・画面が赤くなる・カードリーダー認識しない現象を確認いたしました。

処置
診断の結果、メインボード・LCDユニット・スピーカー故障の為メインボード・LCDユニット・ヒンジカバー交換を実施しました。また、診断プログラムによりテストを行い各部正常に動作することを確認致しました。


なんか中身を総取替えしてる気がwww
アップルケア並みにすごい気がするw
恐るべし富士通・・・
また次のノートパソコンもやっぱり富士通にしようと思った今日この頃


P.S.
テストは明日で終わるから、いろんな意味で・・・
2007/12/03  23:17    訂正のご報告
2007年1月14日の記事http://amenotiyukizora.blog76.fc2.com/blog-entry-29.htmlにて、
ELMさんのCOMポートライタにLEDを追加した回路図を載せましたが、
このBLOGをご覧の方からご指摘をしていただいたので、
この記事で修正のご報告をさせていただきます。

回路図のD-sub9Pinから74HC125へ配線が伸びていましたが、
こちらの手違いにより、本来8番ピンと4番ピンからRESTE信号を伸ばすのが正しいのですが、
9番ピンと4番ピンよりRESET信号を伸ばすように回路図にて配線しておりました。
正しくはELMさんのご紹介している回路図の通り8番ピンと4番ピンがRESET信号です。

今回のご指摘を受け、1月14日の記事の回路図を訂正し、
こちらにてご報告させていただきました。
こちらの確認不足であり、大変申し訳ございませんでした。
こちらのBLOGへお越しいただいた皆様方にこの場を持って謝罪いたします。

これからの記事ではこのようなミスをしないように気をつけるとともに、
さらに皆様にAVRユーザーが増えるよう努力する次第でございます。
どうかこれからもこのBLOGをよろしくお願いいたします。

AVR_Writer
2007/12/01  13:43    テスト前の土日の憂鬱
来週テストです。
部活もテスト明けまでお休みです。

勉強する気になれないよ・・・

というわけで、家のネットワークをちょっといじってました。
結果

インターネット→光端末→家族用PC
              →HUB→デスクトップPC1
                  →ノートPC
                  →ルータ(ブリッジモード)→デスクトップPC2
                                 →LAN接続HDD
                                 →無線LAN

というなんともすごい階層構造なネットワークができました。
光端末が着てから放置していたルータとLAN接続HDDをなんとか追加し、
家のPCならどこからでもLAN接続HDDにアクセスできます。
また、ルータをブリッジモードで接続してあるので、
LANポート数の増加+無線LANが可能になりました。
これでまた家中どこでもネットが使えますね。(パスワードはもちろんありw)
なんというか不自由ないネットワーク。
あとは、この回線を十分発揮できるPCが・・・
ほしいなぁ・・・

とりあえず、テスト期間中はノートPCを修理にだしたいと思います。
またCPUファンがうーうー異音を発したり、その他いろいろなのでw
ちょうどテスト期間中でノートPCに触れなくなっていいかなって
でもデスクがあるんですけどね・・・
とりあえず、新しいPCのグラボはGF8800GTが発売したのでそれにしようかなって考えてます。
でもオリジナルクーラーでるまで待機ですが・・・

さぁ~て、今度は何して勉強から目をそらそうか(ぁ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。