FEZ Cerb40

  1. ここを参考にして Microsoft Visual C# Express 2010あるいは2012をインストールします。
  2. 2012の場合は.Net Micro Framework 4.3(RTM)が入っていないと4.2も対応できないようです。
  3. Microsoft .NET Micro Framework 4.2 QFE2 SDKをインストールします。
  4. GHI NETMF v4.2 and .NET Gadgeteer Package (11-29-2012)をインストールします。
これで準備が整いました。

FEZ Cerb40ⅡでLEDチカチカまでやってみる
同梱のFEZConfigを起動します。DeviceのところにUSB、Cerb-Family_Gadgeteerと出ているのを確認します。
目的のバージョンであるか確認します。Nextをクリックします。
firmwareの詳細が表示されます。確認してNextをクリックします。するとしばらく書き込みがなされます。
ここで終了するにはStart Overをクリックします。
正しく書き込まれたか確認するには、AdvancedメニューからDevice capabilitiesを選びます。
このように表示され、確認できます。

なんらかの理由でUSBが認識しなくなったときは、これを参考にしてください。

PC0に繋いだLEDをチカチカ
using System;
using System.Threading;         // Thread.Sleep使用のため追加
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;  // OutputPort使用のため追加、参照設定にも追加
using GHI.OSHW.Hardware;        // FEZCerberus使用のため追加、参照設定にも追加

namespace LED
{
    public class Program
    {
        public static void Main()
        {
            OutputPort LED1 = new OutputPort(FEZCerberus.Pin.PC0, false);
            int count = 0;
            while (true)
            {
                Debug.Print("Hello " + count++);
                LED1.Write(true);
                Thread.Sleep(500);
                LED1.Write(false);
                Thread.Sleep(500);
            }
        }
    }
}
 1 クラスライブラリ
 2 の設定
 3 
 4 
 5 FEZ Cerb40専用クラス
 6 
 7 
 8 
 9
10 
11 
12 
13 PC0のオブジェクトを作る
14 
15 永久ループ
16 
17 デバックの表示
18 点灯
19 時間待ち
20 消灯
21 時間待ち


Visual Studio編
参照が足りないと左のように赤い波線が付きます。これはGHIに関するクラスライブラリを追加する必要があります。それには以下のようにします。

プロジェクトメニューをクリックし、一番下のLEDのプロパティを選びます。

アプリケーションを選び対象のフレームワークが「.NET Micro Framework 4.2」であることを確認します。異なっていた場合はこれに変更します。変更をした場合、ソリューションの再起動が必要になるでしょう。

ソリューションエクスプローラーの参照設定を右クリックすると左のようなメニューが出てきますから、参照の追加をクリックします。

GHI.OSHW.Hardwareを選び、クリックします。

.NET Micro Frameworkタブをクリックし、TransportでUSBを選びます。

すると左のように「Cerb-Family_Gadgeteer」がDeviceに出てきます。

ビルド、実行を行うには「実行」をクリックします

実行をクリックする前のウィンドウの下はこんな色になっています。

ビルドが成功し、プログラムの転送が開始されると左のような色になります。

転送が成功し、実行可能になるとこのようになります。

正常に実行するとLEDがチカチカします。

デバッグを停止させるには■をクリックします。

上記の説明では3.3Vの三端子レギュレータは外付けでしたが、本当は裏に取り付ける場所があります。 LM1117MPX-3.3と47μFのコンデンサを付けろということなのですが、手元にあったLT1117CST-3.3と10μFのコンデンサでお茶を濁しています。問題は無いと思います。

注意するところは、いくら外形が同じでも端子の意味が異なる場合です。この三端子レギュレータは、私が今までよく使ってきたものとはピン配置が異なっています。

電源回路を取り付けたCPUボードにすると当然ながらすっきりします。

内蔵カレンダーへの水晶発振子が接続されていないので、必要な場合にはQ2と書いてあるところに半田付けします。その場合、VBATに3V程度のバックアップ電池が必要になります。


ピン配置

左側のピン配列
Pin CPU Pin Alt-Function/Notes
P20PB5 SPI1 MOSI
P19PB6 I2C SCL
P18PB7 I2C SDA
P17LODR Used to force processor in loader mode for firmware update
P16PB8 CAN1 RX
P15VBAT Power internal RTC. Requires adding 32.768Khz crystal
P14PC12 SD CK
P13PD2 SD CMD/TBD
P12PB3 SPI1 SCK
P11PB9 CAN1 TX
P10PB4 SPI1 MISO
P09PC11 SD D3
P08PA14 JTAG SWD CLK
P07PC10 SD D2
P06PA6 Analog/TBD (Cpu.AnalogChannel.ANALOG_0)
P05PA7 PWM/TBD (Cpu.PWMChannel.PWM_1)
P04PA13 JTAG SWD SWDIO
P03PA8 PWM/TBD (Cpu.PWMChannel.PWM_3)
P02GND 接地
P013.3v In if no 3.3V is soldered and out if soldered.

右側のピン配列

Pin CPU Pin Alt-Function/Notes
P21REST Active low reset signal. Not 5V tolerant
P22PC0 Analog/TBD
P23PC1 Analog/TBD
P24PC2 Analog/TBD
P25PC3 Analog/TBD
P26PA0 UART2 CTS
P27PA1 UART2 RTS
P28PA2 UART2 TX
P29PA3 UART2 RX
P30PA4 Analog/DAC1/TBD **WARNING: NOT 5V TOLERANT**
P31PA5 Analog/DAC2/TBD **WARNING: NOT 5V TOLERANT**
P32PB10 UART3 TX
P33PB11 UART3 RX
P34PB14 USB HS DM
P35PB15 USB HS DP
P36PC6 PWM/UART1 TX (Cpu.PWMChannel.PWM_0)
P37PC7 PWM/UART1 RX (Cpu.PWMChannel.PWM_2)
P38PC8 SD D0
P39PC9 SD D1
P40USB This is the VBUS (power) coming from USB cable.
This is used internally only if added 3.3V regulator to the board.

RESET Pin は5V入力トレラントではありません。 直接5Vの信号に繋げてはいけません。3.3Vに変換してから繋げてください。そのためには、10kΩの抵抗でプルアップします。

他の全てのピンは二つのDACを除いて5V入力トレラントのIOです。

これらの GPIO ビンはFEZCerberus.Pinとして参照できます。例えば、 FEZCerberus.Pin.PC0 などです。

Analog Channels

アナログ入力と物理的なビンの対応表です。

Pin Channel Pin mapping
P06Cpu.AnalogChannel.ANALOG_0 FEZCerberus.Pin.PA6
P28Cpu.AnalogChannel.ANALOG_1 FEZCerberus.Pin.PA2
P29Cpu.AnalogChannel.ANALOG_2 FEZCerberus.Pin.PA3
P22Cpu.AnalogChannel.ANALOG_3 FEZCerberus.Pin.PC0
P23Cpu.AnalogChannel.ANALOG_4 FEZCerberus.Pin.PC1
P30Cpu.AnalogChannel.ANALOG_5 FEZCerberus.Pin.PA4
P24Cpu.AnalogChannel.ANALOG_6 FEZCerberus.Pin.PC2
P25Cpu.AnalogChannel.ANALOG_7 FEZCerberus.Pin.PC3