• カテゴリ 雑記 の最新配信
  • RSS
  • RDF
  • ATOM

ブログ - 雑記カテゴリのエントリ

4Kディスプレイ

カテゴリ : 
雑記
2014-3-24 18:09
マルチディスプレイから4Kへ変更。
遅い・・・。ビデオカード買い換え必要。


入れ替えたとたんに勝手にサイズをでかくしてくれるが、100%に戻すと文字サイズがサブノート級。
LabVEIWにはうってつけのでかさだが、テキストエディタは表示方法考えないともったいなくていかん。

openocd

カテゴリ : 
雑記
2013-12-3 15:17
ここのところopenocdに手を染めていない事に気づく。久々にgitしてみると結構いい感じに修正されている様だ。

従来の設定ではlinux上でwin32ターゲットのクロスコンパイルがうまくいかない様なので、ついでということで長らくやってないMinGWでビルドしてみる。それもつまらないので、まっさらから新しくなったMinGWのインストーラで環境を再構築。後から手動でツール群を入れてたものが標準でお膳立てができてて楽ちん。

libusbxlibftdiを適当なトコにおいて、 LIBUSB1_CFLAGSへ適当に指示してあげればよさげ。今更ながらisasciiで止まるとは...。usbprogはもう除外。
種々のプラットフォーム対応はもうちょっとといった所だが、概ね意図している事はわかった。
多少小細工は施したが、たいした問題もなく再構築完了。


ということで新しいバイナリを置いときました。

そうそう、Windows8からとっても野暮ったくなった署名なしのデバイスドライバですが、こちらの手順を踏んでからインストールして下さいね。

DXLIB更新

カテゴリ : 
雑記
2013-9-17 8:00
Dynamixel Library Version 2.9を公開しました。

今回の主な変更はタイムアウトの指定を無くしたことにあります。従来タイムアウトは受信をあきらめるまでの時間を意味し、基本的にボーレートと受信バイト数に依存するものでした。しかし受信パケットのバイト数が判然としていない限り計算が困難であった事が「パケットを意識せず」という意図からずれていると判断し、ライブラリ内で処置する事としました。
その代わりという訳ではありませんが、OSやI/Fに依存する応答性を考慮したタイムアウト値を別途設定出来るようにしました。

また先にお知らせした新しいCDCエミュレーションを使用したファームウェアを内蔵したマイコンを仲介した際に、Windowsによるポートのオープン・クローズの判定用としてDTRの制御をONにしました。

最後にLinuxで使用される際の問い合わせが大半を占める様になってきたこともあり、コンフィギュレータ以外のマイコンを仲介した場合でも使用できる様にボーレートの設定方法を見直しました。

なお、ROBO-ONE標準APIも本仕様に合わせて修正しましたので、その仕様に合わせた各社向けdllが近々公開のサーバに適用されます。

たいそうな代物ではありませんので、活用の一助になればといったところ。

microUSBケーブルの怪

カテゴリ : 
雑記
2013-9-9 21:29
1件だけならまだしも、数件のお問い合わせがあったので備忘録として。

今年の春頃から出始めた弊社のボード類の殆どには、USB-microBコネクタが装備されている。UD3.5も然り。
このコネクタは薄くて丈夫で挿抜の回数がminiよりも向上しているのが謳い文句。それと、最近のAndroidケータイにも装備されているので、ケーブルの調達がしやすい事もあって、製品に同梱する事を止めている。

ところが、量販店のケータイコーナーで不用意に調達すると痛い目に遭う。PCとケータイをUSBでつなぐ目的が「バッテリの充電」というのが大半らしく、USBケーブルのフリをした「充電専用」ケーブルが存在する。充電専用しか取り扱いが無いという店舗もあるし。
この充電専用のケーブルの殆どはUSBのバスパワーラインだけが接続されており、データラインが未結線であった。これではいくらPCを換えてもパイロットランプだけが点灯するだけで、PCからは一切認識されない訳である。

今後USBケーブルを調達する際は、説明書きを良く読んでから購入してくださいね。

技術サポート

SIMPLE TERMの仕様変更

カテゴリ : 
雑記
2013-8-20 20:10
SIMPLE TERMは特に高機能という訳でも無くテキトーなリアルターミナルですが、いつもGCC Developer Liteのインストーラと一緒に同梱している都合から、面倒くさがりな作者の都合に合わせて操作を横着するための機能がちまちまと追加され続けています。

