ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

I2Cのしくみとか、mbedでHTTPとかを聞いてきた!

2016-10-10 02:15:34 | Weblog
10月8日、実習 mbedで始める組み込みプログラミング入門にいってきた。そのとき、心に残ったことをメモメモ
(実際には回路を作って,mbed開発環境でコーディングして、動作させている。
 ここでは、プログラムは載せないで(営業妨害になってしまうので)
 お話だけをメモメモ)




■mbedってなに
・CortexMプロセッサ(CortexAが高機能、Mが低消費電力)
 ソースコードは共通で使える
 バイナリは共通では使えない(壊れる可能性)

・クラウドにコードを送る
 公開しなければ見えない約束

・C/C++で開発
 開発コミュニティのソースは自己責任
 ネットにつなげばプログラムが描ける

・準備
 ボードを買う
  今回使うもの:LPC1768
  ほかのもの:ublox:mbedでケータイにつながる
        STマイクロ:センサーを安く
   →ピンきり

 ユーザー登録
  はじめはsignupで行う
  なにもメールは来ないので、わすれないように

・ソフト開発
 ログインしたら、compilerをクリック
  →chromeがいい(HTML5なので)
  開発したテキスト(ソース)が必要ならダウンロードしないといけない
   →データはイギリスにあり、それを自分のところに持ってくる

 プラットフォームを選ぶ
  +ボタン

 ブラウザで
  歯車:ライブラリ
  main.cpp プログラム:これを修正


・ハードウェア
 回路図からブレッドボード上に作成
 カードをみて、ピンの番号を知る 
   例えば:LED1→P18→32番ピン

 マイナスにGND線をつなぐ
 LEDは長いほうが+(アノーど)
 IC:マ-クが1
 抵抗 赤 赤 茶 220オーム
    茶 黒 赤 1Kオーム
    茶 黒 オレンジ 10K

・mbedの実行
 プログラムをコンパイルする→正常ならダウンロードできる
 mbedにUSBをつないでドライブ開けばOK
 ダウンロードしたものを描きこんで、
 リセット押す
  →どれもおなじ

 ※2メガバイトのフラッシュ
  日付で見てて、一番遅いものを実行する

 ※配線を変えるときは、必ず抜いてから行う

I2C
・Hiでつっておく
・STARTコンデションでLにおとす。そこが始まり

<<以下、今回使っているDS1631の話>>
・STARTコンデションのあと、コントロールバイトがきて、そのあとコマンドバイトが来る
 →そのあとは、
    データバイトが来る場合、
    コマンドがきたあと、データバイトが来る場合がある
 →データバイトは1バイトの場合と2バイト(MS,LS)の場合がある
 →あとは組み合わせ。詳細は資料を見る

・コントロールバイトは1001のあと、アドレス(3ビット)、そのあとW・R
 →W/Rは、
   次のデータをマスタが書き出すときはW(0)、
   マスタが読む(スレーブが送信する)場合は、R(1)

・マスタからデータを受け取ったら、スレーブがACK、
 スレーブ側がデータを送ったら、マスタがACKを送る
 →Ackで0になる。このAck状態になる前は、Hにつられている。
  →Hの状態はNackということで、この間は送信できない

・コマンドバイトは、コマンドを書き込める。コマンドはデータシートにある
 今回使っているDS1631では、
   スタート 51h、リード AAhなどがある。詳細は資料参照。

・ここで資料中
  2-WIRE SERIAL DATA BUS とはI2Cのこと
  3-WIRE SERIAL DATA BUS とはSPIのこと

■ファイル書き出し
・LocalFileSystem インスタンス名("local");で
   fopenすろときは/local/ファイル名で
   実際のファイルは、直下(プログラム入れるところ)にファイル名で
 アクセスできる

・ファイル名は8文字以下.3文字以下(拡張子4文字はX)の昔の形式

■mbedで実行時にエラーになり、フォルダが見えなくなった場合
・リセットボタンを押しながら、USBをさすとフォルダが見える。
 その間に「リセットボタンを押しながら」フォルダを開き、
  エラーの原因となった実行ファイルを削除する

■割り込み
・attachメソッドで登録する
 登録するものは、あらかじめ書いておく

■TCPクライアント
・TCPポート80番にアクセスする
 ライブラリがある。ウィザードからインポートできる
 EthernetInterfaceがオフィシャルだし、数が多いので、これを落としてくる
  →数が少ないのは注意!あぶないかも・・
 依存してい足りない場合、エラーが出る。
  mbed-rtosも必要
 ぐるぐるマークアイコンがでたら、それは古い:アップデートする

■HTTPサーバーになる
・Henry Leinenが以前HTTPServerを出していた
 →いまはだしていない
 

■RPC
・文字列だけ送れば、LEDがつかえたりする
 LEDをつける
  /DigitalOut/new LED1 myled
  /myled/write 1
 これができるのがRPCで、mbedはmbed-rpcを使うとできる

・ということは、HTTPサーバーをmbed内に建てれば、
 そこへブラウザ経由で文字列を送ると、
 LEDが付けるようになる

・RPCするJavascriptはarmが用意しているが
 (mbedrpc.js)バグがある


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする