IDEの認識するArduinoのコア(ソフトウエア)の名称です。加えて、PB6/PB7がデジタル20/21ピンとして使えます。表紙の写真はEMSLのDiavolinoという互換機基板のクリスタルの端子にピンコネクタを付けて実験をしているところです。LEDの点滅が確認できました。はじめにArduinoはクロックとして水晶発信器またはセラロックを使うのが一般的です。コストを下げるため、AVR内蔵のRC発信器を利用することも可能です。学研の大人の科学付録の「Japanino」は外部発信器を持っているにも関わらず、初期設定では内部発振になっていますが、それでも正常に動作します。RC発振の場合には、動作クロックが8Mhzになります。発振周波数の精度が悪くなったり、温度特性が悪化したりいろいろと制限があります。7segduinoも基本回路としてRC発振を採用しています。7segduinoの小型版を作成途中で、RCduinoというアイデアを思いつきました。内蔵のRC発振器を使う場合、水晶発振器をつないでいた端子(PB6/PB7)も活用することが可能です。現在のArduinoでは、ユーザプログラムからPB6/PB7を使うようにすることもできますが、ライブラリなどはそのまま利用出来ません。そこで、Arduinoのコアを拡張してみました。拡張するRCduinoという名称で新しいArduinoのコアを定義します。いっても、2ピンを新しく定義するだけなので非常に簡単です。この拡張を行うことで、デジタルピンが2本追加になります。拡張方法は次の通りです。hardware/arduino/cores/arduinoをコピーして別のフォルダを作成します。ソースコードにPB6/PB7の定義を追加します。pins_arduino.cの最後の部分に以下を追加します。ボードの定義を追加するboards.txtに以下を追加します。利用するArduinoのMega328にはRC発振用のブートローダを書き込んでおいて下さい。RC発振用ブートローダは例えばこんな物です。ヒューズビットの設定も必要です。IDEを立ち上げなおすと、マイコンボードでRCduinoが選択できます。スケッチの中から、PB6/PB7をPORT20/PORT21として利用可能です。ポートを少しでも多く利用したい場合、配置の都合でどうしてもPB6/PB7を利用したい場合には便利です。一般に販売されているArduinoではPB6/PB7にクリスタルが接続されていて利用出来ません。クリスタルを取り除く必要が有ります。7segduinoの小型版はなるべく7セグメントユニットのピンに近い位置のAVRのピンを割り当てたかったため、PB6,PB7も使えるRCduinoを採用しています。リンクこちらのホームページで試して頂きました。1.0でも同様の改造で動作する様です。(0)コメントはまだありません。コメントは受け付けていません。