2024.12.22

いまさらながらCyclone3の回路を設計しています

いまさらですが、Cyclone3の基板を設計しています。

私はXILINX派なのでALTERAのことはよくわかりませんので、デバイスハンドブックを読んで電源ピンや専用ピンについて間違いのないように調べています。

電源ピンについて

電源のピンにはVCCINTとVCCIOのほか、VCCAとVCCD_PLLというものがあります。これはいったい何?

データシートをみると、VCCINT=VCCD_PLL=1.2V。VCCA=2.5V。

VCCIOは1.2~3.3Vの範囲であるようです。

Cy3_2

ちなみに絶対最大定格は下記のとおり。

Cy3_1

VCCAとVCCD_PLLは内部PLLのための電源だそうで、VCCD_PLLはVCCINTにつなげとのことです。

 

また、nSTATUS、nCONFIG、nCE、CONF_DONE、MSEL、DCLKですが、基本的にはnSTATUSとnCONFIG_DONEは10kΩでプルアップし、nCEはGNDに接続すればよいようです。

Cy3_3

 

XILINXでもSpartan-3のころはCONF_DONEが内部での起動開始信号に使われていたはずで立ち上がりの品質とかにうるさかったはずなので、同世代のCyclone3もこのあたりの使用方法については気になるところです。

ちなみに、ASとはActive SerialのことでシリアルROMを外部につけるやりかたです。外部のマイコンから注入されるのがPassive Serialで、Serialだと遅いのが問題になる場合にはActive ParallelやPassive Parallelを使います。

 

MSELについて

あと、MSELについてはコンフィギュレーションのモードに合わせて選択します

Cy3_4

Cy3_5

MSELについて気になることがいくつか書いてあって、コンフィギュレーション電圧によってMSELの値を変えなければならないようです。コンフィギュレーション電圧とはコンフィグピンが所属するバンクのVCCIO電圧のことです。これはわかる。

MSELはVCCINTで動いているようなのですが、電圧の設定はVCCAでおこなうそうです。VCCINTなのかVCCAなのかどっちやねん!

誤ったコンフィギュレーションスキームが選択されるのを避けるためにもVCCAやGNDにプルアッププルダウン抵抗を介さずに直接つなげと書かれています。あとマイコンからMSELを駆動するなとか書いてあるし。

MSELには9kΩの内蔵プルダウン抵抗が入っているとも書かれていますが、フローティングにするなとも書かれています。どっちやねん!

それから、JTAGを使ったコンフィギュレーションはその他のコンフィグよりも優先されると書かれていますが、その場合でもMSELはオープンにするなと書かれています。だからどっちやねん!まぁ、GNDに接続するのが推奨だとのこと。

 

スタータキットの回路を調べてみる 

Cyclone3のスタータキットの回路図を見てみると、

Cy3_6

VCCAに直接つないでいますね。MSEL=1011だから3.0/2.5VのActive Parallelだと!?

評価基板のくせに2.5V IOを使うのか!?レベル高いな。

 

ALTERAのpinoutファイルをダウンロードして調べてみると、コンフィグ関連ピンはIO Bank 1に所属し、CONF_DONEとMSELはIO Bank 6に所属しているようです。

Cy3_7

スタータキットの回路図を見るとJTAGは2.5Vなのに外部のピンに出したり、他のデバイスとチェーンするためにADG3304やADG3308のバッファを使って電圧を変換しています。大変そうだし、一歩間違えると基板の作り直しになるややこしい設計になっています。

Cy3_8

CONF_DONEやnSTATUSなどは2.5Vでプルアップしているようです。

このスタータキット、CONF_DONEでLEDを光らせるために2回もトランジスタを使っている・・。

まとめ

VCCINT=VCCD_PLL=1.2V。

VCCA=2.5。

VCCIOは1.2~3.3Vですが、Bani1とBank6にコンフィグ関連ピンがあるので要注意です。