今回はフロー制御のお話です。
H8シリーズとのシリアル通信による簡易的なコミュニケーション用として作られたSIMPLE TERMですが、当初からRS232Cを前提とした3線シリアル通信を行う事を念頭に置いていた事もあり、ハードフロー制御は行わないものとしていました。特にDTR/DSRに関してはその当時FLASH WRITERがケーブルの接続チェックに使っていたこともあり、SIMPLE TERMには設定すら無く今でも常時無効にしています。

時代は変遷し、マイコンとPCはUSBで直結して仮想COMポートを介して通信するのが主になってきました。当然マイコンには自分のUSBを制御するコードが入って入るわけでして、弊社でもどこぞやのライブラリを使って実現させています。
ところが、PCがその仮想COMポートを開いている否かをマイコン側で判断しないといけないシチュエーションがありまして、特にマイコン側から一方的に送信する場合は無くてはならない条件だったりします。
ホストがWindowsであるのが前提ですが、今のところSAM3やSAM7Sシリーズ用のUSB CDCエミュレーションライブラリではポートのオープン/クローズを簡易的に判断させていますが、いかんせんOS限定というのはいただけない。

ということで、次期GCC Developer Liteにおいてこのあたりを大幅に仕様変更します。
  • SIMPLE TERMも他の一般的なターミナルソフトなどと同様に、ポートのオープン/クローズに連動してDTRを自前で制御。
  • マイコン向けのUSB CDCエミュレーションライブラリ(SAM7S,SAM3S,STM32F3シリーズのみ)に含まれるWindows限定の判定ルーチンを止め、DTRの状態によってオープン/クローズを判定。
この仕様変更に伴う功罪は以下の通りです。
  • 旧バージョンのSIMPLE TERMで新しいUSB CDCエミュレーションライブラリを使用したターゲットの仮想COMポートを開くと、見かけ上ターゲットからの応答が得られない。
  • 新しいSIMPLE TERMはUSB CDCエミュレーションライブラリの新旧にかかわらず通信が行える。
  • 新しいライブラリを使用したターゲットはLinuxやmacOSでもOK。
  • つまり、ツールが新しくてターゲットが古い場合はOKで、ツールが古くてターゲットが新しいのがNG。
今後のGCC Developer Liteのリリースの際はこの点に留意ください。

技術

USB3.0

カテゴリ : 
雑記
2013-8-5 10:40
最近のnote pcを調達したが、何もかもUSBに集約しろといわんばかりにそれ以外の拡張性がない。おまけにUSB3.0というだけあって、下手なUSBデバイスのファームで一度でもしくるとホストコントローラから応答しなくなるまでか、PCのシャットダウンすらできなくなる。

散々四苦八苦し、新しいPCを開発機としてターゲットは古いPC上でという間抜けな環境でしのいでいたが、開発機のUSBポートが足りなくなったので外付けのUSBハブを調達。
ついでなので開発機にお試しデバイスをふと差し込んでしばしそのまま使っていたが、下手打ってもなんだかそのまま使い続けられる事に気づいた。


ということで、新しいPCのUSBにつなく玩具で遊ぶ際は、外付けのUSB2.0ハブをかませると少し安心かもしれないというネタでした。

技術
扱っているマイコンボードは多岐にわたっているのと、時期によってデザイン思想が変わっている事もあり、ブートローダの挙動がどれもまちまち。とりあえずXMODEMによるバイナリファイル転送という点は共通化されたのだが、ブートローダへ入る方法が気まぐれ過ぎる。
なにか安直な方法はないかとデータシートをまじまじ眺めていると、どのチップも起動直後の条件を取得できる様である。つまり、電源ON一発目なのか、ウォッチドッグでリブートしたのか、ソフトリブートしたのか、外部からのリセット信号でリブートしたのか等々。
そろそろお目見目する予定のDIGITUSシリーズはUSB接続が前提となるので、コンソールから何かしらのシグナルを送ることはちょっと考えにくいし、もともとピン数が少ないところに態々スイッチなんてのも流行りじゃない。

