2015年7月8日水曜日

LPC-Link2のCMSIS-DAPファームを更新したら認識しなくなったけど解決

LPCScrypt(最近リリースされたLink2やLPCXpressoV2/V3系ボードのファームを焼くためのツール)で最新のCMSIS-DAPファームを書き込んだら、PCから認識しなくなって、困って、解決しますた。

原因は、CMSIS-DAPファームのバージョンアップに合わせて、PCのドライバも更新していなかったためです。

ドライバを更新してない時の症状は、デバイスマネージャーにCMSIS-DAPデバッガが表示されず、シリアルポートの「LPC-LinkⅡ UCom Port」のみが表示されます。

LPCXpresso最新版(v7.8.0_426)にもLPCScryptと同じCMSIS-DAPファームが入っているので、LPCXpressoでも同様の現象が発生するかもしれません。(JP1刺さずUSBブートでCMSIS-DAPファーム利用する場合など)

インストールを行う前に古いドライバを削除しておくことをオススメします。
ドライバのインストーラはLPCXpresso v7.8.0_426に同梱されています。
デフォルトのままインストールされているなら、インストーラのパスは
"C:\nxp\LPCXpresso_7.8.0_426\Drivers\lpc_driver_installer.exe"になります。

インストールが成功し、CMSIS-DAPファームを焼いた状態でLink2を接続すると以下の画像のように認識されて正常に動作します。



2015年7月7日火曜日

mbed AutoTransferバージョンアップしました(v1.03)

mbedAutoTransferの説明ページを作りました。
初めての方はこちらを御覧ください。
http://kinomuku129.blogspot.jp/p/mbedauto.html

今回のバージョンアップで、11Ux系への対応として「イレースモード」を追加しました。

11U系はバイナリ転送前に、ドライブ内の「firmware.bin」を消去する必要があるため、そのための機能です。
 イレースモードを有効にすると、バイナリ転送前にドライブ内のすべての.binファイルを削除します


ダウンロードはこちらからどうぞ
https://developer.mbed.org/users/nameless129/notebook/mbed-autotransfer-tool/

2015年7月4日土曜日

D&DでCMSIS-DAPデバッガから書き込みを行うバッチファイル

昨日に引き続きバッチファイルネタです(;´∀`)
バッチファイルにD&Dでbinファイルをぶち込むとCMSIS-DAPデバッガを通じてターゲットに書き込みが行えます。

https://developer.mbed.org/users/kazu_zamasu/notebook/USE-to-IRC-on-mbedlib/
ざますさんのノートブックにredlinkへ引数としてバイナリを渡して書き込む方法があったので
それをバッチファイル化しました。

ざますさんのと少し違うのはLPC-Link2をredlink化せず、CMSIS-DAPデバッガのまま使うことです。
CMSIS-DAPデバッガのまま書き込めたので省略しました。
(LPC-Link2のCMSIS-DAPデバッガ化はLPCScryptを使ってください)

手持ちのNXPチップのmbed4種(LPC1768,LPC11U68,LPC1114,LPC824)対応のバッチファイルを作りました。

mbedとしてPCにUSBで接続してる時も使えます(CMSIS-DAPデバッガとしても認識されてるため。USBストレージあるからあまり意味ないけど)
LPC-Link2をCMSIS-DAPデバッガとして動作させている時に同様に使うことができます。
これで非mbedなボードでSWD書き込みが捗ります。今まではCoFlash使ってたけど、824とか対応してなかったんですよね。。。

batファイル3行目のLPCXpressoインストールパスを修正してから使ってください。現状では最新のLPCXpresso v7.8.0_426のパスになっています。
D&Dでbinファイルをbatファイルに放り込むと書き込んでくれます。書き込み後はリセットがかかり、焼いたバイナリが走り出します。

2015年7月3日金曜日

D&Dでbinファイルをhexファイルに変換するバッチファイル

LPCXpresso内のobjcopy.exeを利用して変換するバッチファイルを書きますた。
D&Dでbinファイルを放り込むと同じフォルダに同名のhexファイルが生成されます。

LPCXpressoが必要です。
3行目は適宜LPCXpressoがインストールされてるフォルダに変更してください。

2015年7月1日水曜日

EFM32 Giant Geckoを触ってみた

 ちょっと触らせて頂く機会があったのでいろいろやってみました。

青マーカーが付いているように見えますが、保護フィルムです。剥がしません。

下側のmicroUSBポートはUSBHost/Device用で、左下の電源選択のスライドスイッチをDBG、左側のminiUSBポートに刺すことで電源が入ります。

初期のファームはタッチセンサのデモ。触れると数値が変化します。

環境構築から。
いきなりオンラインIDEでソース書いてバイナリ作ってD&D、かと思いきや初期状態ではできないのでファームウェアをバージョンアップする必要がありました。
そのために純正IDEの「Simplicity Studio」をダウンロードします。アップデータのダウンロードやらでそこそこ時間かかりました。詳細は↓
https://developer.mbed.org/teams/SiliconLabs/wiki/Silicon-Labs-Firmware

で、mbed化もできたところで色々試してみました。
まずはLチカ。これは難なく作成できました。ついでに拙作の「mbed AutoTransfer」も試しましたが、うまく動いてくれました。
ちなみにLEDですがGPIOのPE2,PE3に当たっています。ヘッダにも出ている上、UART1とも被っているので要注意です。というか他のポートでもよかったのでは。。。


次にLCD。サンプル見ればーと思いきや、

この通り書いても動かないんですが(´・ω・`)
他のサンプルソース見て対処しますた。

その他光センサも乗っかってたので、これの値をADで読むのかなーと思いきや普通のポートだったりしたので、それをGPIOで読んだり。
テスタの値は光センサの出力電圧

光センサの電圧が高くなったので、読んでるGPIOもH判定、それに合わせて液晶下の右側LEDを点灯させてます

LCセンサはうまく使えなかったのでスルーしたり。。。

PCとシリアル通信させてみたり。これが一番悩まされました。
mbedとして見えてるドライブの中のReadMeの中身が↓
Silicon Labs J-Link MSD volume.

Copying a binary file here will flash it to the MCU.
Supported binary file formats:
 - Intel Hex (.hex)
 - Motorola s-records (.mot)
 - Binary (.bin/.par/.crd)

Known limitations:
 - Virtual COM port speed is currently fixed at 115200 bps
 - Using other kit functionality such as energy profiling or debugger while flashing is not supported.
   Workaround: Pause any energy profiling and disconnect any connected debug sessions before flashing.
ほうほう、hexだけでなく、mot、bin、までとはなんでもござれっすなあと思った次の段。
ふむ、デフォルトのCOMポートは1115200bpsで固定されてるのね、と。

そしてシリアル通信テストのmbedソフトをボーレート指定せず書いてみるも、PCに通信が来ない。
もしかしてと思い、mbedソフトのボーレートを115200bpsに指定してみるも何も表示されない。
丁度ヘッダにもピンが出ているのでそこをUSB-UARTで覗いてみれば表示される。
ジャンパ飛ばさないといけないのかと色々調べてみると・・・

https://developer.mbed.org/teams/SiliconLabs/wiki/Using-stdio-on-Silicon-Labs-platforms

Board Controller Enable Signal

