« 2014年3月 | トップページ | 2014年5月 »

2014.04.30

新しいスタッフが来てくれました

4月30日、特電に新しい事務のスタッフが来てくれました。

今はまだ前の勤務先との掛け持ちだそうで、GW開けくらいまではあまり来られないのですが、5月末ごろから特電専属でやっていただけるとのこと、とても心強いです。

とりあえず、特電の現状や商品を説明して、パソコンをセットアップして、プリンタをセットアップして、佐川急便の伝票印刷ができるようにしたりしていたら、あっという間に時間が過ぎてしまいました。

新緑の季節、芽吹いた木の葉が輝くように、特電も少しずつにぎやかになってきました。

| | コメント (0)

2014.04.29

MicronのMT9T031CでもAXI-USB3.0カメラ

MicronのMT9T031C評価モジュールに、特電Artix-7ボードをつないで、USB3.0カメラを作ることができました。

こんなごつい装置です。

Mt9t031c_3

MT9T031Cは、Micron(現Aptina)のCMOSイメージセンサで、2048×1536というハイビジョンのカメラです。

撮れた画像はこんな感じ。

Mt9t031c_1Mt9t031c_2

非常に感度が高いカメラなので、暗いところでもはっきりと取れます。

OV7670やOV9655と比べるとその差は歴然としています。ただ、MT9T031Cモジュールの値段は3万8000円くらいしますし、Digikeyでも在庫切れなので現時点での入手は難しいと思います。私は4年くらい前に購入しました。

2048×1536ピクセルを12fpsだと、1ピクセルを8bitにした場合、37MB/secとなるのでUSB2.0ではぎりぎり厳しいラインになります。こういう場合はやはりUSB3.0がよいのではないかと思います。

こういったカメラで遊んでいると、やはりRGB各8bitではダイナミックレンジが足りないと思うときがあります。夜の室内で、暗いところが見ようと絞りを開くとも白いところが飽和したりします。やはり10bitで撮ることが必要なのかもしれないと痛感しています。

今回の実験で使ったUSB3.0 AXI版CMOSイメージセンサキャプチャのFPGAのデザインは、こちらのURLにおいておきます。当社のお客様であれば無償でダウロードできます。

どうぞお試しください。

MT9V031Cは入手困難ですが、OV9655やOV7670のモジュールはaitendoさんで安価に購入できます。画質から言って、OV9655のほうがおすすめです。

| | コメント (0)

2014.04.27

OV9655で作るAXI USB3.0カメラ

Artix-7ボードにCMOSイメージセンサのOV9655をつないで、USB3.0でキャプチャする回路を作りました。

Ov9655_1Ov9655_2

昨日のOV7670カメラと似ているのですが、以下のような違いがあります。

  • 入力したクロックXCLKに対して2分の1のクロックPCLKで動作する
  • 横3040カウント、縦1025カウント

Ov9655_3_2

横が3040で有効画素が1280だと、ブランキング期間がすごく長いのでは.と思うはずです。でも、オシロでHREFを見てみると、だいたい80%ぐらいが有効期間になっています。

画像データをよくみると、ABABCDCDEFEF…というふうに、同じものが2回出力されています。それゆえ、3040クロックの中で1280個分の画像が出力されているようです。

ですが、最初は1個、最後は3個ですので、少しずれて次のようなタイミングで画像が出力されているようです。

Ov9655_4

もともと10bitのデータバスで、2クロックかけてRGB565フォーマットとかで1画素を送るカメラなので、こういうものなのでしょう。

ただ、OV9655は動かすことは簡単なのですが、OV7670の感覚で動かすと毎秒4フレームくらいしか出ません。これを毎秒15フレーム出すには次のようにします。

  1. クロックに48MHzを与える(実際には50MHzでも動いてしまった)
  2. I2Cでアドレス0x11のレジスタに0x40を書く(PCLK=XCLKになる)
  3. I2Cでアドレス0x12のレジスタに0x00を書く(RAW RGBモードになる)

これで毎秒16フレームくらいになります。

キャプチャした画像をいくつか参考に乗せます。

1個目はその辺にあった基板の写真です。OV7670と比べると断然綺麗です。

Ov9655_picture

蛍光灯のデスクライトで明るくすると、とても綺麗に、鮮明な画像になります。

Ov9655_picture2

夜間の部屋の明るさ程度ですと、少し縦縞が見えます。

Ov9655_picture3

現在の市販のデジカメには到底かなわないものの、手軽なCMOSイメージセンサとしては十分な画像が得られると思います。

OV7670とOV9655で悩んだら、断然、OV9655のほうが良いと思います。

| | コメント (0)

新しいオシロを買った

3月に東洋計測器ランドさんに注文しておいたアジレントのオシロ MSO-X 2024Aが届いたので、早速電源を入れて試してみました。

