前回なんの工夫もせず再生したら1.1fpsくらいだったから
限界まで悪あがきをします。
今回はボーレート(baudrate)を上げてみる。
ボーレート(baudrate)とは
データを1秒間に何回変復調するか。らしい。
なんか上げたら早くなりそう
気にしておくこと
色々いじってみて、先に気にしておいたほうがよかったことがいくつかあった
あんまり上げると不安定になる
当たり前なんだけど、限界がある。
具体的には0→1、1→0で急峻な信号が潰れちゃったりするみたい。
リード線の長さに起因してL成分が乗っちゃうんだろうね。
ラズパイピコのクロック周波数も変えれる
デフォルトは125MHz
発熱が心配だけど
今回は250MHzにオーバークロックする
参考サイト
マイコンの性能調査 High/Low(OverClock) | たまねぎブログ
microSDの性能にも左右される
データシートの味方がよくわかんなかったけどあるっぽい。
ラズパイピコのクロック周波数を上げる
ラズパイピコに電源を投入したとき(USBを接続したとき)真っ先に走る、
main.pyに記述を追加する
import machine
import os
import sdcard
# クロック周波数を設定
machine.freq(250_000_000)
# SDカードのマウント
sd = sdcard.SDCard(machine.SPI(0), machine.Pin(28))
vfs = os.VfsFat(sd)
os.mount(vfs, '/sd')
ボーレートを上げてSPI通信の速度を上げる
通信速度が速すぎてコケる速度に設定して段々下げていって
ギリ動く速度に設定した
microSDカードリーダーとの通信
sdcard.pyの__init__を直接書き換える
class SDCard:
# def __init__(self, spi, cs, baudrate=1320000):
def __init__(self, spi, cs, baudrate=23_000_000):
self.spi = spi
self.cs = cs
以下略
1.32MHz→23MHzまで上げれられた
LCDモジュールとの通信
こっちも同じようにbaudrateを上げまくってみたけど、
効果は感じられなかった。
つまりmicroカードリーダーとの通信がおっせえから
今のフレームレートになってる?
結果
3.3fpsくらいになった。まだおせえ。
おわりに
まだ改善できる。