CONF_DONEとMSELはBank6に所属しています。Bank6のVCCIO電圧は3.3Vでも構わないのですが、MSELの設定はVCCA(2.5V)からの直結(プルアップ抵抗なし)になるので、ちょっと恐ろしいです。MSELはVCCA(2.5V)で設定ですがMSELのBankはVCCIO6なので要注意です

nCEはGNDへ。nSTATUSとCONF_DONEとnCONFIGは10kΩでVCCIO1へプルアップ。

 

| | コメント (0)

2024.12.21

JLCPCBに実装まで含めて発注してみた

今回、はじめてJLCPCBに実装まで含めて発注してみました。

検索するとJLCPCBに発注する記事はいくつか見かけるのですが、どれもKiCADを使ったものばかりですね。

私はPROTEL99SEを25年使っているのですが、さすがのJLCPCBもPROTEL99SEには対応していません。

ということで、PROTEL99SEで作った部品表を手作業で調整しながら、JLCPCBに発注する方法をまとめます。

 

まず、いつものようにガーバデータをZIPで固めて、JLCPCBの見積ページにドラッグ&ドロップして読み込ませます。

私の作ったデータの場合、どうしても2層として自動判定されてしまうので手動で4層を選びなおします。

Jlc_1

 

ガーバをアップロードしなおしたりPCBAをON/OFFすると層数が2に、「異なるデザイン」の数量が1に、表面処理が自動的にHASLになってしまので、正しい値を選択します。

基板のオプションなどを設定していって、下にいくとPCB組み立てというのがあるのでONにします。なお、ステンシルはOFFのままでもよさそうです。(PCB組み立てを選んだだけで自動的にステンシルは作られる)

Jlc_2

PCB組み立てをONにするとパネルづくりを手伝うかというダイアログが出るので、「いらない」を選択します。

Jlc_3

量産するような場合に、面付をJLCPCBに任せて効率化することを意味するようです。

PCB組み立ての選択パネルが開くのですが、デフォルトでは片面実装になっています。

両面実装にするにはエコノミックから標準に切り替えて、組み立てサイドを両面にします。

PCBA数量は最低が2個からなので、少なくとも2枚は実装しなければなりません。

Jlc_4_20241222074401

右側の料金計算の部分で「PCBAのみ」と書かれた方を選択して次へを押します。

※PCBAのみというのは、PCB実装しかしてくれないものだと思っていましたが、おそらくPCB実装を依頼する場合のみ選択して良いという意味なのでしょう。

確認の画面が出るので次へを押します。

Jlc_5

そして、BOMファイルとCPLファイルを求められます。

BOMは部品表、CPLは配置データのことです。

PROTEL99SEの場合、Cam ManagerでBOMとPickPlaceを追加します。

Jlc_6

やり方としては、PROTELが吐き出すBOMファイルの拡張子をXLSに変更してExcelで開き、新しいExcelファイル(xlsx)に内容をコピペして貼り付けます。(拡張子をxlsxにするのと、書式をクリアするため)

BOMは以下のような形式になります。

  • 1列目 Comment 素子の値とか
  • 2列目 Designators 部品番号
  • 3行目 Footprint 形状
  • 4行目 LCSC 部品会社LCSCの品番

Jlc_7

CommentsとDesignatorsとFootprintはPROTEL 99SEが出力したものをそのまま使えます。自分でやらなければならないのはLCSC品番を調べることくらいです。

ちなみに、LCSCというのは香港の部品流通業者で大量の部品在庫を持っています。Cで始まる部品番号を調べて記入します。このときLCSCが在庫しているデバイスに合わせるために若干手動で調整することがあるかもしれませんし、1.8Vと3.3Vの電源ICを同じ型番で回路図を書いてしまったようなときには、ここで手作業で修正します。

  

次にPROTELの出力した「Pick Place for ●●●●.csv」という配置データを開きます。

実は、このファイルはそのままCPLファイルとして読み込ませることができます。さすがPROTEL99SE、優秀。25年経ってもまだ使える。

