HP G800に、CONTEC「DA12-8」「PIO-16」 をSD-PECPCiRi2で接続する

組込みソフトのデバック用に、任意波形発生器の必要になり、CONTECのDA/DIOボードのPCIボードを用意しました。PCI用だと種類が豊富でUSEDなら格安です。しかし今時のディスクトップではPCIバスがありません。そこで、AREA社のPCIe→PCI変換ボード「SD-PECPCiRi2」を試しました。この製品は、PC内部用とPC外部用の2つの基板に分かれています。

PCは「HP G800 SFF」、Win10。ドライバーをインストールし、DA12-8は通電し繋がりはしますが、デバイスマネージャで変換ボード「PCI to PCIブリッジ」は現れますが、「CONTEC Devices」が現れません。

DA12-8は5V駆動ですが、変換ボードの出荷値が3.3Vだったのでこれが原因かと思い、変換ボード側を5Vに切替えるとBIOSが起動しなくなりました。

「PIO-16」では、BIOSは起動するものの、変換ボード自体も認識しなくなりました。

AREA社に色々と問合せたところ、変換ボードの内部用に、PCIeバスとは別に電源供給が必要なようです。取説には接続必須とも記載されていなかったため、大電流必要時のオプションかと解釈していましたが違うようです。HP G800では、追加電源の配線が無いため接続しないままであった事情もあります。

SATA電源ケーブルの途中に、コネクタだけ追加して、変換ボードに接続しました。

外部ボード用の電源ケーブルも接続します。

これでBIOSも起動し、OSもCONTECを認識しました。

おそらくPCIeには、5Vが無いようなので、PC本体から供給が必要だったのではないかと思います。

RL78で16bit × 16bit = 32bit演算が狂う

CA78K0コンパイラで、16bit × 16bit = 32bit演算が狂う事象が発生しました。コード概略は、

U16 a=125; 
U16 b=430; 
U32 c;
 c = a * b;     // c=10になる

WindowsやAndroidアプリでは考えられない事象ですが、OS無しの16bitマイコンありがちな事象です。しかし、乗算結果の上位16bitが捨てられるありえそうですが、意味不明な演算結果です。試しにキャストを明示してもNGでした。

 c = (U32) ( a * b );     // これもNG

仕方がないので、アセンブラのコード展開をみてみました。

movw    ax,[hl+4]
movw    _@RTARG0,ax
movw    ax,[hl+8]
call    !@@iumul
clrw    bc
movw    [hl],ax
xchw    ax,bc
movw    [hl+2],ax

乗除算は、マイコンライブラリにまとめられているようです。16bit × 16bit = 32bitのmulhu命令が、なぜダイレクトに展開されないのでしょう? マイコンライブラリはあまり使わないようにしますが、元々使われていたら仕方ありません。でも怪しいのは、「clrw bc」のところです。明らかに16bit捨てられています。

キャストを明示した場合では、axレジスタの方がクリアされます。

movw    ax,[hl+4]
movw    _@RTARG0,ax
movw    ax,[hl+8]
call    !@@iumul
movw    _@RTARG0,ax
clrw    ax
movw    _@RTARG2,ax
movw    [hl+2],ax
movw    ax,_@RTARG0
movw    [hl],ax

マイコンライブラリを使用しないようにすると解消する気もしますが、全体的に、ロードモジュールに影響が生じます。正しい結果が得られるC言語の書き方を、TRY&ERRで探すしかいりません。

今回は、以下の書き方で直りました。

U16 a=125; 
U16 b=430; 
U32 c;
 c = a;      // 一旦32bit変数に入れる
 c *= b;     // c=53750になる

アセンブラ展開コードは、、、

movw    ax,[hl+4]
clrw    bc
xchw    ax,bc
movw    [hl+2],ax
movw    ax,[hl+8]
movw    _@RTARG4,ax
movw    _@RTARG6,#00H
movw    ax,[hl] 
movw    _@RTARG0,ax
movw    ax,[hl+2]
movw    _@RTARG2,ax
movw    ax,_@RTARG6
call    !@@lumul
movw    ax,_@RTARG2
movw    [hl+2],ax
movw    ax,_@RTARG0
movw    [hl],ax

clrw命令がなくなり、上下16bitがスタックに格納されていることが確認できました。だいぶコードが増えたのが気がかりです。

CS+でROMサイズ違いのマイコンに切替える

今回、製品ボートの数が少なくて、開発用に同じシーリーズでピン数のマイコンの評価ボートを購入したのですが、ROM/RAM容量が違いました。ルネサスCS+では、既存のプロジェクトから、ピン数同じでもマイコン型番変更ができないようです。

一からプロジェクト生成すると、自動コード生成やビルド設定等々を入力しなおさないといけません。ミスがあると組込みソフトでは致命的です。最初から関わっていない製品ではなおさら。

幸いプロジェクトファイルはxml形式なので、エディタで直接変更してみました。

以下の部分は、複雑なので、開発用マイコンで空プロジェクトを作成してコピーしました。

CS+を再起動して、ビルド、実行し、これで問題なさそうでした。

※くれぐれね良い子はまねしないでください。

BluetoothGattのwriteCharacteristic()がfalseでリターンする

