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

MyList

CPUボード

2022年5月21日 (土)

久々の物欲

ワイヤレス・キーボードやワイヤレス・マウスに使われているチップnRF24LE1が気になって調べていたら、プロトコル互換のnRF52840が載ったドングルスイッチサイエンスで見つけた。

ついでにCH551(8051+USB)が載ったドングルを見つけた。カートを見たら、あと200円で送料無料と表示されるので、つい、RaspberryPI-picoもカートに入れてしまった。

ところが、決済する段になってほしかったnRF52840ドングルCH551ドングルが無いことが分かった。(;_;
仕方がないので、CH551ドングルの代わりにCH599が載ったボードを買うことにした。

nRF52840が載ったボードは何種類かあるのだけれど高価だった。あきらめきれずAamazonで探したら、nRF52832乗ったモジュールを見つけた。

最近Amazonで買っているちょっとアヤシイ製品は大陸から発送されるので到着まで1月くらいかかる。ところが、この製品は翌日に配送された。(これが本当のAmazonだよな)

開けてみると、小さっつ! 寄る年波には勝てず細かいはんだ付けができない。このモジュールが載ったボードを買うべきだった。orz
Nrf528321

表と裏 セラミックアンテナが載っている。
Nrf52832front Nrf52832rea

スイッチサイエンスからは翌々日に届いた。
スイッチサイエンスの箱にはメッセージがある。↓

Swsience

CH559搭載ボード↓ 謎ジャンパーがある (?_?
Ch559pico

CH559

Ch559_20220520231801

よくある8051を拡張したMCUと思ったら、USBホストが付いていたり、FATライブラリが付いていたり、結構面白いかも。

RaspberryPi pico
Razpipico

RaspberryPI だけどMdelA/ModelBのようにOSが載るわけではない。
RaspberryPI財団が作った、Cortex M0+のマイコンボードだ。

MCUはRP2040
・dualcore Cortex M0+ @133MHz
・SRAM 264KB Flash 2MB

ファームウェアはC/C++とMicroPythonがあるようだ。
arduinoIDEでもサポートしているらしい。
お手軽だなあ。


最近の投稿】【最近のCPUボード】【最近のプログラミング】【2019の投稿】【2018の投稿】【2017の投稿】【2016の投稿】【2015の投稿

2021年2月21日 (日)

stcgal <質問に答える>

昔書いたSTC micro techのMCUにF/Wを書き込むツール stcgal について質問があった。Cygwinでstcgalを使うとFileNotFoundがでるらしい。
3年以上前のことなのですっかり忘れていて、PCも変えたので環境もないのでもう一度でやってみた。

〇結論

Cygwinでsctgalをつかったときに、「 FileNotFoundError(2, '指定 されたパスが見つかりません。', None, 3)」というエラーが発生した場合、↓の可能性がある。

  • Cygwinのpythonをインストールしていない
  • Windows版のpython.exeが実行されている

〇環境

  • windows版のpython3.8がインストールされている。
  • Windwos Subsystem for Linuxがインストールされている。
  • Cygwinはインストールしていない。

今回Cygwin-x86_64をインストールした。

〇USBシリアル

USBシリアルモジュールを接続するとWindowsではCOM6で認識している。

Usbserial

CygwinではttyS5として認識する。

~/Documents/src
$ ls /dev
clipboard  console  mqueue  scd0    sdb1    sdc     stderr  ttyS2 
conin      dsp      null    sda     sdb2    sdc1    stdin   urandom 
conout     fd       ptmx    sda1    sdb3    shm     stdout  windows 
cons0      full     random  sdb     sdb4    sr0     tty     zero

~/Documents/src
$ ls /dev
clipboard  console mqueue  scd0    sdb1     sdc     stderr  ttyS2   zero
conin      dsp     null    sda     sdb2     sdc1    stdin   ttyS5
conout     fd      ptmx    sda1    sdb3     shm     stdout  urandom
cons0      full    random  sdb     sdb4     sr0     tty     windows

〇sctgalインストール

$ pip3  install  stcgal 
Collecting stcgal 
Downloading stcgal-1.6-py3-none-any.whl (35 kB) 
Collecting pyserial>=3.0 
Downloading pyserial-3.5-py2.py3-none-any.whl (90 kB) 
|・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・| 90 kB 1.3 MB/s 
Collecting tqdm>=4.0.0 
Downloading tqdm-4.57.0-py2.py3-none-any.whl (72 kB) 
|・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・| 72 kB 150 kB/s 
Installing collected packages: tqdm, pyserial, stcgal 
Successfully installed pyserial-3.5 stcgal-1.6 tqdm-4.57.0 
WARNING: You are using pip version 20.1.1; however, version 21.0.1 is available.
You should consider upgrading via the 'c:\users\yshin\appdata\local\programs\python\python38\python.exe -m pip install --upgrade pip' command.
 

stcgalのページに書いてあるとおり。

〇Cygwinでstcgalを実行

~/Documents/src
$ stcgal -p /dev/ttyS5
Serial port error: could not open port '/dev/ttyS5': FileNotFoundError(2, '指定 されたパスが見つかりません。', None, 3)

本当だ。?_?)

〇stcgal.pyはどこにある

Cygwinでstcgalを探したけど見つからない。 /usr/local/lib/python3.8/site-pacagesにあるはずだけど...

そういえば、stcgalをインストールしたとき、WARNIGメッセージに"python.exe"と表示されていた。ひょっとして、Windows版pythonが実行されている?
調べたら、Cygwinのpythonをインストールしていななった。 (^^; 
CygwinはWindowsの環境変数を引き継ぐようだ。Cygwinでpythonをインストールしていない場合Windows版のpython.exeが実行されていたようだ。 Windows版だから、/dev/ttySxって知らないよね。

〇Cygwinのpython3.8をインストール

Cygwinのpython3.8をインストールして、stcgalを実行する。

手順は↓のとおり。

  1. GNDだけ接続。(VCCはまだ接続しない)
  2. STC12C2052のP3.0/RxD、P3.1/TxDをパソコンのシリアルに接続
  3. STC12C2052のP1.0とP1.1をGNDに接続
  4. stcgal.py -p /dev/ttyS5  ←stcgal実行
  5. "Waiting for MCU, please cycle power:" ←が表示される。
  6. 電源投入(VCC接続)

$ stcgal -p /dev/ttyS5
Waiting for MCU, please cycle power: done
Protocol detected: stc12a
Target model:
Name: STC12C2052
Magic: F202
Code flash: 2.0 KB
EEPROM flash: 4.0 KB
Target frequency: 5.725 MHz
Target BSL version: 5.8D
Target options:
low_voltage_reset=low
clock_source=internal
watchdog_por_enabled=False
watchdog_stop_idle=False
watchdog_prescale=256
eeprom_erase_enabled=False
bsl_pindetect_enabled=False
Disconnected!

ちゃんと認識した。(^^ めでたし、めでたし。

〇ちなみに

↑の方法で書き込む場合、電源にコンデンサがあると認識しないことが多い。(電源リセットだからね)

STC12C2052 (2017/09/24)にBash on Windowsでは使えないと書いたが、Windows10のWindows Subsystem for Linuxでもちゃんと使えた。ttySxの数字はWindowsのCOMxと同じ。(CygwinはttyS(x-1)=COMx)



最近の投稿】【最近のCPUボード】【最近のプログラミング】【2019の投稿】【2018の投稿】【2017の投稿】【2016の投稿】【2015の投稿

2020年11月18日 (水)

micro:bitで跳び上がると表示する名札 <ウケ狙い>

 micro:bitで加速度センサーを使ってみた。
加速度センサーのY軸の値を監視して、一定値より小さくなったら表示が始まる。micro:bitを身に着けていると、飛び上がると表示が始まる。

Jumptostart

電池ホルダーを胸ポケットに入れてmicro:bitを外に出すと、跳び上がると表示する名札になる。

ダウンロード - makecode.microbit.org.lnk

micro:bitを初めて触る子どもたちにmicro:bitはどのようなもので何ができるのか説明するよりサンプルを見せたほうがイメージしやすい。

けっこうウケたので、ちょっと嬉しい。v(^^

ところで、

子どもたちにmicrobitを教えるときには、

  • ChromeでMakeCodeエディタを開くリンクを用意しておく
    IEが規定のブラウザに設定されていると、MakeCodeエディタのページを開くのに一手間二手間が必要。
    (makecode.microbit.org.lnk)

     
  • デバイス接続して直接書き込む方法を教える
    ダウンロードの設定でダウンロードフォルダが指定されている場合、ファームウェアを書き込むときに、ダウンロードフォルダからMICROBITドライブにコピー(D&D)が必要となり、パソコンの操作に慣れていないと結構手間がかかる。
      
  • ファームウェアが古くてデバイス接続できない場合は、Chromeのダウンロードの設定を変える
    chromeの詳細設定でダウンロードの前に保存場所を確認する設定にすると、ダウンロード時に保存場所を聞いてくるので、MICROBITドライブを選ぶと、プログラムが書き込まれる。
    Chromeの設定(右上の縦に3つ並んだ●)→設定→詳細設定(左下の▼)→ダウンロード→「ダウンロード前に各ファイルの保存場所を確認する」をON


最近の投稿】【最近のCPUボード】【最近のプログラミング】【2019の投稿】【2018の投稿】【2017の投稿】【2016の投稿】【2015の投稿

2020年9月15日 (火)

micro:bit <BLEが乗った低価格マイコンボード>

ずいぶん前に買ったmicro:bitを出してきた。

Microbit_set

micro:bitは英BBCが作った教育用マイコンボードで、英国では2015年に11歳と12歳の小学生全員に無料で配布したらしい。

マイコンボードとしては、(https://tech.microbit.org/hardware/)

  • CPU:nRF51822 Cortex-M0 ROM:256kB RAM:16kB Clock:16MHz Bluetooth4.1内蔵
  • DAPLink:MKL26Z128VFM4 Cortex-M0+
  • IO:5x5LED, SWx2, SPI, I2C, GPIOx18(LED,SW,SPI,I2C排他使用)
  • Sensor: 3軸加速度センサー、地磁気センサー、温度センサー(on chip), 明るさセンサー(LED使用?)

マイコンボードとして見ると盛りだくさんで、¥2,000はお買い得かもしれない。


Microbit_rea


Microbit_front

プログラミング環境はOnlineで提供されている。(https://makecode.microbit.org/)
教育向けを謳っているだけあって、ブロック型ビジュアル・プログラミング環境が公開されている。
困らないくらいブロックは揃っているが、文字でプログラミングしたいと言う人向けにjavascriptでもプログラムが書ける。

micro:bitの最初のプログラムは、Lチカでなくハートマークを点滅させるらしい。

Microbitidem

これくらいなら、ブロックエディタで書けるけど、ちょっと大きくなるとブロックエディタでは見通しが悪くなる。

ダウンロードのリンクをクリックすると、HEXファイルがダウンロードされる。micro:bitにはDAPLinkが乗っているので、ダウンロードされたHEXファイルを"MICROBIT"という名前のドライブにコピーすることで、micro:bitに書きまれる。

左にシミュレータがあるので、micro:bitを書き換える前に動作を見ることができる。

ところで、このIDEはHEXファイルを読み込むと、プログラムを編集することができる。HEXファイルはバイナリデータなのになぜプログラムを復元することができるのか不思議だ。 HEXファイルの中にプログラムが書いてあるのかと思い覗いてみたが見当たらない。

調べてみると、micro:bitはMicroPythonで動いていて、IDEでダウンロードされるHEXファイルには、MicroPythonインタプリタのバイナリとMicroPythonのスクリプト(中間言語?)が入っているらしい。IDEはHEXファイルを読んでMicroPythonのスクリプト部分を読み出しているようだ。

関数も使えて、再帰呼び出しもできるようなので、5Queenをやってみた。深くなるとスタックが足りなくなるようだ。

blutooth LEがオンチップで乗っているので、micro:bitのセンサーの値をスマホやPCに送って処理させたり、スマホやPCからmicro:bitを制御したり、micro:bit同士でメッセージが送受信できる。


最近の投稿】【最近のCPUボード】【最近のプログラミング】【2017の投稿】【2016の投稿】【2015の投稿

2020年5月 1日 (金)

Google日本語モールス入力

 Googleは2012/4/1にモールス符号の入力システム「Google 日本語入力モールスバージョンbeta」を発表した。 体験版(自由に入力コース)があって、試してみることができる。(https://www.google.co.jp/ime/-.-.html#freeinput)

 スペースキー一つで日本語入力ができる優れものだ。紹介ビデオではUSB接続の電鍵使っている。^^) この入力デバイスを持っていない人はスペースキーで入力するのだが、スペースキーでモールスは打ちにくいので、電鍵をつないでみた。

↑接点が参加しているのでしっかり打たないとチャッタリング多い。

パドルでも入力できる。

ヘボいなあ。(^^;

 

USB接続の電鍵を買ってきたわけではなく、digisparkでエレキーのスケッチを書いて、キーダウンのときに、digisparkのUSBキーボードでスペースキーのコードを送るようにしている。

ちなみにAndroidとiOS用に配布しているIMEは本当にモールス符号(・と-)で入力できるらしい。



最近の投稿】【最近のAVR】【2019の投稿】【2018の投稿】【2017の投稿】【2016の投稿】【2015の投稿

 

 

 

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月18日 (火)

TMP92CM22FG

TMP92CM22FGは東芝の16bitCPU TLCS-900Hシリーズ

 秋月で見つけたので買っておいたもの。0.5mm 100pinQFPの半田付けはまだできると思っていたのだが、最近歳のせいか弱気になってきたので、知人に頼んで付けてもらった。さすがに綺麗に付いてる。

Tmp92cm22fg

 知人曰く実体顕微鏡を買えと。商売じゃないので年寄はDIPで遊ぶことにしよう。

 TLCS-900H1シリーズは、東芝のZ80上位互32bit.CPU
TLCS-900→TLCS-900/H→TLCS-900/H2→TLCS-900/H1らしい。H2よりH1の方が後発。
「TLCS-900/H&H2活用ハンドブック」をAmazonで買ってみた。

Tlcs900h

 ↑の本の付録CDにアセンブラが収録されている。コンパイラはメーカ製があるけれどFreeで公開されてない。gccでもサポートされてない。ここがSHやH8と違うところか。

 京セラが1998年に発売したPHS データスコープDS110にもTLCS-900/Lが使われていて、データスコープの開発キットにコンパイラもある。開発キットは当時無償で配布された。

Datascopecd

 コンパイラ(CC900.EXE)はあるけど16bitアプリだ。そのままでは64bit Windowsで動かないが、MS-DOS playerで動くようだ。

 ボードを作ろう。


最近の投稿】【最近の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の投稿

より以前の記事一覧