chakokuのブログ(rev4)

テック・コミック・DTM・・・ごくまれにチャリ

micro:bit(nRF51822)でUARTを使う

micro:bit(nRF51822)でランタイムを介さずにレジスタを直接操作してUART通信をさせたい*1。が、、資料があまりない。nRF51のハードウエア仕様書にも周辺IOの制御方法については最低限の事しか書かれていないように思えるのだが。。基本的にはNordicが提供するSDKを使えよということなのか。。

http://yegang.hatenablog.com/entry/2014/09/14/151948

http://developer.nordicsemi.com/nRF51_SDK/nRF51_SDK_v7.x.x/doc/7.2.0/s110/html/a00766.html
SoftDeviceのAPI仕様書

softdeviceとして提供される、simple_uart_config等があり、このソースを見てどう動かすかを理解することに。。

https://github.com/finnurtorfa/nrf51/blob/master/lib/nrf51sdk/Nordic/nrf51822/Source/simple_uart/simple_uart.c
nrf51/lib/nrf51sdk/Nordic/nrf51822/Source/simple_uart/simple_uart.c

softdeviceは本来バイナリとして提供されるようだが、上記GitHubにはソースが公開されている。こちらとしてはまぁ使えるものは何でも使うというポリシーだ。

*1:マイコンレジスタを直接叩く実装をベアメタルというらしいけど、昔からベアメタルによるプログラミングであり、今時のプログラムが勝手にランタイムを何層にも乗せてレイヤーを上がっただけなのでは??と疑問が