MX-17

 緊急対応用のLL750、久しぶりにパッケージをアップデートを始めた所、その1分後にMX-17が出ていることに気付きました。(;_;)
 気を取り直してインストールしました。
 相変わらず音は出ません。
 こちらを見付けて調べてみたんですが、
https://wiki.archlinux.jp/index.php/Advanced_Linux_Sound_Architecture

speaker-test -D default:SB -c 8
で音が出るまでは良いのですが、そこからの設定が出来ませんでした。
 音必要ないので、またの機会にします。

git stash

 lcdF7Dはまだまだバグだらけでとてもコミットする状態ではないのですが、作業途中の状態もバックアップしたいです。
 gitにそういう機能git stashがあるんですね。
 日々stashを使うとなるとコメント必要ですね。それには、
git stash save "Day/Month/Year comment..."
git stash ではローカルリポジトリから作業内容がなくなるので、残した内容は毎回復元しないといけません。今回モジュールを新設しているので、復元を忘れて次に移ることは出来ないから良いですが、日々コミットする人々には使い辛いかも?
 日々git statusを確認すれば問題ないでしょうか?
stashの状態一覧確認は、
git stash list
stashの復元は、
git stash apply
時々は要らないstashを削除
git stash drop

以上、
今回こちらで勉強させて頂きました。
https://www.yoheim.net/blog.php?q=20160710

lcdF7D(その3.2)

 ブログのタイトル一覧が小さいのでタイトル変更しました。lcdF7Dとは組込みに挑戦しているMicroPythonのモジュール名です。デバッグするのに短いほうが楽なので...
 昨夜やっと表示らしいものが確認できたので、問題点をひとまずまとめておきます。

  1. 画面の(367,127)までしか表示できない。
  2. (368,127)に書込むとバスエラーが起こる。
  3. レイヤーは1つのみ、2つ設定すると表示が出ない。


苦労話:バスエラー?の原因はまだ分かりませんが、CubeMXを持ちだして、何パターンもクロックの初期設定の初期化コードを出してみました。
Clock Configurationタブとかなりニラメッコもしました。関係無かったですけど...
 CubeMXのProject->Generate reportでCPU設定の内容のレポートが出るんですね。このPDFの中にClock Configurationタブの図も含まれています。

ねむいさんのexampleをクロックダウン

ねむいさんのexampleですがF7discoのばらつきで?LCD表示がノイズだらけになります。ねむいさん所蔵品は全く問題ないとのことです。
http://cid-36f4d1230f8a673c.onedrive.live.com/browse.aspx/.Public/src/Cortex/ST/STM32F746NGH6_Discovery/FatFs-LCD/

 あまり深く考えていないのですが、

// HSE is 25MHz
// VCOClock = HSE * PLLN / PLLM = 25 MHz * 432 / 28 = 385.7 MHz
// SYSCLK = VCOClock / PLLP = 385.7 MHz / 2 = 192.8 MHz
// USB/SDMMC/RNG Clock = VCOClock / PLLQ = 385.7 MHz / 8 = 48.2 MHz
#define PLL_M		28
#define PLL_N		432
#define PLL_P		RCC_PLLP_DIV2
#define PLL_Q		8

 こうすると、表示キレイになりました。ヽ(´エ`)ノ

追記:
F7discoのMicroPythonを192MHzにクロックダウンした時のPLL?の数値を確認して、以下でも動作確認しました。こちらのがスッキリしますね。

// HSE is 25MHz
// VCOClock = HSE * PLLN / PLLM = 25 MHz * 384 / 25 = 384 MHz
// SYSCLK = VCOClock / PLLP = 384 MHz / 2 = 192 MHz
// USB/SDMMC/RNG Clock = VCOClock / PLLQ = 384 MHz / 8 = 48 MHz
#define PLL_M		25
#define PLL_N		384
#define PLL_P		RCC_PLLP_DIV2
#define PLL_Q		8

追追記:上記で数時間放置すると、徐々にノイズ増えてきました。ハズレ引いたかな?

fxloadがlibusbに対応している

 最近工作に沢山USB-UARTアダプタを使っています。
 不足しているというか、つなぎ直すのが面倒です。
 ということで元祖EzUSBのan2131/an2135を持ち出しました。mini EZ-USBです。EzARM-7で使ってたやつですね。
 といってもfirmwareは毎回手動でloadですね。これが面倒だけど、これが柔軟性にもつながっているので、我慢します。
 serial通信のfirmwareはこちらにありました。
(といいますか、リンク切れを回復頂きました。ありがとうございます。m(_ _)m)
https://kiidax.wordpress.com/2011/12/11/ezusb/

 しかし、fxloadの-Dの後に記述するデバイスパスが分かりません。
どうだっけ?と調べるうちにlibusbに対応したfxloadを発見しました。
こちらです。
https://github.com/wkoszek/fxload
 早速ビルドしまして、./fxload -B -D vid=0x03fd,pid=0x000d ...で使うんだよ。って書いてあるんですが、動きません。またまた悩みまして、
fxload -Blibusb -D vid=0xaaaa,pid=0xbbbb -I hogehoge.hexであることが分かりました。
 操作手順をまとめます。
 mini EzUSBをつなぐと認識されて

$ dmesg | tail
[  618.133823] usb 3-5.4.2: new full-speed USB device number 7 using xhci_hcd
[  618.234619] usb 3-5.4.2: New USB device found, idVendor=0547, idProduct=2131
[  618.234624] usb 3-5.4.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
$ lsusb
Bus 003 Device 007: ID 0547:2131 Anchor Chips, Inc. AN2131 EZUSB Microcontroller

 これを確認して、

$ fxload -Blibusb -D vid=0x0547,pid=0x2131 -I serial.hex
problem with usb_control_msg(), returned -32, errno=32
ctrl_msg returned an error=-32, errno=32
can't modify CPUCS: Broken pipe

 エラーを気にせずに、

sudo modprobe usbserial vendor=0x547 product=0x2131

 そして、結果を確認!

[ 1119.632802] usbcore: registered new interface driver usbserial
[ 1119.632810] usbcore: registered new interface driver usbserial_generic
[ 1119.632816] usbserial: USB Serial support registered for generic
[ 1119.632828] usbserial_generic 3-5.4.2:1.0: The "generic" usb-serial driver is only for testing and one-off prototypes.
[ 1119.632828] usbserial_generic 3-5.4.2:1.0: Tell linux-usb@vger.kernel.org to add your device to a proper driver.
[ 1119.632829] usbserial_generic 3-5.4.2:1.0: generic converter detected
[ 1119.632891] usb 3-5.4.2: generic converter now attached to ttyUSB0

 メデタシ、目出度し!
(最初の日、上手く行かなかったけど大丈夫みたいだ〜)ヽ(^。^)ノ