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のモニターで開くと、処理が追いつかずにハングアップした状態になってしまったので要注意。

 

関連記事

Raspberry Piの起動SDカードを準備する

先日入手したRaspberry PiでLinuxを起動する為のSDカードを準備します。 Ras

記事を読む

no image

Atmel Studio 6

米粒AVR(ATtiny10)の開発を行う為に、Atmel Studio 6.0をインストールし

記事を読む

秋月の小型キャラクタLCD

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

記事を読む

ArduinoでSDカード

電子工作で大量のデータを保存する方法を調べていると、 Arduinoでも比較的簡単にSDカードを

記事を読む

米粒AVRからAndroidへデータを送る

米粒AVRでSoftModem的なこと

米粒AVRとAndroidを繋いで、データのやりとりを行ってみたいと思います。 2つを繋ぐイン

記事を読む

no image

Android+Arduinoでリモコン4(Microbridge接続)

前回AndroidAccessory接続で作った赤外線学習リモコンを、今回はMicrobridge接

記事を読む

Androidで温度計

Androidで温度計(STTS751使用)

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

記事を読む

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

今回は秋月電子のI2C接続のリアルタイムクロック(RTC)モジュールを買ったので、ちょっと試してみま

記事を読む

no image

S2 Resistor Color Code 公開しました。

このアプリは、抵抗のカラーコードから抵抗値を素早く見る為のAndroidアプリです。 4本帯と、5

記事を読む

no image

AndroidでSoftModemを試してみた

今回、ここで言うSoftModemとは、携帯電話のオーディオ端子(イヤホン・マイク端子)を利用し

記事を読む

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で温湿度計 #2

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

Arduinoで温湿度計

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

ArduinoでSDカード

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

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

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

秋月の小型キャラクタLCD

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

PAGE TOP ↑