ラズピコでspiバス経由でLCD表示させる

スペアナプロジェクト用ですが、2インチのLCD(240*320 dots)を購入、SDカードのアクセスもできるようになってますが

https://learn.adafruit.com/2-0-inch-320-x-240-color-ips-tft-display/pinouts

動作確認はArduino IDE使って、ライブラリは、

をインストします

接続は以下のソースコードの通りですが、電源はピコの3.3V出力から取ろうとすると過電流(おそらくピコの電源電圧低下して動作不能状態になってる)でUF2ファイルのダウンロードできないので、USB電源であるVBUSから取らないと機能しなかった

電源電圧とバックライト制御信号(PWM)をまとめてVBUSに接続しています、従ってバックライトの輝度はmax状態ということ、GNDは一本なのでピコ – LCD間の接続は全部で8本です

<テスト用コード>

#include <adafruit_gfx.h>
#include <adafruit_st7789.h>
#include <spi.h>

// ピン定義(PicoのGPIO番号)
#define TFT_CS    17  // pin 22
#define TFT_RST   21  // pin 27
#define TFT_DC    20  // pin 26
#define TFT_SCK   18  // pin 24
#define TFT_MOSI  19  // pin 25

SPISettings settings(2000000, MSBFIRST, SPI_MODE3);
Adafruit_ST7789 tft = Adafruit_ST7789(&SPI, TFT_CS, TFT_DC, TFT_RST);

void setup() {
  tft.init(240, 320, SPI_MODE3);
  delay(100);

  tft.fillScreen(ST77XX_WHITE);   // 背景を白に設定
  tft.setRotation(1);             // 画面を90度回転
  tft.setCursor(20, 100);         // 文字の表示位置を設定
  tft.setTextColor(ST77XX_BLUE);
  tft.setTextSize(3);             // 文字サイズを設定
  tft.print("Hello Pico");       // 文字の表示
}

void loop() {
  delay(1000);
}

ST7789は制御回路にフレームメモリを持っているので、ラズピコからのリフレッシュ動作は不要なので使いやすいと思う、まあラズピコでリフレッシュさせたら負荷も大変だろうから、こういう制御チップがあるということだろう

 

admin

“ラズピコでspiバス経由でLCD表示させる” への1件の返信

コメントを残す