タグ別アーカイブ: ARM

Raspberry Pi2 Model B

ラズパイ2です。ラズパイ1に比べてとにかくハイパワーです。
Jpeg
秋葉買出し物件です。千石電商で購入したRaspberry Pi2です。ケースも一緒に買いました。
https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4PPM
https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4PLB
購入したのは、RS版です。購入時特に指定していません。指定買いする人いるのかな?
https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4R3F
Jpeg
めちゃくちゃ進化しています。
CPUは、700 MHz/ARM1176JZF-S 1コアから900MHz/ARM Cortex-A7 4コア、メモリは512MBから1GBへ倍増。
Jpeg
裏側です。SDカードは、マイクロになりました。
Jpeg
LANポートとUSBポートです。USBは4口あります。
Jpeg
電源用のマイクロUSBとHDMIとコンポジット&音声です。
Jpeg

OSはDebianをベースにした「Raspbian」をチョイスしました。といっても、面倒を省いてインストーラである「NOOBS」をダウンロードしてmicroSDにコピーするだけです。
起動画面、CPUのクアッドコア化の証、ラズベリーが4個です。
Jpeg
デスクトップ画面には、でかいラズベリー。
Jpeg
ブラウザを開いたところです。余裕です。
処理能力が向上したのでデスクトップPCとして使用できます。
ラズパイ1のようなイライラはありません。
ちょっと前のスマホ並の性能があるので当然なのですが・・・・・。
Wifiは、ロジテックのLAN-W300N/U2Sを使用しました。特に認識に問題ありません。本当は、より小さいバッファローのWLI-UC-GNMを使いたかったのですが、熱くなりすぎて不安だったので交換しました。ラズパイ1よりラズパイ2の方がボード温度が高いような気がします。

LPC810 ACGUY LED MONO-EYE

ガンプラにLEDをつけてみました。小さい8PIN DIPのLPC810を使用しました。駆動は、CR2032のボタン電池で3Vで駆動します。
Jpeg

モノアイだけでなく頭部バルカンにもLEDを内蔵しましたが穴が小さく点滅がほとんどわかりません。
モノアイは、単純なON/OFFではなくPWMでゆっくり明るさを変化させて点滅させました。LPC810のタイマは、SCT(State Configurable Timer)というちょっと複雑な動作が組めるタイマが入っています。Red Stateという特別なエディタで機能を設定します。
sct_LPC810

基板を内蔵するほど小さくできなかったので抱えた状態です。
Jpeg

PSOC 4200 Prototyping Kit

600円で販売されているので思わず衝動買いしてしまいました。
プログラム書込み用のBootLoaderがあらかじめ書き込まれています。USBで書き込むための基板も付属しています。これだけでプログラミングが始められます。
Bootloadable_psoc4
プログラムは、Bootableコンポーネントを使う、特別な作りにする必要があります。Buildした後は、書き込みツールをIDEから起動することができます。とりあえずPWMでのLED点滅サンプルを動かしてみました。PSOCは、ハード設定だけでペリフェラルが使えるのでソフトは、ほぼ書かずに機能が実現できます。いろいろな部品が用意されているので応用がいろいろ考えられます。

Jpeg
しかし実はPSoC4 PIONEER KITを持っているのでこれはいらなかったのですが・・・安かったので。
のちのち使い道を考えたいと思います。
http://akizukidenshi.com/catalog/g/gM-08446/

LPC810 ISP Writer

LPC810は8PINで小さいので実機にISP回路を組み込むと場所をとって無駄です。そこで専用の書込み器を作りました。
Jpeg

USBシリアル変換は、千石電商で購入しました。電源が5Vなので三端子レギュレータで3.3Vにしています。
http://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4HJ7
Jpeg
これでFlashMagicで書込みが容易になりました。
http://www.flashmagictool.com/

LPC11U35 Pulse Monitor

