
10年もの間、PIC18Fシリーズのマイコンを使って来たMIDIboxですが、新しいベースとしてCortex-M3アーキテクチャーのSTM32F103Rx(LQFP 64ピン)を選び、それに伴ってMIOS(MIDIbox Operating System)をMIOS32として昨秋リニューアルしました。
NetSynthプロジェクトではSTM32F103と姉妹品種でEthernet MAC装備のSTM32F107VCT6(LQFP 100ピン)を選んでEtherPodに搭載しているので、具体的にどの程度までMIOS32とコンパチブルに出来るのか、ほんの少し調べてみました。(イメージはMIDIbox CORE_STM32 V2ハードウェア・モジュール)
作者のThorsten Kloseによれば、MIOS32はFreeRTOSとハードウェアの間でアブストラクション・レイヤーの役を担うものらしい。
Modular kernel programmed in C language, combined with (but not strictly tied to) FreeRTOS as realtime operating system. While FreeRTOS provides preemptive multitasking, multiple tasks priorities and synchronisation mechanisms, MIOS32 acts as an abstraction layer between hardware and software components. (The MIDIbox Operating System:Software Architecture:Kernel:)
冒頭に掲げたイメージのCORE_STM32モジュールの回路図によれば、前面に並ぶUSBとMIDIのコネクター2ペア×2セットについては、それぞれに関係しているポートのピンはEtherPodで空きになっています。しかも、FreeRTOSの移植が済んでいるので、USBとMIDI周辺に適切なハードウェアを付加する程度で試しにMIOS32を動かしてみるくらいのことは出来そう。しかし、他のポートについてはピン・アサインと設定を変えなければならない部分が多く、またポートの解説でTODOとなっているところも見受けられるため、全てがすんなりとは行きそうにありません。
今回調べてみてOSC 1.0のパケット送受信の機能モジュールを備えていることが判りましたが、イーサネットを利用する場合にはSPI接続でENC28J60をドライブする形。後発のSTM32F107と違ってSTM32F103は仕様によりUSBとCANを同時に動かすことも出来ないので、今となっては果たして正しい選択なのか疑問符が付きます。STM32F107に換装したら良いのに・・・と思うのは私だけでしょうか?

