基板設計aitendoでほとんどLME49600専用みたいなピッチ変換基板が出たようだ。今回使っているのよりコンパクトだし放熱用のパターンもあるしデカップリング・コンデンサも載せられそう。ソケット上の部品あり470uFの電源コンデンサとターミナル・ブロックの位置などが多少ずれている。入出力のコネクタには以前買いだめて全然使っていなかった圧着コネクタを使ってみる予定。焦らず騒がずぼちぼち作っていきます。シーケンス再生中にLCDを表示する(SPIの調査)SPIクロックの指定シーケンサーのSPI信号を測定してみたところ、LCD表示に使っているSPI2のSCLが500kHz程度だったので、st7567用のライブラリにSPIのクロックを設定するメンバ関数を追加した。(ライブラリのデフォルトではSPIクロックは1MHzの指定)st7567LCD:https://developer.mbed.org/users/ryood/code/st7567LCD/#0e21d2f2155aSPI1はシーケンス送信、SPI2はLCD表示に使用していてともにSPI::frequency()でクロックを16MHzを設定するようにした。SPI1ch2:SPI1のSCKオシロのカーソルで測定するとクロックは約10.5Mhz。SPI2ch1:SPI2のSCKSPI1とは横軸の縮尺が違い、オシロのカーソルで測定するとクロックは約5.25Mhz。プログラムで同じ16MHzを指定してもSPI1とSPI2で実際のクロック数が異なっている。SPI信号のタイミングSPIのクロックを上げて、簡単な文字列を表示するようにすると、シーケンス再生中にLCDに描画することができた。ch2:SPI1(Sequence)拡大さらに拡大ch2:SPI1(Sequence)はRtosTimerを使って1msごとにSPIコマンドを発行している。ch1:SPI2(LCD)はmain関数のメイン・ループ内でLCDへのSPIコマンドを発行している。"rtos.h"をインクルードしているのでmain関数は最初のスレッドで動作し、優先順位の高いRtosTimerの割込み時間外でSPI信号を出力しているようだ。シーケンス打ち込み用のグリッド画面のSPI信号ch1:SPI2(LCD)拡大SPIコマンドの発行時間は約3.3ms。これを1ms以下にすればシーケンス再生中にシーケンス打ち込みのLCD表示ができるかな??st7565ライブラリの中身を見ると1バイトずつSPI信号を送っているの様なので、RtosTimerの割込みは効きそうなものだけど。簡単な文字列表示も一旦画面をclearしているので(?)、同じ3.3msかかっているようだが。シーケンス打ち込み用のハードウェアを作りながらもう少し調べる予定。メモ:SPIのCSのタイミング調整にwait_us()を使っているのでもう一度タイミングを見計らってちゃんとする。ついでに消費電流をテスタで測ってみた。Nucleoは今回はUSBで給電しているので除外。プラス側が約120mA、マイナス側は約7mAとかなり差がある。電池電源にするとプラス側の電池の減りが速そうだ。ベースマシン2016年8月29日月曜日リズムマシンをアルミの制御盤に載せる構想。思い付きで作ったベースマシンのPOTのコントロール・パネルが意外と使いやすいので、以前作ったリズムマシンも同じように傾斜したアルミ・パネルに載せることを考えてみた。厚紙で作って穴の位置がおかしかったし、重さでたわんでいるが、傾斜が付いているとなかなか使いやすそうだ。100mm×300mmのアルミ板を加工する予定。タカチのTSシリーズという斜めのケースなら曲げ加工しなくても使えそうだが、いかんせん値段が高いし、ちょうどいいサイズがない。LME49600の1.7mmピッチを2.54mmピッチに変換するためにaitendoの1.6mmピッチ変換基板を使う予定。メモ:デカップリング用のコンデンサも積セラではなくフィルムコンにしてみた。タンタルを使うので電源系にポリスイッチを入れてみた。ブレッドボードでの実験途中に何回かタンタルを逆接続してしまったが、めちゃくちゃ発熱した。ほんとにタンタルは危うい(^q^;;;サイズを考えても、タンタルより特性のいい積セラの方が4.7uFぐらいのデカップリング・コンデンサとしては向いているいんじゃないだろうか。アナログ回路は1点アースがいいらしいのだが、正直めんどくさくてやってられない。WIMAのコンデンサを使って並べてみたが試作なのでできるだけaitendoの安いコンデンサで組む予定。シーケンス打ち込みシーケンス打ち込みができるようにファームウェアをプログラミングした。Reasonというソフト・シンセのMatrixというシーケンサーを参考にした。Reasonは実在のハードウェアを模しているので多分元ネタになっているシーケンサーがあるんだと思う。ハード→ソフト→ハードというリスペクトの輪廻である。BaseMachine_Sequencer:https://developer.mbed.org/users/ryood/code/BaseMachine_Sequencer/mbed、mbed-rtosライブラリのアップデートのおかげでかなり混乱したが、以前のリビジョンに戻して、想定していた機能の実装はなんとかなった。117メモ:再生中にLCDを表示させたい。再生中もパラメータの更新は可能なので、シーケンスを走らせながら打ち込みしたくなる。再生中にLCDを表示させるとrtxのエラーが出る。RtosTimerがらみだと思う。