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

このブログはビーコンの代表である菅原が、電気電子、電子工作、組み込みソフトウェアなどで、自分が苦労したところや面白い発見などを記事にしていきます。電子工作やマイコンに親しむ人が少しでも増えたらという思いでつづります。
やっぱり、電子工作が好きなんですよ。
<< 最近組み込みエンジニア不足らしいと | main | RL78のコード生成を使って一日で移植した。 >>
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) |









    http://blog.suga41.com/trackback/355
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
    << May 2017 >>
    + RECOMMEND
    + RECOMMEND
    + SELECTED ENTRIES
    + RECENT COMMENTS
    + RECENT TRACKBACK
    + CATEGORIES
    + ARCHIVES
    + つぶやき
    + MOBILE
    qrcode
    + LINKS
    + PROFILE