まごころせいじつ堂

浜町庄金 研究開発  マイコンで遊んでばっかりで

チームラボでハード屋さん募集中

【職人求ム】ハードウェアエンジニアを募集!チームラボ

 だ、そうですよ。このブログを見に来てくれる方は職種のマッチ度高いのでは?
 ハードウェアでなんか作る時にスポンサーが出資してくれるのはありがたいことですよ。
 

ML115G5の電源修理

 HPのPCサーバ、ML115G5の電源が入らなくなったのを修理した。
 電源のトラブルは多いみたい。HP-ProLiant-ML115 G5まとめwiki (電源)

 マザーボードを見てみるとATX電源コネクタ近辺の電解コンデンサが膨らんでるように見えるが、この程度の容量(100μF)が抜けたぐらいで起動しなくなるだろうか。切り分けのため、別のPCから外してきた電源を接続してみると電源が入った。つまりML115G5の電源ユニットが怪しい。
2013m3 
 ML115G5のATX電源ユニットを解体してみる。皿ネジ×6個でコの字型のシャーシが留めてあるのでそれを外し、電源ケーブルを傷めないようにずらす。ファン上部にある緑色の小さな基板がナベネジ×2で留めてあるのでそれを外す。(写真撮影時はさらにファンも外しました) 2013m1
 アルミの放熱板のすぐ近くに10V3300μF 105℃の電解コンデンサがあるが、膨らんでいる。これを手持ちの低ESR品 16V3300μF 105℃と交換した。  メインの基板裏側。電解コンデンサを外しハンダを取り除いた様子。 2013ml5
 交換後。16V3300μFは10V3300μFとくらべて太いので放熱板に接近し、ちょっと気になる。 2013ml6
 電源ユニットのリビジョンはA3。4台修理したがすべて同じ現象。電源修理後、memtest86+で軽く12Hほど動かしてみてOK。  取り外した電解コンデンサ。OSTとロゴが読める。4台とも同じように膨らんでいた。一部は液漏れの跡がある。 2013ml8
・この電解コンデンサの品質についてはこんなのがあった。コンデンサ 購入先・選択  今回使用したのは東信工業のUTWRZシリーズ。以前、千石電商で買ったもの。http://www.toshinkk.co.jp/product/alumi-k.html

フォトカプラのパッケージはなぜ白いのか?

twitterでこういうつぶやきがありましたので、興味を持って調べてみました。

 確かにフォトインタラプタだと発光部と受光部が外部に出ているので黒がいいのだが、素子の内部に発光部と受光部が埋め込んであるフォトカプラのパッケージはなぜ白なのだろうか。
 画像検索であたってみると、東芝製のフォトカプラが白いものが多い。そこで東芝セミコンダクタに質問することにした。

その前にフォトカプラについて。発光側はLED、受光側はフォトトランジスタや太陽電池などで受けることにより、制御する方(マイコン等)と制御される方(モータ等)を電気的に絶縁する役割を持つ。メーカーによりフォトスイッチ、MOSphotoスイッチなどと違う呼び名がある。

東芝

フォトリレー

松下電工

Photo MOSリレー

日本電気

光MOSFETリレー

沖電気

光MOSスイッチ

沖田製作所

Photo DMOS-FETリレー

HP

Solid State Relay

オムロン

MOS FETリレー 


動作原理などについてはメーカーの資料を参照のこと。
PhotoMOSリレーとは
ソリッドステートリレー概要

