« 2022年4月 | トップページ | 2022年6月 »

2022.05.31

真贋判定装置の完成と検査実行

ようやくIC真贋判定装置が完成しました。

最初のターゲットは5月6日にWinSourceという流通在庫商社で買ったALTERA MAX2「EPM1270T144C5N」です。この部品は正規市場ではまず手に入りません。流通から買うしかないのです。

中央のバーン・イン・ソケットにMAX2を挿入していよいよ検査開始です。

0531_1

なんだか、主人公が怪人に改造されてそうな絵図ですね。

 

このジャンパワイヤは何をしているのかというと、MAX2のVCCINTやVCCIOに2.5Vや3.3Vを与えるためのものです。

大量に並んだジャンパピンはソケットとCPLD間の配線を切ったりつないだりするのですが、下の図のような表をExcelで書いて、ジャンパピンのどこにVCCINTやVCCIO、GNDが来るかを整理しておきます。

Epm1270_pinout

そして、2.5Vや3.3Vを与えるべきピンにはジャンパワイヤで2.5Vや3.3Vの電源と接続するというわけです。

これで、電源とJTAGを通してスキャンしてみると・・・、ばっちり見えました!

0531_2

発見されたのはEPM1270です。

流通在庫で購入したEPM1270T144C5NのJTAG IDCODEは紛れもなくEPM1270のJTAG IDCODEを持っていました。このICは本物であることが99.99%確定です。

もし、偽物のICや空っぽのICであればJTAGを認識すらしないでしょう。

もし、EPM240やEPM540のシルクを書き換えた模造品であれば、JTAGのIDCODEはEPM240やEPM540のものを示すはずです。中身まで書き換えることはできませんから。

そういうわけで、JTAGチェーンで認識されたというだけで99.99%本物であることが確定します。

 

最後に残る不安は、中古品を再生したものでI/Oが痛んでいるのではないかという懸念です。

この不安はJTAGバウンダリスキャンで払拭します。バウンダリスキャンというのは、ICを「工場出荷時のテストモード」のようなもので、JTAGのTCK,TDI,TMS,TDOの4本の線をつなぐだけでICの端子を自由に操作することができるモードです。ほぼすべてのCPLDやFPGAに内蔵されているので、バウンダリスキャンを使えば、FPGAやCPLDの中身を書くことなく、端子の接続検査ができるというわけです。

その結果は・・・

0531_3

完璧でした。

一つのピンが欠けることもショートすることもなく、真贋判定基板上のCPLDと1対1での接続が確認されました。入力も出力も正常です。

すべての端子は活きています。

 

また、起動時の電圧・電流特性を測るため、電流の計測にINA180という便利なICを使ってオシロで記録しました。INA180はハイサイドの電流モニタ用ICで、抵抗の両端に生じる電圧を何倍かして電圧で出力してくれるというものです。本当は低い抵抗でいきたかったのですが4.99Ωの抵抗をVCC33とVCC18に挟んで、INA180B1(ゲイン20)で増幅して見ています。つまり、電圧で読んだときの100分の1が電流値[A]になります。

Epm1270vi

これが起動時の電流です。VCCINT(1.8V)への電流でチャタリングのように見えるパルス状の電流は、起動時に必ず7回起きるので、コンフィギュレーション回路なのでしょう。VCCIO(3.3V)はほとんど電流を消費していません。VCCINTのほうが電流を食うんですね。もし、偽物のICをつかまされていたらこんな電流にはならないでしょう。VCCとGNDがショートして数百mA流れているかもしれません。

 

かくして、流通在庫で購入したMAX2 CPLDは、真正なJTAG IDCODEを持っていて、かつ、すべての端子が正常に入出力できることが確認できました。

 

| | コメント (3)

2022.05.30

真贋判定基板の火入れ

真贋判定基板はピンヘッダの塊みたいなものなので、半田付けが非常に大変でした。

0530_5

ピン数も多ければ半田のヤニもたくさんでるので、フラックスリムーバをジャブジャブ使って洗浄です。昔買ったガスマスクが役に立っています。ガスマスクしないと健康被害が出そうですわ。

0530_6

実装が終わったので、いよいよ火入れです。

0530_1

ターゲットへ行くJTAGのTDIとTDOをバイパスしてMITOUJTAGで見て見ると、基板上の4つのCPLDが見えました。

0530_7

これが見えると、すごい安心感がありますね。

 

適当なピンとピンをジャンパで接続して「シンプル基板検査」をかけてみると・・・

0530_2

下の図のように、GNDにショートさせた個所がGNDと表示され、相互に接続されたピンは相互接続が出ています。

0530_4

ここまでは大成功!

