HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2017/04/29

Orange Pi PC 2で Raspberry Pi用 FBTFT対応の汎用 3.5インチ TFT液晶を自前のプログラムで SPI制御する方法 Orange Pi PC 2で Raspberry Pi用 FBTFT対応の汎用 3.5インチ TFT液晶を自前のプログラムで SPI制御する方法

(オレンジパイPC2 H5で SPI機能を有効にして FBTFT対応の汎用 3.5インチ TFT液晶を自前で制御する方法)

Tags: [Raspberry Pi], [Orange Pi], [電子工作], [海外通販], [通信販売]




● Shenzhen Xunlong Software社の Orange Pi PC 2を買ってみた

 中国深圳のShenzhen Xunlong Software社の製品。
 ラズパイを意識した作りで、2匹目のドジョウを狙っているんでしょうか?
 ラズパイよりも低価格で高性能です。また、オレンジパイは非常に多くの種類を出しています。

 Orange Pi PC 2はその内の一つとなります。

What’s Orange Pi PC 2?

 Allwinner H5 Cortex-A53(4core)を搭載
 ギガビットLAN

 AliExpressの公式ストア(購入はここからできます)
AliExpress - Store: Shenzhen Xunlong Software CO.,Limited


● Orange Pi PC 2で 3.5インチ TFT液晶を自前のプログラムで制御する方法

 Orange Pi PC 2で Raspberry Pi用 FBTFT fbflex対応の汎用 3.5インチ TFT液晶を自前のプログラムで制御する方法

FREEWING-JP/OrangePi_PC2_FBTFT_fbflex_35_lcd - Orange Pi PC 2 Allwinner H5 FBTFT fbflex 3.5 inch TFT LCD module SPI Control program

 早速、作って GitHubに登録しました。

 Orange Pi PC 2 Allwinner H5 FBTFT fbflex 3.5 inch TFT LCD module SPI Control program
 ・Linux spidev version
 ・WiringOp H5(WiringPi) library version


● Orange Pi PC2の SPIを有効にして SPI実験をする(間違い版)

 /dev/spidev0.0は見える様になりますが、制御できません。(実際に出力波形が出ない)(←間違い)

 ※ /dev/spidev0.0は基板上で SPIフラッシュメモリに接続されています。

sudo nano /boot/armbianEnv.txt
 で、下記を追加して再起動します。
overlays=spi0-spidev

sudo reboot

# ls -l /dev/spi*
crw------- 1 root root 153, 0 Apr 15 12:54 /dev/spidev0.0

# ls -l /dev/i2c*
crw------- 1 root root 89, 0 Apr 15 14:58 /dev/i2c-0

 また、overlays=spi0-spidevを追加しないで、GPIOの bitbangで SPIをしようとしても、制御できません。(実際に出力波形が出ない)(←間違い)

# 制御できない(実際に出力波形が出ない)(←間違い)
# PC0
export gpio=64
# PC2
export gpio=66
# PC3
export gpio=67

# 制御できる(実際に出力波形が出る)
export gpio=2
export gpio=71


● Orange Pi PC2の SPIを有効にして SPI実験をする(正解版)

 /dev/spidev1.0で制御できました。
 FBTFT 3.5 LCDの液晶モジュールを制御して表示もできました。
 (動く様になるといじくるのが面白い!)

sudo nano /boot/armbianEnv.txt
 で、下記を追加して再起動します。
overlays=spi1-spidev

sudo reboot

# ls -l /dev/spi*
crw------- 1 root root 153, 0 Apr 15 12:54 /dev/spidev1.0

spi1_cs0        = port:PA13 = GPIO Pin.24
spi1_sclk       = port:PA14 = GPIO Pin.23
spi1_mosi       = port:PA15 = GPIO Pin.19
spi1_miso       = port:PA16 = GPIO Pin.21

