浜松市にいる組み込みおやじ-電子工作、回路設計、ファーム TIPS

このブログはビーコンの代表である菅原が、電気電子、電子工作、組み込みソフトウェアなどで、自分が苦労したところや面白い発見などを記事にしていきます。電子工作やマイコンに親しむ人が少しでも増えたらという思いでつづります。
やっぱり、電子工作が好きなんですよ。
nRF52 P0.10,P0.9が操作できない問題について
0

    nRF52で P0.9,P0.10が操作できなくて、ちょっとはまったのでメモしておく。

     

    P0.9,p0.10を出力に設定しても、ポートの操作ができない問題に直面。

    これは NRF_UICR->NFCPINSの設定が 1になっていて、P0.9,P0.10を NFCで使うモードになっているためと判明。

    ちなみに、デフォルト値は1 なので、なにもしないと NFCモードになる。
     

    で プロジェクトの中でNRF_UICR->NFCPINSの設定をしているところがあるのではないかと検索すると、一つだけヒット。。

    CONFIG_NFCT_PINS_AS_GPIOSを定義しておけば、P0.9,P0.10をGPIOとして設定するコードが有効になるので、GPIOとして使えるようになる。

     

    NRF_UICRは不揮発メモリなので一度設定してしまえば、電源を再投入してもリセットしてもGPIOモードのままになる。

     

    CONFIG_NFCT_PINS_AS_GPIOSの定義が見当たらなかったので、 該当する  #if defined (CONFIG_NFCT_PINS_AS_GPIOS)の直前に定義してみたところ、設定が書き換わり、P0.9,P0.10のポート操作ができるようになった。

     

    system_nrf52.c 140行目あたり(nRF5_SDK_11.0.0_89a8197)

            // add by sugawara
    #define     CONFIG_NFCT_PINS_AS_GPIOS 1

        /* Configure NFCT pins as GPIOs if NFCT is not to be used in your code. If CONFIG_NFCT_PINS_AS_GPIOS is not defined,
           two GPIOs (see Product Specification to see which ones) will be reserved for NFC and will not be available as
           normal GPIOs. */

        #if defined (CONFIG_NFCT_PINS_AS_GPIOS)
            if ((NRF_UICR->NFCPINS & UICR_NFCPINS_PROTECT_Msk) == (UICR_NFCPINS_PROTECT_NFC << UICR_NFCPINS_PROTECT_Pos)){
                NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen << NVMC_CONFIG_WEN_Pos;
                while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
                NRF_UICR->NFCPINS &= ~UICR_NFCPINS_PROTECT_Msk;
                while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
                NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren << NVMC_CONFIG_WEN_Pos;
                while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}
                NVIC_SystemReset();
            }
        #endif

    | ビーコン菅原 | nRF5x Nordic | 12:15 | comments(0) | trackbacks(0) |
    最近組み込みエンジニア不足らしいと
    0

      先日の異業種交流会に参加した。

       

      IT系の会社の人が多くて、組み込みやっている人は少数派だ。。

      組み込みやっていることを伝えると、いまは自動車メーカーがどんどん組み込みエンジニアを抱えていて、組み込みエンジニアは不足しているという話をしていた。

       

      確かに、浜松で活躍していたある組み込みの人も、最近某自動車メーカーの系列会社の仕事とかで、県外にずっと入っているということも聞く。。

      それから、とにかく、最近引き合いが多い。まあ、自動車メーカーに入って仕事してくださいというのはないけれど、それでも、いろいろな引き合いが増えているのは、他の組み込みエンジニアが自動車メーカーに取られてしまった余波なのかもしれない。

       

      JUGEMテーマ:組み込み開発

      | ビーコン菅原 | やもやま話 | 11:28 | comments(0) | trackbacks(0) |
      nRF5x をGCCでコンパイルする。(暫定)
      0

        JUGEMテーマ:組み込み開発

         

        nR52をGCCでコンパイルしたので、メモとする。

        いつもは恵まれた統合開発環境を使っていたこともあり、GCCを使う機会が無かったこともあり、なおかつ、Linux使いというわけでもなく、なじみが無かったので、結構苦労した。

         

        参考にしたサイト

        GCC ARM Toolchainでmbedをオフラインビルド

         

        ここより抜粋

        GCC ARM Toolchainのインストール

        gcc-arm-none-eabi-4_8-2013q4-20131204-win32.exeをダウンロードして、実行する。

        忘れずに、最後はAdd path to environment variableにチェックを入れる。(環境変数を追加してくれる)

        Gnu Makeの追加

        C:¥Program Files (x86)¥GNU Tools ARM Embedded¥4.8 2013q4¥binに下記のファイルを追加する。

        make.exe
        libiconv2.dll
        libintl3.dll
        上記ファイルは、sorceforge.netのmake-3.81-bin.zipとmake-3.81-dep.zipの中にある。
        引用終わり・・

        --

        ということで、

        今回は ble_app_nrsをコンパイルしてみたかったので

        ・・・¥nRF5_SDK_12.2.0_f012efa¥examples¥ble_peripheral¥a_ble_app_hrs¥pca10040¥s132¥armgcc

        のディレクトリまでおりて

        makeを実行。

        するとなにやらエラーが出てくる。

         

        ¥nRF5_SDK_12.2.0_f012efa¥components¥toolchain¥gcc¥Makefile.windows

        の中を見てみると

        インストールされているコンパイラのバージョンが違っていて、そのためにインストールされているフォルダが違っていた。

        4.9 2015q3 を 4.8 2014q3 に書き換えた。

         

        GNU_INSTALL_ROOT := C:/Program Files (x86)/GNU Tools ARM Embedded/4.8 2014q3
        GNU_VERSION := 4.9.3
        GNU_PREFIX := arm-none-eabi
         

        再び makefileのフォルダでmake.exeを実行するとコンパイルがあっさり通った。

         

        Keil の統合開発環境で見てみるとよくわかるが、Nordicが提供しているプロジェクトは階層構造が結構複雑だ。

        CUIの環境ではこれを見渡すのが難しいことと、いまのままではデバッガが使えない。いろいろと改善の余地があるけれど、まずはこれで開発を進めていく。

         

         

         

         

        | ビーコン菅原 | nRF5x Nordic | 09:06 | comments(0) | trackbacks(0) |
        さくらのIoT Platform βの消費電流について
        0

          JUGEMテーマ:組み込み開発

           

          先日さくらのIoT Platform を知ったので、早速さくらの通信モジュール(LTE)-β版 を購入してみた。

          https://iot.sakura.ad.jp/

          http://iot-store.sakura.ad.jp/items/4326125

           

          さくらの通信モジュールは、このモジュールにデータを渡すとインターネット等を介さずに、専用の通信網を使ってデータをクラウド上に上げてくれる仕組みとなる。

          サクラのクラウドとかそういうところにいきなりデータがある。その他 AWS等とも接続できるということ。

          組み込みで、一番面倒だったりするところを全部担当してくれて、こちらはこのモジュールと通信できれば IOT完成 ・・・という感じになるので大変ありがたい。普通は Wifiで飛ばしてみたいなところから始まり、セキュリティーはどうするとか、相手と接続の手順やら、結構めんどくさいことが山積みになってしまう。それなりにおおきなマイコンを積まないといけないとかなる。

          さくらのIoT Platformを使えば、そういうことも考えなくていいので、マイコンも小さなものですむというわけですな。

           

          で通信モジュール(LTE)は UART,SPI,I2Cの三種類の通信方法が用意されている。

          ここでは I2C 一択と考えてよさそうだ。

          いまは β版だけど、今後正式版ではUARTをサポートしないかもみたいなことがマニュアルに書いてある。

          SPIの場合、使用しているポートが 通信モジュール(LTE)のIOポートと兼用端子となってしまうので、ここを使うとI/Oが使えなくなってしまう。

          そんなわけで I2Cバスが一番の選択になる。

           

          Arduino のシールドも用意されている。

          http://iot-store.sakura.ad.jp/items/4350904

           

           

          Arduino のシールドではSAKURAのスケッチもサンプルとして提供されている。

          スケッチをダウンロードして動作させてみた。

           

          最初はサーバーと通信をして、プログラムの更新などするらしく、結構消費電流を食らうようだ。

          で、ArduinoのUSB端子だけを電源にすると、PCに拒絶されてしまった。

           

          おそらく、大電流が流れて、USBの保護回路的なものが働くのだろう。

          仕方がないので、Arduino に ACアダプタをつけて動かした。

           

          しばらく動作させた後に、ACアダプタをはずしてみたが、今度はPCに拒絶されることはなく動作する。

          ただし 、消費電流は安定するとなく、数秒単位で切り替わる。これはUSBの電流計のせいかも知れないけれど・・

          それから数十分すると 0.12A前後で安定するようになる。

           

          次回電源を入れたときも最初のうちは 350mAと120mAのあいだをしばらく行ったりきたりする。

           

          Arduinoの消費電流が だいたい 40mA程度なので、安定したら サクラ自体の消費電流は80mAぐらいになりそうだ。

          今後、正式リリース版になれば、 スリープモードもサポートされる模様だが、通信開始時に電流が流れ、マイコン側からは制御する術もなさそうなので、それなりに大容量の電源の確保が必要となる。

           

           

           

           

           

           

           

           

          | ビーコン菅原 | Arduino | 18:06 | comments(0) | trackbacks(0) |
          ミスミはばらばらに注文してもまとめて送ってくれるようだ
          0

            JUGEMテーマ:組み込み開発

             

            最近ミスミの通販を使うことが多いのだけど、送料をとらないみたいだ。

             

            そして、出荷日が同じものは、自動的にまとめる機能があるみたいで、いろいろ安心だったりする。

            他の通販だと、発注の決済が終わった後に追発注しても、別々の荷物になってしまい、送料もそれぞれかかる。

             

            これは、発注がかかった時点で、決済するのか、それとも掛けで決済するかの違いに起因してくるものだろう。

             

             

             

             

             

             

            | ビーコン菅原 | 部品調達 | 22:29 | comments(0) | trackbacks(0) |
                  1
            2345678
            9101112131415
            16171819202122
            23242526272829
            30      
            << April 2017 >>
            + RECOMMEND
            + RECOMMEND
            + SELECTED ENTRIES
            + RECENT COMMENTS
            + RECENT TRACKBACK
            + CATEGORIES
            + ARCHIVES
            + つぶやき
            + MOBILE
            qrcode
            + LINKS
            + PROFILE