夕方、秋葉原にいってジャンパピンを大量に買ってきました。

0530_3

明日はいよいよ真ん中の黒いソケットにターゲットICを乗せて検査しますぞ。

| | コメント (0)

2022.05.29

会計を進める

今日は基板の設計はお休みして、会計処理をしています。

特電は4月決算なので6月末までに確定申告しなければなりません。現金や立替金で支払った領収書の中身を思い出したり、クレジットカードで購入した買い物の中身を調べて会計ソフトに入力していくという地味な作業をしています。

金曜日に出図した真贋判定基板がもう届いたので、会社に行って眺めています。

Shingan1

ここにはQFP208のソケットがささります。

Shingan3

ここには100ピンと144ピンがささります。

Shingan2

ソケットを載せてみると無事に刺さりました。ソケットまわりの寸法は問題ありませんでした。一安心。

| | コメント (0)

2022.05.27

真贋判定装置の出図と、新たな流通部品

超初歩的ではありますが、ようやくFPGA真贋判定ベース基板が完成しました。

0527_1

この基板はなんと、両面基板で作られています。裏表しかない。
0527_2 

昨日からの進捗は、JTAGチェーンを通したことと、1.2Vと2.5の電源を追加したこと。それから1.8Vと3.3Vの電圧と電流も測れるようにしたことです。

0527_3

電圧・電流は同軸ケーブルで出力してオシロで見るという志の低い設計だけど、たたき台だからこれでよしとしましょう。

 

それから、流通在庫で新たに購入したCPLDなどが届きました。

XILINXのXC2C256-7VQG100Cです。今回の流通在庫は表面がすこしザラザラしているけれども、こんなものかもしれませんね。シルクはシュッとしているけど綺麗でした。

0527_r1

下の写真は2007年製の正規品です。

0527_r2

 

次の写真は流通在庫で買ったMICRELの電源IC、MIC5209です。↑が流通で↓が正規品。Mの字が塗りつぶしか vs 縁取りかという違いがありますが、印字ルールは同じです。流通のほうはつるつるしていて、外見は本物と見分けがつきません。

0527_r3 0527_r4

 

最後は超入手困難の1bitの双方向トランシーバ、SN74LVC1T45DBV。シルクの写真が取りづらいのですが正規品は「CT1R」、流通品は「CT1F」と読めます。データシートによれば刻印としてはどちらもOKで、外観で真贋判定はできません。

0527_r5 0527_r6

真贋判定装置の完成を急いで完成させなければ!!

 

| | コメント (0)

2022.05.26

IC真贋判定装置の設計 その7

今日は全体の配線を引いています。

CPLD周りだけはコピペで済んだのですが、実際には配線を一本一本つないでいかないといけないので、大変な分量になります。

0526_1

主な配線が完成したようすです。台風が来そうな感じの渦巻きです。

0526_2

さらに電源とJTAGを追加し、ターゲットICに3.3Vと1.8Vを与えられるようにしたところで、1.2VがないとSpartan-6の検査ができないことに気が付き、急遽1.8Vと2.5Vも追加することにしました。

今日はここまで!

| | コメント (0)

2022.05.25

IC真贋判定装置の設計 その6

今日も今日とて真贋判定装置を設計しています。

まず、ソケット基板に行く配線をCPLDに通すかGNDに落とすかをジャンパで設定できるようにします。

このためのジャンパピンを2.54mmピッチで並べると60個分になるのですが、横に並べてしまうと15cmにもなってしまいますので、ここは3行に並べました。

052501

そしてCPLD側に通した配線をCPLDにつなげます。

この回路が左側1個ができたので、右側にも180°回転してコピペします。

052502

あまり大きな修正はなく、コピペ+手作業で直す程度でいけました。

 

下側もピンヘッダを3行で並べてしまうと十字型の基板になってしまうので、下側は横1列に並べます。

052503

なんだか、目がぐるんぐるんしてきましたが、うまく行っています。

 

今日は、久しぶりの回路研究会があるので作業はここまで!

| | コメント (0)

2022.05.24

IC真贋判定装置の設計 その5

今日もFPGA真贋判定装置の設計を続けています。

144ピンのバーン・イン・ソケットを乗せるための基板ができました。

基板のサイズは8cm×8cmで、1.27mmのピンヘッダでベース基板につながります。

Tq144top

裏面には必要に応じてコンデンサや抵抗を付けられるようにしています。

Tq144bot

それから、100ピンのソケット用。

Tq100top

同様に、裏面です。

Tq100bot

 

それから、今日からベース基板の設計もはじめました。基板の名前は「Singan Base」で(そのままやん)

 