結論から言ってしまうと、「リセットボタンを押したらブートローダに入る」ということ。これが一番確実で、ユーザアプリケーションで想定されるプログラムとの競合も少ないハズ。
ひとまずATmegaが載った輩がコードサイズ的に厳しいので、試しに入れてみた。結果は良好。いままで「!」を連打してた手間も省けていいかんじ

ということで、勝手ながら今後のブートローダの仕様を変更させていただきますので、びっくりしないでくださいね。

技術

アライメント

カテゴリ : 
雑記
2013-2-21 20:19
typedef union {
  struct {
    char        a;
    uint16_t  b;
  };
  char  dat[3];
} __attribute__ ((packed)) stTest;
このstTestは何故か4バイトで扱われる。
内側の構造体をPACKしていないことに気が付くまで、5分程頭を悩まされる。
typedef union {
  struct {
    char        a;
    uint16_t  b;
  } __attribute__ ((packed));
  char  dat[3];
} __attribute__ ((packed)) stTest;
これで3バイトとして使えるようになった。

近々GCC Developer Liteを更新します

カテゴリ : 
雑記
2012-12-10 19:04
長らく汎用版の更新がなされていませんでしたが、近々アップデートします。
外観は何ら変わりはありませんが、追加されるターゲットが大幅に増えるため、少しだけ予告を兼ねてお知らせします。

<FDIIIライブラリ>
FDIII用のライブラリがサポートするデバイスは従来のDynamixelシリーズに限られていますが、近々公開しますGCC Developer LiteではMXシリーズにも対応します。勿論新旧やI/Fが違っていても混在した状態で利用する事ができます。

また、ROBO-ONEにおける標準化の一環として、アプリケーションのレイヤから各社のアクチュエータ(シリアル通信対応に限る)へアクセスする方法を決定した事もあり、組み込みデバイスにもそれを展開すべく、FDIII-HCのライブラリとして新規に以下のアクチュエータをサポートする事になりました。

・近藤科学社製
KRS-2552RHV ICS, KRS-2542HV ICS, KRS-4031HV ICS, KRS-4032HV ICS, KRS-4034HV ICS, KRS-4033HV ICS, KRS-6003HV ICS
※ICS3.0及びICS3.5かつ115.2kbpsに限定

・双葉電子工業株式会社製
RS601CR, RS401CR, RS402CD, RS405CB, RS406CB, RS301CR, RS302CD, RS303MR, RS304MD

なお、今回のアップデートにおいては、これらアクチュエータに対する直接的なアクセスAPIの提供のみで、互換性を優先としたためにFDIII-HCならではのモーション等のAPIのサポートは含まれません。

<Atmel SAM3Sターゲット>
AT91SAM7Sの後継としてcortex M3コアを搭載したマイコンボードを一部にリリースしており、マイコンボードを販売する予定もある事から、先行でパブリック版に同梱します。コンパイル済のToppersカーネルも含みます。
AT91SAM7Sとほぼピンコンパチのデバイスを対象としています。

<Renesas RX62Nターゲット>
既に一部に公開していますが、ご要望が多いためにパブリック版に同梱する事とします。
H8シリーズと同程度の最低限のサポートファイル(スタートアップルーチン・ペリフェラルヘッダ・シリアル通信)で構成されます。
また、FLASH WRITERにてRX62NのSIOを介した内蔵フラッシュへの書き込みをサポートします。

<STMicroelectronics STM32F2ターゲット>
こちらも一部に公開していますが、F4の登場もありF2はある程度機能が枯れ始めたので同梱することにします。コンパイル済のToppersカーネルも含みます。
最低限のサポートファイル(スタートアップルーチン・ペリフェラルヘッダ)で構成されます。

その他コンパイラ本体の更新や各ターゲットの微修正等が含まれます。
公開までもう少しお待ちください。

技術サポート

SH2/7145のコンパイル

カテゴリ : 
雑記
2012-11-14 20:00
とある検証でSH2/7145を動かそうとしてみたら全く動かない。
サンプルすら動かないので調べてみると、どうやら割り込みにかかるところが原因のようだ。
何故か最適化(レベル1以上)すると動くので確認してもらったところ、ヘッダ内のマクロに起因していたようで、マクロを修正すると最適化に関係なく正しく動くようになった。
ヘッダの修正版は次のGDLリリースに含まれるだろう。
yoshi