半年前の記憶がもう怪しい・・・。
MSP23S09の使い方を思い出す。
https://continue-to-challenge.blogspot.com/2018/06/mcp23s09fon2405eledeopenwrt.html
のままだけど。
SPIを使うための準備
ハードの準備
前回は、ユニバーサル基板で実験したけど、今回は切削で基板を作ってみた。FlashROMと、CS切り替え用のロジックとLEDx4とUARTが乗っている。
GPIOをCS1に割り当てるのだけど、もともとのCS0と確実に分けるために、not CS0を条件にしたロジックにしている。ものすごく割り切る場合には、CS1 = not CS0で良いんじゃないかと思う。
Deep MMC Old
ソフトの準備
spidevドライバを組み込むようにカーネルを再構築する。http://continue-to-challenge.blogspot.com/2018/02/fon2405eledeopenwrtspi.html
簡易的な動作確認
/dev/spidev0.1ができているのでecho -en "\x40\x00\x00" > /dev/spidev0.1
で、MSP23S09を出力設定にする。OPCODEが0x40、コマンドが0x00、入出力設定が0x00という具合
例えば、3を表示させる場合は
echo -en "\x40\x0A\xB0" > /dev/spidev0.1
ロジック・アナライザで出力を見てみるとhttps://www.saleae.com/ja/downloads/
※この時は試行錯誤していて0x41-0x0A-0x01になってるOrz
自作ドライバでの動作確認
クロスコンパイル環境とドライバ作成を思い出すぞ!https://continue-to-challenge.blogspot.com/2018/01/fon2405eledeopenwrteclipse.html
クロスコンパイル環境
こんな感じPrefix「mipsel-openwrt-linux-musl-」
path「staging_dir/target-mipsel_24kc_musl/bin」
あとは前にやったのと変わりなし。
makeしてできたmcp23s09_7seg.koをscpでボードに転送する
動作確認
indmod mcp23s09_7seg.ko
echo -n 1 > /dev/mcp7dDriver0
で1が7セグに表示される。段々と思い出してきた。
で、何やりたいかは忘れたOrz.
0 件のコメント:
コメントを投稿