nec express 5800 解像度

サーバー OS を ubuntu 14.04 にあげてから解像度が 800×600 固定と悲しい状態になってしまった。何とかならないかといろいろ調べていたところようやく解決しました。まあ、サーバで作業することは滅多にないんだけど表示できることに越したことはないし。

それに、別にサーバーなんだからGUIいらないじゃん。というところもあるんだけど共有フォルダに日本語を使っている都合上何かと CUI だけではめんどくさい。なので GUI をいれていたんだけど 800×600 だからこれまた表示がきれたりして都合悪い。
とこんな状況でした。 10.04 の時は表示できてたはずだしまあ、モニタがへっぽこなのでせめて 1024×768 は出したいと思っていたのです。

ちなみに使っているサーバーは NEC Express5800/GT110b celeron モデル。
これのオンボードビデオを lspci で見ると
XGI Technology Inc. (eXtreme Graphics Innovation) Z9s/Z9m (XG21 core) となっていた。
実際メーカーのページでも XGI/Z9s ってなってたから認識は間違いない。

で、いろいろ調べてみると sis のドライバを使う、XGI のホームページからドライバをとかいろいろ出てきたがなんかホムペからは入手できなかった。というか見つからなかった。まあ、古いし。
で、xserver-xorg-video-sis のドライバは入っているから xorg.conf を書き換えて試してみようかと
ubuntu フォーラム の内容をまねて書いてみたけどダメだった。
あとから思うと XG20 core と XG21 core で違いがあったのかなとも思った。

何を設定してもダメなので最終手段 vesa ドライバ使ってみたらというところに行き着き /etc/X11 のディレクトリにあった xorg.conf.failsafe をリネームコピーして vesa ドライバで起動したらログイン画面が広くなって 1024×768 で表示できたというなんとまあという結果に。

もしかしたら 10.04 も vesa 使ってたのかな。
まあ、結果オーライということで。

PICでステッピングモーター駆動

ステッピングモーターを使う案件が来た。
ステッピングモーターは6本線が普通だと思っていたら、今回使うサンプルを見たら4本線だった。あれ?こんなのあるんだと初めて知った。
どうやって動かすの?と調べたらステッピングモーターにはユニポーラ駆動とバイポーラ駆動とか他にも2相じゃなくて3相、5相とかあるんですね。ふむむ。

とりあえず回路を作ろうと思ったが簡単な回路だとトランジスタ8個使うことになる…。複雑になりそうだ。ということでドライバICを使うことにした。
秋月電子通商さんで TA7774FG を発見。これだと入力端子に交互にパルスを入れてやれば回せるのでお手軽だなと選択し購入。

あとはモーターの制御。最終的にパソコンで制御したいらしいので、間に PIC を入れて制御しやすくしておいた。使ったのはPIC12F675。8本足のやつです。

ざっくりとPIC は GP0 ~ GP2 を出力、GP3 ~ GP5 を入力に設定。
ADC は未使用。内部発振。GP5 の IOポート割り込み有り。で設定。
動作は GP3 の状態を反転して GP2 へ。
GPIO の変化を検知して割り込み実行。
GP5 に入る負理論パルスを正理論に変換してドライバICへ伝達。
このとき GP4 の状態によりA,B チャネルのパルスの流れを反転。
という感じの仕様で作りました。
今回、割り込みを自分で組んだものでは初めて使ってみたけど意外と便利。使えるときは使っていこう。

プログラムは楽勝だ~とさくっと作成したら、いきなり2カ所ほどポカミスをやらかしました。
GP3 は入力のみだということを忘れて出力設定にしたら動かなかったという単純ミス。
プルアップの設定は wpu レジスタだけじゃなくて option レジスタの NOT_GPPU ビットを 0 にしないと有効にならないということ。
なんとまぁ。

そんなこんなで、間違いはあったけどPICは意図した動作をきちんとしてる。のだが、モーターを回すと回っているけどカクカク…?。
原因調査。
まずはモーターメーカーの制御ボードで実験。めっちゃスムーズに回る。原因はモーターではない。
次はドライバIC の特性なのか。ということで、発信器があったら良かったけどないので、PIC でパルス発生のプログラム書いて送信してみた。これも評価ボードほどではないけどスムーズに回る。
結論。パソコンが悪い。VEEでパソコンから制御パルス送っているのだけれどもどうやらこれがくせ者らしい。おそらく、VEE のデバッグモードだと割り込みやらなんやらでウェイトがきちんと動作しないようでこれが原因っぽい。
はじめは自作PIC-CDCのデジタルIOでカクカク動作だったのでメーカーもののDIOだと大丈夫かなと思ったがやはりダメっぽい。ランタイムにして動作させればもしかしたらうまく動くかもしれないが、パソコン制御は別担当なので、また後日その辺試してもらおう。
パルスも PIC 制御しなきゃダメなのかな。それの方が面白いけど。ちょっと期待。

一応、ソースコード。続きを読む以降に貼っておきました。
SourceBoost の BoostC 使ってます。どれもまあ似たようなものかと。

続きを読む

acer ASPIRE 3830T メモリー増設