さて、東芝のカタログp.68〜69に図解がある。これらのうちシングルモールド型は白い樹脂、ダブルモールド型は内側が白い樹脂で外側が黒い樹脂。
47

 シングルモード反射型はLEDと受光器が同じ方向を向いている。モールド内部で光が反射して伝わる。 07


 シングルモールド対向型はLEDと受光器が向かい合っている。 29


 シングルモールド対向型フィルム入りはLEDと受光器が向かい合っている。さらにLEDと受光器の間にフィルムが挿入されている。これは絶縁電圧を高くする効果がある。 42

  ダブルモールド品は 内部が赤外光を通す白色樹脂で外側のみ黒樹脂の構造となっており、絶縁特性に優れているメリットがあるが、一般的に高価格というデメリットもある。 また、特許方面から調査したら 1992年、東芝の特許特許公開平6-21506 というのを見つけた。 薄型フォトカプラ これによると可視光による外乱を防ぐモールドを選び、LEDは赤外線を使っている。ここからは推測だが、リードフレームを曲げて対向となるように加工するのは難しく、リードフレームにLED、受光素子を並べて載せるしかなかったら天井で反射させるしかない。これが反射率の高い白いモールドを選んだのではないかと思われる。


 これはFAIRCHILDの素子。 2013fairchild
37
 Optoplanarと呼んでいるが、東芝のシングルモールド反射型に似ている。特許切れたのかな?

 とまあなぜフォトカプラは白いのかで調べてみたら面白かった。丁寧に質問に答えてくださった東芝セミコンダクタ&SSDのWEBユーザサポート窓口担当の方、ありがとうございました。
 

メモ:LPC810、LCD付きマイコン

 メモばかりですまん。懸賞でLPC810 mini-boardあたったので遊ぶ予定。

LPC810 (= DIP8_ARMマイコン) のフラッシュへの書き込みをシリアルインターフェースで行なう
「LPC810 (= DIP8_ARMマイコン) + LPCXpresso」で,Lチカ (LED点滅)プログラムを動かしてみる
 
LPC800 Mini-Kit


こんなのもある。LPC11U24+LCD
USBマイコン LPC11U24搭載 キャラクタLCDモジュール(16x2行)
lpclcd

マイコン徹底入門 簡単版:DFU(新版)
LPC11U14 LPCXpressoを使ってUSBを研究しよう! - USB研究部会 - (LPCXpresso週間)


LPC810でArduino API互換環境eXodusinoを使うまとめ
https://github.com/lynxeyed-atsu/eXodusino

メモ:PIC32MX関連

 メモばっかりですまん。最近買ったけど遊べてない。MicrochipDIRECTはすぐ届くよ。

Microchip、Arduino互換のchipKIT Fubarino Mini boardなどを発表 (マイナビニュース)

Microstick II
Fubarino Mini ChipKit
chipKIT™ DP32™

https://github.com/chipKIT32/chipKIT32-MAX/downloads



ArduPIC32: An Arduino PIC32MX JTAG Programmer!
PIC32MX220F032B クリスタル無し、内蔵FRCでUSB


メモ:PICAXE

 秋月電子に入荷したマイコンPICAXE。BASICで開発できる、マイコン使う時に煩雑なレジスタ類の初期化を意識しないでいいらしい。
 シリアルケーブルによる書き込みを行うが、TxDとRxDの信号レベルが反転しているそうだ。

PICAXE (本家)
PICAXE(ピカクス)を一般的なUSBシリアルで動かす
エレキジャックBASIC No.1 マイコン工作入門/学習に最適なワンチップ・マイコン・システム"PICAXE"(ピカクス)
 
Getting Started Flowcharts or BASIC? Windows, Linux or Mac?
 
PS/2キーボードがつなげて読み込めるらしい。
Home > BASIC Commands > Advanced I/O Interfacing > kbin > 
Home > Circuit Creator > Miscellaneous > PS2 Keyboard > 

S9705 照度ー周波数変換フォトICを使った照度計

 秋月電子で売っている照度ー周波数変換フォトIC S9705 を使った照度計を作った。

照度・周波数変換フォトIC 550nm S9705(2個入)

資料:S9705 (浜松フォトニクス)

作例:■簡易照度計V2(S9705) (電子工作etc) こちらによると、100lx=50KHzなので周波数を測定したあと÷500をするだけでよいとのこと。
 では、手持ちのArduinoでやるには周波数カウンタがあればよいわけだ。探したらライブラリがありました。
