PICSYSを利用する上での技術的な注意/制約事項を示します。
ピン割り付け機能
PIC24Fの特徴的で協力な機能であるピン割り付けとそれを利用した周辺モジュールの利用機構はまだご提供できていません。
PWM
PICSYSのPWM出力は、LEDの表示の明暗をPWMのデューティー比制御により変化させる程度の簡易的な利用を想定した構成になっています。このため周波数は、ちらつきを感じない62.5Hz程度と低く、また固定されています。また、デューティー比の指定分解能はMCUのクロックによりますが、16-64になっています。
上記のようにPWM出力機能としては、かなり限定的な構成となっていますが、その一方で、定間隔割り込みを利用したソフトウェア的な実装になっているため、出力ピンを自由に指定できる柔軟性を実現しています。
本格的なPWM機能は、出力コンペア機能を利用して実装する予定です。
RCサーボ
タイマ割り込みを利用したソフトウェア的な実装になっているため、出力ピンを自由に指定できる柔軟性を実現しています。
シリアル/UART
DUO-GL128-PIC24FとPIC24F-MOD-GA002Uでは、標準搭載のUSBチップを対象とした1チャネルだけがピン割り付けの決め打ちで利用できるようになっています。2チャンネルめはサポートされていません。
PIC24F-MOD-GA004では、現時点ではUARTはサポートされていません。
コンフィグ設定
現在の実装ではPIC18Fのすべてのコンフィグ設定を明示的に行ってはいません。このため、PICkit2などでhexファイルを読み込むと、コンフィグ設定に欠落があると警告が出ますが、プログラムの書き込みや実行に支障はありません。コンフィグ設定の詳細は、picsys18.cのはじめの部分をご参照ください。
A/D変換ピンの割当
PIC18Fのアナログピン割当機能の制約で、例えばanalogRead()関数でAN3(AN(3))を指定した場合には、そのインデックスより小さなAN0-AN2ピンも自動的にアナログ入力に切り替わるので注意が必要です。
A/D変換を行う場合には、基本的には小さなインデックスのアナログピンを使用した方が良いでしょう。
A/D変換値
PIC18F2553では0-4095、それ以外のPIC18Fでは0-1023を返します。
入力ピンの内部プルアップ
現在の実装では、PORTBのピンが入力に設定された場合、デフォルトでプルアップが設定されています。
PWM
PICSYSのPWM出力は、LEDの表示の明暗をPWMのデューティー比制御により変化させる程度の簡易的な利用を想定した構成になっています。このため周波数は、ちらつきを感じない62.5Hz程度と低く、また固定されています。また、デューティー比の指定分解能はMCUのクロックによりますが、16-64になっています。
上記のようにPWM出力機能としては、かなり限定的な構成となっていますが、その一方で、定間隔割り込みを利用したソフトウェア的な実装になっているため、出力ピンを自由に指定できる柔軟性を実現しています。
RCサーボ
タイマ割り込みを利用したソフトウェア的な実装になっているため、出力ピンを自由に指定できる柔軟性を実現しています。
USBインターフェースの利用
PIC18F2550/2553を搭載したキット製品では、MicrochipのUSBフレームワークを利用したUSBシリアルインターフェース機能をご提供予定です。今しばらくお時間をいただけます様御願いいたします。
スタック
PIC16Fはスタックが8レベルしかないため、プログラムでの関数呼び出しのネスト(深さ)に大きな制限があります。PICSYSは、機能実装の中核としてタイマ割り込みを利用しており、そこで3レベルのスタックを消費するため、ユーザーのプログラムで利用できるスタック/関数呼び出しの深さは非常に制限されます。
リンク時のPICC Proの警告や.mapファイルに出力される関数呼び出しツリーにご注意ください。
割り込み
優先順位がない
処理速度
コンパイラのライセンスの制約上性能が1/2程度に落ちている
入力ピンの内部プルアップ
現在の実装では、PORTBのピンが入力に設定された場合、デフォルトでプルアップが設定されています。
PWM
PICSYSのPWM出力は、LEDの表示の明暗をPWMのデューティー比制御により変化させる程度の簡易的な利用を想定した構成になっています。このため周波数は、ちらつきを感じない62.5Hz程度と低く、また固定されています。また、デューティー比の指定分解能はMCUのクロックによりますが、16-32になっています。
上記のようにPWM出力機能としては、かなり限定的な構成となっていますが、その一方で、定間隔割り込みを利用したソフトウェア的な実装になっているため、出力ピンを自由に指定できる柔軟性を実現しています。
RCサーボ
タイマ割り込みを利用したソフトウェア的な実装になっているため、出力ピンを自由に指定できる柔軟性を実現しています。