えぇー・・・('A`;)
ヘッダが出ているPE0とPE1とJ-LinkのUARTが共有になっているので、
J-Linkのチップ保護のためのEnable信号(PF7)・・・ということかなあ。。。
PCと通信させるときはPF7をHにしてからにしましょう。
あとmbedのボーレート指定も115200bpsで。これ以外はmbedチップが通せんぼします。


LCDのパーツがいろいろあったので表示させてみたり。


最後に、mbedチップのバージョンアップ来ませんかね。。。バイナリ転送するたびにシリアル再接続しないといけないし、ボーレートも固定だし、正直、易しくないボードだなあと思いました。
ただボタン電池1コで駆動するのは、小さい機器への組み込みに魅力的ですね。

Simplicity Studioを使ってサンプルを書き込んでみたりしましたが、LPCXpresssoと同じくmsys-1.0問題(勝手に呼んでる)が発生しました。
msys\1.0\bin\make.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0
↑のメッセージがLPCXpressoでも見たので同じように改善版をダウンロード↓
http://www.support.code-red-tech.com/CodeRedWiki/VirtualAllocPointerNull
置き換えすることで解消しました。

最後になんだかんだ試したソースを置いておきます。
参考になれば幸いです。
https://developer.mbed.org/users/nameless129/code/blinky_EFM32_Giant/


 参考資料など

EFM32GG-STK3700 Giant Gecko スターター・キット・ユーザ・ガイド
http://www.silabs.com/Support%20Documents/TechnicalDocs/efm32gg-stk3700-ug.pdf

アプリケーションノート一覧
http://www.silabs.com/products/mcu/Pages/32-bit-mcu-application-notes.aspx

回路図
http://www.silabs.com/Support%20Documents/TechnicalDocs/BRD2200A_A03.pdf

2015年6月30日火曜日

mbed祭り2015 夏の東銀座でLT発表させて頂きました

当日のスライドはこちらになります。
CoFlashの使い方を簡単に載せていますが、紹介できる時間がなかったのでじっくり見たい方は是非。
http://www.slideshare.net/en129/mbed-mbed2015en129

当日の様子はニコ生タイムシフトでもご覧になれます。(7/5まで)
http://live.nicovideo.jp/gate/lv224486510

2015年2月26日木曜日

第01回世界ボーカロイド大会に参加してきました(ゆかり温泉舞台裏とか)

ボーカロイド系イベントは今回が初参加でした。
ボーカロイドは最近、ブームの変化についていけず、最近の曲を聞いたりしなくなっていたので楽しめるかな?など考えつつ小田原より新幹線で掛川まで。
ついたーん!
最近はゆかりさんスキーなので紫っぽいところゆかりさんをペタリ
(アカン)
祭壇の中にひとつ変なのが・・・
ヤマハルーターww これはニコ技部員の仕業に違いないw
ボカコンホワイトボードの裏にゆかり温泉の参加案内を貼っておく
あまり写真撮ってなかったのですが、いくつか展示を見て回ったり。
 女子限定のOculus部屋にて特別に体験させていただき、ルカ姉さんに添い寝していただきました。。。いやぁ、絶景でしたわ・・・。

 その後ホテル部屋にコンテナ3コ、イレクターパイプセットをひぃひぃ言いながら運び込み、設営開始。夕食の時間くらいになってトラブル発生。

 なんとゆかりさんの映像・音声を出力するコンピュータから音声が出ない!まさかと思い、HDMIケーブルを外して手元のイヤホンをコンピュータに接続してみると聞こえる。音声出力先がHDMIを繋げているとそっちになってしまうようだが、自宅でもHDMIでプロジェクタに繋いでたのに・・・?
 考えてもしょうがないので対応策を検討。プロジェクタとコンピュータのHDMI接続相性が悪かった時のために持ってきたコンポジットで出力することも考えたが、動画再生時にオーディオ出力をマニュアルで指定する方法があったのを思い出し、シェルスクリプトに追加。HDMI接続でもちゃんと音声出るようになって一安心。
 その後も設営続けて19時にやっと夕食。ほっと一息ついていましたが、トラブルがあったせいかあまり食事が喉を通らなかったです。。。

 19時15分、ゆかり温泉の整理券配布開始。配布のアナウンスと同時に何人もの人が整理券を求め、配布してたひろこさんの元へ足早に向かう。内心期待されていることが嬉しい半面、最後までシステムがちゃんと動くかも心配でした。。。また緊張度が上昇。。。(ヽ´ω`)
 19時30分、部屋に戻り設営の再開。センサ、LANケーブル、モニタ用カメラケーブルの敷設など順調にこなし、最終テストもクリア。部屋の作り込みのレベルが聞いてた以上だったが、空間演出には欠かせないことだと気づいた。さすがひろこさん。

 少し遅れて21時10分頃、ゆかり温泉オープン。プログラムにバグがあったがすぐ修正。体験者が部屋から出てくると、呆然とした表情や、緩んだ口元を抑えながら出てくる人など様々。中には大爆笑しながら見ていた人も・・・。予想外だったが、好評の反応に思わずガッツポーズw
 ゆかり汁を飲むと「あ~・・・」といった言葉にできないリアクション。ゆかりタオルは予想通り、頷きながら「うんうん、こんな感じっぽい」といった反応。

 その後続々と整理券持ちの人が並び、更には評判を聞きつけ、1時以降のフリーの時間帯に、整理券を持ってないけど体験したいという方々まで並び始める。大好評で嬉しい限りでした。
 中にはAHS尾形社長や風雅なおとさん、アミッドPなどボーカロイド界隈で著名な方々にも体験していただきました。皆さんいい表情で出てこられましたw

 ゆかり温泉前はすでに体験済で、ドアを出た時の反応を待つ、出待ちの人だかりもw
出た人に感想聞くのも面白いw
そんなゆかり温泉の様子は、なんとねとらぼさんにて記事が出ています!ヒャー!
 バーチャルアイドルとの温泉旅行に人だかり 第01回世界ボーカロイド大会に行ってきました (1/3) - ねとらぼ
 そんなこんなで当初の予定より遅く終了したのが4時30分頃w 恐らく宿泊された方の3/4くらいの人数が体験されたのではないでしょうか。その後頂いたキンキンに冷えたビールは格別うまく感じられました。
 そして最後の最後になって僕自身が体験w エラー出ないことを祈りつつ、邪念を振り払うためにSSHコンソールを開いたスマホを置いて部屋に入室。 タオルを置き直したり、スモーク焚いたりするために何度も出入りはしていましたが、いざ自分が体験する側となって入ってみると別世界。

 入るとすぐゆかりさんが声かけてきますが、少し声が小さめ。耳をすまして聞きつつ、部屋のにおいはなにやらラベンダーのようなにおい・・・ゆかりさんのにおい・・・。部屋のベッドに目をやると、ゆかりさんのパーカーが。思わずにおいを嗅いでしまいました。。。(のちにある方の私物と判明し、おぅふ・・.となってしまいましたがw)
 その後タオルを浴室に持ってきてとお願いされ、パーカーのとなりに置いてあったタオルを手に浴室のドアを開けると、そこにはゆかりさんがシャワーを浴びているシルエットが・・・!
 何度も何度も確認のため映像を通常のモニタで見ていたはずなのに、モヤットスクリーンに投影された映像は、まさにゆかりさんの存在を表していました。しばしシステムの心配など忘れて見入ってしまいました・・・。皆さんがドアを出てきた時の反応が理解し、納得できましたw

 その後簡単な後片付けをした後に5時就寝。
 シャワー?あぁゆかりさんが使っているから浴びれなかったよ。(

~2日目~
@suzu_miku39さんの痛望遠鏡。初めて直接見ましたが、2mくらい?デカイ・・・!
パイルターオン!w
朝9時に慌てた様子で起こされる。ホテルの退出時間が10時半。ヤバイ。知らなかったよおお。大急ぎで撤収作業を開始。おかげで朝食食べられずトホホ。
 なんとか退出時間前に撤収が完了し、本当の温泉に入りに行く。疲れた体に効いた~>ω<
 昼食のカレーを頂き、「富士山ミクライブ」に参加。ディラッドスクリーン初めて目の前にしましたが、ヤバイ。ミクさんいるやん。ペンライト忘れてきたことを後悔しつつ、ペンライトを振るごとく手を振って楽しみました。
 「間と舞−邦楽MEETS VOCALOID」も鑑賞しました。あぴミクさんの振り袖すごくかわいい。三味線の演奏は、自分からするとすごくゆっくり、和風な感じというか。地元宮崎でよく津軽三味線を聞いてた影響かもしれません。

 「ハイパーボカロinつま恋」は冒頭のトークで意表を突かれましたw まさか石黒さんが「ゆかり温泉ってなんだったの?」とゆかりさんに質問するとは! これには思わず隣にいたひろこさんと顔を見合わせ「どういうこと?!」などビックリしてしまいましたw そんなビックリはさておき、ステージはゆかりさんと、中の人石黒千尋さん、EHAMICさんが共演するというもの。ロンドンで行われたHYPER VOCALOID Liveの再現ということでしたが、内容はさっぱり知らなかったのでどんなものかと期待していましたが、すごくいい。「London Calling」は結月ゆかりをメインに、石黒さんがコーラスでしたが、その2人の歌声の組み合わせが今まで聞いたことない間隔で、すごく心地よいステージでした。初めて石黒さんの歌声を聞きましたが、その声でファンになってしまいました。

 その後石黒さんに直撃!あの冒頭のトークはなんだったのか伺うと、どうも石黒さんが午前中からいらしている時に、いろんな方から「昨日はお世話になりました」「温泉、すごくよかったです」など昨日の様子について話を聞いたとのころ。それで気になりステージでゆかりさんに聞いてみたということだったようですw
うおおおブロマイドだああうひゃあああああああああああああああああああああああry

・・・取り乱しました。

 「ボカロと一緒に歌ってみた・歌ってみよう」ではなんと、KAITOの兄さんこと風雅なおとさんとKAITOニーサンの共演!「KAITOと言えばあの曲ですよね!」と前振りがあったが、最近の曲はさっぱりだったので、頭に?を浮かべていると、イントロからすぐにビビッと!卑怯戦隊うろたんだーではありませんか!うおー!もう最高でしたねw しかも最後にKAITOニーサンの誕生日を祝うなど、思わず感動してしまいました。

そんなこんなでボカコンに参加しましたが、本当に行ってよかった!256MBしかないMP3プレイヤーに頑張って曲突っ込んで聴きまくっていた、毎週のようにボカランをチェックしていた中高学生時代を思い出しました。就職してから時間がなくなったのもあるけど、なんとなくランキング動画見てもピンと来る音楽が少なくなったと感じて以来、下火になりつつあったボカロに対する情熱が蘇ってきました。ボカコンは、あの熱中していた頃を思い出させてくれるなにかがありました。あとゆかりさんヤバイ。
 また今回のゆかり温泉企画も、様々な人を楽しませることができて本当によかったと思います。また次回もなにかしら参加できたら、と思います。本当にありがとうございました。


ゆかり温泉のシステム構成について

第01回世界ボーカロイド大会 座談会企画:五感で感じるバーチャルアイドル ~ゆかりさんと湯けむり旅行♨~
――通称「ゆかり温泉」

ゆかり温泉を体験し終わった方々から「システムどうなってるの?」ということを度々聞かれましたので紹介したいと思います。

システムの動きとしては、
①体験者が部屋のドアを開ける
②ドアセンサ(部屋)で検知し、ゆかりさんの音声を再生
③体験者が浴室のドアを開ける
④ドアセンサ(浴室)で検知し、ゆかりさんの映像を再生
といった流れで動いてました。

ドアセンサについて
ドアセンサとして「測距センサ」を使いました。測距センサとは、センサから対象物までの距離を測定し、測定結果を距離に応じたした電圧(アナログ電圧、例えば10cmなら2.25V、80cmなら0.4V)を出力してくれるセンサです。
よくよく見ると・・・
こんなところにセンサが!何名かは気づかれてたようです
 このセンサをドア近くに貼り付けておき、ドアが開いたときにセンサに近づいてくるので開閉が検出できる、という訳です。


 システム構成について
センサからの電圧読み込みに「mbed KL46Zマイコンボード」(以降mbed)、映像・音声出力用に「Raspberry piコンピュータモジュール」(以降ラズパイ)を使用しました。
 mbedはアナログ電圧を読み取り、ドアの開閉判断をさせています。「コンパレータでいいじゃん?」と思うかもしれませんが、現地で基準値変更する可能性があったのと、デバッグ用に電圧値見たかったのでmbed使いました。
 ラズパイはmbedからドア開閉したという信号を受けて、音声・動画再生をさせています。このとき無線LAN経由でノートPCから正常に動作しているかモニタリングを行い、エラー時にはコマンド打ったりしていました。

2015年2月1日日曜日

FlashAir(Class6 8G)がファームアップデートできなくしてしまった→解決

久しぶりにデジカメから入れっぱだったFlashAir Class6(SDIOとかに対応してない第一世代)を使おうと思い、SDフォーマッタで上書きフォーマットしちゃったら・・・ファームアップデート及び設定ソフトからFlashAirとして認識できなくなっちゃった件。

なんとかアップデート・設定できるようになりましたのでメモ。
やる時は自己責任で。
参考:http://www.jp7dki.com/?p=19
  1. "C:\Program Files (x86)\TOSHIBA\FlashAirTool\default\W-01"の中フォルダ3つをFlashAirにコピー
  2. FlashAirの”SD_WLAN\CONFIG”をエディタで開いて VERSION=1234567890123456
    の行を
     VERSION=F24A6W3AW1.00.03
    に変更
  3. ファームアップデートソフトでアップデート
これで復活しますた。ヨカッター