駆動方法

IOから出力をする場合に、その出力の方法が選択できます(何が選択できるかはデバイスによります)。出力のパワーや電圧を切り替えることができます。

obnizではデフォルトでは「そのデバイスで使える最もパワフルなプッシュプル」が選択されています。変更にはio.drive()関数を利用します。
output()で出力を初めて行うよりも前に設定を変更します。output()で出力中に変更することも可能です。

obniz.io0.pull("5v");
obniz.io0.drive("open-drain");
obniz.io0.output(true); // output open-drain with 5v pull-up

また、io.output()に限らず、UARTやSPIなどの出力時にも利用できます。

駆動方法一覧

選択できるタイプはデバイスによります。

以下はobniz Boardシリーズの場合の対応表となります。他のデバイスはそれぞれのデバイス詳細をご覧ください。

タイプ電圧最大電流最大周波数詳細
push-pull5v5v1A<=250khz(推奨)デフォルト設定。過電流/ドライバ高温保護付き
push-pull3v3v1mA(推奨)<=80Mhzio.output()使用時の過電流自動停止と警告
open-drain<=5v1mA(推奨)<=80Mhz 

プッシュプル

最もよく使われる出力方法です。trueである電圧が出力され、falseでGNDと同じ0vが出力されます。

オープンドレイン

falseはプッシュプルと同じく0vとなりますが、trueの場合はハイインピーダンスとなる出力方法です。bi-directionalな通信または違う電圧レベルでの通信を行う場合に利用します。多くの場合プルアップと一緒に利用します。