Date

Netduino mini という物を買ってみた。

これは .NET Micro Framework が動くマイクロコントローラ(マイコン)で、作成したプログラムを転送し、接続したセンサーから値を読み取ったりモーターを動かしたりできる。プログラムの開発は普段使っている Visual Studio でクロス開発、言語は C# が使えるという Windows 系開発者にとっては敷居が低いものになっている。 2014/9/23 から Visual Studio 2013 にも対応している。

Hello world の代わりに「Lチカ」(LEDをチカチカと点滅させる)プログラムを動かすのが定番らしい。その前にファームウェアをアップグレードしたい。購入した状態では .NET Micro Framework v4.1 ベースとなっているが、アップグレードすると v4.2 に対応する。(本記事執筆時点で最新版である v4.3 には未対応。)

Netduino のフォーラムに書かれている手順に従って、進めていく。

物の準備

  • ブレッドボード
  • ジャンパーケーブル数本
  • 半田
  • 半田ごて

以下のパーツを秋月電子通商で揃える。組立には、はんだ付け作業が必要。

最近の PC には RS232C 端子が装備されていないことが多い。AE-USB/RS232C と AE-D-SUB-9P-DIP-A-FM-KIT を組み合わせると USB - RS232C 変換したものをブレッドボードに接続できる。また Netduino mini は RS232 だけでなく TTL レベルでシリアル接続することができる。実際の開発では TTL のシリアル接続が物理的に手軽なのでオススメ。

FTDI 社からドライバをダウンロードしてインストールする。 AE-USB/RS232C を PC に接続すると Windows からは COM ポートとして認識される。

回路の作成

Netduino mini と RS232C を接続する。 ピン 1-3 が RS232 となっているので、以下のように接続する。

1
2
3
4
5
6
7
Netduino Mini    DSUB 9 Pins(RS232C)
Pin 1 (DTXD) --- Pin 2 (RD)
Pin 2 (DRXD) --- Pin 3 (TD)
Pin 4 (GND)  --- Pin 5 (GND)

Pin 23 : GND
Pin 24 : +7.5V ~ +12V を印加 (9V 推奨)

参考: RS-232 - Wikipedia

Circuit

Pin 24 に +7.5V ~ +12V を印加する必要があるが、私の場合はホームセンターで売ってるような電池ケースを使った。1.2V 充電式乾電池 7 本(計 8.4V)を直列に繋ぎ、 + を Pin 24 へ、 - を Pin 23 に接続した。アルカリ乾電池 6 本ならちょうど 9V になるので、もしあればそれが良いと思う。

Erase する

Netduino mini の Pin 21 と基板上の四角い金属にジャンパ線を接触させる。

ファームウェアを更新する

Atmel 社から SAM-BA 2.13 for Windows をダウンロードしインストールする。

Netduino mini のフォーラムからNetduinoMini_Firmware_4.2.0.1_TTL.zip をダウンロードし、適当なところに展開しておく。

AE-USB/RS232C を PC に接続し、SAM-BA を起動する。

SAM-BA

Select your board: から [at91sam7x512-ek] を選択し [Connnect] クリックする。

無事接続されると以下のようなウィンドウが開く。

SAM-BA

ウィンドウの中ほどにある[Flash]タブを開く。 [Scripts]から[Boot from Flash (GPNVM2)]を選択し [Execure] をクリックする。 同様に[Enable Flash access]を選択し [Execure] をクリックする。 Send File Name: にフォーラムからダウンロードしたファームウェア TinyBooterDecompressor.bin のパスを入力し [Send File] をクリックする。

SAM-BA

メッセージボックスが表示されたら 「No」を選択する。

SAM-BA

CLR を更新する

電池を外し、RS232 接続も解除する。ここから先は TTL 接続で行う。以下のように回路を作成する。電源は USB から得られる 5V を使用する。

1
2
3
4
5
Netduino Mini   AE-UM232R
Pin 21      --- VCC (USB から +5.0V)
Pin 23      --- GND
Pin 11(TX0) --- RXD
Pin 12(RX0) --- TXD

Circuit

MFDeploy というツールで CLR を更新する。 MFDeploy は .NET Micro Framework に含まれているが v4.3 のそれは正しく動作しないことがあるため、 特別版の MFDeploy をダウンロードする。

zip ファイルを展開し MFDeploy を実行したら [Browse] ボタンをクリックする。

MFDeploy

tinyclr.hex ディレクトリにある ER_CONFIG と ER_FLASH の 2 つを選択する。 [Deploy]ボタンをクリックする。

MFDeploy

プログレスバーが表示されるので 1、2 分ほど待つ。

MFDeploy

終わるとコンソールには次のように表示されている。 .NetMF v4.2.0.0 になっているはず。

 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
Chk signature
Signature PASS
Chk signature
Signature PASS
.NetMF v4.2.0.0
NetduinoMini, Build Date:
    Sep 19 2012 20:54:52
ARM Compiler version 410894

TinyCLR (Build 4.2.0.0)

Starting...
Created EE.
Started Hardware.
Create TS.
 Loading start at 13ed64, end 154648
   Assembly: mscorlib (4.2.0.0)
   Assembly: Microsoft.SPOT.Native (4.2.0.0)
   Assembly: Microsoft.SPOT.Hardware (4.2.0.0)
   Assembly: Microsoft.SPOT.Hardware.SerialPort (4.2.0.0)
   Assembly: Microsoft.SPOT.IO (4.2.0.0)
   Assembly: System.IO (4.2.0.0)
   Assembly: Microsoft.SPOT.Hardware.PWM (4.2.0.1)
   Assembly: SecretLabs.NETMF.Diagnostics (4.2.0.0)
   Assembly: SecretLabs.NETMF.IO (4.2.0.0)
Loading Deployment Assemblies.
Resolving.
Ready.
Cannot find any entrypoint!
Done.
Waiting for debug commands...

ついでに メニュー [Target]-[Device Capabilities] を出力してみる。

 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
HalSystemInfo.halVersion:               4.2.0.0
HalSystemInfo.halVendorInfo:            Netduino Mini (v4.2.0.1) by Secret Labs LLC
HalSystemInfo.oemCode:                  34
HalSystemInfo.modelCode:                177
HalSystemInfo.skuCode:                  4098
HalSystemInfo.moduleSerialNumber:       00000000000000000000000000000000
HalSystemInfo.systemSerialNumber:       0000000000000000
ClrInfo.clrVersion:                     4.2.0.0
ClrInfo.clrVendorInfo:                  Netduino Mini (v4.2.0.1) by Secret Labs LLC
ClrInfo.targetFrameworkVersion:         4.2.0.0
SolutionReleaseInfo.solutionVersion:    4.2.0.0
SolutionReleaseInfo.solutionVendorInfo: Netduino Mini (v4.2.0.1) by Secret Labs LLC
SoftwareVersion.BuildDate:              Sep 19 2012
SoftwareVersion.CompilerVersion:        410894
FloatingPoint:                          True
SourceLevelDebugging:                   True
ThreadCreateEx:                         True
LCD.Width:                              0
LCD.Height:                             0
LCD.BitsPerPixel:                       0
AppDomains:                             True
ExceptionFilters:                       True
IncrementalDeployment:                  True
SoftReboot:                             True
Profiling:                              False
ProfilingAllocations:                   False
ProfilingCalls:                         False
IsUnknown:                              False

Comments

comments powered by Disqus