このベース基板はソケット基板から来た端子をジャンパピン(GNDにするかオープンにするかを決める)に通してCPLDにつなぐという設計です。CPLDはJTAGバウンダリスキャンで操作されるだけの、ただのGPIOになります。中身は空のまま使います。

 

052401

とりあえず配線を引いてみたところ、必要な基板面積が把握できるようになってきました。

| | コメント (0)

2022.05.23

IC真贋判定装置の設計 その4

先日のTQFP144用基板のサイズではQFP208のソケットが乗らないことに気が付いたので、今日から全面的にソケット基板を設計し直します。美的センスに気を付けながら・・

変更点としては、ソケット基板とベース基板をつなぐためのピンヘッダが1.27mmピッチのものにしたことと、ICのピン数に関わらずピンヘッダを8個にしたことかなと思います。ピンヘッダ1個あたり36ピン通すことができ、このソケット基板では288ピンまで対応可能です。ただ、ベース基板は240ピンまでしか対応しませんので、今後の拡張の余地を残しておきます。

 

QFP208のバーン・イン・ソケットは0.5mm間隔でコンタクトピンが並んでいるので、TOPの層1枚で配線は完結します。

Qfp208_20220526180101

ただし、ICによっては端子の近くにコンデンサや抵抗を置かなければならないようなものもあるので、そういうICに配慮して、端子の直近にコンデンサや抵抗を置けるようにパッドだけ設けました。

Qfp208bot

こうやって、QFP208ピンソケット基板ができました。

なお、基板表面に並んでいる灰色の●はただのViaで、その横にある小さな●がコンタクトピンを受けるためのパッドです。

052301

すごく小さいのです。本当に位置がぴったり合うのかどうか不安になるくらいです。

| | コメント (0)

2022.05.20

QFP100とQFP144のソケット基板

ICの真贋判定をサービスを作るという目標は、どこか他社のためのサービスを開発するという感じだったのでしょう。

でも自分で使うICが入手できなくて、かろうじて見つけたICが中華流通在庫だったとき、本当にこのサービスの必要性を自分ごととして認識するようになってきました。

1週間以内にCPLDの真贋判定をしなければならないほど切羽詰まってきたので、装置の設計の速度が上がっています。ネットゲームにたとえるとブーストアイテムを使った状態です。

まず、QFP100ピンのソケット基板。

Qfp100

同じサイズで作ったQFP144ピンのソケット基板。

Qfp144

中央には山一電機のIC51シリーズのバーンインソケットが乗ります。IC51はディスコンで、これも中国の流通在庫頼みなのが悲しいですが。

 

さて、QFP100とQFP144は8cm×8cmの基板で実現できたのですが、欲をだして同じ基板で208ピンまで検査できるようにしたいな・・と思ったところ、10cm×10cmないと足りないことがわかりました。

Qfp208

3種類のソケット基板をすべて同じベースボードでコントロールできるようにするには、ソケット基板を10cm×10cmのサイズにする必要がありそうでした。今日の設計は無に帰しました。

 

| | コメント (0)

2022.05.19

USB-JTAGを作ろうとしたら部品集めで苦労した話

特電のオリジナルのUSB-JTAGケーブル「Pocket JTAG Cable」を作ろうと部品を集めていたのですが・・

Pockj1

うっ、やっぱり、どこにも部品がない。

特に今回入手できなかったのは

  • MIC5209
  • 24LC64-I/SN
  • LM2903DR2G
  • CX8045GB24000H0PESZZ
  • XC2C256VQ100
  • SN74LVC1T45DBVRの6種類です。

です。それぞれどういう部品なのか順番に説明します。

 

このPocket JTAG Cableは2005年ごろの設計で大変古く、今となっては奇妙に感じる古い部品をいくつか使っています。

Pkj

 

MIC5209というのは旧Micrel製のLDOなのですが、下の図のような変なピン配置をしています。

Mic5209

そもそもなんでこんなICを使っているのかというと、MIC5209の前にIRU1207-33CSというのを使っていて、それがディスコンになってしまったため同じピン配置のLDOに置き換えたのだと思います。

LDOの3端子レギュレータを使わなかった理由はわからないのですが、当時は10uFは積層セラミックコンデンサではなくタンタルコンデンサを使っていたとか、発振しにくさとかではないかと思います。

DigiekyではMIC5209は品切れなのですが、MIC5236またはAP2213というのが同じピン配置で入手可能であるようです。MIC5236は150mAしか取り出せませんが、AP2213は500mA取り出せます。ただ電源ICを置き換えるのはリスクが高いのでいままでのMIC5209が使えればそれに越したことはありません。

 

次。24LC64-I/SNですが、なぜかこんな普遍的なI2CのEEPROMが入手できません。M24C64-RMN6TPというROMに置き換えたのですが、まぁ、大丈夫でしょう。