DSC00884
トランジスタ技術2014年10月号の脈拍計の回路を利用させてもらいました。フォトリフレクタは、記事とは違うものを使用しています。フォトリフレクタ(反射タイプ) TPR-105Fを使用しています。秋月電子通商で購入しました。http://akizukidenshi.com/catalog/g/gI-00276/
オペアンプは、記事と同じNJU7032Dを使いましたがTPR-105Fに合わせて増幅の抵抗値を調整しています。
ソフトウェアは、mbedを使用しなかったので独自に作成しました。上下の回数を一定時間数えて平均をとる方法で脈拍を測定で来ました。
DSC00882
オペアンプを使用したアナログ回路の楽しさに出会いました。

FRDM-KL25Z + E-Paper

DSC00813

Embedded Artists ABの2.7 inch E-paper Displayを先日購入したFRDM-KL25Zと接続しました。
http://www.embeddedartists.com/products/displays/lcd_27_epaper.php
http://developer.mbed.org/handbook/mbed-FRDM-KL25Z

プログラムは、以下のmbedプログラム epaper_mbed_130411_KL25Zを使わせていただきました。
http://developer.mbed.org/users/dreschpe/code/EaEpaper/wiki/Homepage

問題なく動作しました。E-Paperなので電源を切っても表示は残ります。

FRDM-KL25Z + SD Card

FreescaleのCortex™-M0+プロセッサベースのKinetis Lシリーズ KL1x/KL2xマイクロコントローラ・ファミリを搭載した超低コストの開発プラットフォームを購入してみました。
http://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-47CA

DSC00806

今回はmbedとして使います。mbedとして使うには、インターフェースファームウェアファイルを書き込む必要があります。以下のサイトに手順が詳しく書いてあります。
http://mbed.org/users/Norisuke/notebook/mbed-frdm-kl25z-Getting-started-jp/

今回は、sdカードを使いたいので、まずは、sdカードのサンプルを試してみました。
http://mbed.org/handbook/SDFileSystem
ここのサンプルをインポートして改変します。このサンプルは、LPC1768用なのでその部分のみ変更します。
SDFileSystem sd(p5, p6, p7, p8, “sd”); // the pinout on the mbed Cool Components workshop board
この行がSDカードとつながるSPIポートの設定になります。
SDFileSystem sd(PTE1, PTE3, PTE2, PTE4, “sd” );
ピン名をFRDM-KL25Z 用に変更しました。SPI1を使用する設定です。
Hello fun SD Card World!
ファイル作成、書き込みができました。

DSC00804

LPC11U35 QSB IAP EEPROM API

LPC11U35には、EEPROMが内蔵されています。不揮発メモリとして利用できるので使用してみました。
DSC00650
IDEには、LPCXpresso v6.1.0_164を使用しました。LPC11Uxx LPCXpresso Examplesには、eepROMapiというサンプルプログラムが含まれています。これを流用します。このサンプルは、UARTを使用したIFなので、ここをUSBのCDCに置き換えました。実際には、前に作ったCDCのプログラムにEEPROMの部分を加えていきました。EEPROMの部分を加えるとBuildでエラーが出るようになります。

