2020年5月5日火曜日

Interactive Brokers 開設します

2019 年に検討をしよとしていた Interactive Brokers (以下 IB) の口座開設だが, 本格的に考え出した. 当時投資は firstrade を中心に両替を IB で行ない, UNION bank 経由で firstrade への資金移動を考えていた. というのも firstrade は売買手数料が無料になっており, それが大きなメリットと考えていた. そのメリットは大きいのだが, JPY からの資金移動に従来通りの YJFX + PRESTIA 経由はそれぞれの手数料ならびに操作が繁雑でる. 昔はイケイケドンドンだったので面倒さはあまり感じなかったがある程度資産移動できていると, もう面倒になってしまった. しかし, それなりに JPY を移動したいと思ってもちょっとやる気が出てこない. また, IB 経由にしても, firstrade と IB とそれなりの資金を入れる事になり, 資金分散してしまう事になる. また, ACH を使用するので手数料はないとは言えUNION bank を系由するのに 2回操作が必要なのは YJFX+ PRESTIA 以上に面倒かもしれない. あと, IB に資産をそれなりに置いておきたいのでその分は firstrade から持って来ようとしたが, それはそれで移管手数料が多額になる.

そうであれば, firstrade の資産をすべて IB に移動して IB 一本がいいのではないかと考えた. IB 一択にする事のメリットは以下の通り.

1. 資金分散しない
2. 資金移動回数が 1 回のみ
3. 証券会社のメンテが一ヶ所

デメリットは
A. 移管手数料が高い (全銘柄は 1銘柄移動より高いが 2銘柄移動よりは安いので, 全株一択しかない)
B. 売買手数料がかかる (一択にしようがしまいが IB での売買は掛る)


ちょっと前まで, 開設にはパスポートが必要だと思っていた, 去年頭に expire してしまっている. もう海外出張もないだろうから更新は旅行に行く時くらいだろう. しかし, IB japan が開設の代理してもらっているので, 運転免許証と何か証明書の 2 通があればいけるみたいだ. 丁度 5月の連休真っ只中なので, 役所が開いていないのですぐには開設できないが, 開設後に移動させる資金の準備や, もう使用しないであろう口座の整理など準備は万端である.

--- 2020/05/22 追記
IBLLC で口座開設審査中まで進めた.
この審査中にする為には, 口座開設の form の入力後,
    1. 身分証明書の提出 (site 上に upload)
    2. SMS がつなが電話番号の登録
    3. 投資資金の送金
が必要になり本日終了した.
送金は SMBC から 800円の手数料で振り込んだ. CITI bank の東京支店とは言え, 海外送金扱いなので, 数日かかるかと思いきや, 即日で行なわれた. IB 的には即日から数日という事だったので, 翌日かと思っていたが早かった.
この状態で, IB に login すると" 信頼できる人物" 登録画面が出てきて口座開設者がなにかあった時の連絡先の登録があった. しかし, form に入力し, 登録ボタンを押しても同じ画面が表示されるだけであった. skip があったので skip する事にした.
そうすると, 審査中画面が出てきてそれ以上なにもできない状態になった. 送金されたものから処理を行われるという事なので, 数日中には違った画面が表われるであろう.
ある程度の額の送金はしたが, 毎月の口座手数料 10 USD が無料になるほど入れていないものあるが, Firstrade からの株式移管もする予定である. 移管は
    a. 株式 (DRIP による端株あり)
    b. 待機資金 USD
があり, 移管手数料の支払いで, 株式のみ移管し, 資金は ACH で転送すれば良いかと思っていたが, 移管手数料が口座から引き落せない場合は移管先の口座から引かれるとの事. それであれば, すべて一度に行なった方が楽である. ただ, 5銘柄あたりあるがそれなりの評価益のある 1 つを残して評価損もしくは, ちょっとだけ益状態なので, それらを売り, その分 IB で買えば, 1銘柄のみの移管で済み移管手数料も安くなるはずである. まぁ面倒であるが...
あと, 端株状態の移管はどうなるのであろうか. 端株状態の数量のまま移管されるのか, 足切りで, 端数は売られるのか. まぁ IB 次第ですし, 聞けばいいんだが...
これを書いていて, やはり
    A. 移管手数料が係る
    B. 今後 IB で DRIP では手数料が必要