BLEのAndroidアプリを作成中、時々、BluetoothGattクラスのwriteCharacteristic()メソッドがfalseでリターンする事象が発生しました。複数扱っているBLE機器の中で、特定の機器だけ? 機器側の不具合でしょうか?

何がおこっているかBLEアナライザを使えばよいのですが、安いものだとみれません。海外のサイトを見ても情報がなく、BluetoothGattのステータスは、BluetoothGattCallback時でないとわからない。こういう場合は、少しwaitをおくか、retryしてみるに限ります。しかし解消せず。

そこでたまたま気づいたのですが、BluetoothGattServiceのインスタンスの取得から、retryすると解消しました。

当事象が発生する機器は、機器メーカのカスタムコマンドでアクセスする方式で、機器から測定値を一回受信するのに、最低4回writeCharacteristic()のcallが必要でした。他のメーカさんは大体一回で、二回要するのはペアリング時のみでした。このあたりの仕様とAndroid側の相性があるのかもしれません。

昇給後、社会保険の申請が遅れた場合

当社は8月が機首、機首から3カ月が役員報酬の昇給期限です。10月に役員報酬の昇給を行いました。12月に昇給の申請をe-Govで行いましたが、内容不正で却下されことに気づかず、3月に再申請しました。そこで今月、規定より高額な支払い用紙がきました。

恥ずかしながら現在、役員報酬は15万円。社会保険料総額は、4.5万円くらいになるはずです。また請求額は、社会保険金額の一覧表にありません。

昇給の申請が間違ったかと思い、日本年金機構の事務所に聞きに行きました。結果、給前と昇給後の保険料の差額が、1~3月分を一括請求しているとのことでした。

支払い用紙にはこのような注記はなく、ネットではこのような情報が得られず、悩みました。しかしながら、まともな会社では、申請遅れあり得ないではあり得ないでありましょうね。

何分、e-Govの申請却下に気づけなかったのが難です。e-Govでは、メールアドレスはシステムに登録しますが、デフォルトでは、申請結果は登録したメールアドレスに連絡されないですe-Govのメール通知設定を有効にしました。

また申請却下の原因は、「事業所整理番号」の記入方法が、今までの紙の場合とe-Govでは異なっていました

SERROW225 ミニスクリーン

趣味を事業化できれば効率的です。簡単な自動車用品を開発販売できないか模索しています。

セロー225をツーリングで使われている方も多いかと思います。オフロードで邪魔にならず、 雨ツーリングや冬 ツーリング で使えるスクリーンを制作してみました。

アクリル板ではすぐキズだらけになるので、ポリカボーネイトで作成。

ステーはアルミ。

角度は少し調整可能してあります。

もしもニーズがございましたら、コメントいただけないでしょうか。量産を検討いたしします。

Android Stdio 4.1.1でコンポーネント属性が表示されない。

共同開発者にAndroid stdioのバージョン4.1.1を合わせたところ、デザイン画面でコンポーネント属性が表示されなくなりました。GUI選択しているにも関わらず「コンポーネントが表示されていません」と表示されます。

いろいろとトライしたり、他のweb情報を参考にしてみましたが、改善せず。4.1.2にUPてしもダメ。14.1.1はアンインストールし、Android stdio 4.0.0に戻すと解消しました。

2つのAndroid stdioバージョンを、入れてみましたが、Javaのバージョン不一致でエラーとなりました。

結果、リリース時のみ、Android stdioを入れ替えて対応しています。

WordPressを業務で始めるときのポイント(と思う)

広報活動もかねて、はじめてWordPressをはじめました。その初期問題と対策です。

1. WordPressでデッドスペースの少ないテーマ選定

初期設定では殺風景。会社用なので余計な飾りが少なく、表示スペースが大きくとれるものをさがしました。3つ試しましたが、scafffoldがよかったです。

2. WordPressで丸ゴシックが使いたい

堅いすぎず、緩すぎない「HG丸ゴシックM-PRO」が読みやいです。スタイルシート:CSSで直接記述するようです。Androidでもみれました。

3. WordPressでコメント追加時でリンクエラー

ディスカッションと各記事の設定で、コメント有効化しても、コメントのハイパーリンクを押すと「リンクエラー」になってしまいます。他のサイトで調べたところ以下のようにすると改善しました。

4. WordPressでコメント送信ボタンが見えない

「コメント送信」ボタンがない! と思ったらボタン色が白でテキストボックスと見分けがつきません。文字は薄いグレーにしました。

5. WordPressでURLとメール欄を消す

URLとメール欄は面倒危険と思われ、貴重なユーザ意見を収集の気を逃すかもしれません。 他サイトを拝見しますと、CSSで直接タグを指定して非表示にするようです。

6. WordPressのサンプルページを削除

デフォルトでサンプルページのリンクが表示されますが要りません。記事一覧からゴミ箱にいれれはよいようです。

7. WordPressのプライバシーポリシーページを有効化

コンプライアンス的に、プライバシーポリシーを有効化しておきます。

8. WordPressの両サイドのデッドスペースを詰める

業務用ブログなので、PC表示を前提とすると、両サイドの空白部分がデッドスペースです。生成されるHTMLからclass名を特定して、カスタムCSSで詰めました。