形式は以下のとおりです。

Jlc_8

もしかするとFootprintとCommentはBOMと合わせておいたほうがいいかもしれません。

 

BOMとCPLを読み込ませたら、「BOMとCPLを処理する」ボタンを押します。

Jlc_9

私の場合、部品数が多すぎるせいなのかエラーが出ますが、そのまま次へを押せば次に進むことができました。

Jlc_10

(もしかするとDESIGNATORSという部品番号の部品がCPLファイルにみつからないと言っているのかもしれない。BOMの先頭行がコメントとして認識されていないだけか?)

 

BOMとCPLが連携されて、LCSCとも連携されて詳細な部品リストが表示されます。

Jlc_11

LCSCに在庫がない部品は「●個不足」にしておきます。

テストポイントみたいに実装しない部品は、BOMでLCSCの列を空欄にしておけば、「部品選択なし」になるので実装されません。(このやり方が正解かどうかはわからないけどうまくいっている)

次へを押した先のダイアログで「配置しない」を押せば、実装されないまま次に進むことができそうです。

Jlc_12

 

基板に部品が乗ったイメージの絵が生成されるので、3Dにして思う存分堪能します。

Jlc_13

 

そして最後の画面で金額を確認して終了です。

基板を作って、1604個の部品を実装しても3万円程度ですからコストパフォーマンスがすごすぎますね。

 

BOMはExcelを使って自分で書けるし、CPLはPROTELのPickPlaceのCSVがそのまま使えました。

 

| | コメント (3)

2024.12.20

シンIC Type-B用デバッグ基板の設計

シンICのType-B用デバッグ基板の設計を行いました。

この基板は中継基板から上がってくる720個の信号をLEDに表示するというものです。

コネクタのピンはGNDを含めて800ピンあるのですが、使っている信号は720個です。

しかし、コネクタのピン番号とLEDや抵抗の部品番号がずれるとややこしくなるので、ダミーのLED+抵抗を80個乗せています。

Sdb_1

合計で800個のLEDがあるのですが、使っているのは720個という富豪な設計です。

 

この基板の設計はシルクとの闘いの連続でした。

部品はコピペできますが、シルクは1つ1つ大きさや位置を微調整しないと見栄えがわるくなります。

Sdb_2

特に裏面はシルクを配置する隙間がなく苦労しました。

Sdb_3 

 

 

| | コメント (0)

2024.12.18

シンIC Type-Aデバッグ基板の設計

永き眠りを経て、半導体真贋判定装置「シンIC」の開発を再開します。

 

2023年に開発したシンICの装置は、検査の速度が遅いという問題がありました。

今の装置でも数個程度の検査なら構わない(セットアップの手間と時間のほうがかかるので、1個あたりのランタイムは気にならない)のですが、100個とか200個といった単位でICを検査する場合には実行時間を短くしなければなりません。

 

そこで、100倍の高速化を目指してコントロール装置を全面的に作り直すことにしました。

(ほかにも安全対策とか、いろいろな目的がある)

 

まずは設計の感覚を取り戻すためにもType-A用デバッグ基板の設計を行います。

たしか、最初に1辺の配置をして・・

Sda_3

コピペするんだったかな・・

Sda_4

 

そんなこんなで設計できました。

この基板は中継基板から上がってくる360個の信号をLEDに表示するというものです。

Sda_1

Sda_2

作っているうちにだんだん感覚を取り戻してきました。

 

年内に何か成果をだせるかな?

| | コメント (0)

2024.11.06

不正な住所

昨日、商品を発送した先の運送会社とお話しをしました。

〇×△□という事情らしいのですが、配達前で助かりました。

そうしているうちに、今日も注文がきました。

1件はクレジットカード決済代行会社の不正住所照合で調べてみると完全一致と出ます。クレジットカードの決済代行会社というのはしっかりしていて、その住所には発送するのは注意してねと教えてくれるようです。

 

 

 