Sop8

それから、LM2903DR2Gというコンパレータもなぜか入手できません。こんな一般的な部品なのに、どうしてなのでしょう。Rohm社のLM2903F-E2に置き換えてみます。

 

より大きな問題は水晶振動子のCX8045GB24000H0PESZZです。24MHzの水晶なのですが、EZ-USB FX2に使う水晶は以外と要求が厳しいのです。なぜならば、水晶という部品は周波数以外や精度にも、負荷容量、直列抵抗、駆動レベルというパラメータがあるからです。負荷容量が合っていないと周波数がずれるそうで、合わせた方がよいでしょう。直列抵抗は、まぁ、あまり気にしなくてよいでしょう。

(なお、負荷容量というのは水晶振動子から見た負荷回路の容量で、水晶の横についているコンデンサの値とは異なります)

水晶のパラメータで一番問題なのは駆動レベルです。EZ-USB FX2は500μWというパワーで水晶振動子を駆動しますが、今の世の中で一般的に使われている水晶振動子の一般的な駆動レベルは数十uWです。EZ-USB FX2は20年前のデバイスなので当時は500uWのパワーで水晶をブルンブルン震わせていたのでしょうが、現在の水晶は小型化されていてそんなパワーで駆動してはいけないのです。

ちなみに、500μWで駆動する水晶というのは下の写真のようなHC49タイプの水晶になります。

Hc49

EZ-USB FX2の純正評価ボードでもこういったのを使っています。

さすがに、こういうのは使わないですよね。CX8045GBは大きな駆動レベルに耐えられる水晶だったのですが、入手性が悪くなってきてしまいました。仕方がないので、古き良きHC49型の水晶に戻って使うことにします。

はっきり言って、マイコンやインタフェースICの内蔵発振回路を利用した水晶振動子は使うべきではありません。わずかな金額の差で振動子ではなく発振器が入手できるなら発振器を使うべきです。駆動レベル、振動子は負荷容量、直列抵抗というパラメータの合わせこみが難しすぎます。

  

次。XC2C256-7VQG100Cです。今、Digikeyで6384円という値段が付いていますが、1年前は2108円でしたよ。記録によれば2008年12月は1290円でした。どうしてこんなに高くなっちゃったの?

Xc2c256

今となっては、高くてもいいので、何円でもいいから買えればいいのです。

Mouserにずいぶん前に注文を入れていて、「一緒に注文したデバイスがまだ入荷しないからXC2C256VQ100だけ先に送ってくれ」と言ったら、「XC2C256VQ100が在庫がありという表示が間違っていて本当はありません」という信じられない回答が送られてきました。まさか、このタイミングで・・ね

Mouser

↑この「在庫あり」は間違っていたということです。これはヤバい。

 

SN74LVC1T45も在庫切れ。

双方向のレベルトランシーバ兼バッファなのですが、いつも在庫切れしているという印象です。なんでいつも無いんでしょう。SN74AVC1T45は在庫があるけど、AVCは3.3Vまでしか耐えられません。LVCは5Vまで耐えられます。JTAGケーブルとして古いICにも対応したいので、やはりLVCでいきたい。あと、BGAタイプやSONパッケージのものは入手できます。やはり実装が難しそうだということでみんな敬遠するのでしょうか

1t45

 

 

 

というわけで、MIC5209、XC2C256VQ100、SN74LVC1T45DBVRという3つのキー部品が入荷できなくなってしまったのですが、中国の流通在庫業者にこれらの部品が全部たくさんあるというのを見つけて、思わずポチってしまいました。

Winsource

マジかよ。13871個あるw

XC2C256-7VQG100Cが今回のキー部品なのですが、この流通在庫が本物ならばたくさん買いたいですね。数個買ってみて、本物かどうかを判断できればいいのですが・・・って、そういう真贋判定器を自分が作ろうとしていたことを思い出しました。

IC真贋判定器を作るモチベーションが上がってきましたぞ!

 

| | コメント (0)

2022.05.18

事業復活支援金の申請完了

事業復活支援金の申請が完了しました。

こういったコロナ関係の補助金を申請するのは初めてです。

事前確認に登録確認機関が必要になるのですが、要するにいつもお世話になっている税理士さんに頼めばよいのですよね。顧問税理士がいないと、過去の帳簿とか全部ひっくり返して書類を作らなければならないことになります。

うちの場合は、幸いにも顧問税理士さんが登録確認機関であったので非常に助かりました。

それでも、2年前の帳簿から確定申告書、概況説明書、概況説明書裏面、税務署へのメール送信履歴をPDFにして送らなければならないなど多少面倒には感じましたが、顧問税理士がいるおかげでこの程度で済んでいるという認識です。

