MCCのClassicを使いたかったがダメだった

目的

PIC 16F13145でSDカードの読み書きをしたかったのでMCCを使ってSDカードに対応させたかった。

実装方法

他の方の事例を調べると公式のライブラリにFATFSとSD/MMCがあるのでそれを組み込んでGenerateすれば、簡単にSDカードの読み書きできそうに見えた。(思っていた)

事前認識

32ビットマイコンはMCCのHarmonyが起動し、16ビットや8ビットマイコンはMCCのMelodyかClassicを選べるものだと思っていた。公式サイトでも普通に出来そうな雰囲気で書いてあるし、他の方はClassicを使って実装してたし…

MCCの挙動を確認してみる(MCC Core バージョン5.9.1の場合)

PIC 16F13145でプロジェクトを作成するとMCC Melodyが立ち上がるがどこを探してもMCC Classicに切り替える選択肢が無かった。MCCの古いバージョンを使ってClassicを使われておられる方もいらっしゃったのだが、何となく最新版を使いたいがために躊躇っていた。

FATFSだと容量の大きなSDカードだと対応できないとかでサポートしない方向なのかと思ってこのPICで試してみることを諦めた。どうやら32ビットマイコンならSDカードを使えるようにできるらしいことは調べて分かった。

そして別なPICを使って全く違うことを試してみようと思い、試しに買ってみたPIC 10F322用にプロジェクトを作成すると、普通にMCC Classicが立ち上がった。実にあっけなかった。

ここで16/8ビットの中でも古いマイコンはClassic、新しいマイコン16/8ビットはMelodyで32ビットマイコンはHarmonyが自動で選択されるのではと思った。

10F322・16F18313・16F13145・32MX210F016BでMCCの挙動を比較してみた。

16F13145は何事もなくMCC Melodyが起動した。Finishをクリックした後にMCCが起動しそのままMCCの設定画面に遷移した。

図1 PIC16F13145の新規プロジェクト作成の最終画面
図2 16F13145のMCC設定画面

10F322は何事もなくClassicが起動した。

図3 10F322の新規プロジェクト作成の最終画面
図4 10F322のMCC設定画面

16F18313は図5でFinishをクリックした後に図6の様に最初にMelodyかClassicのどちらにするか聞いてきた。

図5 16F18313のプロジェクト作成の最終画面
図6 16F18313のMCC初回起動時の画面
図7 図6でMelodyを選択後の画面

16F18313ではMCCのMelodyかClassicかを図6の画面で選択できるようになっているようだ。

32MX210F016Bは図8のFinishをクリックすると図9の様にHarmonyが起動した。

図8 32MX210F016Bの新規プロジェクト作成の最終画面
図9 32MX210F016BのMCC Harmonyの設定画面

まとめ

32ビットマイコンはMCC Harmony、16/8ビットマイコンはMCC Melody/Classicと漠然と認識していたが、PICの世代によって起動するMCCが異なることが分かった。また勝手な認識だが新しい世代の16/8ビットマイコンはMelody一択なのかなと思った。参考までにそれぞれのPICがいつごろから存在しているか調べてみた。

読んでいただきありがとうございました。誰かの参考になれば幸いです。