フォト
無料ブログはココログ

MyList

FPGA

2020年3月16日 (月)

ADALM2000(4) <変調波を出してみる>

 AWGの[Math]機能を使って変調波を出力してみる。

 変調がかけられると受信機の調整に使える。3

〇AM

 振幅変調(AM)波を出してみる。
キャリア(Vc)、変調波(Vs)を

vc = Vc・cos(ωc・t)
vs = Vs・cos(ωs・t)

とする。

 AM波は、Vcの大きさがVsで変化するから

Vam = (Vc+kVs・cos(ωs・t))・cos(ωc・t)

= Vc(1+m・cos(ωm・t))・cos(ωc・t)
= Vc・cos(ωc・t) + Vc・m/2・cos(ωc+ωm)t + Vc・m/2・cos(ωc-ωm)t

変調度:m=kVs/Vc

 これをAWGの[Math]で出力してみる。
変調波を1.5kHz、キャリアを1.125MHz=1.5kHz×750、変調度:m=0.6とすると

f(t)=5*(1+0.6*cos(t))*cos(750*t)

きれいなAM波だ。

Am_1k_125m_m06_awg

SAで見ると

Am_1k_1125m_m06_sa2

ちゃんと、キャリアと上側と下側にスペクトルがある。


〇DSB

 両側波帯(DSB)は、AMのキャリアがなくなったものだから、


Vdsb = Vc・m/2・cos(ωc+ωm)t + Vc・m/2・cos(ωc-ωm)t

 AM波の1項目(Vc・cos(ωc・t))を除いている。

f(t)=2.5*0.6*(cos(751*t)+cos(749*t))

SAで見ると、当然キャリアはない。まあ当然だけどね。

Ssb_1k_125m_sa

波形を見ると、

Ssb_1k_125m_awg

↑の波形をみて、キャリアがないとわかるのは見慣れているからか?

〇FM

 周波数変調(FM)波は、キャリアの周波数(Vc)が変調波(Vs)で変化する

Vfm = Vc・sin(ωct + m・sin(ωst)) 変調指数:m=Δf/fs

変調波を1.5kHz、キャリアを1.125MHz=1.5kHz×750、変調指数:m=3とすると

f(t)=5*sin(750*t + 3*sin(t))

帯域が広がっている。↓

Fm_15k_125m_m3_sa

変調指数が2.4になると、キャリアが消えると昔教えてもらった。

f(t)=5*sin(750*t + 2.4*sin(t))

キャリアが消えている。↓

Fm_15k_125m_m24_sa

 キャリアが消えて何が嬉しいかというと、この性質を利用すると最大周波数偏移の調整ができる。

 VHF帯FM(F3E)の占有帯域幅:Wは16kHz、最大変調周波数:fsは3kHだから最大周波数偏移:Δfは

W = 2(Δf + fs)
Δf = W/2 - fs

= 16/2 - 3
= ±5KHz

 FM送信機の最大周波数偏移Δfを調整するときには、スペアナでキャリアが消えるポイントを見て調整できる。
昔無線屋さんだった時にはスペアナは無ったので、局発がスイープできる電界強度測定器とオシロを使って狭帯域スペアナにしていた。

 m = Δf/fs = 2.4 のときキャリアが消えるので
 5kHz/2.4 = 2083Hz を入力してキャリアが消えるポイントに調整すると周波数偏移は±5kHzになってる。

 でも、いちいちスペアナ出してくるのは面倒だからFM直線検波器で調整してたんだけどね。;p

###

 [Math]で発生できる周波数は1つで、関数は、三角関数と指数関数、平方根しかない。もう一つ周波数があって、非線形の関数があるとデジタル変調波が生成できるのだが。 自分で計算して[Buffer]で出力するのかな。



最近の投稿】【最近のRF】【最近のFPGA】【最近のCPUボード】【2019の投稿】【2018の投稿】【2017の投稿】【2016の投稿】【2015の投稿

