2015年4月17日金曜日

RP-2基板作成

基板が上がってきたので部品を付けて動作試験をしていきます。
この基板はいろいろな用途の回路を盛り込んで作っています。盛り込んでいる機能は次のとおりです。
1.RaspberryPi2との接続(ATMega328pとは排他)
2.ATMega328p(RaspberryPi2接続とは排他)
3.2.1mmDCコネクタでの5V ACアダプタ対応
4.赤外線受光部
5.赤外線発光部
6.圧電ブザー
7.XBee接続
8.12keypad(0-9#*)接続回路(ATMega328p only)
9.人感センサー接続回路(ATMega328p only)
10.火災警報器等の接点出力の検知機能(ATMega328p only)
11.2.54mm pitchのユニバーサル基板

まずは、メインの用途である1,3,4,5,6,7の機能を盛り込んだ基板を作ります。
これまでRaspberryPiで組んでいたホームコントロールシステムの親機をRaspberryPi2で置き換えます。
 部品をマウントした基板(左)とRaspberryPi2(右)
これを組立てます。
下の白いアクリル板は箱に入れるための支持板 

これにアクリルをレーザーカッターで切り出して曲げ加工した物をケースにします。
 ケースの下側(左)とケースの上側(右)

ケース下側と基板を組んだところ

ケース上も組んだところ

物理的にはうまく出来そうです。

ところがそう簡単には行きませんでした。
赤外線リモコンの送受信回路はRaspberryPiのPCM IFを使って組んでいるのですが、RaspberryPiからB+になった時にP6の8pinコネクタ(NoMount)に出ていたGPIO28-31のALT2にあったPCM IFが無くなり40pinコネクタのGPIO18-21のALT0に移動しました。
これは判っていたので回路はそちらに接続するように組んでいたのですが、Raspi2上のプログラムを変更してもうまく動きません。PCM_FSに接続してある圧電ブザーが鳴っていないのとPCMの書き込み時にFIFO Fullで止まってしまってるのでPCM_CLKが入っていないと思われます。

GPIO28のALT2も選ばれていてGPIO18のALT0と入力がぶつかっているのではないかと疑ったのですがどうも違うようです。
丸一日悩んだのですが、どうもGPIOを直叩きしても出てないようでメモリダンプをしたりしてみるとレジスタっぽい値が出てきません。BCM2835からBCM2836に変更になった影響で何か変わっているのではないかとう疑いを抱き始めてメモリマップを眺めていて気が付きました。
DRAMのサイズが1GBになっているはずなのでPeriphralのアドレス空間であるはずの0x20000000はDRAM空間と重なっているではないですか。
あとはネットで検索していたら答えがありました。BCM2836ではPeripehral空間が0x3f000000に移動しているようです。
PCM IFを直叩きしているため罠にハマってました。
これを直したらちゃんと動き始めました。
apache2も高速になって快適です。

2015年4月10日金曜日

RP-2基板到着

基板が届きました。実は頼んだのは春節中の2/22でした。elecrowは2/25まで春節でお休みでしたので受け付けられたのは2/26。
2/22(日) 注文
2/26(木) 受付
2/27(金) 製造開始
3/10(火) 16:21 出来上がったと写真付きのメール、発送したとDHLのtracking numberの連絡
3/11(水)
1  Shipment picked up                              HONG KONG     22:04
3/12(木)
2  Departed Facility in HONG KONG                  HONG KONG     03:13
3  Arrived at Sort Facility HONG KONG              HONG KONG     05:15
4  Processed at HONG KONG                          HONG KONG     06:00
3/13(金)
5  Processed at HONG KONG                          HONG KONG     02:06
6  Departed Facility in HONG KONG                  HONG KONG     02:07
7  Transferred through TOKYO - JAPAN               TOKYO - JAPAN 08:58
8  Customs status updated                          TOKYO - JAPAN 09:02
9  Arrived at Sort Facility TOKYO - JAPAN          TOKYO - JAPAN 10:02
10 Clearance processing complete at TOKYO - JAPAN  TOKYO - JAPAN 10:29
11 Processed at TOKYO - JAPAN                      TOKYO - JAPAN 11:23
12 Departed Facility in TOKYO - JAPAN              TOKYO - JAPAN 11:31
13 Arrived at Delivery Facility in TOKYO - JAPAN   TOKYO - JAPAN 12:55
14 With delivery courier                           TOKYO - JAPAN 12:57
15 Delivered                                       TOKYO         14:44
と11日(土日を除くと7日)で製造、3日で届きました。

出来上がった基板です。

 A面     B面

B面のチップコンデンサのところをみるとセンターに打った点のシルクが若干ずれているのと、ユニバーサル基板部分のスルーホールのところの穴が銅箔に対して若干ずれていますが問題ないレベルです。
シルクの文字自体は綺麗に出ています。今回はviaはレジストをかぶせているので配線で使っている15mil(0.38mm)のviaにかぶっているシルクはちゃんと出ています。
GNDのベタパターンに打った23.6mil(0.6mm)のviaは穴が大きめなのでレジストで埋まらずシルクは一部欠けています。PadにはE-Testの痕跡が残っていて基板の脇にはマジックでチェックされています。
この仕上がりで10枚で送料込みで$34.71(この時のレートで¥4280)、1枚あたり428円なら満足です。

2015年4月3日金曜日

EAGLEでの出図

アートワークが完成したので、CAM出力します。
ElecrowのページからCAMファイルをダウンロードしてきます。
EAGLEのCAMディレクトリにコピーしてガーバーデータを作成します。
今回使用しているのはEAGLE7.2.0なのですが、そのまま作成するとEXCELLON形式のdrillデータの精度が1桁上がっているようでgarberViewerで見た時にdrillだけ10倍大きくなってしまいます。
それほどの精度は不要なので、Drills&HolesのOutputのDevice設定をEXCELLONからEXCELLON_24に変更します。
これでProcessJobを実行するとガーバーデータと同じスケールでドリルデータが出力されます。
OSXだとガーバーデータを確認出来るソフトはX-Window上のgarbvかKiCadのgarbviewくらいしか有りません。どちらかで目視確認して大体ちゃんと出来ていることを確認します。
確認できたらファイルをzipでまとめてelecrowのページでuploadします。
今回は10cm x 10cm 5pcsでも$11.50にしかならないので 10cm x 10cm 10pcs 2layer PCB $15.90を選択します。厚みは1.0mm,色はBlack,FinishはHaslにしました。
届くのが楽しみです。


2015年3月27日金曜日

EAGLEパターン作成

配置が決まり基板外形も決まったので、ボード図を作成していきます。
回路図エディタの上のGenerate/Switch boardボタンでボード図を開き、最初に外形図を作成していきます。
部品が全部左に並んでますが、まずは無視して部品面を上にして外形図を書いていきます。
次に、デザインルールを基板注文するElecrowからダウンロードしてきて読み込みます。
その後、Gridを0.5mmに設定して位置が決まっている部品を配置していきます。
ディスクリート部品が多い場合はGridを0.05inchに設定したほうがいいですが、SMDが多い場合は0.5mmで置いたほうがいいかと思います。
今回の場合、RaspberryPiとの接続の40pinコネクタと取り付け穴はRaspberryPi2と位置を合わせる必要があるので最初に置きます。
それから大体このへんに置きたいとう位置のあるDC-JACK,IR-LED,IR受光部、XBee、コネクタを配置していきます。
あとはできるだけRaspberryPiの40pinコネクタの外にその他の部品を回路の流れを考慮しながら配置していきます。
ラッツネットの線を見ながら部品の向きを大体合わせます。
配線ためにGridを0.1mm~0.05mmに設定します。
その後、自動配線を実行して大体の配線が繋がります。ただ、そのままでは結構無駄な配線が多いので気に入らない配線を剥がしては自分で引き直していきます。

で、出来上がりがこんな感じです。

2015年3月20日金曜日

EAGLE パターン外形図作成

最初に配置を考えて外形を描きます。
RaspberryPi2になってDisplay用のFPCコネクタが板端に寄ったためRP-1でコネクタの外側に配置していたXBeeが入りきらなくなってしまいました。
配置的にはEther,USBが出ている側にDC-JACK、その反対側に赤外線LED、赤外線受光部を配置したいのですが、USBのコネクタが増えたためDC-JACKはRaspberryPi2の横幅からはみ出した位置に置くことにしました。
EAGLEの無料版の制限で80x100mmで作成しなくてはならないのと、XBeeの上の部分はアンテナのため導電性のものは近くに配置出来ないという制限があります。
幅よりも高さ方向を低くしてケースを薄めにするほうがデザイン的に良いかと思うので、横に広げて回路を飛び出した部分に出来るだけ押し込めて、RaspberryPi2の上は工作出来るように2.54 pitchの蛇の目基板にしておきます。
いろいろ悩んだ末、このような配置にしました。
緑色が今回作成するRP-2基板、赤がRaspberryPi2です。RP-2基板は部品面が下を向く想定です。



2015年3月13日金曜日

EAGLE 回路図作成

回路図を書き始める前に基板に何を載せるかの構成を考えます。
今回はRaspberryPi2と接続するための40pinコネクタ、ZigBeeリモート制御用のXBeeモジュール、基板単体でIR-blusterとして使用するときのためのAVRマイコン、IR-BlusterのためのIR-LEDとIR-Remocon受光部、5Vを給電するための2.1mmDC-JACK、圧電ブザー、10key接続用のコネクタ、AVR書き込治具用のコネクタを載せることにします。
前回RaspberryPi TypeB用に作成したRP-1基板の機能とRP-1基板を利用して色々作った回路をそのまま載せることにしました。
使い方としてはRaspberryPi2に重ねてIRリモコンの送受信機能+XBee通信機能として使うもの、今回のRP-2基板上のAVRとXBee+IRリモコン送受信の中継器として使うもの、10キーを接続して暗証番号入力用に使うものの3通りを考えています。

ライブラリをひと通り作るのに結構時間がかかりましたが、ライブラリの部品を作成した後は既に前回の回路図や試験的に作ったものの回路図があったので回路図自体は30分くらいで書き終わりました。


こんな感じです。
左下の+が沢山並んでいるのは基板に並べる蛇の目パターン用のTHの記号です。
EAGLEはちょっと癖があって最初書きにくかったですが、慣れてきて要領がわかってくるとだんだんはかどり始めました。


2015年3月6日金曜日

EAGLE ライブラリの作成

回路図を書き始める前に最初に使用する部品を作成します。
プリント基板を作る場合、一番手間がかかるのはライブラリの整備です。作業の大部分はライブラリの作成と確認、あとは自動配線後の配線修正になります。
EAGLEの部品ライブラリの場合、回路図シンボル、Padのパターン、シンボルとPadのピン番号の対応を入力していきます。
回路図シンボルとPadのパターンを標準ライブラリから抜き出して自分専用のライブラリを作っていきます。
この時にピン番号のアサイン、Padの形状、サイズを確認しておきます。特にコネクタは1番ピンの位置と番号の振り方を確認します。この時にコネクタの1番ピンの形状を四角にして1ピンの位置がわかるようにします。
使用するC、Rは1608(0603)を選択しています。これは自分で手マウントできる限界が1005位なので1サイズ大きめを選びました。
表面実装部品のPadはハンダゴテを当てやすいように若干外に伸ばしておきます。
コネクタなどのTHのある部品はTHのドリル径とPadのサイズを確認します。
最後にシルクパターンを確認して終わりです。
使用予定の部品を全て作成したら次は回路図の作成です。

2015年2月27日金曜日

RaspberryPi2

RaspberryPi2が発売されたので置き換えを検討し始めました。
取り敢えずRS onlineに注文、3/9に届くそうです。
RP-1基板はRaspberryPi2ではコネクタなど色々配置が変わっているので繋がりません。
今回は色々回路を変えたところもあるので新しい基板を設計することにしました。
前回はP-ban.comで基板作成しましたが、最低でも数万円くらいはかかるので今回は中国の格安基板サービスelecrowを使ってみることにしました。
10cm x 10cmを10枚なら送料込で$34.71なので4千円台です。
CADはCadlusXではガーバーデータを出せないのでEAGLEを使ってみました。
EAGLEならMacでも使えるようなので、少し慣れてみようかと思います。
KiCadもちょっと興味が有るのですが、まずはelecrowでDesignRuleやCAMツールが用意されているEAGLEで作ってみます。

2014年12月19日金曜日

エコキュートの制御 その2

変換コネクタを作ったので繋いでみました。
これは裏側から見た写真です。

こちらは表側

この状態で制御してみると、ちゃんと動作しました。
HA端子のon/offで「ふろ自動」ボタンが制御されます。
HA端子のステータスも「ふろ自動」ボタンのLEDに連動して読み出せます。


とりつけました。


最後にカバーを付けて完成です。
これで風呂の給湯制御が出来るようになりました。
でも、風呂の栓と蓋を自動で出来ないのでいまいちだなぁ。
せめて栓と蓋がされていることを確認出来るようにできないか考えています。
ちょっと難しそうですが。



2014年12月7日日曜日

LEDガーデンライト その4

作ってみました。
結局センサー部は上の隙間から引き出すことで、LEDライトの透明部分にXBeeを収めることにしました。
こんな感じです。

収めたところです。


これで一日太陽にあてて動作すればOKです。