Arduinoで遊ぼう - 周波数カウンタ(なんでも作っちゃう、かも。)
Arduino Frequency Counter Library(Lab III)

 これはATMega328内蔵のカウンタを使ってArduino Pin5に入るパルスを一定時間カウントするもの。ゲートタイムを1秒に設定すればそのままカウント数が周波数になる。S9705の出力はデューティ50%で最大周波数は10Klxで1000KHz、とあるので充分。

2013photoIC
 Arduino IDE1.0.5で確認した。先程のArduino Frequency Counter Libraryからライブラリをダウンロードし、ライブラリをインストールする。MacOSXだとArduinoのアイコンを右クリックして「アプリケーションの内容を表示」をクリック、Contents→Resources→Java→Libraries以下にフォルダごとコピー。

 最初はまったのはArduino Leonardoで動作しなかったこと。ライブラリ中、defined (__AVR_ATmega328P__) という箇所があるので__AVR_ATmega32U4__と追加したらエラー発生。AVRのレジスタに関するシンボルが見つからないみたい。32U4もハードウェアとしてはカウンタを持っているはずなのでここをちゃんと定義してやれば使えそうだが、Arduino Unoに変えて楽することに。
 と思ったらヨソで使用中なので現在手持ちにArduino Unoがない。で、鳥人間のHarpy nanoがあったなあと引っ張り出してきて使用。マイコンボードはArduino Pro or Pro Mini (3.3V, 8MHz) w/ ATmega 328を選択する。S9705を3.3Vで使用することになるが問題ない。
2013photoIC3

スケッチは以下:サンプルを少し改変した程度。
#include <FreqCounter.h>

void setup() {
  Serial.begin(9600);                    // connect to the serial port
  Serial.println("Frequency Counter");
}

long int frq;
void loop() {
  FreqCounter::f_comp = 8;             // Set compensation to 12
  FreqCounter::start(1000);            // Start counting with gatetime of 1000ms
  while (FreqCounter::f_ready == 0);  // wait until counter ready
  frq = FreqCounter::f_freq;            // read result
 Serial.print(frq);                // 
 Serial.print(" ");                // 
 Serial.println(frq/500);                // S9705 100Lux=50KHz
  delay(80);
}
 これでシリアルコンソールに周波数と照度を垂れ流す。一応、同じく秋月電子で買った照度計で大きくずれてないか確認した。

2013s9705

メモ:mbed関連

 FRDM-KL25Z買ったけど積んだままなのでせめて各種リンクを

New $12.95 mbed-enabled Freescale board!

FRDM-KL25Z: Freescale Freedom Development Platform for Kinetis KL1x and KL2x MCUs

mbed FRDM KL25Z Getting Started


mbed FRDM KL25Z

mbedを始めましょう!("Let's get started!" in Japnaese)

ちょっと関係あるかもしれない
mbedで初めてのマイコン開発 メモリ・カードを使ったデータの読み書き<1/3>

【MSP430 技術 TIPS】MSP430静電容量式 タッチ・ソフトウェア・ライブラリの紹介

mbedをデバッグアダプタにしてみた(mbed-Link)

 http://mbed.org/cookbook/Networking

メモ:マイコン関係のリンク色々

 ブラウザのタブ整理。主にtwitter経由で知ったものをあとで読むつもりで貯めていたものです。

ArduinoをAVRライタとして使う
Arduino ISPを使う 
FT232Rモジュール利用 AVR TPIライター

Arduinoのライブラリを作るときの参考:
Arduinoの各種ライブラリ  
自作ライブラリの作り方 
 
開発環境:
embedXcode
MPIDE: One IDE to rull them all. (For Arduino and its varients anyway) 
Emuduino Emu(lator) + (Ar)duino Arduinoエミュレータ
ブラウザでArduinoプログラミング 
ino使うとCUIでArduinoをビルドできて便利

Arduinoで.hexファイルを出力する方法について
Issue 493: .hex export option 

I2C関連:
ArduinoでI2C通信をやる際のメモ
I2C block for ArduinoIO simulink package
ストロベリー・リナックスの低電圧I2C液晶をArduinoで使う
I2C液晶のArduinoライブラリ