自分は以前デスクトップを使っていたけど最近はメインで acer ASPIRE 3830T-N54D を使っています。
もともとwindows 7マシンでしたが Windows 8.1 にアップしてからメモリー不足でプチフリならぬ応答待ちが頻繁に起き作業もスムーズに進まない状態に。
このマシン、メモリーは標準の4GB。windows7 の時はまあこんなものかなと思っていました。バージョンアップして win8 は少しましだったかな。あまり記憶ないけど。で、 win8.1 にして今日まで使っていたけれどもうダメ。我慢の限界。
応答待ちの原因はおそらくスワップアウト。アクセスランプつきっぱなしだしガリガリ音するし。で、コミット量をタスクマネージャーで見てみると、起動したてはまだ2~3GB。 Firefox 起動したり普通に使っているとコミットはあっという間の4GB超え。実メモリーを超えたあたりからHDDのアクセスが気になり始める。

一番の原因が、Firefox をメインブラウザで使っているのだけれど、これがまた 1GB 前後メモリーを普通に使ってくれる。まあ、10個ぐらいタブ開いてるから仕方ないけど…。tw,fb,gmail,mixi とかよく使うタブ表示してるとそれぐらいになっちゃうんだよね。
はじめはちょっと待たされるけどまあ我慢できる。でも、そのまま使い続けるとコミットは増え続けて二日目あたりから 8GBを超える。こうなるとスワップの嵐。ハードディスクガリガリ。しょっちゅう応答待ちを食らうことになり、そしてストレス発生装置に…。
作業を中断されるとやる気が飛んでいくし、どうしようもないのでメモリーの増設を試みることにしました。

まず、どれくらい増設できるか調べてみた。メーカー公称で8GBまで増設できるとなっていた。となると8GBかなぁと思ったが、おもしろい情報も見つかった。
メーカー仕様の8GBを超えて16GBまで増やしたという話。実際調べてみると3830Tは HM65 Express チップセットのCPU i5-2410M なんだけど、チップセットには最大メモリの値が見当たらない。代わりにCPUに書いてあった。最近はまたCPUにメモリーコントローラーを持たせるようになったんですね。で、i5-2410M は最大16GBまで対応となってました。なので、仕様以上の増設が可能というからくりになっているようだ。こんなおもしろい情報は試してみないとと思ってしまう訳で。まあ、ダメ元でやってみた。

まず、メモリーを探すところから。3830T のメモリーは PC3-10600 までとなっている。いろいろネット情報を見て回ったけど、どこも同じような感じなのでいつものドスパラで買うことにした。けれどDDR3-10600 8GB二枚組のお手頃価格のものが限定数完売。その代わり PC3-12800 は手に入る。だったら、メモリーは下位互換だし 500円ぐらいの差だったらこれで試そうと言うことで早速 ADATA DDR3 1600 8GB 2枚組 を購入。
wpid-dsc_0455.jpg

パッケージは周りをがっちり溶着されていた…。どうやって開けるんじゃ?と苦戦していたところよく見たら、なんか後ろにミシン目が入っている。そういう開け方だったのね。
wpid-dsc_0456.jpg

次はパソコンのカバーを外す。
wpid-dsc_0457.jpg
ネジは acer のシールの下に隠れている。これをはがしてネジを外さないといけない。で、これを外すと保証対象外になりますよと言うことらしい。ちょっと気が引けるが、うちのは以前にアダプタの部分が割れてしまい分解してアロン留めしたので、このシールはすでに穴があいてます。ここのネジ一本を外してスライドさせるとカバーは開きます。簡単だ。カバーを外すとこんな感じ。
wpid-dsc_0458.jpg

メモリーソケットは二つ。この2枚のメモリーを外して購入したのに差し替える。ちなみに、メモリーの横にいるクーラーの下にCPUがあるのだけれど、これを i7 に交換するという強者もいるみたいです。ネットで見ました。でもうちはそこまでしませんよっと。
wpid-dsc_0459.jpg
メモリーを差し替えたところ。
あとはふたを閉めて起動するだけ。起動してくれよっと祈りつつ電源ボタンをポチッと。BIOS設定で確認しようと思ったら素通りされて何もなかったかのように起動しました。さて、いくらで認識しているでしょうか。ということで確認。
スクリーンショット 2015-01-06 10.49.05

認識は以下のように16GBできちんと認識しています。但し、メモリーは DDR3-1600 なのですがDDR3-1333 として認識。まあ、これは仕方ない。CPUの仕様です。にしてもスロット2/4ってのが気になるけどなんだろね。
とまあ、パッケージを開ける苦労はしましたが増設自体は苦労なく成功しました。動作も快適。まだまだ使えます。コミットはやっぱり4~5GBあたりになってます。ていうことは、windows 8.1 を快適に使うには4GBでは少し厳しいということか。でも HP mini atom n550 では2GBでもそれなりに動くのにな~と思ってたけど、使い方が違うからそんな気がしてるだけかな。
これで不自由なく作業ができるはずだけど、あとは Bluetooth が安定してくれたらありがたいけどね。

とりあえず、最後に一言。
この増設は他のPCではどうなるか分からないので、もし試されるなら自己責任でお願いしますよっと。