あなたの天然記念物
ホーム更新雑談Perl鉄ゲタランドナーコースガイド自転車Linuxリンク経歴連絡先

GPIOの落とし穴 (2013.05.05)

6個目のLEDが点灯しない

ブレッドボードに6個のフルカラーLEDを差して点灯するよう組んでみると6個目(右端)が点灯しません。 写真は他のピンから引き回したもので、当初はLPCXpressoのヘッダピンから真っ直ぐ引いてました。 全体像

LPC1769のピンとGPIOの回路

LPCXpressoのピンJ6-25、26、27は回路図を見るとそれぞれGPIOのP0[27]、P0[28]、P2[13]です。 この図はEmbedded Artistsが公開しているPDFのページ7の一部です。
回路図のPDF:LPCXpressoLPC1769revB.pdf
LPCXpressoの回路 データシートにあるGPIOの回路図(出力部分のみ)は次の通り。 NXP、LPC17xxシリーズ、Product data sheet、ページ70、14.4 Standard I/O pin configuration、図35の中から。 なお下へ伸びた線は入力用の回路へ接続されています。 出力がHの場合は赤のルートになるため、特に気になりません。
LPC17xxのデータシート:LPC1769_68_67_66_65_64_63.pdf
内部回路

2ピンだけ常にオープンドレイン

テストはG(緑)で行っていましたからJ6-25つまり、P0[27]から電圧が出ていない(又は順方向電圧より相当低い)という事になります。 そこでP0[27]の仕様について詳しく見ました。 なんてこったいorz …「オープンドレイン」の記述がおわかりいただけたであろうか?
ユーザマニュアル:UM10360.pdf ポート0ピン27の説明 オープンドレインの場合は下図の通り端子がGND側のFETがON/OFFするだけなので電圧が出て来ない訳です。 オープンドレイン P0[28]も同様の記述がありました。他のGPIOを全部見たところ、「常にオープンドレイン」はこの2ピンだけです。

オープンドレインの設定ビット

元々GPIOにはオープンドレインにできるレジスタがあります。 でもユーザマニュアル、ページ116、8.5.16 Open Drain Pin Mode select register 0、表94によるとP0[27]とP0[28]の設定ビットが予約されてます。 オープンドレイン

今回の鉄ゲタは…

LPC1769そのもの。やっぱりLPCXpressoは鉄ゲタだ(涙目)。