その他:
V-USB Virtual USB port for AVR

Arduino + イーサネットシールド + LCDでFacebookページの「いいね数カウンター」をつくる
デザイナーがやる、はじめての電子工作(1):暗くなったらArduinoから自動的につぶやくおやすみメッセージ
参考)部屋の明るさをツイッターでつぶやいてみよう!

WIZ820ioをつかってみました

sparkfun OpenLog

AVRとZ80でCP/Mの改良 

Free Online Design Tools from Aspen Labs and Digi-Key Give Engineers an Edge in Online Printed Circuit Board Design 

バレルシフタ 2段にして改善(お詫び 大きな間違いあり)

追記:@ikwzmさんから。https://gist.github.com/ikwzm/5558633 
バイト単位でシフトすべきところを4bit単位でやってました。あああ
ご指摘ありがとうございました。

※前段の 8byteシフト間違ってる気がしてきた。多分3bit分を<<5した時点ですべて'0'になってしまってるはず

(1)組み合わせ回路のシフトについて、下xx bitを削っていくような間違いをしていました。書きなおしたのは以下。
https://gist.github.com/houmei/5555418

(2)<<演算子を使ったbyte shiftは、いったん幅[6:0]の下位3bitを'000'とし、上位にシフト量を入れることで書き直しました。
比較結果:
349LE/214.92MHz (Megafunction)
343LE/214.55MHz (シフト演算子)
291LE/335.46MHz (組み合わせ回路)
ただし、組み合わせ回路によるものは(1)の間違いあり。

反省:見積もりに検証していない回路を軽い気持ちで使うと大失敗

以下は間違いありです。


 扱うbit幅が大きくなるとLE数は増え動作周波数は落ちていくバレルシフタ。ここでシフト量を制限したらどうなるか傾向を見てみた。例えば1bitシフトする/しないだけなら大幅にセレクタ数が減るはず。
以下の様なコードでシフト量を1,2,4,8...と変えながら試してみる。上位モジュールからは
sll64_partial #6 SLL(source,value,sftout); // partial shift
の様に呼び出す。
module sll64_partial (indata,val,outdata);
	parameter width=6; //[6:0]
	input [63:0] indata;
	input [width:0] val;
	output [63:0] outdata;
	assign outdata=indata<<val;
endmodule
結果は以下のとおり。
 64bitを部分シフト
[0:0] 129LE/615.38MHz
[1:0] 136LE/413.56MHz
[2:0] 143LE/357.65MHz
[3:0] 210LE/270.71MHz
[4:0] 285LE/250.38MHz
[5:0] 384LE/223.31MHz
[6:0] 390LE/220.17MHz

では、最初にバイト単位でシフトして次にビット単位で8つまでシフトするようにしてみる。
シフト量のnnnnxxxのうち、nnnnはバイトでのシフト量、xxxはビットのシフト量とする。nnnnについてはシフトする量がデータ幅をあふれたらall0とする。


ソースはこちら:https://gist.github.com/houmei/5541783 

コンパイル結果は207LE/284.41MHzとなった。組み合わせ回路でべたに書いた283LE/105.06MHzよりよい。

※以下も怪しい
 もし、もっと追求するとしたらbit幅の組み合わせを変える(4-3を3-4)、段数を増やす(2-2-3)、一部組み合わせ回路にしてみる、など。やりだすときりがなくなるけど構造的な改善である程度の性能が出たらしばらく放置して他に着手したほうがいいかも。

 あと、QuartusIIにはMagawizard Plugin Managerというのがあって、用途に合わせたライブラリが使える。今回の用途にはGates→LPMCLSHIFTというのが使えた。verilogやVHDLのインターフェース部分がソースとして出力されるのでこれを呼び出して使用する。
記事検索
プロフィール

hardyboy

カテゴリ別アーカイブ
月別アーカイブ
QRコード
QRコード
  • ライブドアブログ