2020年3月 1日 (日)

ADALM2000(3) <AWG,OS,SA>

ADALM2K用アプリはScopyAliceがある。Scpoyの方が使い勝手がよさそうだ。

 アプリの使い方に慣れるために、AWG(AnalogWaveGenerator)の出力をアナログ入力につないで、オシロスコープ、スペアナを動かしてみた。

〇AWG

 AWGのモードには、[Constant]、[Waveform]、[Buffer]、[Math]がある。

  • [Constant]は直流電圧を出力する。
  • [Waveform]で正弦波、矩形波、三角波、台形波、鋸歯状波、逆鋸歯状波が選択できる。
  • [Buffer]は波形データを読み込んで出力できる。
  • [Math]は数式で表した波形を出力できる。

1MHzの矩形波を出してみる。

Sqr_1m_50duty_awg

学校で先生に「すべての波形は正弦波の集合で荒らすことができる」なんていわれたけど、全然ピンとこなかった。
でも、これを、スペアナで見ると矩形波はたくさんの高調波を含んでいるのが見える。

Sqr_1m_50duty_sa
当時これを見たら、先生の説明も、「なるほど、そんなものか」と思うだろう。

 フーリエ変換を習うと、デューティサイクル50%だから偶数(2の倍数)次の高調波はなくなるはずだが、なくなっていないことに気づく。そして、理論を実現するには限界があることを学ぶ。限界を極めるのはもっと難しい。

 AWGはデューティサイクルが設定できるので、20%にしてみる。5の倍数の高調波がなくなるはずだ。

Sqrt_1m_20duty_awg

本当に消えてる。限界は一定ではない。

Sqr_10m_sa

 反対のことをやってみる。本当に正弦波を重ねると矩形波になるのか?[Math]モードで数式を入力すると波形を出力してくれる。

 正弦波はをフーリエ級数展開すると。

f(t)=1/4π{sin(t)+1/3sin(3t)+1/5sin(5t)+1/7sin(7t) ・・・}

と昔習ったので、9次くらいまでやってみる。
最初は基本波。振幅は5vにして f(t)=5*(sin(t)}

Sin_sinx1_sa

3次、5次、7次と増やして
9次まで f(t)=5*(sin(t)+sin(3*t)/3+sin(5*t)/5+sin(7*t)/7+sin(9*t)/9)

Sin_sinx9_awg

 9次くらいでは、ぜんせん矩形波らしくないけどそれっぽくはなってきた。じゃあ99次まで

Sin_sinx99_awg
理論と現実の壁だ。

〇オシロ

 2chあるのでXYモードがある。XYモードといえばリサージュ波形だ。
AWG1で1kHzの正弦波を出力して、AWG2で90°位相が遅れた正弦波を出す。それをそれぞれ、アナログ入力1,2に入力して、リサージュ波形を描かせる。

 90°位相差があると、リサージュ波形は円になる。教科書どおりだ。(図はX軸とY軸のスケールが違うので楕円になってる)

Sin_1k_ph90_os

オシロで位相差を図ってみたら、90.354°画面から読み取ったので誤差が大きいかも。

Sin_30m_ph90dig_2ch_os

45°ずれると45°傾いた楕円になる。

Sin_1k_ph45_os

周波数が高くなると誤差が増えるのではないかと思ったら。30MHzでも誤差は少ないようだ。

Sin_30m_ph90_os



最近の投稿】【最近のRF】【最近のFPGA】【最近のCPUボード】【2019の投稿】【2018の投稿】【2017の投稿】【2016の投稿】【2015の投稿

2020年2月14日 (金)

ADALM2000(2) <開けてみた>

ADALM2000(M2K)を買った

やっぱり中が気になるので開けてみた。

〇表

Adalm2kpcb

〇裏

Adalm2kpcb2

AD9963

Ad9963

 この製品のキーパーツ。

