カテゴリの投稿: » マイコン・電子工作

mbed LPC824のファームウェアアップデート

Written in 2017年10月02日 by | コメントする( 0件 )

mbed LPC824のファームウェアをアップデートするには以下のページに従って行う。

https://os.mbed.com/teams/Switch-Science/wiki/Firmware-LPC824

Windowsでmbedとシリアル通信するドライバ

Written in 2017年10月02日 by | コメントする( 0件 )

Windowsでmbedとシリアル通信するにはドライバをインストールする必要がある。
MacやLinuxでは不要なようだ。以下のページからダウンロードする。
mbedをUSBに接続した状態でドライバをインストールする。

https://os.mbed.com/handbook/Windows-serial-configuration

mbed LPC824のAnalogInのプルアップ設定を解除

Written in 2017年10月01日 by | コメントする( 0件 )

mbed LPC824はinputがデフォルトでプルアップされている。プルアップ抵抗を追加しなくていいから便利なのだが問題がある。

mbed APIにおけるDigitalInクラスでは、コンストラクタで、

DigitalIn sensor( P0_6, PullNone );

のようにピンモードを指定できるし、mode()メソッドを使って、

sensor.mode( PullNone );

ともできる。
ちなみに、指定できるモードは以下の通り。

PullUp, PullDown, PullNone, OpenDrain

このようにDigitalInでは何の問題もないのだが、アナログ入力が問題だ。
AnalogInクラスにはこのピンモードを設定するメソッドがない!! なぜだ。。。。
mbedのサイトを見ると、

Warning

一部のCPUのmbedライブラリについて、アナログ入力ピンの内蔵プルアップ/プルダウンがONになっているものがあります。(意図してか、意図せずか不明)
この場合、ドライブ能力の低い電圧源や、抵抗器を介したアナログ入力の値がおかしくなります。

ピンモードを設定しているレジスタを直接アクセスして、プルアップ/プルダウンをOFFにしてください。

https://os.mbed.com/users/okini3939/notebook/AnalogIn_jp/

と書かれている。なんとも面倒な。レジスタを触るのか。
しかしレジスタを触らなくてもうまいことハックできちゃった。
つまり、いったんDigitalInで目的のピンをPullNoneで設定しておいて、再度同じピンでAnalogInを生成する。するとPullNoneなAnalogInが出来上がる。

DigitalIn dummy( P0_6, PullNone );
AnalogIn sensor( P0_6 );

これで動いたさ。