以前に、本屋で立ち読みしていた雑誌で、Seeeduino Xiaoなるものが有ることを知った。とってもコンパクトで使いやすいらしい。
秋月電子で売っていた↓のを買っておいたので、試すことにした。
MicrochipのATSAMD21G18が載っている。
Cortex M0+ 48MHz、 256KB ROM、 32KB RAM
USBも付いて、1個850円とお安い。
特別高性能というわけではないが、おじさんが使う分には十分すぎる性能。
袋から出すと、本体とシールが入っていた。
ピンヘッダーは付いていないので、細ピンヘッダーを別途用意する必要がある。
お好みの色のシールを貼れ、ということのようなので貼ってみる。
雑なおじさんが貼ると、やはり斜めになってしまう。
シールは端子表になっている。このページ等が参考になる。
Arduino Pro miniと比べてもこんなに小さい。
次に、Arduino IDEにSeeeduino Xiaoを対応させる。
Arduino IDE Ver2.3.2の場合
ファイル-基本設定を開き、追加のボードマネージャーに以下を追加
https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json
追加したらボードマネージャーからSEEED SAMDを検索してインストール
インストールが出来たらボードでSeeeduino XIAOが選択できるようになる。
さっそく、Lチカを試す。
このページによると、このちっちゃなボードにLEDが4個載っていて
一つは電源表示。
後の3つは デジタル11-13番出力 に割り付けられているらしい。
デジタル11-12番はUART通信時に点滅するようなので、UARTを使う場合は13番のみ使えるということか?
まぁ、せっかくなので、3つとも光らせてみる
LED OFF
LED on
写真ではぼやけているが、3つとも光っている。
なんか調子が良い。
次にDACを試してみる。
0番ピンのみアナログのDA出力に出来る。
試しに、1KHzのサイン波を出してみる。
最初にサイン波のデータを作っておいて、後でデータを連続でDACに出す。
DACは10bitなので最大1023まで出力可能。一旦最大値を510で試してみた。
0番ピンを見てみると、ギザギザした波形だが、それっぽく出力されている。
試しに最大値を1022まで上げて動かしてみると、途中でサチってしまう。
3.3V近くまで出てほしいのだが、2.3Vくらいまでしか出力されない。
余裕をもって、2Vが最大値と思って使った方が良さそうだ。
他のポートだとanalogWrite()ではPWM出力となる。
D3ポートにPWM出力してみる
比率は8bit指定。733KHzで出力されている。
analogWriteResolution()が使えるか試してみた。
10bit指定にする。
次にタイマー割込みを調べてみる。
Arduinoのタイマー割込みでは”MsTimer2.h”が使えたが、Seeeduino XIAOでは
”TimerTC3.h ”を使うらしい。早速試してみる。
42μsecごとに割り込みが発生するようにして、sin波形データをDACに出力してみる。
42μsecごとの割り込みなのでどうかと思ったが、ちゃんと動作した。
割り込み応答も良さそうだ。
次にADCを使ってみる。
簡単にテスト用のスケッチ
10Kの抵抗を介して1番ピンに3.3Vを繋ぐ
10bitの最大値の1023となった。
さらに10KΩ抵抗2つで1/2に分圧すると約半分の516となった。
正確さは分からないが、ESP32のような大きな誤差は無いと思われる。
analogReadResolution(12);を使えば0-4096で読込まれる様に変更出来るらしいが、おじさんには10bitでも十分すぎるのである。
Seeeduino XIAOを、ちょっと触った感じでは、とても良い感じがする。
今後はこれをメインに使えるんじゃないかと、あれこれ考えてしまう。
とにかく、このSeeeduinoは小さいので扱いやすい。
こうすれば、300穴のブレッドボードでもDSPラジオが出来そうぢゃ。
今度試してみる。
「また、おかしなことを考えているようだニャ」