YAS's VB.NET Tips
 
ラズベリーパイ活用
ラズベリーパイ活用 >> 記事詳細

2021/10/17

Raspberry Pi PICOのGPIOを複数同時に変更する

| by:YAS
 Arduino用のTFT液晶が安かったので、Raspberry Pi PICOにつないでみようと思ったのですが、入力が8bitパラレル入力でした。Arduinoのコード例を参考にMicroPythonで制御しようとしているのですが、パラレル入力に対してGPIOを1本ずつ8本変更すると時間差が生じて、不具合が出ること間違いなしだと思ったので、GPIO8本を同時に変更する方法を調べました。下のページを参考にして実現することができました。
参考:Writing Multiple GPIO Pins AT ONCE
   https://forums.raspberrypi.com/viewtopic.php?t=311660

 下のコードは,MicroPython1.17をインストールしたRaspberry Pi PICOで作成・動作確認をしています。GPIO 0~7に抵抗付きLEDを接続して実行してください。

 さらに調べたところ、「RP2040 Datasheet」の42ページの「2.3.1.7.List of Registers」に公式の詳しい情報がちゃんとありました。32bitのうち1~30bitがGPIOの0~29に対応しているようです。
 直接値を設定するOUT、bitが1のGPIOがHighになるOUT_SET、bitが1のGPIOがLowになるOUT_CLR、bitが1のGPIOが反転するOUT_XORの4種類のレジスタがありました。
 他にも色々なレジスタがあり、MicroPythonで簡潔&高速に記述したいときに役立ちそうです。(コードが分かりにくくなるかもしれませんけれど。)

18:04