#include <sys/ioctl.h>
#include <linux/spi/spidev.h>

  static const uint32_t mode = 0;
  static const uint8_t bits = 8;
  static const uint32_t speed = 28000000;

  int spih = open(LCD_DEVICE, O_RDWR);
  if(spih<0) return -1;

  ret = ioctl(spih, SPI_IOC_WR_MODE32, &mode);
  if (ret<0) return -1;

  ret = ioctl(spih, SPI_IOC_WR_BITS_PER_WORD, &bits);
  if (ret<0) return -1;

  ret = ioctl(spih, SPI_IOC_WR_MAX_SPEED_HZ, &speed);
  if (ret<0) return -1;

  uint8_t data[2];
  data[0] = 0xAA;
  data[1] = 0x55;

  int len = sizeof(data)

  struct spi_ioc_transfer tr = {
      .tx_buf = (unsigned long)data,
      .rx_buf = (unsigned long)NULL,
      .len = len,
      .delay_usecs = 0,
      .speed_hz = speed,
      .bits_per_word = bits
    };
  ioctl(spih, SPI_IOC_MESSAGE(1), &tr);

  close(spih);



● Orange Pi PC2の SPIを有効にして SPI実験をする Linux Kernel 4.13(正解版)

 Linux Kernel 4.13になって上記の設定方法が使えなくなりました。
 毎回毎回どうしてこんなに変化するの???

Armbian - Device Tree overlays

uname -a
# Linux orangepipc2 4.13.14-sunxi64 #246 SMP Mon Nov 20 01:58:09 CET 2017 aarch64 aarch64 aarch64 GNU/Linux

sudo nano /boot/armbianEnv.txt
 で、下記を追加して、
overlays=spi-spidev
param_spidev_spi_bus=1

 再起動します。
sudo reboot


● Orange Pi PC2用の WiringPi WiringOP H5

● 2017年後半からの Linux Kernel 4.13では WiringOPに対応パッチが必要です。
$ gpio readall
piBoardRev: Unable to determine board revision from /proc/cpuinfo
 -> No "Hardware" line
 ->  You may want to check:
 ->  http://www.lemaker.org/

 詳しくは下記にまとめました。


2018/01/04
Orange Pi PC 2 H5で WiringOP(WiringPiの Orange Pi版)を使用して GPIO、SPIを操作する方法
Orange Pi PC 2 H5で WiringOP(WiringPiの Orange Pi版)を使用して GPIO、SPIを操作する方法

  オレンジパイPC2 H5で WiringOPで GPIO、SPIを操作する方法、最新の Kernel 4.13対応版



Tags: [Raspberry Pi], [Orange Pi], [電子工作], [海外通販], [通信販売]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

ラズパイを意識した別物製品 Orange Pi Zeroを買ってみた、Allwinner H2+ Cortex-A7 4core
ラズパイを意識した別物製品 Orange Pi Zeroを買ってみた、Allwinner H2+ Cortex-A7 4core

  オレンジパイはラズパイよりもコスパは良いが情報が無いので利用者側に一定のスキルが必要

Orange Pi PC 2を買ってみた、Allwinner H5 Cortex-A53 4core ARM64
Orange Pi PC 2を買ってみた、Allwinner H5 Cortex-A53 4core ARM64

  ラズパイを意識した別物製品、オレンジパイはラズパイよりもコスパが良い、でも情報が無い

Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入できる通販ショップ一覧まとめ
Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入できる通販ショップ一覧まとめ

  ラズパイゼロW ワイヤレスモデルを海外通販でサクッと簡単に個人輸入で入手。技適通過でも国内販売は常に品切れ

Raspberry Pi 3で安定して使える相性の無い最適な microSDカードの種類のまとめ
Raspberry Pi 3で安定して使える相性の無い最適な microSDカードの種類のまとめ

  ラズパイ3で安定して使える microSDカードを購入する Teamと SanDiskは絶対に買わない

Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ
Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ

  ラズパイの Raspbian OSのコマンドラインで使用する便利コマンド、負荷試験や CPUシリアル番号の確認方法等も

大人気の CPUボード、Raspberry Pi 3 Model Bで作ってみよう
大人気の CPUボード、Raspberry Pi 3 Model Bで作ってみよう

  Raspberry Piの開発環境の構築やタッチパネル付き液晶ディスプレイや各種センサーの使い方まとめ

Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板
Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板

  Espressif ESP8266 ESP-12-E NodeMCU V1 ESP12 CP2102

BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)
BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)

  レーザー彫刻機、カラー液晶の DIYオシロ、Arduinoや Raspberry Pi用の小型カラー液晶




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2017-2018 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/raspberry_pi/orange_pi_pc2_fbtft_lcd_spi_control/