なので, いわゆる資金効率が低くなるが, 入金がやりやすくなるのは変えられない

--- 2020/05/25 追記
送金内容が反映され口座が完全に開設された.
ただまだ JPY だけなので, USD に変更する必要がある. USD への両替は, 株式発注のシンボルを入れる所に "USD.JPY" と入れるだけっぽい. 手数料 2USD 引かれるので少量の両替は割高になる. 今回お試しで 1,000USD を両替して費用が 107,915.20JPY であった. 1USD あたりざっくり  0.10JPY かかった感じになる.

DRIP の設定も必要であるので, 以下で設定
[tools&service] -> [設定] -> [口座設定] -> [配当の選択] で 再投資するにして署名する

1.  USD に両替:  USD.JPY のシンボルで売買
2. DRIP設定:  [tools&service] -> [設定] -> [口座設定] -> [配当の選択]

あとは Fristrade から IB への株式ならびに資金移管がある.
そういえば ACH もしないといけない...

2020年4月6日月曜日

Ubuntu 18.04 においてマルチモニターの調整をしている時に全く画面が出なくなった時の対応

マルチモニターで画面が全く出なくなった時は,

外部から login して
rm ~/.config/monitor.xml
を消す.

ただし,
1. 外部から login できないといけない
2. インストール後の初期状態に戻る

2019年12月28日土曜日

FPGACONF SD CARD 32GB 対応

先の記事で FPGA を config する為の装置を作成していると書いたが,実のところ 4GB のSD card からの読み込みは可能であったが,32GB 品を試してみると途中で止ってしまう.
止る所が bus 幅を 1 bit から 4 bit に変更した直後であったのそのあたりを色々知らべた. SD spec 的には, CMD7 を送った後に ACMD6 (switch bus width) を送るというのが, 直後なのか, 他の CMD を送った後でも良いのか良くわらず, 色々試行錯誤した. しかし全く解決せず,hard 的な観点で見てみた,とりあえず D0 のみ pull up していたのだが, とりあえずなんでもよいから全 bus pull up してみた.

結果はこれが問題で, 回収後問題なく動作する様になった.

2019年11月21日木曜日

FPGA configurer の作成


FPGA を使用する為には外部より FPGA のコンフィギュレーションデータを転送する必要がある. 多くは serial flash rom から転送を行なうが, 動作が安定しデータの書き換えが必要なれば問題ないが, 開発段階では何回も serial flash rom の更新が必要になる. その場合, JTAG やなんらかの書き換え装置が必要になり, 使用者全体に JTAG を配るか, 一度機器を手元に送ってもらい書き換えて再び発送をするかになる.
本機はその煩わしさから開放する為, コンフィギュレーションデータの格納をSD カードを使用し, 書き換えが必要な場合は SD カードを PC に挿し更新された file PC 上でコピーし, その後 SD カードを本機に挿す事で簡単に更新できる様になり更新の手間が削減される


基本仕様

- CPU STM32F730 200MHz@ 3.3V, 180MHz@1.8V
- SD card 内の bitstream data FPGA に転送
- SD 50MHz 4bit FAT16, FAT32
- FPGA I/F SPI 50MHz(max), 8 bit parallel bus 66MHz(max)
- Chip Select , 8 (STM32F730V 5 本に制限)
- PROGX, DONE, GPIO 8


ソフトスタック


上記はソフトウェアスタックで諸般の事情により ST が出している SDK を使用せずに各スタックをスクラッチから書いている. 簡単に動作内容を示すと, FAT でフォーマットされたファイルシステム上にある init.txt を読み, そこに記述している処理を順次実行していく. その一つに fpga の bitstream ファイルを読みその内容を fpga に転送するスクリプトも含まれる.