| | コメント (0)

2024.11.05

注文が来た・・・ん?

注文が来たーと喜んでいたのですが、なんか、違和感があるのです。

個人のお客様が購入されたのですが、どうも違和感があります。

何がおかしいかというと、女性の名前で個人注文なのです。

うちが扱っているような電気電子の回路の基板の客層は99%男です。

電気電子工学科や物理学科の男女比を見ればわかります。

購入者が女性である場合は商社かメーカーや大学の人で、個人の女性客は1%もいません。

それが2件も続けてきたら、何か変なのです。

| | コメント (0)

2024.10.18

ダイオードスイッチの設計(1)

高周波の信号をON/OFFする回路として、ダイオードスイッチという回路があります。

基本は次の図のような回路です。Vbiasに電圧をかけてダイオードがONしたらVinとVoutの間の抵抗値が低くなり、Vbiasの電圧を止めるとダイオードがOFFしてVinとVoutの間の抵抗値が高くなるというものです。

この図の回路を直列型といいます。

Diodesw1

もう一つの構成方法として、並列型というのがあります。

Diodesw2

このタイプではVbiasをかけてダイオードがONしている間はVinがGNDにショートされるのでVoutに抜けてこないというわけです。

なお、上の図には描いておりませんが、VinとVoutはGNDにショートされるわけではなく、DCを阻止するためのコンデンサがあるので、Vinの前とVinの後にコンデンサがあると思ってください。

直列型と並列型のどちらでもダイオードスイッチは構成できます。

 

さて、原理は上で述べたとおりなのですが、回路図どおりに作ると1GHzくらいで使えなくなってしまいます。使えなくなるというのは、ONしていてもOFFしていても同じくらい漏れてくるということです。

 

以下、その理由を説明します。 

ONしたダイオードは抵抗+寄生インダクタ、OFFしたダイオードはコンデンサ+寄生インダクタとして考えます。ダイオードはONするかOFFするかで中身が抵抗になるかコンデンサになるかが変わる素子として考えます。

Diodesw3

だいたいの場合、Rsは5~10Ω程度、Rpは100kΩくらいです。RsとRpは結果にあまり影響を与えません。

Lsは1nH以下ですが、これはダイオードの中のボンディングワイヤや配線に起因しています。高速プリント基板の配線をしていれば、配線長1mm≒1nHという関係式が染みついていると思いますのでダイオードのサイズを見ればだいたいのインダクタンスはわかるでしょう。

Csは高周波特性に大きな影響を与えます。高速なPINダイオードだと0.045pFくらいになります。

これらを用いてON時とOFFのインピーダンスを求めますが、順電圧を加えたときの抵抗値をRf、逆電圧を加えた時の抵抗値をRfとすると、

Rf=R+j(ωL) ・・・順電圧(ON)時 (式1)

Rr=R+j(ωL-1/ωC) ・・・逆電圧(OFF)時 (式2)

となります。

次に、ONとOFF時の挿入損失を計算します。挿入損失は、

IL=-20log|2Z0/(2Z0+Zd)| ・・・直列型 (式3)

IL=-20log|2Zd/(2Zd+Z0)| ・・・並列型 (式4)

となります。

ここで、Zdというのは、ON時のインピーダンスRfと、OFF時のインピーダンスRrのことで、直列型の挿入損失を求めるには式3のZdに式1と式2のRfとRrを代入するような計算をします。

 

まず、「マイクロ波工学」の例題11.1に出ているMicrosemi社のUM9605PINを例に計算してみます。

C#でプログラムを書いて0.1GHz~20GHzまで計算しました。

Diodesw4

教科書の例題では1.8GHzで、ILon(直)=0.14dB、ILoff(直)=6.0dB、ILon(並)=0.11dB、ILoff(並)=13.3dBなので、並列型の方がON時とOFF時の減衰の差が大きくなるという答えが載っていて、上のグラフでも同じです。