注文したとき、納期6週間と言われたので悩みました。注文当時、どこか外国の港にあったようで、船便で来るから時間がかかるとのことでしたが、待っていた甲斐がありました。

2GHzサンプリングで、200MHz帯域、4chのオシロです。

Newosc

上の波形はDDR3メモリの制御線の何かです。

サクサク動いてとても快適です。拡大縮小もスムーズ。

時間軸調整でゼロに合わせるときも、吸い付くようにゼロに合います。

19.2MHz水晶振動子の波形を取って、リアルタイムにFFTしたり、いろいろできそうです。

Wave1

SPIやCANの波形解析機能が30日間無料で使えるようなのですが、なんかもったいないので、オプション機能を使うのはまだやめておきましょう。

新しいオシロを使っていたら、一人一台机の上にオシロがあったほうがいいと思えてきました。アルバイトのスタッフ用に少し安いやつをもう一台買おうかな・・

| | コメント (0)

2014.04.26

EZ-USB FX3のAXI版IPコアの開発

お待たせいたしました。EZ-USB FX3のAXI版IPコアを開発しました。

このコアを使うと、パソコンのソフトウェアから

TKUSBWriteData(unsigned long addr,unsigned char *data,unsigned long len,unsigned short flag);
TKUSBReadData(unsigned long addr,unsigned char *data,unsigned long len,unsigned short flag);

という関数を実行することで、FPGAの中に入れたUSB3.0-AXIからそのトランザクションを発行してくれるというものです。

引数のaddrというのは、AXI-4のバスに出てくるFPGA側のアドレス、dataは送受信するバッファ(PC上のメモリ)のアドレス、lenは転送長、flagはFPGA内でのデータの配送先を指定する汎用フラグです。

サンプルデザインはこのような構成になっています。

Artix7axi_1

FX3_AXIというのが今回作ったコアです。特徴は、

  • AXI-4のマスタとして働く
  • AXI-4のデータバスは現在は64bit固定(DDR3メモリコントローラに合わせた)
  • 最大4GBまでのトランザクションを発行できる。(当然ながら小さな複数のAXIトランザクションに分割して発行します)
  • AXIポートのほか、もっと簡単に回路を設計するための「BRAMインタフェース」と「汎用レジスタ入出力」も備えている。

です。

サンプルデザインとして、OV7670のカメラから取り込んだ画像をDDR3メモリに溜め込み、それをUSB3.0経由で読み込むというデモを作りました。OV7670はVGAなので、速度的にはUSB2.0でも全く問題ないのですが、あえてUSB3.0にしてみました。

特電Artix-7ボードに、aitendoのカメラ基板を変換基板を介してつないでいます。

Artix7axi_2

Artix7axi_3

Artix7axi_4

撮れた画像はこんな感じです。

Ov7670_picture

あまり綺麗ではありませんが、それはOV7670の絵がもともととても汚いからです。

I2Cでレジスタをいろいろ操作して、なんとかこの画質です。

次はOV9655やMicronのカメラを試してみます。

| | コメント (0)

2014.04.22

内層クリアランスに注意

多層基板を設計していると、厄介なものとして内層クリアランスというのが出てきます。

多層基板は下の図のように、内層のベタ層と表面の層をビアで接続します。

Clearance1

ビアに接続しないベタ層はビアからかなりの距離を離さなければなりません。これが内層クリアランスです。

どのくらいなのかというと、P板.comでは原則として0.5mmです。たとえば、Via穴の直径が0.3mmだと、内層クリアランスは直径1.3mmの巨大な空隙をベタ層に空けることになります。

なんでこんな巨大な空隙が必要なのかということなのですが、メッキ液が滲み出してくるからというのを聞いたような聞いてないような気もします。

0.8mmピッチのBGAの電源を内層クリアランス0.5mmで設計した場合、こうなります。

Clearance05

BGAのパッドは0.8mm間隔で並んでいて、その中心にViaが来ます。 Via穴の直径は0.3mmなので内層クリアランスの端がちょうどとなりのVia穴の淵をかすめます。

こういう場合、信号のViaと信号のViaに挟まれたGNDのViaには電流が流れることができるのでしょうか?きっと少し潜ってViaの壁を流れるのでしょうけど、気持ちが悪いものがあります。

Clearance2

P板.comの仕様書をよくよむと、Via穴の直径が0.3mmの場合は内層クリアランスは0.4mmまで小さくしてよいという特別ルールがあります。

すると、こうなります。

Clearance04

Viaの淵にちゃんと銅箔が残るので、なんとなく安心できます。

まとめると、

  • 内層クリアランスは意外とでかい。
  • 0.5mmのルールでも、0.8mmピッチBGAの電源配線はできる
  • 0.4mmにすればViaの横に0.1mm幅の銅箔が残る
  • 0.5mmでも0.4mmでも、Viaが隣り合うと内層ベタは分断される。

ということです。

