このページは筆者の開発メモであり、一般公開している情報ではありません。
各種問い合わせ等には対応できませんのでご了承ください。
https://www.raspberrypi.org/downloads/raspbian/
ここから、「RASPBIAN JESSIE WITH PIXEL」のZIPを取得する。
ZIP解凍後SDカードにddする。
WaveShareの製品が何もせずそのまま使える。(標準でドライバモジュールが組み込まれているので有効にするだけ)
※OSOYOは専用カーネルが必要でドライバは非公開。(OS Updateすると動かなくなる)
$ sudo apt-get update $ sudo apt-get upgrade
$ sudo apt-get install freeglut3-dev g++ libasound2-dev libcurl4-openssl-dev libfreetype6-dev libjack-jackd2-dev libx11-dev libxcomposite-dev libxcursor-dev libxinerama-dev libxrandr-dev mesa-common-dev usbmount
$ chmod 755 pifw $ chmod 755 sw_pifw.py $ sudo cp pifw /usr/bin/ $ sudo cp sw_pifw.py /usr/bin/
.xsessionに「/usr/bin/pifw」を記述
.xinitrcを用意して以下の内容を書き込む
xset s off xset -dpms xset s noblank
/etc/lightdm/lightdm.confを以下のように編集する
< xserver-command=X --- > xserver-command=X -s 0 -dpms
編集したらlightdmを再起動する
sudo /etc/init.d/lightdm restart
.config/autostart/screensaver.desktopを作成し、以下の内容を書き込む
[Desktop Entry] Type=Application Exec=/home/pi/.xinitrc
cpu freq utlをインストール
$ sudo apt install cpufrequtils
設定する
$ sudo cpufreq-set -g performance
/boot/config.txtを編集(行追加)
arm_freq=1200
/etc/init.d/cpufrequtilsを修正(オンデマンドではなく固定にする)
ENABLE="true" #GOVERNOR="ondemand" GOVERNOR="performance" MAX_SPEED="0" MIN_SPEED="0"
再起動して確認する
$ sudo reboot
$ cpufreq-info
600MHzが0%、1200MHzが100%になっていれば固定化できている
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
CPU温度の確認
$ vcgencmd measure_temp
WM8731を使用する。
オーディオはI2S、制御はI2Cで行っている。
dtparam=i2c_arm=on dtparam=i2s=on dtoverlay=i2s-mmap dtoverlay=rpi-proto設定した最初の1回目は起動直後にエラーがでて進まなくなる。
Master : 79/79 0.00dB/0.00dB
Master Plauback: MM
Sidetone: 0
Line: L R/Capture
Mic: --
Mic Boost: 0
Mic Boost: 0
Playback Deem: MM
Capture: 75/75 6.00dB/6.00dB(GAIN調整品)
ADC Hich Pass: 00
Input Mux: Line In
Output Mixer HiFi: 00
Output Mixer Line Bypass: MM
Output Mixer MIC Sidetone: MM
Store DC Offset: MM
UARTにMIDIを通すには、UARTクロックを変更する必要がある。
https://openenergymonitor.org/forum-archive/node/12412.html
Bluetoothを無効にする
$ sudo systemctl disable hciuart $ sudo nano /lib/systemd/system/hciuart.service change the first ttyAMA0 in ttyS0
/boot/cmdline.txt から、次の文字列を削除する(デフォルトではUARTはコンソール)
console=serial0,115200
/boot/cmdline.txt に、次の文字列を追加する
dtoverlay=pi3-miniuart-bt init_uart_clock=39062500 init_uart_baud=38400 dtparam=uart0_clkrate=48000000
再起動
$ sudo reboot
フォトカプラは高速品が好ましいが汎用品でも問題ない。
トランジスタも汎用品(2SC1815等)でも問題ない。
回路図の型番は表面実装用のチップ。
SIGNAL | PIN(内) | PIN(外) | SIGNAL |
3.3V | 1 | 2 | 5V |
GPIO-2(I2C SDA) | 3 | 4 | 5V |
GPIO-3(I2C SCL) | 5 | 6 | GND |
GPIO-4(空き) | 7 | 8 | GPIO-14(UART TXD) |
GND | 9 | 10 | GPIO-15(UART RXD) |
GPIO-17(TP IRQ) | 11 | 12 | GPIO-18(I2S BCK) |
GPIO-27(空き) | 13 | 14 | GND |
GPIO-22(空き) | 15 | 16 | GPIO-23(空き) |
3.3V | 17 | 18 | GPIO-24(LCD RS) |
GPIO-10(SPI MOSI) | 19 | 20 | GND |
GPIO-9(SPI MISO) | 21 | 22 | GPIO-25(空き) |
GPIO-11(SPI SCK) | 23 | 24 | GPIO-8(LCD CS) |
GND | 25 | 26 | GPIO-7(TP CS) |
ID-SD | 27 | 28 | ID-SC |
GPIO-5(ENC-B) | 29 | 30 | GND |
GPIO-6(ENC-A) | 31 | 32 | GPIO-12(LEFT) |
GPIO-13(DOWN) | 33 | 34 | GND |
GPIO-19(I2S LRCK) | 35 | 36 | GPIO-16(RIGHT) |
GPIO-26(UP) | 37 | 38 | GPIO-20(I2S DIN) |
GND | 39 | 40 | GPIO-21(I2S DOUT) |
LCDとTPは共用でSPIを使っていて、CSで切り替えている。
TPは割り込み(IRQ)で取り込む。
AUDIOはI2Sで接続。
AD/DAチップの制御はI2Cで行っている(レジスタ設定時のみ)。
UARTはMIDIに使用予定。
その他の空きGPIOはスイッチ類に使用予定。
現在はプッシュスイッチ2個とロータリーエンコーダーのみ。
以下は別PCのCentOS7での作業
umount /run/media/pi/* SDカードのマウント解除 e2sck -f /dev/sdf2 チェックする(必須) resize2fs -p /dev/sdb2 4G 目標パーティションサイズより少し少なくする 指定サイズが小さすぎて縮小が無理だとエラーがでる fdisk /dev/sdf dコマンドで第2パーティションを削除する pコマンドで状態を確認する nコマンドで新しいパーティションを作る(開始シリンダに注意) pコマンドで状態を確認する wコマンドで書き込む
以下は別PCのCentOS7での作業
umount /run/media/pi/* SDカードのマウント解除 e2sck -f /dev/sdf2 チェックする(必須) fdisk /dev/sdf dコマンドで第2パーティションを削除する pコマンドで状態を確認する nコマンドで新しいパーティションを作る(開始シリンダに注意) pコマンドで状態を確認する wコマンドで書き込む resize2fs -p /dev/sdb2 サイズ指定をしなければ、パーティションサイズまで自動で拡張される
SDカードに作成した状態から、最小限のサイズだけイメージ化する。
例えば、8GBのカードに最小構成を作成して上記パーティションの縮小作業をして2GBまで切り詰めたとする。
これをそのままddやWin32DiskImageでイメージ化すると、8GBカードの後半6GBもゴミデータとしてファイルに書き出されてしまう。
# fdisk /dev/sdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/sdb: 7948 MB, 7948206080 bytes, 15523840 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xf8e23f7b Device Boot Start End Blocks Id System /dev/sdb1 8192 92159 41984 c W95 FAT32 (LBA) /dev/sdb2 92160 4140072 2023956+ 83 Linux Command (m for help): q
dd if=/dev/sdb of=raspbian_pifw_ring2_mod_2017-04-22.img bs=512 count=4140073
こうしてやれば、出来上がったイメージを4GBのカードに展開することもできる。