ちなみに、BEMFは永久磁石を使ったモータの逆起電圧のことです。回転数に応じて、電圧が上がってくるので永久磁石モータを高速回転させるEVとかではモータにかけられる電圧を食い潰してしまう困った現象なのです。
鉄道模型では、この現象を逆に利用して、モーターへの電力をわざと一瞬(数百us)止めて、電圧測定をして、速度を割り出すという手法を採用してます。
とりあえず、あのサイズで両面基板では、抵抗3個とダイオードを追加するのが難しいので、外付けにおいてもらうしかありません。デコーダ開発ボードに入っているBackEMF検出回路は、以下の回路です。自分で考えたのではなく、他の人の回路をパクってきただけです。

ピンは、A4とA5はパッドがあります。あと、23ピンからA0などが余っているので、I2Cを併用したい人は、CPUに直接はんだづけしましょう。
■BEMFの制御について
そんなに難しいことはしないのですが、知らない人はサッパリだと思うので、一応解説したいと思います。ちょっと、DCCデコーダのモータ制御のソフトを整理したいと思います。
BEMFを取得したら、まずはフィルタにかけてなだらかにします。検出周期は、一定間隔になるようにきちんと調整します。たとえば、30Hzとか、100Hzとかです。これをしないと、PIの調節器がよくわからない動きになります。
フィルタに掛けた電圧値を速度に換算するために式に入れます。最大、中間、0のときの速度値で線形な式が求まるはずです。
速度に換算した電圧値はDCC信号で来た指令と差分を取ります。差分をとったら、PI制御器に入れます。PI制御器は、比例項と積分項を持つ計算式で、差分がゼロになるように出力値を出す性質があります。つまり、指令値通りに速度が出なければ(差分、つまり偏差が増えれば)出力を勝手に足したり下げたりしてくれます。
この後、できればフィードフォワード項として、指令をそのまんま、PIの出力に足し込むことをします。厳密にはモータの式を入れればいいですが、センサも貧弱ですし、そこまでしなくてもPI制御器ががんばってくれると期待して、そのまんまとしておきます。最終的な出力に、リミッタを掛けてやれば完成です。
一番懸念事項は、EMFの電圧値と速度の換算式をうまく作るところで、これを自動化できれば良いんですけどね。チューニングするか、自動チューニング機能的なことを考えるかしないといけないかもしれません。