顧問税理がいないと数年分の帳票類を用意して新しく見つけた登録確認機関に送らなければならず、申請をあきらめてしまうかもしれません。

| | コメント (0)

2022.05.15

RFSoCでディジタル無線

最近、ZYNQ RFSoCでディジタル無線の変調復調ができるかどうかの検討をしています。このプロジェクトが通ったらRFSoCデビューするとともに、面白いことになりそうです。

ふと思ったのですが、私が所有しているAgilentのE4432Bという信号発生器はIとQを入力して変調をかける機能があり、最高で3GHzまで出せるようなので、このE4432Bを使ってとりあえずのベースバンド信号を作ることができるかもしれません。

また、借り物ではありますがLecroyの20Gサンプリングオシロもあるので、2GHzくらいまでの信号なら見られます。

ベースバンド信号の元になるIとQの信号をCosmo-Zで出してE4432Bで変調して、それをオシロで見たり、Cosmo-Zで直交オーバーサンプリングするなどして、手元にある機械で遅いながらも基本的な検証程度ならできそうな気がしてきました。

 

| | コメント (0)

2022.05.12

IC真贋判定装置の設計 その3

多数の基板を集積して半導体テスタを作るのは非常に時間がかかるので、まずは、特定のICだけでもJTAGバウンダリスキャンで検査するものが作れないかと思い、設計をシンプルに変更しました。

それが、こちらの基板。

Probeboard1

Probeboard

QFP144のソケットに検査対象デバイスを装着し、その左右にQFP100のICから信号を出して検査対象ICのピンの接続を確認するというものです。

これなら簡単にできそうですし、基板の製造費用は2~3万円くらいになるので、特定のICにのみ対応したIC検査装置ということであれば初期費用が安く作れるだろうと考えられます。

しかし、繰り返しICを抜き差しできるソケットは基板より高く納期もかかるので、検査するICごとに基板を作っているとコストがかかってしまいます。

そこでMAC8のソケット君をはじめ、何らかのソケットを使ってICソケットを抜き差しできるようにすることを考えました。

Socketkun

これなら、検査用基板にICソケットをはんだ付けすることなく使いまわせるからです。

 

ですが、ダメでした。

QFP IC用ソケットはピンの間隔が1.5mmしかないのに、基板用のソケットは1.3mmくらいの直径があるからです。さすがにギャップが狭くなりすぎです。

というわけで、1枚板のIC検査装置を作ってソケットを使いまわすというアイデアはコストがかかるという結論でボツになりました。

| | コメント (0)

2022.05.11

BizStationが改悪された・・・その対処法

連休明けからBizStationが改悪されて、MUFG Bizというのになりました。

Biz

少し期待していたんです。使いやすくなっていないかな・・とか、Chrome対応していないかな・・とか。

 

 

 

 

見事に期待が裏切られました。

新しいページでは、BizStation契約者番号というのと利用者IDというのの入力が求められるのですが、契約者番号とか利用者IDは自動的にデフォルトで入れておいてほしいよね。

Biz2

しかも、初回ログイン時には、秘密の質問を3つ作らなければならないという仕様。

Biz3

こういう秘密の質問とか答えって、BizStationの中がハッキングされてデータが流出したら、それこそ大問題じゃないでしょうかね。こんなサイトを作るようなITシステム開発業者ならハッシュ化してデータベースに入れているとは思えないし。他のサイトで同じ秘密の質問を使っていたら、悪意のある人は何でもできちゃうよ。パスワードの流出より怖い。

「秘密の質問」の流出は、パスワード流出より やばい。ダメ絶対。

さて、ここでログインするとMUFG Bizというポータルに行きます。

しかし、このポータルの意味ってなんだ!?

MUFGで金借りてないし、セミナーなんて受ける気はないし、全く意味がない。

Biz4

サービスメニューに円預金というのがあるので、押すと、見慣れた確認ダイアログが出てきて、

Biz5

ワンタイムパスワードを入れたらようやくログインできました。

Biz6

ん?ただのBizStationじゃん!

ユーザにはまったくメリットがない改善でした。

ログインを面倒臭くしだだけ。

 

私が声を大にして言いたいことは、最初のログインの画面で、「ログイン」ではなく「ログインできない場合等はこちら」を押す。すると、契約者番号とか秘密の質問をスキップして、旧ログイン画面に行ける。

MUFGさん、どうか、このログインルートは消さずに残してください。

Biz7

