« O'ReillyのeBookを買ってみた | メイン | 祝。Ubuntu 11.04 Natty Narwhalリリース »

Macでトラ技増刊号MARY基板を使ってみるメモ

ここ最近CQ出版の技術系雑誌トランジスター技術やインターフェース誌、その増刊やムックなどで"すぐに使える"と銘打ったUSB接続のマイコン基板が付属したものが増えています。昔はエバボードも高価で個人ではなかなか手が出なかったのに隔世の感があります。

今回のトラ技増刊号の超小型ARMマイコン基板はNXP社のLPC1114というCortex-m0コアのARMチップ搭載の小型基板が2枚ついており、Arduinoよろしく拡張ボードを乗せたり基板同士をつないでCPU間で通信したり出来るようになっており遊べそうな感じです。

Macで雑誌や自作のプログラムをダウンロードして実行できるようにするまでの手順をメモ。

ツールなどのインストール

  1. portsからarm-elf-gcc, arm-elf-binutils, lpc21ispをインストール
    sudo port install arm-elf-binutils
    sudo port install arm-elf-gcc
    sudo port lpc21isp
  2. CP210xドライバのインストール
    USB to UART Bridge VCP Drivers
    ただし最新のV2.7ではうまくいかないかもです。当方では一つ古いバージョンにダウンして使用
  3. ターミナルソフトをインストール
    私はRoger Meier's FreewareからCoolTermをもらってきて使用

CQ出版のサンプルコードのコンパイル

  1. CQ出版のページからサンプルコードをダウンロード
    【増刊】超小型ARMマイコン基板 特設ページ | トランジスタ技術
  2. CQ.zipを展開した後適当に手パッチ
    基本的にDebugの下のmakefileとsrc/subdir.mkでツール名とパスを合わせて
  3. 適当にコンパイルエラーの出るところを修正するだけ
  4. まずライブラリから。
    • cd CQ/LPC1114/workspace/CMSISv1p30_LPC11xx/Debug
    • makefileを開きarm-none-eabi-gccをarm-elf-gcc-4.5に変更
    • src/subdir.mkで-I"C:\CQ\LPC1114\workspace\CMSISv1p30_LPC11xx\inc" を-I../../CMSISv1p30_LPC11x/incとする
    • makeする。エラーが出たら適宜調整
  5. 同じようにPROG01_COLOR_LEDでも
    • cd CQ/LPC1114/workspace/PROG01_COLOR_LED/Debug
    • makefileを開きarm-none-eabi-gccの行を以下のように変更
      arm-elf-gcc-4.5 -Wl,--no-warn-mismatch -nostdlib -L"../../CMSISv1p30_LPC11xx/Debug" -Xlinker -Map=LPC1114.map -Xlinker --gc-sections -mcpu=cortex-m0 -mthumb -T "lpc1114_Debug.ld" -o"LPC1114.axf" $(OBJS) $(USER_OBJS) $(LIBS)
    • post-build:のarm-none-eabi-objcopyやsizeをarm-elf-objcopy, arm-elf-sizeに変更
    • src/subdir.mkでも同じようにarm-none-eabi-gccをarm-elf-gcc-4.5に変更して
      -I"C:\CQ\LPC1114\workspace\CMSISv1p30_LPC11xx\inc" を-I../../CMSISv1p30_LPC11x/incとする。
    • lpc1114_Debug_lib.ldを開きlibcr_newlib_nohost.aをリストから削除
    • makeする。
  6. ビルドが無事終わってLPC1114.hexが出来ると成功

ボードで走らせてみる

  NXPのLPC系マイコンはシリアルポート経由でFlash書き込みやメモリ読み書きの出来るプロトコルが公開されています。8N1でボーレートは自動設定。DTRのONでリセットをアサート、OFFでリセット解除。その際RTSがONならブートローダが起動、OFFならファームウェアが起動します。このMARYボードではFTDIと並んでよく使われているCP210x系のCP2104というUSB to Serial Bridge ICが搭載されておりこれを介して書き込みが簡単にできます。 端末ソフトから手動で操作もできます。

Flashへの書き込みはWindowsではFlashMagicというGUIツールが用意されていますが、これの代わりにLinux/MacではCLIですがlpc21ispというツールがあります。

簡単な使い方は以下の通り  
  • 接続確認
    lpc21isp -control -detectonly /dev/null /dev/tty.SLAB_USBtoUART 115200 12000

  • 書き込み
    lpc21isp -control hogehoge.hex /dev/tty.SLAB_USBtoUART 115200 12000 
書き込み終了後新しいファームが自動で起動しない場合があるので、その場合上の接続確認を行うと起動すると思います。LEDの点滅周期を変更したりして実際にプログラムがちゃんと更新されていることを確認するといいかもしれません。 

Mac用CP210xドライバについて 

VCPドライバの最新版(v2.7)を入れるとなにやら信号線の制御がおかしく上手く動きませんでした。一つ古いバージョンがおすすめです。学研のJapanenoでもリセットがうまくいっていませんでしたが、/dev/tty.*ではなく/dev/cu.*を指定することで手動リセットなしで使えます。  

余談というか希望など

上記手順で環境を作ってArduino用の7セグLED基板をICクリップ線でつないでちょろっとプログラムを書いて動作確認してみるとSPIで通信が出来て数字が表示出来ました。次はデバッガをなんとかしたいものです。

ところで雑誌・ムック付属のマイコンボードの最大の不満はUSB以外のコネクタ類がろくに実装されていないこと。まともに使おうとすると部品を入手して半田付けが必要になります。手先のぶきっちょなソフト屋としてはつらいところです。多少値段が上がってもピンやコネクタ類が実装してあるものをお願いしたいものです。(その点学研のJapanino(Arduino互換)は多少問題はありましたがちゃんとコネクタが付いてましたね) 。結局完成品の評価ボードを買った方がトータルで速く安価になってしまいます。せっかく雑誌に付属させるのですから今後は是非コネクタ実装済みでお願いします。

トラックバック

このエントリーのトラックバックURL:
http://blog.browncat.org/cgi-bin/mt/mt-tb-abc.cgi/923


コメント (1)

ハオコゼ:

はじめまして。私もMacなんですが、とても参考になりました。
ただ、VCPドライバーがv2.7とv2.2しか入手できません。
v2.7ではご指摘の通り通信もできない感じ。v2.2ではなにやら通信めいたことはしてそうですが、さいごに.... on "?"と謎のメッセージが出ます。
まだ、独自のプログラムをコンパイルしてみるところまで行ってないので、ちゃんと書き込めているかも解りません。
とりあえず、VCPドライバーv2.6のありかを教えて頂けると助かります。当方、OS 10.4,PPCです。

コメントを投稿

(お書きになったコメントはすぐには表示されません。ご了承ください。)


About

2011年04月13日 07:35に投稿されたエントリーのページです。

ひとつ前の投稿は「O'ReillyのeBookを買ってみた」です。

次の投稿は「祝。Ubuntu 11.04 Natty Narwhalリリース」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

           

カテゴリー

Powered by
Movable Type 3.36

Twitter


最近のエントリー

デル株式会社ads

注目エントリー