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

CPUボード

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の投稿

2019年8月31日 (土)

27C322

16bitのUV-EPROM(27C322)を買った。

27c233x10

↑未使用らしい。10個も使う予定はないのだけれど、ちゃんとしたところで1個買うより安かったりする。

27c322x1

↑16bitのEPROMは大きい。窓も大きい。42pinのDIPは立派だZ80より大きい。

↓マーキング

27c322_marking1

UV-EPROMはデータ消去が大変でフットプリントも大きいので使いやすいFlashメモリに変わっていった。

紫外線ではなく電気的にデータを消去できるEEPROMも昔からあったけど容量も少なく高かったので買った記憶がない。 

パソコンのBIOSも初期の頃はUV-EPROMが使われていたが、EEPROM(DIP)が使われてるようになった。
探したら出てきた。上からMX29F002(256K×8bit)、SST29EE020(256K×8bit)、W29C011(128K×8bit)

Bios_flashrom

 ところで、27C322は2M×16bitで、持っているロムライタ(TOP2007)は対応していないので読み書きできない。

こんな↓アダプタを使って、ターゲットを27C4096(256k×16bit)にして何回かに分けて書くらしい。

 

このアダプタはTL866用で、持っているロムライタ(TOP700)は16bitのEPROMに対応していないようなので、さらに上位8bitと下位8bitを分けて書かななければならない。



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

2019年4月25日 (木)

インテル8080伝説 <ゴールデンエイジが羨ましい>

インテル8080伝説 鈴木哲哉 ラトルズ

8080

 この本の奥付をみると著者の鈴木哲哉氏は1955年生まれのようだ。
IT業界の1955年は超ゴールデンエイジだ。 Apple創業者のスティーブ・ジョブズ、MicroSoft創業者のビル・ゲイツ、WWWの考案者ティム・バーナーズ=リー、Java生みの親ジェームズ・ゴスリンそしてBSD UNIXのビル・ジョイ(1954/11生まれだけど)らが1955年生まれだ。 オヤジはゴールデンエイジの6歳下だ。この6年の差は大きい。

 8080が発売されたのは1974年8085は1976年、Z80も1976年だ。マイコンを知ったのは1976頃、まだ厨房のころだった。8080の発売が13才、Z80の発売は15才の厨房だが、ゴールデンエイジの彼らは、8080発売時19才、Z80発売時21才だ。
自分で買えるか買えないかの差は大きい。 いずれにしても田舎では売ってなかったんだけど。

閑話休題
 自分でマイコンが買えるようになった時に、積極的に8080を使うメリットはなかった。
Z80は最強だったし、5v単一電源で動く8085があった。

 8080が使われた機器は見たことがないけど、8085が使われた機器を見たことがある。1986年頃職場に入った機器に使われていた。確かM電機製。
 なんで8085?と思ったけど、当時M電機は8085のセカンドソースを造っていて、Z80のセカンドソースは造ってなかったからだろう。

###

つい買ってしまった uPD8080AFC

8080_s

コレクションになりそうなuPD8080A

8080a_s



最近の投稿】【最近の書籍・雑誌】【2018の投稿】【2017の投稿】【2016の投稿】【2015の投稿

2019年3月 3日 (日)

Line tracer <ちびギアモータ>

ネットでギアードモーターを探していたらこんなのを見つけた。

Photo

 ちっちゃいものくらぶが領布している「ちびギアモータ」 プリ―付きで400円だ。

 ギアードモーターはモータと減速機構が一体になったモータで、外部にギアボックスが不要になる。

業務用は当然だけど高い。
千石で模型用の安いのを探してみると1000円~2000円くらいだ。
ギアがプラスチックでよければこんなのもある。


↑(https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-0F4C)

「ちびギアモータ」は他のギアードモーターとくらべて消費電流が少ないようだ。

〇プラスチックギヤードモータ」(千石)
 電源電圧6V 無負荷時消費電流:120mA、無負荷時回転数23~28rpm

に対して

〇「ちびギアモーター」(ちっちゃいものくらぶ)
 動作電圧 3~6V、5V無負荷時:35mA、回転数120rpm

 AVRのGPIOで直接駆動できるらしい。
消費電流が大きいとトランジスタやFETでドライブしなければならないから部品が増えるけど、GPIOで直接駆動できるならとてもお手軽だ。

AVRの絶対最大規格はピン当たりの出力電流は40mA、デバイス全体の消費電流は200mAだから「ちびギアモーター」2個は回せそうだ。

負荷をかけるとピン当たりの制限に引っかかりそうだが、超えたらからといってすぐに燃えたりしないだろう。そのあたりは売り物にするわけではないので勝手にやれば良い。

 プーリーにはφ25でOリングがはめてあるのでタイヤに使える。 台車にモータとタイヤを付けてまっすく走るだけでは面白くないので、ライントレースをやってみよう。

より以前の記事一覧

2020年10月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

最近のトラックバック