BizStationに望むことは2つ。

  • Chromeで使えるようにしてくれ。対応ブラウザは「InternetExplorer 11かFirefox」という縛りはやめてくれ。表面上はEdgeで動くようだけど中身はIE11なんでしょ。ほんと、Chromeに対応してくれないかな・・・
  • これ以上改悪しないでくれ

以上です。

 

| | コメント (0)

2022.05.10

IC真贋判定装置の設計 その2

昨日考えた「IC真贋判定装置」の基板は、ICのピン128本あたり1枚の基板に768個のアナログスイッチを乗せるという力技で、エレガントさがありませんでした。

一晩考えて、次の図のような構造を思いつきました。

これなら最大1024ピンまで対応できそうです。

Max1024pin

 

まず、下の図のような基板を作ります。これは16本分のテスト信号を作る基板で、アナログスイッチ96個と、その制御用のCPLDが乗っています。これを「信号基板」と呼ぶことにします。

Signal_pcb

この基板の端にはライトアングルのコネクタが出ていて、中継基板というのを作って、「信号基板」を何枚も挿せるようにしておきます。

Chuukei

この中継基板で四方から囲むようにして、最大64枚の信号基板からの信号を修正して1024pinにVCCやGND、H/Lといった信号を与えるわけです。

上から見ると、こうなります。

Topview

ちょっと無駄なスペースが多い感じなので、縦横に並べる基板の数は調整したほうがよさそうですね。

ちなみに、最大64個のCPLDと検査対象用のFPGAはすべてJTAGチェーンでつながっています。バウンダリスキャンを使ってピンだけ操作して相互接続を検査するわけです。もし、動いたら史上最長のJTAGチェーンではないでしょうか。

3D CADが欲しくなってきました。freeの3D CADで良いのないでしょうか?

 

それから、QFP144ピン検査用のICソケットが届きました。

Ic51_bot

YAMAICHIと書いてあることからもわかるようにこのソケットは山一電機、つまり日本製なのですが、悲しいことにディスコンになっているので中国から流通在庫を取り寄せました。

昨日のソケットとは違いシリンダになっているのではなく、1本1本のピンが金属ばね構造になっています。

Ic51_1

裏のピンは素直なピンでした。

Ic51_bot

中国発祥の武漢肺炎のせいで半導体不足が起きたのに、肝心の半導体も検査装置の部品も中国の流通在庫を頼らざるを得ないというのは何かが間違っています。

 

| | コメント (0)

2022.05.09

IC真贋判定装置の設計を始めます

IC真贋判定装置の設計を始めました。

まずは任意のピンに電源とかGNDとかを与えられるような回路を考えています。

添付の図の基板は768個のアナログスイッチで128pinをコントロールする基板で、20cm角くらいのサイズになります。

Np1133_1

Np1133_2

TQFP144~240まではこの基板を2枚重ね、BGA324はこの基板を3枚重ねることになります。かなりの力技なので基板の回路図を描くだけでも大変です。

それから、QFP240用のICソケットが届きました。

Socket1

悲しいことに、このソケットも中国製なのです。

レバーがごつい。

Socket2

このレバーをくるっと回して黒い所を押すと開きます。

思っていたよりずっと精密で、白い台座の部分はセラミックスっぽい材質で、細い穴が開いています。

Socket3

この穴には直径0.2mmくらいのスプリング入りのプローブがはまっています。

Socket4

プローブは可動式になっていて、裏返すと全部引っ込んでしまいます。表にすると全部引っ込んでしまいます。

ソケットを基板に乗せるとプローブが上側に0.1mmくらい飛び出して、検査対象のICに接触するという仕組みなんだろうと思います。

| | コメント (0)

2022.05.08

Spartan-7基板の改版その2

USBのMini-BコネクタをType-Cにしました。

Usbc

同じ面積で移行できたので、右側にあるICを押しのけることがなく、想定以上にうまくいきました。

それから、DDR3メモリ用の終端(VTT)電源なのですが、今まではTPS51206というのを使っていましたが、TIの電源ICは総じて入手性が悪いです。今だと1年以上待たないと入ってこないので代替品を探していました。

いろいろ探したところ、NCP51190というDDR用のSINK可能な電源ICを利用することにします。TPS51206と同じサイズで2mm×2mmと小さいためです。

NCP51190がすでにディスコンなのですが、Rochesterでも再生産しており、TPS51206より入手性が良いというおかしなことになっています。

ひとまず配線が終わった基板の図です。

表面

Np1116atop

裏面

Np1116abot

 

これを、他の基板と一緒にどこかのタイミングで出図したいと思います。

 

 

| | コメント (0)

2022.05.07

Spartan-7基板の改修開始

今年の5~7月はいろいろ基板を作る予定なのですが、しばらく基板設計をしておらず勘が鈍ってきたので、まずは特電Spartan-7基板の改修からはじめます。