| | コメント (0)

RXduinoをEclipseで開発する方法 2014年版

あるお客様からRXduinoのアプリをEclipseで開発したいがエラーが出て止まってしまうというお問い合わせをいただきました。

そこで、実際に手順を試してみました。

① Cygwinの32bit版をダウンロードする

Cygwinには32bit版と64bit版がありますが、rx-elf-gccが32bit版のバイナリであって、各種ライブラリもすべて32bitで作っているので、Cygwinは32bit版が必要です。

http://www.cygwin.org/

② rxduino-src-v108をダウンロードする

現時点で一応最新のV108をダウンロードしてください。

http://rx.tokudenkairo.co.jp/download.html

そのほか、RX-ELF-GCCバージョン4.6.1 最終更新日 2011/7/20も必要です。EX-ELF-GCCは解凍して、/usr/local/tkdn-20110720に配置しておきます。

③ Eclipseをダウンロードして解凍する

EclipseのWebサイト(http://www.eclipse.org/downloads/)から

Eclipse IDE for C/C++ Developers, 143 MB

というのをダウンロードします。

Eclipse_download

↑のバナーのものです。 インストールしなくても解凍したフォルダ上でそのまま起動できるようです。

④ JAVA実行環境をダウンロードしてインストールする

JAVAをダウンロードしてインストールします。Windows オフライン (64ビット) またはWindows オフライン (32ビット) をお使いのマシンに合わせてインストールします。

http://java.com/ja/download/manual.jsp

⑤ Eclipseを起動する

Eclipseを最初に起動したとき、workspaceをどこにするかと聞かれます。workspaceとは一時ファイル等が格納されるディレクトリで、どこにあっても良いです。

Eclipse_workspace

とりあえず、C:\cygwin\home\user\workspaceに配置しておきます。

起動するとWelcomeという画面が出るので、タブの×印をクリックして閉じます。

Eclipse_welcome

すると、その下に空のプロジェクトがいます。最初にWelcomeを容赦なく閉じるという手順はなかなかわかりにくいものがあると思います。

Eclipse_blankproject

⑥ プロジェクトをインポートする

Fileメニューの中にあるImportを実行します。

Eclipse_import_2

そして、C/C++の項目を開いて、Existing Code as Makefile projectを選択します。

Eclipse_import2

そして、Project Nameには適当な名前(testapp)を付け、Existing Code Locationにはrxduino-src-v108を解凍した場所、Toolchain for Indexer SettingsにはCross GCCを選択します。

Eclipse_import3

これでFinishを押せばプロジェクトが読み込まれて、使用可能になります。

Eclipseのプロジェクトツリーにはrxduino-src-v108配下の全ファイルが登録されてしまうので、ちょっと見にくいですが・・

Eclipse_import4_2

⑦ パスを通す

この段階でEclipseのビルドボタンを押してもまずうまく通りません。パスが通っていないからです。

たとえば、私はBorland好きの人間なので、CygwinのMakeよりも先にBorlandのMAKEが走ってしまい、何もビルドされません。

Eclipse_path1

パスを通してやる必要があります。

Eclipseでプロジェクトのプロパティを開いたら、C/C++ BuildのEnvironmentのPATHのValueを開きます。

Eclipse_path2

こんなダイアログが出ます。

Eclipse_path3

D:\Users\user\Desktop\eclipse-cpp-kepler-SR2-win32-x86_64\eclipse;C:\PROGRA~2\Borland\CBUILD~1\Bin;C:\PROGRA~2\Borland\CBUILD~1\Projects\Bpl;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\cygwin\bin;C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\bin\;C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\jre7\bin\;・・・・・\

と延々と続くのですが、先頭にC:\Cygwin\bin;を付けてやります。これでCygwinのツールが先に起動するようになります。

C:\Cygwin\bin;D:\Users\user\Desktop\eclipse-cpp-kepler-SR2-win32-x86_64\eclipse;C:\PROGRA~2\Borland\CBUILD~1\Bin;C:\PROGRA~2\Borland\CBUILD~1\Projects\Bpl;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\cygwin\bin;C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\bin\;C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\jre7\bin\;・・・・・\

⑧ Makefileの書き換え

次に、EclipseのプロジェクトからMakefileを開きます。文字化けしているのはUTF-8とかそういう問題です。次回のrxduino-src-109からUTF-8にしますので、今はご容赦ください。

Eclipse_make

このMakefileファイル中のCCPATHのコメントを外します。

#CCPATH = /cygdrive/c/cygwin/usr/local/tkdn-20110720/rx-elf/bin/

CCPATH = /cygdrive/c/cygwin/usr/local/tkdn-20110720/rx-elf/bin/

にします。

⑨ ビルドしてみる

これでビルドしてみると、

Eclipse_build1

が、

Eclipse_build2

になって、userapp.elfとuserapp.motが出来上がっていることがわかります。

Eclipseのコンソールには

Eclipse_build3

と表示されていて、rx-elf-gcc,rx-elf-ld,rx-elf-objcopyが使われたことがわかります。

⑩ 書き込みと実行

あとは、できあがったMOTファイルを書き込めば・・

Rxduino_prog

無事に起動します。

Rxduino_run

ということで、デフォルトのプロジェクトをEclipseでビルドする方法を書いてみました。

 

 

| | コメント (0)

特電FX3評価ボードの新リビジョンを設計

CypressのEZ-USB FX3の評価ボードで、「特電FX3ボード」というのがあります。

Ezusb_fx3_board

この基板が新しくなって復活します。

何が変わるかというと・・・

① I2C ROMが4個乗るようになります

今までのFX3ボードではI2C ROMは1個でした。I2C ROMは最大1024kB、つまり128kBしかありません。FX3のファームウェアは普通に作ると131kBくらいになるので、つまり、普通にビルドしたらI2C ROMにはFX3のファームウェアが入りきりませんでした。これはFX3の根本的な仕様の問題だと思うのですが・・

そこで、4個乗せられるようにします。

Fx3_i2c_4

これなら512kBの容量になるので、どんなファームウェアでも大丈夫なはずです。

② UARTとSPIの切り替えを楽にする

今の基板ではSPIとUARTの切り替えはジャンパピンで行っています。でも、これは結構面倒・・ なのでスライドスイッチにします。

Fx3_spi_uart

といっても、メカニカルにSPIとUARTを切り替えているのではなく、基板裏面にFETバススイッチを乗せています。だから、GPIOからジャンパ飛ばせば電気的に切り替えることも可能です。

手動で切り替える部分のスイッチは、これです。

Js202011scqn

一部の人には見覚えがあるかもしれません。

こんなに在庫があるので少しでも使いたいのです。

Js202011scqn_reel

リビジョンアップ後の基板はこんな感じになる予定です。

Np1052b

今回のリビジョンアップによってUARTが使いやすくなるので、FX3ファームウェアの開発は一段と楽になると思います。なぜなら、

SPI ROMから起動すると・・

→ FX3起動後にスライドスイッチでUARTに切り替えられる

I2C ROMから起動すると・・

→ スライドスイッチを常にUARTに切り替えておけばよい

というわけです。

| | コメント (0)

2014.04.21

春の学生アルバイト大募集!

このたび、特殊電子回路では電子回路のエンジニアのアルバイト大募集します。

Office_2 いままで事務の方は求人サイトを通じて素晴らしい方に巡り合えてきたのですが、やはり、電子技術エンジニアの方は、当ブログや特電のホームページをご覧になっている方の中から選びたいのです。

なぜなら、特殊電子回路のエンジニアに求められる第一の条件は、「電気・電子が大好き」なこと。

こういう方はなかなか一般の求人サイトでは巡り合えませんので、ブログを通じて案内させていただいています。

一般の求人サイトで電気電子エンジニアを集めると、「電気電子が別に好きではないけど仕事だからやっている・・」という方や、定年退職した方がいっぱい集まってくるので、もう・・

今、特電にはどんなお仕事があるのか、具体的にというと・・

【FPGAの設計】

ZYNQやArtix-7、Spartan-6など特電製品のアプリケーションを作っていただきます。特電のIPコア(PCI ExpressやUSB3.0、SATAなど)をAXIバスに対応させたり、Vivado、Vivado HLSへの対応を行います。

【電子回路設計・基板設計】

新製品の設計です。ちょっと難易度は高めですが、低ノイズなアナログ回路、高速なディジタル回路の設計のノウハウを教えます。

Kairo_2

【組み込みソフト開発】

主にZYNQや、MicroBlaze、RXマイコンのアプリケーションを作ります。特電では現在、ZYNQを使った高速ADC装置を開発しているので、そのお手伝いをしてくれる方大歓迎です。

また、RXduinoをさらに発展させていただける方も大歓迎です。

Develop

【Windowsアプリケーション開発】

MITOUJTAGの次のバージョンの開発をお手伝いしてくれる方、求めています。

もちろん初心者でも構いません。最初は誰でも未経験者です。

学生アルバイトでもできるように、最初は簡単なところから徐々に難しい仕事をお願いしていきます。特電では人を育てるという方針でやっていますので、経験を積むにつれ、できる仕事を徐々に増やしていっていただきます。

アルバイトとして求める人材はズバリ、

  • 大学生または大学院生
  •  

  • 電気電子が好きで、趣味でもやっている
  •  

  • 積極的な性格で、リアルな世界で活躍している

です。ただし、学業優先なので週5日来ますってのはダメです。ちゃんと学校に通って卒業してくださいね。

ちょっとでも興味がある方はこちらのページをご覧ください。

http://www.tokudenkairo.co.jp/jobs.html#kyubo

特電でアルバイトするとこんなメリットがある

特電でアルバイトするとこんなメリットがあります。

  • FPGAの設計方法等や、プログラミングのやりかたは丁寧に教えます。回路設計の勘所やノウハウなどは、社長の「なひたふ」自らが教えます。
  • 電子工作を趣味でやっている方には、電気電子困っていることがあれば「なひたふ」が診て、アドバイスします。
  • 秋葉原から徒歩5分の好立地。昼休みや終業後に秋葉原に行けます。
  • MITOUJTAGや、Artix-7、ZYNQ、XILINX ISE、Vivadoなどの最先端のツールやハードウェアが使い放題です。
  • ほぼ毎週行われている社内勉強会では、電気電子だけでなくマーケティングなど、いろいろな分野の知識を学ぶことができます。
  • 大学生・大学院生でも電気電子業界での実務経験を積むことができます。当社の経験は履歴書や職務経歴書に書くことができるので、将来の就職活動が圧倒的に有利に進められるようになります。

有意義な大学生活を送るためにも、ぜひとも特電のスタッフとなって一緒にやっていきましょう!

機材はお貸しします。頭脳はお貸しください!

簡単に申し込める応募フォームを作りました

今までは「メールで履歴書をお送りください・・」だったのですが、このたび「申し込みフォーム」を作りました。

Kyujin

話題のBootstrap3 というのを使って綺麗にまとめてみました。

なぜ今回からフォームにしたかというと、

  • メールで履歴書を送るようにすると、最初の選考の段階で不必要に多くの個人情報が集まってしまい、よくない。
  • 自宅にパソコンがなくて履歴書をメール添付で送れない方が意外と多い
  • スマホからでも気軽に申込みできるようにするため

それからもう一つ大きな理由があります。実は1月から求人サイトに求人広告を出していたのですが、「志望動機」や「自己アピール」のない履歴書を送ってこられる方が意外と多かったのです。志望動機や自己アピールがないと、何で当社で働きたいのかわからないし、どんなスキルを持った方なのかわからないので、選考のしようがないのです。だから、フォームにしてこれらを必ず書いてもらおうとしたという経緯もあります。

これらの欄で熱意を伝えてきていただいているかどうかが、選考の80%くらいの割合を占めます。

あと、残念ながら不採用となった方でも、どうしても特電で働きたいという方は、日を改めて再度お申込みください。熱意のある方で、不採用となったときの理由が解消できていればぜひとも当社のスタッフとなって一緒にやっていきたいという方も多くいらっしゃいます。

電気電子が好きな皆さん、ぜひとも特電のスタッフになって力をお貸しください!

そして、世の中をあっと驚かせるような新製品を一緒に創っていきましょう!

あなたの電気が好き、という熱意をお待ちしております!

| | コメント (0)

2014.04.17

Visual Studio Expressで64bit版DLLを作成してみる

特電Spartan-6ボードのEZ-USB FX2用ライブラリを64bit化してほしいという依頼をいただきました。そういうわけで、やってみます。

いままではBorland C++でDLLを作っていたのですが、64bit化なのでVisual Studioを試してみることにしました。さて、Express版の2010をインストールしたことがあったので、64bit版のDLLを作ろうとしたら、x64の構成がない・・

Express版ではデフォルトで32bit版しか入っていないので、64bitのコンパイラは後から入れなきゃならないのです。ネットでいろいろと情報を得てきました。

① Windows SDKのダウンロード

まず、「2010-09-27 Visual C++ 2010 Expressで64bitコンパイル(http://d.hatena.ne.jp/torutk/20100927/p1)」という記事を参考にしてWindows SDKをインストールします。必要なのはMicrosoft Windows SDK for Windows 7 ant .NET Framework4というものです。 GRMSDKX_EN_DVD.isoをダウンロードしてきて、ISOファイルをマウントすればCD-ROMに焼かなくても実行できます。

ただし、そのままではインストールできません。途中でエラーになってとまってしまいます。

② 既存のRedistributableの削除

原因と対策は「Windows SDK for Windows 7.1 をインストールするとエラーが発生する(http://www.projectgroup.info/tips/Others/comm_0004.html)」に書かれていました。

Windows SDK for Windows 7.1をインストールする前に、Microsoft Visual C++ 2010 x86 Redistributableと、Microsoft Visual C++ 2010 x64 Redistributableをいったんアンインストールしておく必要があるようです。

③ 改めてWindows SDKのインストール

これでWindows SDKがインストールできるようになるのですが、先のサイトによるとVisual C++ Compilers選択せずにインストールし、あとから更新プログラムの形でVisual C++ Compilersを別途インストールするようです。

まず、SDKをインストール。

X64dll_1

そして、Windows SDK 7.1 用 Microsoft Visual C++ 2010 Service Pack 1 コンパイラ更新プログラム(http://www.microsoft.com/ja-jp/download/details.aspx?id=4422)をダウンロードしてインストールすればOKです。121.0 MBです。

④ Visual Studioを64bitアプリの構成にする

プロジェクトで、構成マネージャを開き、プラットフォームの<新規作成>をやります。

今までは32bitしかなかったのですが、上のSDKがうまく入ると・・

X64dll_2

このとおり、x64とItaniumが選べるようになります。

X64dll_3

プロジェクトの構成はこうなります。

X64dll_4

これでコンパイラは64bit版になりました。

⑤ リンクに関するプロジェクトの設定

あと2か所、設定しなければならないところがあります。構成マネージャの全般のここと、

X64dll_5

リンカの中のここです。

X64dll_6

⑥ LIBファイルの置き換え

なお、いままで使っていた.libファイルもいろいろ置き換える必要があるみたいです。

CypressのAPIを使う際に必要なSetupAPI.Libは、

  • C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\x64\SetupAPI.Lib

をコピーしてきてリンクします。

また、CyAPI.libは

  • C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\library\cpp\lib\x64\CyAPI.lib

を使うのだと思います。

⑦ いざビルド

これで、晴れてビルドが通るようになります。

X64dll_7

出来上がったDLLが本当に64bit版になっているかどうかを調べるには、dumpbin.exeを使います。

dumpbin.exe /HEADERS ファイル名 と打てば、

X64dll_8

このように(x64)であることがわかります。また、/EXPORTSを付ければ、DLLがエクスポートしている関数名も表示されます。

しかし、32bit版のソースをそのまま64bit版コンパイラでビルドしてDLLを作り、アプリケーションを作って動かしてみたところ、停止してしまいました。

X64dll_9

何も考えずに移植したのですが、きっと何か間違っていることがあるのでしょう。ポインタのサイズとかかもしれません。

| | コメント (3)

2014.04.16

ZYNQのADCボード DDR3 SDRAMの配線がほぼ完了

DDR3 SDRAMの配線がほぼ終わりました。

Zynq_adc14

疲れました。

前回の状態から右に5mm、上に5mm程度動かしました。

ZYNQの左上からイーサとかSDカードの信号とか出てくるので、その配線の場所をあけるためです。

このぐちゃーっとした感覚が基板マニアには堪りません。

Zynq_adc15

| | コメント (0)

2014.04.14

18bit ADCボードの実装が上がった

量産、といっても4台だけですが、18bit ADCボードの実装が上がってきました。

Ad18_4pcs

早速、測定してみましたが、問題なく動作しました。ノイズレベルは46μV(≒1.5LSB)程度で、手半田したものと全く同じでした。18bit ADCの性能がフルに活かせています。

Ad18_4pcs_4

とりあえず製造したのは4台だけですが、そろそろ発売に向けて頑張っていきたいと思います。

Ad18_4pcs_1

ノイズレベルも清浄です。

Ad18_4pcs_3

特電のスタッフが、電動ドリル1本でアルミのケースを削ってケースを試作してくれました。これで金属ケースに納めて動作試験することができるようになりました。いずれタカチのカスタム加工サービスで作る予定です。

Ad18_4pcs_2

で、金属ケースに入れたらノイズが増えるか、減るか?どちらだと思いますか?

答えは、・・

減りも増えもしません。金属のケースは静電シールドの役割は果たしますが、数百kHzの電磁波に対してはあまり効果がありません。

ノイズ対策的な効果はあまりありませんが、ケースに入ると壊れにくくなって、何より、かっこよくみえます。

| | コメント (0)

ZYNQではバイパスコンデンサが不要なのか?

FPGAは電源端子がたくさんあって、非常に多くの小さなバイパスコンデンサを入れなければならないというのがいままでの常識でした。

だから、基板を小さく作ろうとすると、FPGAの裏は

Pcb_bottom

こんなふうになってしまって、裏面に配線を通すどころではありません。

でも、ZYNQではこれらの小さなコンデンサがいらなくなりました。いままで0.1uFや0.01uF、0.47uFといった小さなサイズのバイパスコンデンサをびっしりとFPGAの裏に付けていたのが、ZYNQでは不要になったのです。

ZYNQではパスコンが不要というのは、ある意味正しいです。

詳しくはユーザガイドのug933の第3章に書かれているのですが、ZYNQでは端子ごとに小さなコンデンサは必要とされず、I/Oバンクや電源の種類ごとに330uFくらいの大きなコンデンサが1個ずつ必要になりました。

PL部の要求されるコンデンサは、

Zynq_cap_pl

となっています。基本的に、大きなコンデンサ1つと小さなコンデンサ1つあるいは0個といった感じです。

XC7Z020 CLG484よりも、XC7Z030 FFG676のほうが要求されるバンクごとのコンデンサが少ないというのは面白いですね。おそらくパッケージが大きいと、より多くのコンデンサを中に入れられるのでしょう。

ZYNQ020では各バンクのコンデンサは1個の47uFにまとめてよいとも書かれています。

PS部はこんな感じです。

Zynq_cap_ps

どうように、大きなコンデンサを1つと、各種サイズのコンデンサを1つずつといった感じです。

さて、ここで求められるコンデンサの特性ですが、330 μFのコンデンサでは、ESLが2.0nH以下、ESRが5 mΩ~40 mΩとなっていて、推奨品番がT525D337M006ATE025となっています。タンタルや酸化ニオブコンデンサがよいとされています。

sun

一方、Spartan-6のころは、・・・

Sp6_cap

バンクI/O電源ごとに3個とか4個とか必要とされていました。

sun

ZYNQでは大きな低ESRコンデンサを少数置けばよく、細かい大量のコンデンサはほとんど不要というわけです。このことが、プリント基板の設計をとてもやりやすくしてくれます。

今日の夜にはコンデンサの配置を考えてみようと思います。

| | コメント (0)

2014.04.13

ZYNQのADCボード DDR3 SDRAMのコツ

今日も現実逃避として、ZYNQのADCボードの設計をやっています。

Zynq_adc12

ボードの配線をしている間、いろいろなことを忘れ、本来やらねばならないことから目をそらすことができます。

さて、DDR3 SDRAMの配線のコツがわかってきました。

コツなどないのです。ガンガン引くのみです。

Zynq_adc13

6層基板あればこのとおり。ほぼ配線が終わりました。

上の図の左上の未接続部分はGigabitEtherやSDカード用の信号、ブート選択が出ていますので、SDRAMの塊を、もう少し右にずらしたほうがよかったかもしれません。

実際に回路を考えつつ、わかったことは、

  • ZYNQのPSのメモリは最大1GBまでしかサポートされていない。つまり4Gbitサイズの16bit幅DDR3 SDRAMを2個というのが最大構成である。
  • 4GbitのDDR3 SDRAMのアドレス線はA14までしかない。A15というピンはZYNQにはないから、引く必要がない。
  • DDR3 SDRAMのクロック(CKとCK#)は2つのSDRAMに共通で与えなければならない。
  • ODTは2つのSDRAMで共通で使われる。
  • BGAのピン間2本で引き出さないと配線がかなりきつい。ピン間2本で引き出せば、6層でいける。つまり、0.1mmルールの6層板で十分。

なお、ZYNQにはパスコンが必要ありません。正確に言えば、0.1uFや0.01uF、0.47uFといった細かいパスコンは不要で、低ESRの100uFとかの大きいやつをバンクごとにおいておけばよいのす。

それゆえ、基板の裏面がかなり自由に使えます。これは、とてもありがたい仕様です。おかげで基板の配線がすごくやりやすくなっています。

| | コメント (0)

ZYNQのADCボード DDR3 SDRAMのデータ線

ZYNQのADCボード DDR3 SDRAMのデータ線を配線した。

データバスは32bitで、この配線自体はそれほど難しくはなかった。

FPGAのボール間隔が1.0mmピッチなので、ピン間2本引き出すことができ、またデータバスはバイト内で入れ替えてもよいのでそれほど難しくはなかった。

Zynq_adc11

問題は制御信号とアドレス線。これが難しい・・

2個並べているDDR3 SDRAMの両方に同じ信号をつながなければならないが、横の配線がいっぱい並ぶことになる。このポリシーが決められないでいる。

なかなか良いプランがみあたらない。

| | コメント (0)

2014.04.11

ZYNQのADC、いよいよDDR3 SDRAMへ・・・

ZYNQのADCボードで、ようやく高速ADCまわりの配線が引けました。

Zynq_adc9

さて、次はDDR3 SDRAMなのですが、どうも配線の方針が思いつきません。

ZYNQの性能を最大に活かすにはデータバスは32bit幅でなければなりません。16bitのDDR3 SDRAMを横に2個並べるわけですが、アドレス線や制御線は2個のSDRAMで共通に使われます。

Zynq_adc10

0.8mmピッチですから、0.8mmの間に4本の横線を引かなければならない。ビアを考えると配線層が4つ必要になります。

だから、6層基板だと、SDRAMの高さからはみださないと物理的に引けません。上の図は少し上にはみだしています。

まぁ、むりやり引いてみることにします。

| | コメント (0)

2014.04.09

ZYNQのADCボード、ADまわりの配線が8ch分引けた

ふぅ・・疲れたぜい。

Zynq_adc7

ようやくADCまわりの配線がひけました。

6層基板で、Bank33,34,35から150本の配線をすべて引き出すことができました。

Zynq_adc8

配線マニアには、このぐちゃっと感が堪らない。

| | コメント (0)

2014.04.08

ZYNQの030は配線を引きやすいのか・・否

今日も基板設計をやりました。

とりあえず8chあるAD変換器からの信号のうち、半分をZYNQにつなぎました。

Zynq_adc5

そこで、気が付きました。

もうこれ以上は無理だと。

基板の層数を増やしていっても、ビアを打つ場所がなくなります。(ビアが邪魔して電源が通らなくなる)

Zynq_adc6

このZYNQは1mmピッチなので、配線を8milで引くという極太の設計をしていました。うわーこりゃ配線が引きやすい便利なBGAだなと喜んでいました。

でも、そんな喜びはあっという間に吹き飛びました。

ピン間1本しか引かないと、BGA676の最奥部には達することができないのですね!!!

よくよく考えてみれば、1mmピッチなら、Via径が0.5mmとして、L/S = 0.1mm/0.1mmルールでピン間2本引けるではないですか。

明日はこのルールで設計しなおします。

| | コメント (0)

2014.04.07

ZYNQのADCボード、メザニンへの配線

ZYNQのADCボードの設計を続けています。

今日はADCからメザニンへの配線を行いました。8ch分の信号が引けるのかどうか不安です。

Zynq_adc4

この12bit ADCは通常80MHzで動作させます。12bit 80MHzだと出力信号は960Mbpsの帯域が必要になりますが、2組のLVDS信号で480MHzの速度で出てきます。

1chあたり4本(LVDS2組)の配線を使うので、4chで16本。8chで32本になります。上の曲がりくねった配線には4ch分の480MHzの信号が流れることになります。

本計測器の最初の用途では80MHzですが、最終的には125MHzで動かしたいと思っています。そのときには750MHzになりますが、まぁ、それほど周波数が高くないので問題ないでしょう。

| | コメント (0)

2014.04.06

ZYNQのADCボード、ADまわりの配線を引いた

週末に少しだけ設計して、ZYNQ搭載ADCボードの、ADまわりの配線とギガビットイーサまわりの配線を行いました。

Zynq_adc2

縦が88mm、横150mmで設計していますが、結構キツキツです。もう少し縦方向に伸ばしてもいいかもしれません。

このボードは内径90mmの円筒形容器の中に入れて最大32chの高速ADCを確保したいので、上と下には2枚ずつ拡張基板が乗るようになっています。拡張基板はメザニンコネクタでつなぎます。

Zynq_adc3

このように、上と下に子基板を載せて拡張できるようにと考えています。

入力は-0.9V~+0.9Vでフルスケールなのですが、主な用途ではフォトマルからの信号を想定しているので、マイナス側にしか振れません。差動アンプの負入力側に負のオフセット電圧を与えればS/Nを2倍にできたかなと思います。基板の面積と時間に余裕があれば、オフセットを与えられる改良を行おうと思います。

| | コメント (0)

2014.04.04

FX3ボードのファームウェア更新と、販売再開のお知らせ

本日、特電FX3ボードのファームウェアを更新しました。

今回の更新点は、

  • Intel製のUSBホストチップでも正常に動作するようにした
  • オンチップUSB-JTAGの機能を搭載した

です。

特電FX3ボードは、CypressのEZ-USB FX3の評価ボードです。上に特電Spartan-6評価ボード(別売)を乗せれば、FX3とFPGAとの実験がすぐにできるというスグレモノです。

Fx3_sp6

特電のFX3ファームウェアにはUSB-JTAGの機能が入っています。だから、下の基板にあるFX3から上の基板にあるXC6SLX45をUSB-JTAGでコンフィギュレーションすることもできます。

昨年10月に一度は販売終了とさせていただいたのですが、お客様からの強いご期待とご要望により復活することにしました。

販売再開は4月の末を予定していますが、あまりたくさんの数は作らない予定です。確実な入手をご希望の方はぜひともメールでご一報ください。あらかじめご連絡いただければ、ご予約としてお取り置きいたします。

| | コメント (0)

2014.04.01

「目からビーム」装置の開発

今年の目玉新製品として、目からビーム装置を開発しました。溶接やYAG励起用として実用化されている大出力の半導体レーザを用いています。
エイプリルフールですよ

Eye_beam

写真 ラブリービームを放つ内藤

大出力半導体レーザは赤外光なので通常は目には見ませんが、照準を合わせる際には、特殊な結晶を通じて波長400nmの可視光にしています。結晶をバイパスすれば60Wの赤外レーザを直射できるので、溶接やはんだ付けなどに便利です。

今年はプリキュアも目からビームを放てるようになり、目からビームを出すことが一般社会に定着してきた感じがします。目からビームを出すことがブレイク寸前です。

なお、レーザ発射のタイミング制御および敵味方識別にはRXマイコンを使用しています。早ければ今年の秋には販売開始したいと思います。

さらに、次期バージョンとして口からビーム装置も予定しています。

| | コメント (0)

« 2014年3月 | トップページ | 2014年5月 »