結果
bitstream を SD に入れてコンフィギュレーションできる利点は先に述べた通りで, 十分に便利である. ここで問題なのはコンフィギュレーション時間である. 現状ボトルネックは, 計算上, SD からの読み出しである. Clock 50MHz, 4bit 幅の為, 上限 25MB/s となり, 約 80MB の bitstream の場合 3.2sec 程度で読み出せるはずであるが, 実際は SDIO の read コマンドを出してからデータの転送準備ができるまでの無転送期間がある為,今回使用したカードでは実際はおおよそ 4.5sec 程度かかる. ただしカードによって変化すると思われるので, おおよその目安にはなるだろう.


2019年10月21日月曜日

PDF の追加編集 (xournal)




基板の rework などで回路図に変更点を PDF に書きいれるのに xournal を使用する.
PDF を直接編集するのではなく, 別途変更 project file が用意されそちらを追加変更していくので, 以前の変更の再変更などが簡単である.

1. textの追加
2. 自由曲線 (鉛筆 tool)
3. 直線 (自由曲線を直線に自動変換)
4. 円 (自由曲線を円に自動変換)

できてほしい事 (やりたいけどできない事)
a. 矢印直線
b. 矩形描画


とりあえずは回路図に comment を入れられるだけでも有用!

ubuntu では sudo apt install xournal で使用できる


--- 2020/05/22 追記
いまは xournalpp がある.
    sudo apt install xournalpp
で install
なにが良いって, wacom の tablet で手書き文字が使えるのがいい.
いままで, 回路図の check や検討会的なものをするのに紙に書いていたが, pc に直接書き込める. また, 複数人数で remote work しながら画像 share しながら書き込んたものも共有もできる.

Openocd の STM32F730 対応

STM32F730 で openocd を中継し gdb から target remote :3333 で接続すると, 即座に disconnect される. Openocd の comment 的に "gdb_memory_map disable" したらどうと出てくるので, 本当にテキトーな場所 ("jtag scan chain" の if block のした) に "gdb_memory_map disable" を入れてみた.
問題なく接続できる様になるが, 今度は break point の設定をしても cpu を stop できないみたいである.
今度は "gdb_breakpoint_override hard" を入れた. それでも stop できなかった.

まぁ, とりあえず RCC の設定ができる様になったからいいか...
本当に必要になった時に調べるとするか


### 環境
Ubuntu18.04.3
openocd 0.10.0 (apt instll そのまま)
gdb-multiarch 8.1.0.20180409-git (apt install そのまま)

### 変更点
1. copy
cp /usr/share/openocd/scripts/target/stm32f7x.cfg /usr/share/openocd/scripts/target/stm32f730.cfg
2. stm32f730.cfg に以下の下 2行を追加

#jtag scan chain
if { [info exists CPUTAPID] } {
   set _CPUTAPID $CPUTAPID
} else {
   if { [using_jtag] } {
      # See STM Document RM0385
      # Section 40.6.3 - corresponds to Cortex-M7 with FPU r0p0
      set _CPUTAPID 0x5ba00477
   } {
      set _CPUTAPID 0x5ba02477
   }
}
gdb_memory_map disable
gdb_breakpoint_override hard

3. openocd の実行
 
openocd -f interface/stlink-v2-1.cfg -f target/stm32f730.cfg

2019年9月7日土曜日

USB3.0 SuperSpeed の suspend を行なわない様にする

USB3.0 SuperSpeed (以下 SS) を使用していると, 表面上いままでの USB2.0 HS, FS となにも変わらず使用できますが, 消費電力削減の観点から SS が使える active 状態の U0 と SS もしくは device が suspend 状態の U1, U2, U3 があり, 通常 OS として SS の転送 rate が低い場合は  suspend 状態に遷移する様にしているが, video など頻繁な転送を行なう場合は, suspend に入ってしまうと, active 状態の U0 に入るのに時間がかかり転送が drop してしまう.
そこで,
1. host 側の OS で suspend に移行しない様にする
2. target 側で suspend を reject する
事で, active 状態の U0 のままにする事ができる.

USB 3.2 Spec page 190 より

linux では

echo -1 > /sys/module/usbcore/parameters/autosuspend

とする事で上記 1を実現できる.