Sp7brd1

今回の改修の目的は、

  • MIPI CSI RXコアが使えるようにする
  • 入手できなくなった部品を代替品にする
  • USBのコネクタをType-Cにする

です。

XILINXのMIPI CSIコアはHS系の信号だけではなくLP系の信号もすべてつないでおかないと動作しないうえに、P/Nの入れ替えはできないし、CLKはMRCCかSRCCにつないでおかないといけないなどの制約があります。現状のSpartan-7基板はこの制約を無視して作ってしまったため、MIPI CSIコアが使えませんでしたので、改版で修正します。

といっても、下のような配線の部分の配線を入れ替えた後、さらに4本の配線を追加しなければならないので容易ではありません。

Sp7brd2

 

それでも鈍った感覚をフル回転させて配線をひきました。

Sp7brd3

Sp7brd4

 

Sp7brd5

Sp7brd6

BGAの奥のほうに4個のViaを追加するため、かなり広い範囲の配線をおしのけて再設計する形になりましたが、なんとかMIPI CSI用の12本の配線+4本の追加信号

  • CK_HS_P/CK_HS_N
  • D0_HS_P/D0_HS_N
  • D1_HS_P/D1_HS_N
  • CK_LP_P/CK_LP_N
  • D0_LP_P/D0_LP_N
  • D1_LP_P/D1_LP_N
  • SCL,SDA
  • GPIO,CLK

を通すことができました。こうしてみると、MIPI-CSIの配線は16本もあるので、決して省配線ではありませんね。

 

| | コメント (0)

2022.05.06

流通在庫に手を出してみた

Win Sourceという中国系の流通在庫商社があります。

現在、FPGAはDigikey、AVNET、Arrow、Mouserなど正規流通業者では全然手に入らないのですが、なぜかWinSourceには豊富にあります。

結構まめに連絡をくれる商社さんで、発送の時だけでなく、到着後にも2度3度と「いかがでしたでしょうか。何なりとお申し付けください」的なメールが来ます。

MAX2のEPM1270T144C5Nの在庫があったので注文してみたところ、2~3日後に発送、その後3日くらいで到着しました。

Winsource_1

中をあけると、部品のほかにスクラッチカードとかステッカーとかが入っていました。

Winsource_2

 

これが購入したMAX2の写真です。

Max2_2

このICが本物か偽物かはわかりませんが、こういう流通在庫を調べるための簡易半導体テスタを作るのが目的なのです。

 

| | コメント (0)

2022.05.02

CICフィルタ、SINCフィルタ、移動平均フィルタ

開発中のディジタルロックインアンプの精度がμV、mdegに達しないのは、位相検波後のLPFに問題があるのではないかと考えました。今は入力信号の周期ごとに積分して一周期分の平均値を求めているのですが、この処理が間違っている可能性があります。

市販のディジタルロックインを調べてみると、1/(1+sRC)型のLPFフィルタを多段重ねたりsincフィルタを挿入したりしているので、sincフィルタについて勉強しなおしています。

勉強しているとsincとか移動平均とかCICとか出てくるのですが、結論を言えば、sincフィルタ、移動平均フィルタ、CICフィルタはすべて同じものでした。今日はこれらのフィルタを解説します。

 

sinc,CIC,移動平均の中で一番良く知られた用語は移動平均です。例えば5つ前までのデータを全部足し合わせるといった演算を行うので株価のチャートなどでもよく出てきますが、式で書くと以下のようになります。

y5=x5+x4+x3+x2+x1

この計算をするには加算を4回しなければいけないので、次のステップとの差を取ると、

次のステップでは

y6=x6+x5+x4+x3+x2

となるので、

y6-y5=x6-x1となり、変形すると、y6=x6-x1+y5 となります。

一般的には、y5 =yn-1 + xn - xn-M

となります。

これを図にすると、

Fil1_20220504113801

となります。

出力を足し合わせつつ、M個前のデータを減算するという処理となりますが、引き算を先にやっても足し算を先にやっても同じなので、以下のように変形します。

Fil2_20220504115501

ここでM個前のデータを減算するという処理を行うには長さMのFIFOを用意しなければなりません。Mが非常に大きい場合、FPGAで大きなFIFOを用意するのはコストがかかります。

移動平均の計算を行うと出力はなめらかになって高い周波数成分が抑圧されます。M回に一回だけデータを取り出すとエイリアシングが出ますが、移動平均はfs/Mにノッチを持つLPFなのでfs/Mの成分は消えてくれます。

この処理をデシメーションと言います。デシメーションを行うとFIFOの長さは1で良くなります。

Fil3_20220504120201

