PICでMicroBridgeをやってみた

公開日: 電子工作 | , , ,

今回は、@yishiiさんが公開されている、PIC24FJ64GB002用のMicroBridgeソフトウェアスタックを使って、PICとAndroidを繋いでみました。

Microbridge PICマイコンボード2
(ヤフオクで販売されているPICマイコンボードを使った回路)

参考)

Microbridge/PICの紹介ページ
PICとAndroidとUSB接続する Microbridge/PIC公開! – 日曜エレクトロニクス

Microbridge-PICのプロジェクトサイト
microbridge-pic – Google code

Microbridge本家プロジェクトサイト
microbridge – Google code

 

PICのプログラム

Microbridge-PICのプロジェクトサイトでは、現在PIC24FJ64GB002用のMIcrobridgeソフトウェアスタックのソースファイルが公開されています。
このプログラムは、Android端末のLog情報をシリアル出力すると言う機能を持っています。
簡単にMicrobridge-PICの動作を試すことができるので、今回はこのまま利用させて頂いています。

配布ファイルは、MPLAB X IDE用のプロジェクトファイルがまるまる一式zipファイル化されているので、これをダウンロード。

今回利用したソースは、現在の最新版である
microbridge-pic-base-r7-AUG-5-2011.zip
を使いました。

ビルド

ソースファイルのビルドには、MPLAB X IDEとC30(Cコンパイラー)が必要です。

利用したMPLAB X IDEのバージョンは、Beta 6.0です。
現在ダウンロードできる最新版は、7.01らしいです。
http://ww1.microchip.com/downloads/mplab/X_Beta/index.html