fseek.c:(.text.fseek+0x2a): undefined reference to `_Csyscall1′

解決方法は以下URLにありました。
http://www.support.code-red-tech.com/CodeRedWiki/UndefinedReference
Propaties→Settings→MCU Linker→Targetの中のUse C libraryをRedlib(none)からRedlib(semihost)に変更しました。
semihost

 

これでBuildがとおりEEPROMの読み書きができるようになりました。
HYPERT

後、注意は、
SystemCoreClockUpdate();の前に
LPC_SYSCON->SYSAHBCLKCTRL  |= (1UL<<9);   /* enable clock */
を設定しないとLPC_CT32B0のタイマが動きません。
Flush書き込みと違いそのまま割り込みも使えるし、EEPROMは、電源切ってもデータが保持できるのでいろいろ使えそうです。

http://akizukidenshi.com/catalog/g/gM-06948/
http://www.embeddedartists.com/products/boards/lpc11u35_qsb.php

 

 

LPC11U35 QSB USB CDC(VCom)

USBを使ってシリアルポート通信を行います。
DSC00623

サンプルプログラムは以下サイトからダウンロードできます。
http://www.lpcware.com/content/nxpfile/sample-code-bundle-lpc11uxx-peripherals-using-lpcxpresso
USB_ROM_CDCのサンプルソフトは、QSBのサンプルと同じです。他のサンプルも試したいのでダウンロードしておきます。WindowsのCDCドライバはQSBのサンプルについているものを使用しました。上記URLからダウンロードした中には、Windwosのドライバは入っていません。IDEは、LPCXpresso v6.1.0_164を使用しました。新しくWorkspaceを作成し、ダウンロードしたLPC11Uxx LPCXpresso Examples.zipをインポートします。USB_ROM_CDCを改造します。まず、MPU SettingsをLPC11U35/401に設定します。また、USB ISPで書き込むのでbinファイルを生成する設定にします。Post-build stepsでarm-none-eabi-objcopy -O binary “${BuildArtifactFileName}” “${BuildArtifactFileBaseName}.bin” ; の前にある#を削除してbinファイルとチェックサム生成が行われるようにします。これでまず、一度buildし書き込みます。RESETするとドライバの要求があるのでQSBのサンプルにあるものを指定します。
CDCDriver

デバイスマネージャでポートの確認をします。LPC11Uxx USB Vcom portとして認識されています。DM

とりあえず、ループバックに改造します。サンプルは、USARTとUSBのブリッジサンプルなので、まずこれをやめます。main.cにある#define UART_BRIDGE 1の宣言を削除します。これでブリッジはしなくなります。このままでは、繋いでも何も送信が返ってきません。
ErrorCode_t VCOM_bulk_out_hdlr(USBD_HANDLE_T hUsb, void* data, uint32_t event)関数を修正します。
受信イベントでサンプルは、受信しても送信バッファに何入れません。
if (pVcom->rxlen == 0) {
pVcom->rxlen = pUsbApi->hw->ReadEP(hUsb, USB_CDC_EP_BULK_OUT, pVcom->rxBuf);
    pVcom->txlen = pVcom->rxlen;
    memcpy(pVcom->txBuf, pVcom->rxBuf, pVcom->rxlen);
pVcom->send_fn(pVcom);
pVcom->rxlen = 0;
}
受信長を送信長にコピーし受信バッファを送信バッファにコピーします。これでループバックします。ハイパーターミナルで動作確認とれました。

http://www.embeddedartists.com/products/boards/lpc11u35_qsb.php
http://akizukidenshi.com/catalog/g/gM-06948/

LPC11U35 QuickStart Board mbed SDK

LPC11U35 QuickStart Boardをmbed SDKで使ってみようと思います。
LPC11U35
まずは、サンプルコードを次のURLからダウンロードします。
http://www.embeddedartists.com/mbedsdk
http://www.embeddedartists.com/sites/default/files/ext/mbedsdk/mbed_test_130404.zip
IDEにはLPCXpresso v6.1.0_164を使用しました。LPCXpressoに新しいワークスペースを作成します。そしてImportでダウンロードしたmbed_test_130404.zipを読み込みます。
今回使うサンプルは、簡単なapp_ledを試してみます。Build Configurationsにqsb_lpc11u35を設定します。これだけではMPUの設定が変更されません。MPUをLPC1769からLPC11U35/401に変更します。
MPU

Pathが悪いのかBuildでエラーが出ます。
../main.cpp:1:18: fatal error: mbed.h: No such file or directory
mbed_test_130404.zipを解凍して、mbedフォルダをワークスペースの中にコピーします。これでもエラーが出るのでさらにapp_ledフォルダの中にもコピーします。Buildが通りました。binファイルのチェックサムをつけるためにProperties-Settingsの中のPost-buildのCommand欄を変更します。
checksum -p ${TargetChip} -d “${BuildArtifactFileBaseName}.bin”;
これに#がついてコメントアウトされているので削除します。再Buildして作成されたapp_led.binをUSB ISPでLPC11U24に書き込みます。めでたくLED点滅ができました。

http://akizukidenshi.com/catalog/g/gM-06948/
http://www.embeddedartists.com/products/boards/lpc11u35_qsb.php

© 2014 Spineedge Corporation.