You are viewing an older revision! See the latest version
GettingStarted_JPN
CMSIS-DAP ファームウェアの更新¶
事前準備
以下のファイルをダウンロードして、適当なフォルダに展開します。
下記の制限を確認して、いずれかを選択してください。
- grpeach_8mb_20141127.bin
- 制限: RZ/A1Hのプログラム書き換えたのち、RSTボタンを押すとUSBシリアルが正常に動かないことがあります。
- grpeach_8mb_20141112.bin
- 制限: RZ/A1Hのプログラム書き換え前に一度GR-PEACHを抜き差ししてください。
- GR-PEACHをPCに接続します。
書き換えを行うときはJP2をショートさせた状態で接続させてください。
- 「CRP DISABLED」という名前のマスストレージドライブがマウントされます。
「mbed」という名前のマスストレージドライブがマウントされた場合は、JP2のショートが失敗しています。
再度1.を実施してください。
また書き換えを行っている場合、JP2のショートを解除してもかまいません。
- フォルダーを開いてファイルを表示し、中に含まれているFirmware.binを削除します。
- ドライブに<ファイル名>をコピーします。
- コピーが終わったらUSBケーブルを外します。
- 再度PCとGR-PEACHを接続し、「MBED」という名前のマスストレージドライブが
見つかれば、ファームウェアの更新完了です。
USBシリアルドライバのインストール¶
GR-PEACHをUSBに挿入して「MBED」ドライブが見えている状態でUSBシリアルドライバをインストールします。
プロジェクト作成方法¶
- GR-PEACHのサイトから、コンパイラを登録します。
- サンプルプロジェクトの右側「Import this program」をクリックします。
必ず「Update all libraries to the latest version」にチェックを入れてください。
- 開発環境を立ち上げるには、ページ右上にある、"Compiler"ボタンをクリックします。
コンパイルとプログラム実行¶
- Compileボタンをクリックしてコンパイルを行います。
- コンパイルが終了すると、バイナリファイルがダウンロードされます。
これをmbedのマスストレージドライブへコピーしてください。
・windowsはドラッグ&ドロップを行ってください。
・macは、こちらを参照ください。
- GR-PEACHのリセットボタンを押すか、USBケーブルを挿し直すことで、プログラムが実行されます。
LEDをチカチカしよう¶
- サンプルプロジェクトのmain.cppを以下のように書き換えます。
LED blink
#include "mbed.h"
DigitalOut led1(LED_RED);
int main() {
while(true) {
led1=1;
wait(0.5);
led1=0;
wait(0.5);
}
}
LEDを滑らかに光らせよう¶
- サンプルプロジェクトのmain.cppを以下のように書き換えます。
LED PWM
#include "mbed.h"
PwmOut led(LED_RED);
int main() {
float crt = 1.0, delta = 0.04;
led.period_ms(2); // 500Hz
while (true) {
led.write(crt);
wait_ms(50);
crt = crt + delta;
if (crt > 1.0) {
crt = 1.0;
delta = -delta;
}
else if (crt < 0) {
crt = 0;
delta = -delta;
}
}
}
シリアルを使おう¶
I2Cを使おう¶
- サンプルプロジェクトのmain.cppを以下を参考に書き換えます。
Arduino SDA,SCLを用いたI2C通信
#include "mbed.h"
#define SIZE (10)
#define ADDR (0x90)
I2C i2c(I2C_SDA, I2C_SCL);
int main() {
char buf[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
char res[SIZE];
i2c.write(ADDR, buf, SIZE);
i2c.read(ADDR, res, SIZE);
}
SPIを使おう¶
- サンプルプロジェクトのmain.cppを以下を参考に書き換えます。
Arduino D10-D13を用いたSPI通信
#include "mbed.h"
SPI spi(D11, D12, D13); // mosi, miso, sclk
DigitalOut cs(D10);
int main() {
int data = 0;
int res = 0;
for(int i = 0; i < 30; i++) {
cs = 0;
res = spi.write(data++);
cs = 1;
wait_ms(0.001);
}
}
micro-SDを使おう¶
- サンプルプロジェクトのmain.cppを以下を参考に書き換え、SDファイルシステムをインポートします。
SPI通信を用いたmicroSD制御
#include "mbed.h"
#include "SDFileSystem.h"
SDFileSystem sd(P8_5, P8_6, P8_3, P8_4, "sd");
namespace {
const char *sd_file_path = "/sd/out.txt";
const int DATA_SIZE = 256;
}
int main()
{
uint8_t data_written[DATA_SIZE] = { 0 };
bool result = true;
// Fill data_written buffer with random data
// Write these data into the file
{
FILE *f = fopen(sd_file_path, "w");
printf("SD: Writing ... ");
for (int i = 0; i < DATA_SIZE; i++) {
data_written[i] = rand() % 0XFF;
fprintf(f, "%c", data_written[i]);
}
printf("[OK]\r\n");
fclose(f);
}
// Read back the data from the file and store them in data_read
{
FILE *f = fopen(sd_file_path, "r");
printf("SD: Reading data ... ");
for (int i = 0; i < DATA_SIZE; i++) {
uint8_t data = fgetc(f);
if (data != data_written[i]) {
result = false;
break;
}
}
printf("[%s]\r\n", result ? "OK" : "FAIL");
fclose(f);
}
}
A/Dコンバータを使おう¶
- わ
- か
- よ
- た
- れ
- そ
イーサネットを使おう¶
- サンプルプロジェクトをコンパイルします。
- GR-PEACHにプログラムをダウンロードします。
- PCのIPアドレスを192.168.100.100に設定します。
- GR-PEACHとPCをLANケーブルで接続します。
- GR-PEACHをリセットします。
シリアルで以下の出力がなされます。
Quote:
TCPCllient waiting for server IP and port... TCPClient IP Address is 192.168.100.2
- PCからGR-PEACHに向け、PINGを発行します。
Quote:
PING 192.168.100.2