MPLAB Xと同じく、C30も以前インストールしたままの古いバージョンで、3.25を利用。
現在の最新版は、3.30らしい。
そして、試用期間内に利用できる最適化オプションは、その期限が過ぎて無効化されています(´・ω・`)

書き込み

PICへの書き込みは、PICKit3を使いました。

 

回路(Microbridge-PICオリジナル)

日エレの石井さんから、コメントを頂き、

http://projectc3.up.seesaa.net/image/PIC24F_USB_REV1.pdf

にMicrobridge-PICオリジナルの回路図が有る事を教えて頂きました。

 

回路(その1)

探してもMicrobridge-pic用の回路図らしき物が見つけられなかったのですが、ソースから推測して、前回PIC24FJ64GB002でADKを試す(その1)を書いた時と同じ回路でそのまま動作可能だろうと思い、試してみたら見事動きましたw

Microbridge PIC24FJ64GB002 回路図
(2011/08/21修正)

これは前回の回路から不要な部品を消して、UARTの配線を足した回路図です。
PICのRB7ピンから出ているUART-TXラインからLog情報がシリアルで出力されます。
PCに接続するには、インターフェイスIC等を使います。

Arduinoをお持ちの方は、こんな方法もあります。
Arduinoを単体USBシリアル変換器に使用する – 日曜エレクトロニクス

 

回路(その2)

Yahooオークションで販売されている、PIC24FJ64GB002を使ったマイコンボード(1200円)を入手したので、このボードを使っても試してみました。
このボードも、回路(その1)とほぼ同等の構成なので、プログラムはそのままで動きます。

参考)
http://openuser.auctions.yahoo.co.jp/jp/user/mybd_2008
PICマイコン 電子工作 PIC24FJ64GB002 PIC18F14K50

このマイコンボードには、USB-miniBのコネクタが付いています。
しかし、Androidと接続する為にはUSB-Aのコネクタを外付けする必要があります。
USBのVBusに5Vを給電する為に、ABの変換コネクターは使えません。

今回は、より簡単に接続する為に、Arduinoを5V電源とシリアル変換器として利用しています。

参考)
Arduinoを単体USBシリアル変換器に使用する – 日曜エレクトロニクス

 

Microbridge PIC マイコンボード1 

実態配線図

microbridge pic 実態配線図

写真じゃわかりづらいので、Fritzingを使って実態配線図を作ってみました。写真と照らし合わせて配線すると、間違いが減らせると思います。
マイコンボードのパーツは、当然ですがFritzingには用意されていないので、600milのDIPパッケージで表しています。
中央にMicroControllerBoardと表示されている黒い物を、マイコンボードだと思って配線してください。

 

使い方

PICに電源入れ、USBでAndroid端末と接続するとLog情報が自動で取得され、シリアルに流れる。

シリアルのスピードは、57600bps

Log情報が無い間は、

[ADB_poll] connected = true
USB_ENDPOINT_NAK_TIMEOUT
addr=1,EP=85h,resolve code=17h
size mismatch

と、永遠にシリアルに流れ続けるので、Arduino IDEのモニターで開くと、処理が追いつかずにハングアップした状態になってしまったので要注意。

 

関連記事

no image

Arduino + USBホストシールド で ADK を試す(その1)

先日Google IOで発表された Android Open Accessory。みなさん知ってます

記事を読む

秋月電子 キャラクタLCD

秋月の小型キャラクタLCD

今回秋月電子で売られている小型のキャラクター液晶2種を買ったので、ちょっと比較してみる。 買っ

記事を読む

no image

Android Open Accessory開発時のWiFiデバッグ

Android Open Accessory開発時のデバッグは、ADBをWiFiで接続しろと、USB

記事を読む

米粒AVRで温度計

米粒AVRで温度計(STTS751使用)

前回までに紹介したI2CライブラリとLCDライブラリを使って作る、温度計のサンプルです。 温度

記事を読む

no image

Bimeji Client for Arduino

前回紹介したWimeji Client for Arduinoの最後で予告していた、Wimeji c

記事を読む

no image

Android + Bluetooth + Arduino

 以前書いた『気になる物』で紹介したBluetoothモジュールですが、本当に気になって実

記事を読む

Androidで温度計

Androidで温度計(STTS751使用)

  Androidに温度センサー(STTS751)を繋いで温度表示してみました。 温度

記事を読む

raspi-colortest

Raspbianの起動

Raspbianの起動画面をキャプチャしてみた。 SDカードにイメージを書き込んだままのデフォ

記事を読む

熱湯の温度計測実験

パソコンで温度計 #3

今回は、I2C接続の温度センサー STTS751をケーブルを使ってArduinoに接続できるよう

記事を読む

no image

Androidで一眼レフカメラのシャッターを制御する

またSoftModemネタです。 調子に乗って arms22さんの記事 iPhoneで一眼レフカメ

記事を読む

Comment (6件)

    1. Futaba

      コメントありがとうございます。
      回路図も公開されていたんですね。
      見つけられずにごめんなさい
      m(_ _m

  1. Nakata

    このHPを拝見させていただき試行錯誤しているものです。
    ご教授いただければ幸いです。

    Yahooオークションで販売されているマイコンボード(1200円)を購入し
    回路(その2)の配線通りに組み上げたつもりですが、うまく動作いたしません。

    Microbridge-PICのプロジェクトサイトよりプログラムをダウンロードし
    MPLAB X IDE(Beta7.02) とC30でコンパイルしました。

    コンパイル時にwarningは数個でましたがコンパイルは正常に終了しました。
    PICへの書き込みはブートローダーを使用し書き込みました。

    PICをAndroidへ接続した時に、USBデバッグモードになりますでしょうか?
    これがならない為動作しないのか、コンパイルに問題があるのか、
    ブートローダーの書き込みに問題があるのか、回路に問題があるのか・・

    行き詰まっております。
    是非ご教授いただければ幸いです。
    よろしくお願いいたします。

    1. Futaba

      コメントありがとうございます。

      >PICをAndroidへ接続した時に、USBデバッグモードになりますでしょうか?

      android側で設定(設定→アプリケーション→開発→USBデバッグ)してあれば、PICを接続した時に自動でUSBデバッグモードになり、じゃんじゃんlogデータが送られて来たと思います。

      最近PICをさわってないので、だいぶと忘れてしまいましたが・・・

      確か、ブートローダーでの書き込みに対応するには、ビルド時にアドレスを変更する必要があったかと思いますが、そのあたりはおkでしょうか?

  2. Nakata

    ご回答ありがとうございます。

    TRISA2ピンの出力切り替えルーチン(LEDを点滅させるようなやつです)を組み込んで
    app_hid_boot_p24FJ64GB002.gld のファイルをLinker Filesでリンカーさせてコンパイルしたところ
    出力しっぱなしではありますが、初めて動作が確認できました。
    ですが、思うような動作をさせるには程遠く、勉強不足を痛感いたしました。

    ブートリーダー用にソースを書き直しビルドできるスキルはありませんので
    Pickit3を購入し、そちらで動作を確認したいと思います。

    道は長いですね・・・

    1. Futaba

      コメント有り難うございます。

      実は僕もソースを書き直して指定する方法は分かりません^^

      基本的にはapp_hid_boot_p24FJ64GB002.gldを指定すればアドレスが変更されると思っていたのですが、Microbridgeのソースにリンク指定しても動かないでしょうか?

      僕も一応、そのgldファイルをリンク指定してビルドするとプログラムのアドレスが変わるのは確認しましたが、実際に書き込んでの動作までは確認していません。

      いずれにせよ、PICKitは入手しておいて損は無いと思うので、オススメします。

Arduinoで温湿度データロガー
Arduinoで温湿度計 #2

今回は、前回作った温湿度計にRTCモジュールとSDカードアダプタを

Arduinoで温湿度計
Arduinoで温湿度計

秋月電子の温湿度モジュールを使って、温湿度計を作ってみました。 以前

SDカード・マイクロSDカード
ArduinoでSDカード

電子工作で大量のデータを保存する方法を調べていると、 Arduin

秋月電子 リアルタイムクロック(RTC)モジュール
秋月のリアルタイムクロック(RTC)モジュール

今回は秋月電子のI2C接続のリアルタイムクロック(RTC)モジュールを

秋月電子 キャラクタLCD
秋月の小型キャラクタLCD

今回秋月電子で売られている小型のキャラクター液晶2種を買ったので、

PAGE TOP ↑