これが1段のCICフィルタで、特性はH(z)=(1-z-M)/(1-Z-1)となります。z=exp(-i2πf)を代入して計算するとsin(Mω)/ωの形になります。

sin x/xをsinc関数というので、sincフィルタと呼ばれます。

※ここでは周波数特性がsinc関数の形になるフィルタをsincフィルタと呼んでいますが、世の中には周波数特性を理想的なLPFである断崖絶壁の ̄|_にしたい場合に時間軸でsinc関数の計数を掛ける「sincフィルタ」もあり、どちらもsincフィルタと呼ぶので注意が必要です。

 

デシメーションを行うのは、移動平均を計算するための長いFIFOを作らなくて済むからというのと移動平均して高い周波数成分は入っていないのだからデータ量を減らしても問題ないし計算コストを減らしたいというためです。FPGAの場合は前者の理由がより効いてきますし、DSPやマイコンの場合は後者の理由がより効いてきます。なお、デシメーションを行わないとyn=xnとなって、入力がそのまま出力に出てきてしまってLPFになりません。

CIC1段では切れが悪いので、通常は3段とか5段とか重ねます。

Fil4_20220504120701

これで高周波数成分が良く抑圧されますが、最大のメリットは入力信号に含まれる周期Mの成分を完全に除去できることと、データレートを割り算掛け算して任意のレートに変換できることです。

 

CICフィルタはCascaded Integrator Combフィルタの略で上記の構造を指します。移動平均フィルタをCICフィルタの回路で実現して特性がsincフィルタになるというわけなので、どれも一緒です。

 

足し算は積分を表すのので、最大値が入力され続けると結果は1段でt^2になり、2段でt^3になり、3段でt^3になります。演算結果は時間とともに非常に早く増大しますが、その後の微分回路が同じ段数だけあれば、tの次元に戻ります。2の補数表現で数値を表していればオーバーフローは気にしなくても構いません。なぜならば引き算するからです。

ただし、足し算引き算をするための変数は十分なビット幅が必要で、デシメーション比MのフィルタをN回通すと、値がM^Nになることを許容するだけのビット幅が必要になります。

例えば、デシメーション比が1000で3段のCICだとすると、入力値は最大で10^9になるのでlog2(10^9)≒30bit分のビット幅が追加で必要になります。もともとの入力ビット幅が16bitならば46bitの桁数が必要です。C言語でやるならlong long型で計算すれば問題ありませんね。

なお、計算結果はM^Nで割ってやる必要があります。

 

| | コメント (0)

2022.05.01

FPGAロックインアンプの精度の改善の限界

昨日の数値計算では、FPGAロックインアンプの精度はSIN/COSの精度のビット数と、信号の精度のビット数によって決まることがなんとなくわかっていました。すべてがdouble型で計算すれば理想通りになるのですが、固定小数点のlong long型などを使うとわずかな誤差(100万分の10程度)が出てきてしまいます。

FPGAの中でのビット数をいろいろ変えて試してみました。

まず、SIN/COSが16bit、信号が16bit、積算が32bitの場合です。途中で符号などが被るのでトータルの演算結果は62bitになります。

10mV振幅の信号を入れて位相を変えていったところ、14μV程度の変動が見られました。ロックインアンプの前にLPFを入れるかどうかで結果が変わるかどうか見て見ましたが、LPFを入れたほうが若干悪い結果となりました。

62bit

測定された位相の誤差を見ると、誤差は約0.08度であることがわかります。

62bitphase

 

次にSIN/COSを24bitにした場合です。トータルの演算精度は70bitになります。LPFの有無による違いはありませんでしたが、最大と最小で約10uVの誤差が出ています。

70bit

 

SIN/COSを32bit信号を16bitにして、トータルで78bitの演算精度の場合。少し傾向は変わったのですが、6uVくらいの変動があります。

78bit

 

ロックインアンプで使うSIN/COSの精度を16bit→32bitに増やしたのに結果が14uV→6uVにしか変わらなかったと言えます。

 

今回の検証で使ったボードのADCは12bit精度ですが、このADCビット数を高めたらどうなるでしょう?

そこで、ADCの精度は12bitですが、CICフィルタでビット数を増やしたらどうなるかを試してみました。

結果は、

Cic24

 

FPGAの設計の問題なのかもしれませんが、驚くべきことに、全く差がありませんでした。

 

CICフィルタなどのLPFを使ってADCのビット数を増やしたとしても、所詮は足し算と引き算で見かけ上のビット数を増やしているに過ぎないので、ロックインアンプのように長時間積分する系の演算では同じ結果になるということなのかもしれません。

 

 

| | コメント (0)

« 2022年4月 | トップページ | 2022年6月 »