100Msps12bitADC×2, 170Msps12bitDAC×2 のミクスト・シグナル・フロントエンド。
SDRや超音波医療機器のフロントエンド、携帯用測定器への応用を想定しているらしい。

Zynq-7000 SoC

Zynq7000

  旧AlteraのFPGA Artix-7とDual-Core ARM Cortex-A9が入ったSoC
組込みLinux+ハードウェアを制御する部分はFPGAで実装するのでデジタル回路は少なくなる。
この製品も、AD9963とZYNQ-7000以外はアナログ回路だ。さらに、FPGAで、ロジックアナライザやパターンジェネレータを実装している。

〇JTAG&Serial

 JTAGとシリアルのコネクタがある。

Adalm2ktp

 AD9963が想定している用途では、アナログ回路の設計が重要になるが、アナログ回路の技術者は不足していてなかなか育成できないから貴重だ。だから、チップベンダーとしてはチップを開発するだけでは売れず、売ろうとするチップを使用した製品を積極的に市場に投入しないと使われない(使えない)のではないだろうか、と考えるとこの製品は設計見本なのだろう。そのうち、半額以下でパチモンが出てくる?。(^^;

 やっぱり、Wifiのチップはない。
今時bluetoothやWifiのモジュールは安くなっているので入っていてもよさそうだ。しかし、無線モジュールを実装するとノイズが増えるだろう。使い勝手は良くなるが測定器として使うには素直なほうが良いという設計方針なのだろう。

 作業机で使うことを考えるとPCよりタブレットで使えるとうれしいのだが。

 



最近の投稿】【最近のRF】【最近のFPGA】【最近のCPUボード】【2019の投稿】【2018の投稿】【2017の投稿】【2016の投稿】【2015の投稿

2020年2月10日 (月)

ADALM2000 <1台の装置で複数の計測>

 アナデバのADALM2000(ADALM2K)を買ってみた。

 20年くらい使っているアナログオシロがくたびれてきたにで新しいと思い安物のデジタルオシロを探していた。ディスプレイを持たないUSB接続のオシロはかなり安くなっているようだ。ところが、安物の帯域は1MHz程度が多い。オーディオ帯域を見るならこれでも良いのだが、やはり、高周波も見たい。

Analog Discovery 2は100Msps/14bit/2chでよさそうだが、¥3,6720@秋月なのでディスプレイがあるDSSが買える。
Open Scope MZ は6.25Msps/12bit/2chで1,0580@秋月だ。帯域は物足りないけどこれを買おうかと思っていたら、ADALM2Kに気がついた。
ADALM2Kは100Msps/12bit/2chで1,2580@秋月だ。分解能はAnalog Discovery2より劣るが値段が1/3だからこんなもんだろう。
2018年から販売しているらしい、気がつかなかった。

アナデバのページ(https://www.analog.com/jp/analog-dialogue/studentzone/studentzone-june-2019.html)によると機能は、

  • USB 2.0/OTGに対応(LANとWi-Fiをサポート)←LANとWifiをサポートの意味が分からない
  • 2つの汎用アナログ入力
    差動、±25V、1MΩ || 30pF 、12ビット、100MSPSのADC。帯域幅は25MHz
  • 2つの汎用アナログ出力
    シングルエンド、±5V、50Ω、12ビット、150MSPSのDAC。帯域幅は30MHz
  • 2つの可変電源
    0V~5V、-5V~0V、50mA
  • 16本のデジタル入力/出力ピン
    3.3V、1.8V、100MSPS、5Vトレラント
  • 2つのデジタル・トリガ
    3.3V/1.8V、100MSPS、5Vトレラント

というもの。

中身は、本体とUSBケーブル、5x2のアナログ用ワイヤ、10x2のデジタル用ワイヤ。

Adalm2k2

ピン配置はコネクタの上面に印刷してある。

Adalm2kcon
左側(1+~GND)はアナログ、右側はデジタルIO 16ch。

 BNCコネクタのプローブが使えないと不便だ。BNC拡張基板を作ろうかと考えて部品をカートに入れたら、Analog discovery2用のBNC拡張基板と値段があまり変わらないので一緒に買った。(年を取るとめんどくさくなるんだよね)

Adalm2kbnc

左側がアナログ入力(2ch)、右側がアナログ波形出力(2ch)、AC/DCカップリングは青色ジャンパーでの切り替える。本体のピンはすべて下側のヘッダピンに出ている。

 M2Kの回路図は(https://wiki.analog.com/university/tools/m2k/devs/hardware)で公開されている。

 M2Kの構成をざっくりいうと、2ch,100MspsのDAC/ADC(AD9963BCPZ)+Linuxだ。LinuxはXilinxのSoC、ZYNQ-7000(ARM Cortex-A9 Dual-Core)に実装している。ARM Cortex-A9 Dual-Core,RAM512bだかiPhone4Sくらいか。

 回路図にはWifiが載ってない。ラベルにMACアドレスが書いてあるので載っているはずなのだが、

Adalm2kmac

 PCに接続すると、たくさん認識される。

M2k_devices

〇ディスクドライブ

M2k_massstrage

認識されたドライブにinfo.htmlがあるのでブラウザで開くと、ファームウェアのバージョンなどの情報を見ることができる。このドライブでDFUを使ってファームウェアのアップデートできる。

〇シリアルデバイス

M2k_serial_login

 ターミナルソフトを使って115,200bpsで接続するとログインできる。
ユーザー/パスワードはwiki(https://wiki.analog.com/university/tools/pluto/drivers/windows)にある。

〇ネットワークアダプタ

M2k_ssh_login

 NICとしても認識しているので、192.168.2.1にブラウザでアクセスすると、ストレージで見えるinfo.htmlと同じ内容が表示される。また、sshでアクセスするとログインできる。

 netstatで待ち受けポートを見ると 30431/TCPが開いてる。調べてみると、IIOらしい。IIOはLinux Industrial I/O Subsystem(https://wiki.analog.com/software/linux/docs/iio/iio)で、簡単に言うとA/D、D/Aにアクセスするしくみだ。A/D入力、D/A出力しようとすると、どこかでバッファを持たなければならないのだが、IIOはドライバがリングバッファを経由したアクセスを提供してくれるので、アプリはバッファを管理しなくてよい。

 機能に書いてあった、LANというのは、ネットワークデバイスのことだろう。じゃあ、Wifiってなんだ?

 たぶん続く



最近の投稿】【最近のRF】【最近のFPGA】【最近のCPUボード】【2019の投稿】【2018の投稿】【2017の投稿】【2016の投稿】【2015の投稿

2016年4月23日 (土)

トランジスタ技術2016年4月増刊 - FPGA電子工作スーパーキット -

トランジスタ技術2016年4月増刊
(1)MAX10(2)ライタ(3)DVD付き! FPGA電子工作スーパーキット

 トラ技2015/11でアナウンスされていた、MAX10付増刊号がようやく発売されたようだ。

 MAX10搭載ボード、JTAGライタ基板、DVDが付いて、4,860円らしい。

基板はマルツでも売っていて、
MAX10搭載ボードは 5,980円、TAGライタ基板は 3,480円 だから、トラ技増刊の方がお買い得かもしれない。
ただし、トラ技増刊のオマケにはSDRAMが載ってない。

 マルツのボードは

  • MAX10 10M08SAE1448G
  • 48MHz 発振器
  • SDRAM 32Mx16
  • フルカラーLED x1
  • SW x1

だから、BeMicro Max10より見劣りがするなあ。

 BeMicro Max10は買ったけど、MAX10に対応したQuartusIIが64bit環境でないと動かないのでそのままになっている。

連休中にせめてLチカまでは何とかしよう。



最近の投稿】【最近のFPGA

 

2016年3月11日 (金)

IntelのAltera買収 - Intelの思惑 -

Intel Completes Acquisition of Altera
(https://newsroom.intel.com/news-releases/intel-completes-acquisition-of-altera/)

 IntelがAlteraを買収していたことを今更知った。

 Intelの思惑は、

 今後、パソコン用のCPUでは儲からなくなる。今後成長が見込めるのはクラウドと組み込みだ。データセンター用のCPUは押さえているけど性能を向上させるのは困難だ。組み込み用CPUはARMだから入り込む隙間がない。
ということで、データセンター用CPUにFPGAをアクセラレータとして使い、組み込み用にはFPGAで勝負する。

という戦略らしい。

Xon E5-26xx + Stratix + OpenCL か、Stratix入りXonは個人レベルで使えるようにはならないだろうなあ。



最近の投稿】【最近のFPGA

2016年2月 5日 (金)

BeMicro Max 10

 AlteraのFPGA Max10が載った評価ボード BeMicro Max10はトラ技 2015/11に特集があった。トラ技には、「[制作中]最新の不揮発FPGA MAX10 DIP基板付き増刊」だったはずなのだが、増刊がなかなか出ないのでBeMicro Max 10を買うことにした。

 この評価ボードは

  • MAX10(10M08DAF484C8GES)
  • USB-Blaster
  • 50MHz発振器
  • 8MB SDRAM
  • 3軸加速度センサ(ADXL362)
  • 12bit DAC(AD5681)
  • 温度センサ(ADT7420)
  • サーミスタ
  • CDS
  • LEDs×8
  • SW×2

が載って、なんと$30だ。

 去年には、マルツにもChipOneStopにもあって、4,500円~5,000くらいだったけど、今は在庫無しになっている。さらにAlteraのweb shopも在庫なしだ。orz

Netで探すと
DIGITALFILTER.COMオンラインショップ
6,900円

Amazon(Umemoto LLC)
6,300円
が見つかったので、Amazonでポチったら2日で届いた。
Bemicromax102

 意外に小さい
Bemicromax101

 早速、Quartus IIの最新版をDLしてインストールしようとすると、「このソフトは64bit版だから、32bit環境じゃ動かないよ」と言われる。 今インストールしてあるのは Ver13.1sp2だ。最新版ではないけれど、このバージョンで使えるならいいだろうと新規プロジェクトを作成すると、Max10が無い。orz

 どのバージョンだったら使えるのか、MACNICA Onlineにある

Quartus - サポート・デバイス 対応表」 で調べたら、Quartus II 14.0 Updte2かららしい。
Ver14.0の32bit版はあるのか、

Quartus - サポート Windows OS 対応表」で調べると、32bit版があるのは Ver13.1までということが分かった。orz

 OSは先日 Windows7/32bit から Windows10/32bitに上げたばかりだ。
無償で64bitになるらしいがクリーンインストールが必要らしい。 orz

 熱が冷めないうちに、OSを64bitにしなくては



最近の投稿】【最近のFPGA

2015年9月28日 (月)

Altera MAX10

MAAlteraのMAX10 には、なんと 12bit 1MspsのADCが付いている。

そして、MAX10が載った「BeMicro MAX 10 評価キット」が出てる。


http://www.alterawiki.com/wiki/BeMicro_Max_10

  この評価キットMAX10の他に、

  • USB-Blaster
  • 50MHz発振器
  • 8MB SDRAM
  • 3軸加速度センサ(ADXL362)
  • 12bit DAC(AD5681)
  • 温度センサ(ADT7420)
  • サーミスタ
  • CDS
  • LEDs×8
  • SW×2

が載って$30だ。

この評価キットをAlteraのWebショップで買うと送料が本体くらいかかるので、送料込7000円超だろう。
ChipOneStopにもあってこちらは送料450円なので4000円くらいか。

 そして、トラ技11月号の特集でBeMicroキットを扱うらしい。しかも、MAX10 DIP基板付き増刊が製作中になっている。

 でも、トラ技増刊は$30では買えないだろうから、BeMicroMAX10評価キットを買った方が良いのかもしれない。

とりあえずトラ技11月号を待つか。

2014年12月19日 (金)

MCPU - Minimal CPU for a 32 Macrocell CPLD

Opencoresに「MCPU - Minimal CPU for a 32 Macrocell CPLD 」という、わずか32マクロセルで構成できるCPUのIPがある。

Mcpu

 データバス8bit、アドレスバス6bitで、命令は4つだけだ。
ジャンプは条件ジャンプJCC(Jump if Carry Clear)しかなく、演算命令は、NORとADDだけだ。

Mnemonic Opcode Description
NOR 00AAAAAA Accu = Accu NOR mem[AAAAAA]
ADD 01AAAAAA Accu = Accu + mem[AAAAAA], update carry
STA 10AAAAAA mem[AAAAAA] = Accu
JCC 11DDDDDD Set PC to DDDDDD when carry = 0, clear carry

Accにデータをロードする LDA memは、NOR allone、ADD memの2命令で実現する。(alloneは11111111が記録されているアドレス)
無条件ジャンプ JMP dstはJCC dst,JCC dstの2命令で実現する。JCCが実行されると分岐するしないにかかわらずCarryはクリアされるので、どちらかのJCC dstでジャンプできる。

Macro Assembler Code Description
CLR NOR allone Clear Accu (allone contains 0xFF)
LDA mem NOR allone,ADD mem Load meminto Accu
NOT NOR zero Invert content of Accu (zero contains 0x00)
JMP dst JCC dst, JCC dst Unconditional jump to dst
JCS dst JCC *+2, JCC dst Jump if carry set
SUB mem NOR zero, ADD mem, ADD one Subtract mem from Accu (one contains 0x01)

 久しぶりに見たら、アセンブラとシミュレータがGitHubで公開されていた(https://github.com/cpldcpu/MCPU)のでDLしてみた。

Cpu3emu

このCPUの論文(mcpu.pdf)には、XilinxのWebPackとXC9536で合成できると書いてあるが、デフォルトの設定でコンパイルすると、Fitでエラーが発生する。

ERROR:Cpld:868 - Cannot fit the design into any of the
specified devices with the selected implementation options.

だそうで、Fitのプロパティの Implementation Template を Optimize Density にすると合成できる。

 秋月で売ってる XC9536XL-10 VQG44C だと、10.638MHzで動くらしい。
(今気づいたのだが、以前売ってたのは、たしかXC9536だったけどいつの間にかXC9536XLになってる。)

 あとは、RAMとクロックがあれば動くが、何か制御しようとすると外付けでI/O必要だ。バッファ(74HC541)とラッチ(74HC574)とアドレスデコーダーで作れるが、アドレスデコーダーはXC9536に納まりそうだ。
(今気づいたのだが、秋月では東芝のTC74HC541APとTIのSN74HC541Nを売っているがSN74HC541Nの方が20円安い)

つづく

2014年3月19日 (水)

Papilio pro

Papilio proをトラ技の記事で知った。

このボード

  • Spartan 6 LX(XC6SLX9 TQG144)
  • 64M SDRAM(MT48LC4M16)
  • 64M SPI Flash(MX25L6445)
  • USB-JTAG FT2232

が載って、$84.99だ。
拡張ボード(MegaWing)も用意されている。

 FPGAに実装できるCPUとして、ZPUかAVRコアが用意されている。アプリはArduinoIDEのようなZAP IDEで作るらしい。

 

Zapide_zpuZapide_avr

 

ZPU(左)かAVR(右)か選択できる。

ライブラリにSump Logic Analyzerがある。
Zapide_lib

入力バッファ付けると32chロジックアナライザになる!
いいかも

秋月でも売ってた