Arduino Due 下調べ
ebay で互換機あさりして、ふと思い出した Arduino シリーズ中で賢そうなコレ。
安すぎて不安。使いこなせるかな。高機能でも使えなきゃ意”味”な”い”よ”ぉ”ぉ”お”!!
届くまで時間あるので調べものします(全く違うボード来たら泣く)
マイクロチップ社のページからしてデータシートと書いてあること違ったりするしゴチャゴチャだ…ピンが多くて頭の中をまとめるのが大変。
3.3V 動作である点に注意。電源ピンとして 5 V はあるけどロジックは 3.3 V。
USB ポートが 2 つ搭載されている。ここの説明が一番手短:
https://www.switch-science.com/catalog/1096/
DC ジャック側のポートがプログラム用に作られていて、端っこのポートはネイティブ USB ポート。キーボードとかマウスつなげられるんだそうです。プログラムにも使えるけれど内部の挙動が違うのでなるべく DC ジャック側のポートで書いてね、と。消去の動作が違うとのことで、IDE の項目選択とマッチしてないとどうなるんだろ…
Arduino 日本語版でおなじみの武蔵野電波さんが pinout を提供してくれています。
http://www.musashinodenpa.com/arduino/lib/Duepinout.pdf
先人の6記事 主にカメラ使用
http://blog.livedoor.jp/prittyparakeet/archives/1066042558.html
最初からすべてを深掘りできるわけもなく。手元にボード無いわけですし、まずは情報が入ってきやすいようにあっさりさらっと見ていきましょう。
CPU
SAM3X8E というマイクロコントローラが載っています。
https://www.microchip.com/wwwproducts/en/ATSAM3X8E
- ARM Cortex-M3 コア。mbed LPC1768 と同等っぽい
- データ幅 32bit、動作周波数 84MHz
- フラッシュメモリ 512KB、SRAM 100KB
- USB2.0 ホスト(とれる電流は規格どおり 500 mA かなぁ)
- USB On-The-Go 対応。PC レスでデジカメ接続できる的な規格らしい。
- IrDA
- 2x I2C
- 6x SPI
- SD カード 2 つまで?
- 8ch 16bit PWM
- RTC 載ってる!
- 16ch 12bit 1Msps ADC:AD0~7、AD10~13 の 12 ピンが利用可能、見たところソケット番号 52 が AD14 なのだけど。
- 2x DAC
- 4x シリアル通信
- 103 I/O ピン。ボード上(ソケット見た感じ)では有効 72 本かな。
PWM4 と PWM10 ピンに注意書きされている「定義されている論理ピンと接続されている物理ピンが重複している」の意味が理解できない。<ここは分かったら書き直したい>
気になる点とかメモ
演算器
ハードウェアっぽい。乗除のビット数でサイクル数が異なる。
https://www.aps-web.jp/academy/cm/03/
データシートにも乗除算の項があります。32bit の乗算は 1 クロック。CPU っぽい(´~` )
AVR (ATmega328P) は 8bit、16MHz でほとんどが 1 命令 1 クロック。データシート のページ 432 あたりに載ってます。乗算は整数実数ともに 2 クロックですが、わぁ~ div が載ってません。ハードウェア演算できないんですねー。_divmodhi4 で検索したらおそらくこれが除算の実装かな、というコードが見つかったのですが、
https://github.com/gcc-mirror/gcc/blob/master/libgcc/config/avr/lib1funcs.S
ワオなにこれつらい。
電流供給能力
source:15 mA / sink:9 mA の強いピンが 44 本
source:3 mA / sink:6 mA の弱いピンが 28 本
まぁ変な事しなきゃ大丈夫でしょうきっと。
電源は 3.3 V, 5.0 V ともに 800mA まで、ただし 3.3 V は CPU への給電も含めてです。
analogReference
https://forum.arduino.cc/index.php?topic=155753.0
http://forum.arduino.cc/index.php/topic,146574.0.html
よくわからないけどやりたい事があるときは改造する必要があるらしい。
https://www.arduino.cc/reference/en/language/functions/analog-io/analogreference/
3.3 V しか選べないよ的な
解像度
analogReadResolution
https://www.arduino.cc/reference/en/language/functions/zero-due-mkr-family/analogreadresolution/
analogWriteResolution
https://www.arduino.cc/reference/en/language/functions/zero-due-mkr-family/analogwriteresolution/
本気出してないらしい
A/D 16
http://forum.arduino.cc/index.php?topic=175898.0
ここに「ボード上に引き出されてない A/D はプログラムで使えないの?」という質問があります。16 番目の A/D は温度検出用のピンだそう。ここ を見るにプログラムから温度読めるみたいですね。
インピーダンス
プルアップ抵抗値、全 I/O ピン 100 kΩ。出力インピーダンスはまずダイ上で平均 36 Ω、なんやかんや足し合わせると 100 Ω くらいになるよという。
短絡はほんとマジで気を付けないと危ないなぁ… なんか AVR より壊れやすそう。
マニュアル
レジスタ: 51p、命令: 86p、命令一覧: 109p、
索引が末尾に添付されているよ。
消費電力
実測 0.67 W だそう。http://blog.kemushicomputer.com/2012/11/arduino-due.html
ARM Cortex-M3 の位置づけ
https://www.aps-web.jp/academy/cm/
いま注目されてる分岐投機なんて字が見えました
うむ…
気になったところだけを一通り調べました。まぁ届いてから追々という形になるでしょうけどザッと見ただけでこの量…
気を付けたい
自分はマイコンボードの電源入れっぱなしでピンの抜き差しとかしちゃうけど、それでいいわけがないんですよ。
ESP8266 繋いだまま別の回路繋いで焼いてみたり、ピンはもう仕方ないのかもしれないけどカンペキなやり方であったとはいえませんし。こういうつまらないミスで壊すのはこれからは減らしていきたい。
自分は過去、PC 唯一の USB ポートの酷使で接続不良になった経験から延長ケーブル付けてそこにダメージ集中するようにしてます。が、外すのに両手つかわなきゃならなくて面倒くさがって外さなかったりして本末転倒です。ケーブルを改造してスイッチつけるとか、何か対策しよう。
ハイ先生!!目標!!焼かない!!壊さない!!!
…安いから全然平気なのが良くなさそう。
<180108>
EEPROM 無しのよう。汎用 EEPROM IC を 3 ワイヤ方式で接続して使うのかな。