要するに、ONとOFF時の減衰量の差が大きい方を選べばよいわけです。

灰色の線(並列シャント時のON)にピークが出ていますが、並列時のONというのはダイオードがOFFしているときなので、ダイオードはコンデンサになっていて、コンデンサとリード線やボンディングのインダクタンスが共振して抵抗値0になっているわけです。

Diodesw11

スイッチのON(ダイオードのOFF)なのに損失が大きいということは期待したものとは逆の動作ですし、周波数も微妙な加減で決まるので使いにくいと言えるでしょう。

黄色やオレンジの線が青や灰色よりも大きいところでダイオードスイッチとして動作します。

 

 

 

さて、本題に入りましょう。MACOM社のMADP-011029-14150Tというダイオードを使った場合の計算をします。

Diodesw5

このダイオードはシャント型で使うことが推奨されていて12GHzまで使えるとのことです。

計算してみると14GHz付近にピークがあります。(もしかしたらLsの読み方を間違っていて、本当は10GHzくらいかもしれません)

Diodesw6

ただし、これはOFFしているはずのダイオードが筒抜けになっている状態なので、使いものになりません。使えるのはせいぜい6GHzくらいまででしょう。

  

最後は本命のMADP-000402-12530Pです。

ガラスパッケージで、すぐに割れて壊れる非常にデリケートなダイオードです。

Diodesw7

計算した限りでは変な共鳴ピークはなく20GHzまで使えそうです。

Diodesw8

ただし、周波数が高いところではONとOFFの差が少なくなってきて、あまりよい性能が出せません。

 

これを改善する方法として、ダイオードに並列にLCを入れるというテクニックがあります。

Diodesw9

ダイオードがOFFするとコンデンサになるので、Lextとで共振させてインピーダンス∞にしてやろうというわけです。Lextは、ダイオードの中のコンデンサと共振させることで阻止したい周波数から計算して決めます。16GHzくらいにする場合は1.5~2nHとなりました。幅があるのはプリント基板の配線は1mm≒1nHなので、その分を引いた微妙な加減が求められるからです。

なお、CextはDCカットのためのものなので、何pFでも構いません。10pFくらいにしておけば無害です。

 

ダイオードに並列にLを入れた回路の特性を次の図に示します。ある周波数で直列offの減衰量(オレンジ)が大きくなって大きな減衰比が得られることがわかります。

Diodesw10

周波数に依存する特性になってしまいますが、1nH~2nHのインダクタをダイオードに並列につなぐだけで特性が改善できるので効果的なテクニックと言えるでしょう。実際にはここまで鋭いピークにはならず、頑張っても8dBくらいのON/OFF比しか取れませんが、性能は改善できます。

 

まとめると、

  • 並列型と直列型の両方で計算して、ON時とOFF時の差が大きいほうを選ぶ
  • 並列型は共振してしまう周波数では使えない
  • 周波数特性を改善するにはLCを並列に付けるのだが、周波数特性が激しくなる

です。

基本的には小さなパッケージのダイオードほどCが小さいので高周波まで使えます。

| | コメント (0)

2024.10.14

DSF2024と技術書典17に出展します

突然ですが、Design Solution Fair 2024に、ACRiブースの中で出展することにしました。

DSFとは開催される組み込みシステムの展示会で、10月25日(金)に川崎コンベンションセンターで開催されるようです。

 

突然のことなので、現時点では何も用意していません。

これから10日ほどかけてFPGAの入門的な同人誌を作ろうと思います。

最近のFPGAの入門って、AIや中華系安物FPGAや高位合成に偏りすぎていると思うので、XILINXのFPGAをVHDLを使ってステートマシンを書いて動かすという、非常に古臭い本を書こうと思います。

流行に惑わされず、本当の力になる本を書きたいと思っていました。

なお、同人誌は11月3日の技術書典17で販売予定です。

ご期待ください。

| | コメント (0)

«SMAコネクタの正しい実装方法