DXMIOはNXP社製LPC845(cortex-M0+コア)を搭載し、Dynamixel互換I/Fを装備した汎用マイコンボードです。
前バージョンのDXMIOに対して、IMUの変更がなされています。
Dynamixelで構成された装置にセンサ等を追加装備する場合、DXMIOを中継することで同一のネットワークにフィードバック系を設けることができます。
これらの基本機能はサンプルプログラムとして提供されますが、サンプルとして提供される機能では不十分な場合は独自にプログラムを追加することで機能を拡張する事ができます。
また今リビジョンより近藤科学製KRSやB3Mシリーズと合わせて使用するサンプルプログラムを同梱しています。
商品番号 | BTE098B | |
MPU | LPC845M301JHI33 | |
PCBリビジョン | E097C (4層) | |
通信機能 | TTL(半二重)及びRS485(半二重) ※いずれも5V | |
動作温度 | 0~+50℃ | |
動作電圧 | DC5.3~35V 絶対最大定格 ±50V | |
消費電流 | 最大35mA | |
電源出力 | DC5V 最大400mA | |
リンク方式 | Multi Drop(daisy chain type Connector) | |
アナログ入力 | 入力電圧範囲 | 0~3.3V |
入力インピーダンス | 0.1MΩ | |
デジタル入出力 | デジタル入力Lowレベル検出電圧範囲 | -0.5~1.5V |
デジタル入力Highレベル検出電圧範囲 | 1.5~5.5V | |
シンク・ソース電流 | 最大40mA | |
デジタル出力High電圧 | 2.9~3.3V | |
デジタル出力Low電圧 | 0~0.4V | |
寸法 | 約15×30mm | |
コネクタ等 | 14ピンランド, RS485 x1, TTL×1, モニタLED | |
環境配慮 | RoHS準拠, 鉛フリー半田 |
No. | 端子名称 (MPU) | No. | 端子名称 (MPU) |
1 | GND | 14 | GPIO5(PIO0_21/ADC5) |
2 | 5.0V | 13 | GPIO6(PIO0_20/ADC6) |
3 | GPIO4(PIO0_22/ADC4) | 12 | GPIO7(PIO0_19/ADC7) |
4 | GPIO3(PIO0_23/ADC3) | 11 | GPIO8(PIO0_18/ADC8) |
5 | GPIO2(PIO0_14/ADC2) | 10 | GPIO9(PIO0_17/ADC9) |
6 | GPIO1(PIO0_6/ADC1) | 9 | GPIO10(PIO0_13/ADC10) |
7 | GPIO0(PIO0_7/ADC0) | 8 | GPIO11(PIO0_4/ADC11) |
Pats Name | JST Parts Number |
基板用ヘッダー | B3B-EH, B3B-EH-A |
ハウジング | EHR-3 |
ターミナル | SEH-00x |
端子番号 | 信号名 |
1 | GND |
2 | VDD |
3 | TTL Signal |
Pats Name | JST Parts Number |
基板用ヘッダー | B4B-EH, B4B-EH-A |
ハウジング | EHR-4 |
ターミナル | SEH-00x |
端子番号 | 信号名 |
1 | GND |
2 | VDD |
3 | RS-485 D+ |
4 | RS-485 D- |
5V電源とMPUの一部の端子が接続されています。ADCの他に入出力端子として構成したり、端子割り当てが自由なペリフェラルの機能を任意の端子に割り当てて使用する事ができます。
5V電源は外部機器へ供給する電源として使用できますが、400mAを上限とする電流制限が設定されています。
またボードそのもののサイズが小さい事もあり、電力消費量が大きくなるとそれなりの熱を持ちます。CN1に装着するピンヘッダを介して別の基板へ熱を逃がしたり、ボードそのものを放熱処置する事も考慮して下さい。
LPC-Link2等を用いてMPUを直接デバッグするためのランドです。
出荷時にMPUのFLASH ROMにブートローダーを書き込む際に使用する事のみを想定しているため、コネクタの類いは実装していません。
ボードへの電源供給と通信を担います。
いずれのコネクタの電源は並列に接続されています。
通信に関してはCN3とCN4を個別に扱う事を想定しておらず、どちらからも同時に送信され、いずれか一方から受信するという運用となります。
システムクロックはMPUに内蔵されるFRO(Free Running Oscillator)を使用する前提なので外部クロックは装備されていません。FROは動作温度範囲内で±1%の精度となります。
GCC Developre Liteに同梱されるライブラリはFROを使用する前提で構成され、コアのクロックを30MHzに設定し、シリアル通信のみ他の装置との通信速度を一致させる必要から分周等を設定した上で32MHzのクロック源を供給しています。
なおシリアル通信であればこの精度で概ね支障はありませんが、数分程度で秒単位の誤差が生じる計算になるため、高精度な時間測定を要求するアプリケーションの場合はそれなりのクロック源を外部に設け、提供されるライブラリを大幅に改修する必要性が生じます。
MPUに予め書き込まれているブートローダによってRS-485 I/FないしTTL I/Fを経由してPCからユーザプログラムの転送や諸設定を行う事ができます。
後述のSIMPLE TERMで3つのいずれかのポートを開き、ブートローダのコマンドモードに入ると、次のメッセージが表示されます。
LPC84x BL1.0 >
この状態で'?'を入力すると、使用できるコマンドの一覧が表示されます。
>? LPC84x BL1.0 w:write e:erase d:dump g:go >
なおユーザプログラムが書き込まれている場合は、電源投入直後にユーザプログラムが実行されるため、ブートローダのコマンドモードにはなりません。
再度ユーザプログラムの転送や消去といった操作を行う場合は、SIMPLE TERM上でキーボードの「!」を押したままPB1を押してリセットしするか電源を再投入して下さい。ブートローダはコマンドモードへ遷移します。
GCC Developer Liteの詳細についてはこちらで紹介しています。「基本パック」と「ARMパック」をダウンロードしてインストールしてください。なおARMパックインストールの際に表示されるコンポーネントの選択画面では「LPC84xでのみ使用」を選択してください。
LPC845で使用される主要なコンポーネントを簡単に紹介します。
ソースプログラムを編集するためのテキストエディタとその他のツールを起動するためのランチャ機能を有する。
汎用シリアルターミナル。簡易的なTELNETクライアントとしても機能する。
USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。
ARMコア向けC/C++言語向けのコンパイラ。できる限り最新のパッチを適用している。
CMSIS-DAPに対応したICEを使用してFLASH ROMへ任意のプログラムを直接書き込むツール。
MPUの内蔵ペリフェラルを定義したヘッダファイルやUARTを簡便に使うためのAPI、GDBにてデバッグする際に使用する初期化ファイル、シリーズ毎に異なるメモリマップを定義したリンカスクリプトファイル、スタートアップルーチンを含む。基本的にコンパイル済みライブラリとしてソースとリンクして使用する。
GCC Developer Liteでは1つのソースプログラムのみを対象とするため、機能別にソースを分割して編集やコンパイルするといった使い方はできません(完全にできないという訳でもありません)。だからと言って全ての機能を一つのソースに記述する事は、プログラムの見通しが悪くなりバグの温床になりかねません。
そこで、複数のソースに分割する事無くある程度のソースプログラムサイズでコーディングするために、頻繁に使用されるであろう一部の機能が専用のライブラリとして提供されます。
GCC Developer Liteを標準的な環境のPCへインストールすると、「C:\Program Files\BestTech\GCC Developer Lite\TARGET」フォルダに必要なファイルがコピーされます。必要に応じて本フォルダを参照できますし、ユーザがソースを修正しライブラリを再構築する事も可能です。
LPC84xは複数のライブラリを組み合わせて使用するため、実体はかなり複雑になっています。
以下のリンクにZIP形式の圧縮ファイルで設置しました。アーカイバ等にて適宜解凍して使用して下さい。
ソースファイル(srcフォルダ)と一緒にコンパイル済みのbinファイル(binフォルダ)、GCC Developer Liteをインストールせずともコンパイル済みのbinファイルが転送できるWindows向け各種ツール等が同梱されています。出荷時に「smpl19(dxclient_imu)_V2.bin」が書き込まれていますが、統合環境なしに簡易的にコンパイル済みのバイナリファイルを転送して試すには以下の手順を踏んで下さい。
サンプルコードに含まれるbinファイルとSIMPLE TERMだけでも一通りの動作確認はできますが、GCC Developer Liteを使ってコンパイルする場合は以下の手順となります。
なおARMGCCそのものがSJISに対応していないため、コメント等に全角文字を使用するとコンパイルエラーが発生する場合があります。サンプルプログラムは日本語のコメントを使用していますが、全てUTF-8のエンコードにしているためそれに起因するエラーが発生しません。 GCC Developer Liteにて新規で作成したプログラムは必ずSJISで生成されるため、編集中にGCC Developer Liteのステータスバーに表示される「SJIS(CR+LR)」をマウスで右クリックし、ポップアップメニューのリストから「UFT8」を選んでからソースプログラムを保存して下さい。「UFT8」になってさえいれば全角文字のコメントによるコンパイルエラーは発生しません。
LPCOpenはNXP社より提供されるペリフェラル用のライブラリです。しかしLPC84xシリーズは見捨てられたまま開発が止まっているようで、今後はメンテナンスされない可能性が高いと思われます。
とは言えリソースはLPCOpen前提でこしらえたものも蓄積されてしまっていることから、LPC82x用のものをモディファイしてLPC84x向けに構成し直したものを同梱しています。
初期状態において大抵のペリフェラルはクロックソースが選択されていないため、クロックソースが無選択状態のままペリフェラルの初期化を行っても動作しません。ライブラリにおいてもクロックソースは別途行うものとしていますので、DXMIOにおいても初期化する前にクロックを選択しています。なおUSART0に限り「e097b_def.h」内のResetExceptionDispatch_Tail関数(main関数へジャンプする直前にスタートアップルーチンから呼ばれる)で予めクロックソースを選択しています。
#include <chip.h> // FRG0のソースとしてsys_pll0_clk(60MHz)を選択 LPC_SYSCON->FRG0MULT = 35; LPC_SYSCON->FRG0DIV = 39; LPC_SYSCON->FRG0CLKSEL = SYSCON_FRGCLKSRC_PLL; // USART0のクロックソースとしてFRG0を選択 LPC_SYSCON->UART0CLKSEL = SYSCON_FLEXCOMMCLKSELSRC_FRG0;
全てではありませんがLPC8xxシリーズはペリフェラルの機能をプログラムによって任意の端子に自由に割り当てることができます。CN1にはMPUのGPIOのうちADCが割り当てられている端子を配置していますが、可能な限りの機能を自由に割り振ることができます。
なおDXMIOでは端子番号のマクロと最低限の端子初期化用の構造体が「e097b_def.h」に定義してあり、自身のソースにイクルードしてコンパイルすればResetExceptionDispatch_Tail関数が呼び出されCN1を除くボード内の回路に接続されている端子の初期化が行われます。
#include <piocfg.h> // 端子機能設定配列 static const TPin E097B_pins[] = { { _LED2, PIO_TYPE_OUTPUT_1, 0, PIO_MODE_DEFAULT }, // PIO0_24 O { _TXD, PIO_TYPE_MOVABLE, SWM_U0_TXD_O, PIO_MODE_DEFAULT }, // USART0 TXD O { _RXD, PIO_TYPE_MOVABLE, SWM_U0_RXD_I, PIO_MODE_PULLUP }, // USART0 RXD I { _RTS, PIO_TYPE_MOVABLE, SWM_U0_RTS_O, PIO_MODE_DEFAULT }, // USART0 RTS O { _TERM, PIO_TYPE_OUTPUT_1, 0, PIO_MODE_DEFAULT }, // PIO0_16 O { _SCL, PIO_TYPE_FIXED, SWM_FIXED_I2C0_SCL, PIO_MODE_DEFAULT }, // I2C0 SCL { _SDA, PIO_TYPE_FIXED, SWM_FIXED_I2C0_SDA, PIO_MODE_DEFAULT }, // I2C0 SDA };
なおLED2は「e097b_def.h」に宣言されているSetLEDとToggleLED関数を使用してプログラマブルに明滅できます。
void ToggleLED (void); void SetLED (bool On);
弊社では何をするにもUSART(UART)ありきなため、本MPUにおいてもライブラリとして基本的な送受信ルーチンをポーリング・割り込み・DMAの3パターンで用意しています。
#include <us.h>
用意される関数はUSARTの初期化・1バイトないし複数バイトの送受信・簡易書式文字列送信・送受信バッファ内のデータ数確認といったところで、どのタイプであってもポートであっても同じフォーマットです。
// USART0 ポーリング版 // 初期化 uint32_t usart0_init (uint32_t clk, uint32_t baudrate, uint8_t us_param, uint8_t *txbuf, uint16_t txl, uint8_t *rxbuf, uint16_t rxl); // ボーレート変更 uint32_t usart0_setbaudrate (uint32_t clk, uint32_t baudrate); // 送信バッファ内データ数 uint16_t usart0_tx_buff (void); // 受信バッファ内データ数 uint16_t usart0_rx_buff (void); // 送信データ一掃 void usart0_tx_purge (void); // 送信データ一掃 void usart0_rx_purge (void); // 1文字(1バイト)送信 void usart0_putc (char ch); // 文字列(ヌル終端文字列)送信 void usart0_puts (const char *s); // 複数バイト送信 int usart0_putsb (const uint8_t *c, int len); // 1文字(1バイト)受信 char usart0_getc (void); // 文字列(LF/CR終端)受信 uint16_t usart0_gets (char *s, int len); // 書式文字列送信 int usart0_printf (const char *fmt, ...); // 書式指定文字列受信 int usart0_scanf (const char *fmt, ...);
なおCN3とCN4はいずれも電気的には半二重通信ですが、USARTとしてはそれを全く意識せずに全二重で動作します。そのためプログラムないし運用で半二重である事を想定しておかないと衝突が生じます。
またRS-485 I/Fのターミネーターは「e097b_def.h」に宣言されているSetTerminator関数を使用してプログラマブルにON/OFFできます。
void SetTerminator (bool On);
BNO055はMPUとI²Cで通信する前提で接続され、スレーブアドレスは0x28に固定されています。I²C以外の端子はMPUとは一切接続されていませんので、BNO055の割り込み・リセット・ファームウェアの更新といった機能が使用できません。
サンプルコードに含まれる「e097b_imu.h」には内部レジスタのアドレス定義と各レジスタへのアクセスルーチンが含まれており、BNO055を使用する上で最低限の機能は持っています。
// 指定レジスタアドレスへ1バイト書き込み bool imu_write_byte (uint8_t page, uint8_t addr, uint8_t dat); // 指定レジスタアドレスから1バイト読み出し bool imu_read_byte (uint8_t page, uint8_t addr, uint8_t *dat); // 測定データ及び計算値を一括読み出し bool imu_read_datavalue (Tbno055 *r); // CHIP IDの確認 (主に疎通確認用) bool imu_cehckid (void); // Operation Modeの取得 bool imu_get_opmode (TOperationMode *mode); // Operation Modeの設定 bool imu_set_opmode (TOperationMode mode, TOperationMode *pprevmode); // Power Modeの設定 bool imu_set_powermode (TPowerMode p); // 外部クロック選択 bool imu_set_ext_osc (bool ext); // センサ配置選択 bool imu_set_axix_place (TAxisPlace p); // セルフテストおよび結果・システムステータス・システムエラー取得 bool imu_get_tst_stat_err (uint8_t *tst, uint8_t *stat, uint8_t *err); // 初期化 bool init_imu (TOperationMode mode, TAxisPlace p);
最低限必要と思われる機能だけを活性化した上でライブラリ化しています。詳細はFreeRTOSのサイトを参照してもらうとしますが、このような小型なMPUにおいてもOSを使用する価値は十分にあります。
DXMIO自身を他のDynamixelのホストとして使用する場合の通信処理は提供されるライブラリを使う事で簡便に実現できます(smpl14~smpl16)。DXMIOをホストとするとPC等に比べて物理的なサイズを格段に小さくできますが、メモリや処理能力には限りがありますので過大な期待は禁物です。
PC版と同等のDXLIBやDX2LIBが提供されますが、ライブラリのリンク時の都合により追加APIのプレフィクスが少々異なります。詳細はdxlib.hやdx2lib.hを参照して下さい。
以下に接続例を紹介しますが、クライアントとなるDynamixelと同じI/FにDXMIOが接続されているならばどの位置に配置して構いません。またDXMIOへファームウェアを転送するためにはPC用のI/Fが必要になります。
ホストとDXMIO間の通信処理はライブラリとして提供されるので、任意のコントロールテーブルや装置としての処理などを用意する事でクライアントとして機能させることができます。
以下に接続例を紹介しますが、ホストとなるPCと同じI/FにDXMIOが接続されているならばどの位置に配置して構いません。
smpl19では各端子機能の割り当て・GPIOとしての入出力・PWM出力・アナログ電圧測定・IMUのデータ取得といった機能へコントロールテーブルを介してアクセスできます。
なおDynamixelクライアントライブラリでは不揮発メモリの扱いがDynamixelシリーズのそれと異なり、通常の操作で不揮発領域とあるアイテムを書き換えたとしても、電源を再投入すると書き換える前の値に戻るようにしています。これは不用意な書き換えによる不慮の事態を軽減するためです。不揮発領域に書き込んだ値を次回起動時にも反映させるには、コントロールテーブル中のWriteNVMに1を書き込む必要があります。またWriteNVMのコントロールテーブル上のアドレスはライブラリ内で固定されていますので、異なるアドレスに再配置する事はできません。
以下はクライアント機能を提供するサンプルプログラムの紹介です。
Dynamixelシリーズには2種類のプロトコルがあります。
プログラム中のマクロを書き換えてコンパイルすれば、いずれかのプロトコルに対応させることができます。
Dynamixelシリーズと共通する情報はコントロールテーブル上の先頭の5バイトのみで、それ以外のアドレスには互換性はありません。
また複数バイトにまたがるアイテムはリトルエンディアンでストアされます。
DXL V1版 | ||||
Address | Item | Access | Default Value | Type/Range |
0 (0x0) | Model Number | R | 0x4023 | uint16 |
1 (0x1) | ||||
2 (0x2) | Version of Firmware | R | 0x41 | uint8 |
3 (0x3) | ID | R/W (NVM) | 200 | uint8 0~253 |
4 (0x4) | Baudrate | R/W (NVM) | 1 | uint8 0~254 |
5 (0x5) | WriteNVM | R/W | 0 | uint8 0~1 |
6 (0x6) | LED | R/W | 0 | uint8 0~1 |
7 (0x7) | Terminator | R/W (NVM) | 1 | uint8 0~1 |
8 (0x8) | Pin Config 0 | R/W (NVM) | 0 | uint8 0~20 |
9 (0x9) | Pin Config 1 | R/W (NVM) | 0 | uint8 0~20 |
10 (0xA) | Pin Config 2 | R/W (NVM) | 0 | uint8 0~20 |
11 (0xB) | Pin Config 3 | R/W (NVM) | 0 | uint8 0~20 |
12 (0xC) | Pin Config 4 | R/W (NVM) | 0 | uint8 0~20 |
13 (0xD) | Pin Config 5 | R/W (NVM) | 0 | uint8 0~20 |
14 (0xE) | Pin Config 6 | R/W (NVM) | 0 | uint8 0~20 |
15 (0xF) | Pin Config 7 | R/W (NVM) | 0 | uint8 0~20 |
16 (0x10) | Pin Config 8 | R/W (NVM) | 0 | uint8 0~20 |
17 (0x11) | Pin Config 9 | R/W (NVM) | 0 | uint8 0~20 |
18 (0x12) | Pin Config 10 | R/W (NVM) | 0 | uint8 0~20 |
19 (0x13) | Pin Config 11 | R/W (NVM) | 0 | uint8 0~20 |
20 (0x14) | PWM Frequency | R/W (NVM) | 0 | uint16 0~50000 |
21 (0x15) | ||||
22 (0x16) | PWM Duty 0 | R/W (NVM) | 0 | uint16 0~65535 |
23 (0x17) | ||||
24 (0x1A) | PWM Duty 1 | R/W (NVM) | 0 | uint16 0~65535 |
25 (0x1D) | ||||
26 (0x1E) | PWM Duty 2 | R/W (NVM) | 0 | uint16 0~65535 |
27 (0x1F) | ||||
28 (0x22) | PWM Duty 3 | R/W (NVM) | 0 | uint16 0~65535 |
29 (0x23) | ||||
30 (0x26) | PWM Duty 4 | R/W (NVM) | 0 | uint16 0~65535 |
31 (0x27) | ||||
32 (0x2A) | PWM Duty 5 | R/W (NVM) | 0 | uint16 0~65535 |
33 (0x2B) | ||||
34 ~ 43 | (reserve) | R | - | uint8 |
44 (0x2C) | Capture 0 | R/W | 0 | uint16 0~65535 |
45 (0x2D) | ||||
46 (0x2E) | Capture 1 | R/W | 0 | uint16 0~65535 |
47 (0x2F) | ||||
48 (0x30) | Capture 2 | R/W | 0 | uint16 0~65535 |
49 (0x31) | ||||
50 (0x32) | Capture 3 | R/W | 0 | uint16 0~65535 |
51 (0x33) | ||||
52 (0x34) | OUT | R/W | 0 | uint16 0~4095 |
53 (0x35) | ||||
54 (0x36) | IN | R | - | uint16 0~4095 |
55 (0x37) | ||||
56 (0x38) | ADV 0 | R | - | uint16 0~4095 |
57 (0x39) | ||||
58 (0x3A) | ADV 1 | R | - | uint16 0~4095 |
59 (0x3B) | ||||
60 (0x3C) | ADV 2 | R | - | uint16 0~4095 |
61 (0x3D) | ||||
62 (0x3E) | ADV 3 | R | - | uint16 0~4095 |
63 (0x3F) | ||||
64 (0x40) | ADV 4 | R | - | uint16 0~4095 |
65 (0x41) | ||||
66 (0x42) | ADV 5 | R | - | uint16 0~4095 |
67 (0x43) | ||||
68 (0x44) | ADV 6 | R | - | uint16 0~4095 |
69 (0x45) | ||||
70 (0x46) | ADV 7 | R | - | uint16 0~4095 |
71 (0x47) | ||||
72 (0x48) | ADV 8 | R | - | uint16 0~4095 |
73 (0x49) | ||||
74 (0x4A) | ADV 9 | R | - | uint16 0~4095 |
75 (0x4B) | ||||
76 (0x4C) | ADV 10 | R | - | uint16 0~4095 |
77 (0x4D) | ||||
78 (0x4E) | ADV 11 | R | - | uint16 0~4095 |
79 (0x4F) | ||||
80 ~ 97 | (reserve) | R | - | uint8 |
98 (0x4A) | DAV | R/W | - | uint16 0~1023 |
99 (0x4B) | ||||
100 ~ 103 | (reserve) | R | - | uint8 |
104 (0x68) | OPR MODE | R/W (NVM) | 12 | uint8 0~12 |
105 (0x69) | Axis Placement | R/W (NVM) | 0 | uint8 0~7 |
106 (0x6A) | Accel X | R | - | int16 -32768~32768 |
107 (0x6B) | ||||
108 (0x6C) | Accel Y | R | - | int16 -32768~32768 |
109 (0x6D) | ||||
110 (0x6E) | Accel Z | R | - | int16 -32768~32768 |
111 (0x6F) | ||||
112 (0x86) | Magnet X | R | - | int16 -32768~32768 |
113 (0x87) | ||||
114 (0x88) | Magnet Y | R | - | int16 -32768~32768 |
115 (0x89) | ||||
116 (0x8A) | Magnet Z | R | - | int16 -32768~32768 |
117 (0x8B) | ||||
118 (0x8C) | Gyro X | R | - | int16 -32768~32768 |
119 (0x8D) | ||||
120 (0x78) | Gyro Y | R | - | int16 -32768~32768 |
121 (0x79) | ||||
122 (0x7A) | Gyro Z | R | - | int16 -32768~32768 |
123 (0x7B) | ||||
124 (0x7C) | Euler Heading | R | - | int16 -32768~32768 |
125 (0x7D) | ||||
126 (0x7E) | Euler Roll | R | - | int16 -32768~32768 |
127 (0x7F) | ||||
128 (0x80) | Euler Pitch | R | - | int16 -32768~32768 |
129 (0x81) | ||||
130 (0x82) | Quaternion W | R | - | int16 -32768~32768 |
131 (0x83) | ||||
132 (0x84) | Quaternion X | R | - | int16 -32768~32768 |
133 (0x85) | ||||
134 (0x86) | Quaternion Y | R | - | int16 -32768~32768 |
135 (0x87) | ||||
136 (0x88) | Quaternion Z | R | - | int16 -32768~32768 |
137 (0x89) | ||||
138 (0x8A) | Linear Acc X | R | - | int16 -32768~32768 |
139 (0x8B) | ||||
140 (0x8C) | Linear Acc Y | R | - | int16 -32768~32768 |
141 (0x8D) | ||||
142 (0x8E) | Linear Acc Z | R | - | int16 -32768~32768 |
143 (0x8F) | ||||
144 (0x90) | Gravity Vect X | R | - | int16 -32768~32768 |
145 (0x91) | ||||
146 (0x92) | Gravity Vect Y | R | - | int16 -32768~32768 |
147 (0x93) | ||||
148 (0x94) | Gravity Vect Z | R | - | int16 -32768~32768 |
149 (0x95) | ||||
150 (0x96) | Temperature | R | - | int8 -128~127 |
151 (0x97) | SYS STAT | R | - | uint8 |
152 (0x98) | SYS ERR | R | - | uint8 |
153 (0x99) | USER 0 | R/W | 0 | uint8 0~255 |
154 (0x9A) | USER 1 | R/W | 0 | uint8 0~255 |
155 (0x9B) | USER 2 | R/W | 0 | uint8 0~255 |
156 (0x9C) | USER 3 | R/W | 0 | uint8 0~255 |
157 (0x9D) | USER 4 | R/W | 0 | uint8 0~255 |
158 (0x9E) | USER 5 | R/W | 0 | uint8 0~255 |
159 (0x9F) | USER 6 | R/W | 0 | uint8 0~255 |
160 (0xA0) | USER 7 | R/W | 0 | uint8 0~255 |
161 (0xA1) | USER 8 | R/W | 0 | uint8 0~255 |
162 (0xA2) | USER 9 | R/W | 0 | uint8 0~255 |
163 (0xA3) | USER 10 | R/W | 0 | uint8 0~255 |
164 (0xA4) | USER 11 | R/W | 0 | 0~uint8 255 |
165 (0xA5) | USER 12 | R/W | 0 | uint8 0~255 |
166 (0xA6) | USER 13 | R/W | 0 | uint8 0~255 |
167 (0xA7) | USER 14 | R/W | 0 | uint8 0~255 |
168 (0xA8) | USER 15 | R/W | 0 | uint8 0~255 |
169 (0xA9) | USER 16 | R/W | 0 | uint8 0~255 |
170 (0xAA) | USER 17 | R/W | 0 | uint8 0~255 |
171 (0xAB) | USER 18 | R/W | 0 | uint8 0~255 |
172 (0xAC) | USER 19 | R/W | 0 | uint8 0~255 |
デバイスの通信速度を決める分周値で、デフォルトは1(1M[bps])です。通信速度は次式で導かれます。
Baudrate[bps]=2000000 / (value + 1)
主なBaudrateは以下の通りです。
Set value | Actual Baudrate[bps] | Specified Baudrate[bps] | Error[%] |
0 | 2000000.0 | 2000000 | 0.000 |
1 | 1000000.0 | 1000000 | 0.000 |
3 | 500000.0 | 500000 | 0.000 |
4 | 400000.0 | 400000 | 0.000 |
7 | 250000.0 | 250000 | 0.000 |
9 | 200000.0 | 200000 | 0.000 |
16 | 117647.1 | 115200 | -2.124 |
34 | 57142.9 | 57600 | 0.794 |
103 | 19230.8 | 19200 | -0.160 |
207 | 9615.4 | 9600 | -0.160 |
※ホストとのボーレートの誤差は±2%以下が要求されます。
RS-485 I/FのターミネーターをON/OFFします。
RS-485 I/Fには何も接続せずにTTL I/Fのみを使用する場合は、RS-485 I/Fのハイインピーダンス状態を回避するために1を設定して下さい。
GPIO0~11の各端子の機能を設定します。
デフォルトはデジタル入力(0:DIN)です。
GPIOにアナログ入力機能を割り当てた際に、GPIOに入力された電圧を12bitの分解能で計測します。
Input [V] = 3.3[V] * Value / 4095
なお入力インピーダンスが低いため、チャンネル間の影響を受けやすくなっています。影響を軽減させるには入力バッファを介して接続するか、プログラムを修正して使用するチャネルそのものを制限する等の処置を講じる必要があります。
BNO055の動作モードを設定します。
使用しない場合は0を設定します。
Value | Operation Mode | Description |
0 | CONFIG | 計測処理停止。 |
1 | ACCONLY | 加速度センサのみ。フュージョンモード無し。 |
2 | MAGONLY | 地磁気センサのみ。フュージョンモード無し。 |
3 | GYRONLY | ジャイロセンサのみ。フュージョンモード無し。 |
4 | ACCMAG | 加速度+地磁気センサ。フュージョンモード無し。 |
5 | ACCGYRO | 加速度+ジャイロセンサ。フュージョンモード無し。 |
6 | MAGGYRO | 地磁気+ジャイロセンサ。フュージョンモード無し。 |
7 | AMG | 加速度+地磁気+ジャイロセンサ。フュージョンモード無し。 |
8 | IMUPLUS | センサの相対的な向きを加速度+ジャイロセンサから算出。高速データレート。フュージョンモード有り。 |
9 | COMPASS | 方位を地磁気と加速度センサより算出。フュージョンモード有り。 |
10 | M4G | ジャイロセンサの代わりに地磁気センサを使用。フュージョンモード有り。 |
11 | NDOF_FMC_OFF | 高速地磁気センサキャリブレーションがOFF以外はNDOFと同様。フュージョンモード有り。 |
12 | NDOF | 9軸を使い絶対方位を算出。フュージョンモード有り。 |
IMU055のチップ表面の1ピンのシルク位置を基準に8パターンのセンサ配置から1つを選択する事で、各軸の測定値及び計算値の出力先を変更できます。
Value | Placement |
0 | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 |
ここで選択できるのは基板の表裏をZ軸方向に合わせた場合の8パターンのみですが、それらを除いた残りの16パターンを希望する場合はソースを適宜変更する必要があります。
BNO055から得られる測定値及び計算値ですが、OPR MODEによって得られなくなるアイテムがあります。
Accel[m/s²] = value / 100 Magnet[uT] = value / 16 Gyro[deg/s] = value / 16 Eular[deg] = value / 16 Quaternion = value / (2^14) LIA[m/s²] = value / 100 GRV[m/s²] = value / 100 Temperature[degC] = value
複数バイトにまたがるアイテムはリトルエンディアンでストアされます。
DXL V2版 | ||||
Address | Item | Access | Default Value | Type/Range |
0 (0x0) | Model Number | R | 0x4023 | uint16 |
1 (0x1) | ||||
2 (0x2) | Model Information | R | 0 | uint32 |
3 (0x3) | ||||
4 (0x4) | ||||
5 (0x5) | ||||
6 (0x6) | Version of Firmware | R | 0x41 | uint8 |
7 (0x7) | ID | R/W (NVM) | 200 | uint8 0~253 |
8 (0x8) | Baudrate | R/W (NVM) | 3 | uint8 0~4,6 |
9 (0x9) | WriteNVM | R/W | 0 | uint8 0~1 |
10 (0xA) | LED | R/W | 0 | uint8 0~1 |
11 (0xB) | Terminator | R/W (NVM) | 1 | uint8 0~1 |
12 (0xC) | Pin Config 0 | R/W (NVM) | 0 | uint8 0~20 |
13 (0xD) | Pin Config 1 | R/W (NVM) | 0 | uint8 0~20 |
14 (0xE) | Pin Config 2 | R/W (NVM) | 0 | uint8 0~20 |
15 (0xF) | Pin Config 3 | R/W (NVM) | 0 | uint8 0~20 |
16 (0x10) | Pin Config 4 | R/W (NVM) | 0 | uint8 0~20 |
17 (0x11) | Pin Config 5 | R/W (NVM) | 0 | uint8 0~20 |
18 (0x12) | Pin Config 6 | R/W (NVM) | 0 | uint8 0~20 |
19 (0x13) | Pin Config 7 | R/W (NVM) | 0 | uint8 0~20 |
20 (0x14) | Pin Config 8 | R/W (NVM) | 0 | uint8 0~20 |
21 (0x15) | Pin Config 9 | R/W (NVM) | 0 | uint8 0~20 |
22 (0x16) | Pin Config 10 | R/W (NVM) | 0 | uint8 0~20 |
23 (0x17) | Pin Config 11 | R/W (NVM) | 0 | uint8 0~20 |
24 (0x18) | PWM Frequency | R/W (NVM) | 0 | uint16 0~50000 |
25 (0x19) | ||||
26 (0x1A) | PWM Duty 0 | R/W (NVM) | 0 | uint16 0~65535 |
27 (0x1B) | ||||
28 (0x1C) | PWM Duty 1 | R/W (NVM) | 0 | uint16 0~65535 |
29 (0x1D) | ||||
30 (0x1E) | PWM Duty 2 | R/W (NVM) | 0 | uint16 0~65535 |
31 (0x1F) | ||||
32 (0x20) | PWM Duty 3 | R/W (NVM) | 0 | uint16 0~65535 |
33 (0x21) | ||||
34 (0x22) | PWM Duty 4 | R/W (NVM) | 0 | uint16 0~65535 |
35 (0x23) | ||||
36 (0x24) | PWM Duty 5 | R/W (NVM) | 0 | uint16 0~65535 |
37 (0x25) | ||||
38 ~ 47 | (reserve) | R | - | uint8 |
48 (0x30) | Capture 0 | R/W | 0 | uint16 0~65535 |
49 (0x31) | ||||
50 (0x32) | Capture 1 | R/W | 0 | uint16 0~65535 |
51 (0x33) | ||||
52 (0x34) | Capture 2 | R/W | 0 | uint16 0~65535 |
53 (0x35) | ||||
54 (0x36) | Capture 3 | R/W | 0 | uint16 0~65535 |
55 (0x37) | ||||
56 (0x38) | OUT | R/W | 0 | uint16 0~4095 |
57 (0x39) | ||||
58 (0x3A) | IN | R | - | uint16 0~4095 |
59 (0x3B) | ||||
60 (0x3C) | ADV 0 | R | - | uint16 0~4095 |
61 (0x3D) | ||||
62 (0x3E) | ADV 1 | R | - | uint16 0~4095 |
63 (0x3F) | ||||
64 (0x40) | ADV 2 | R | - | uint16 0~4095 |
65 (0x41) | ||||
66 (0x42) | ADV 3 | R | - | uint16 0~4095 |
67 (0x43) | ||||
68 (0x44) | ADV 4 | R | - | uint16 0~4095 |
69 (0x45) | ||||
70 (0x46) | ADV 5 | R | - | uint16 0~4095 |
71 (0x47) | ||||
72 (0x48) | ADV 6 | R | - | uint16 0~4095 |
73 (0x49) | ||||
74 (0x4A) | ADV 7 | R | - | uint16 0~4095 |
75 (0x4B) | ||||
76 (0x4C) | ADV 8 | R | - | uint16 0~4095 |
77 (0x4D) | ||||
78 (0x4E) | ADV 9 | R | - | uint16 0~4095 |
79 (0x4F) | ||||
80 (0x50) | ADV 10 | R | - | uint16 0~4095 |
81 (0x51) | ||||
82 (0x52) | ADV 11 | R | - | uint16 0~4095 |
83 (0x53) | ||||
84 ~ 101 | (reserve) | R | - | uint8 |
102 (0x66) | DAV | R/W | - | uint16 0~1023 |
103 (0x66) | ||||
104 ~ 107 | (reserve) | R | - | uint8 |
108 (0x6C) | OPR MODE | R/W (NVM) | 12 | uint8 0~12 |
109 (0x6D) | Axis Placement | R/W (NVM) | 0 | uint8 0~7 |
110 (0x6E) | Accel X | R | - | float ? |
111 (0x6F) | ||||
111 (0x6F) | ||||
111 (0x6F) | ||||
112 (0x70) | Accel Y | R | - | float ? |
113 (0x71) | ||||
113 (0x71) | ||||
113 (0x71) | ||||
114 (0x72) | Accel Z | R | - | float ? |
115 (0x73) | ||||
115 (0x73) | ||||
115 (0x73) | ||||
116 (0x74) | Magnet X | R | - | float ? |
117 (0x75) | ||||
117 (0x75) | ||||
117 (0x75) | ||||
118 (0x76) | Magnet Y | R | - | float ? |
119 (0x77) | ||||
119 (0x77) | ||||
119 (0x77) | ||||
120 (0x78) | Magnet Z | R | - | float ? |
121 (0x79) | ||||
121 (0x79) | ||||
121 (0x79) | ||||
122 (0x7A) | Gyro X | R | - | float ? |
123 (0x7B) | ||||
123 (0x7B) | ||||
123 (0x7B) | ||||
124 (0x7C) | Gyro Y | R | - | float ? |
125 (0x7D) | ||||
125 (0x7D) | ||||
125 (0x7D) | ||||
126 (0x7E) | Gyro Z | R | - | float ? |
127 (0x7F) | ||||
127 (0x7F) | ||||
127 (0x7F) | ||||
128 (0x80) | Euler Heading | R | - | int16 -32768~32768 |
129 (0x81) | ||||
130 (0x82) | Euler Roll | R | - | int16 -32768~32768 |
131 (0x83) | ||||
132 (0x84) | Euler Pitch | R | - | int16 -32768~32768 |
133 (0x85) | ||||
134 (0x86) | Quaternion i | R | - | float ? |
135 (0x87) | ||||
135 (0x87) | ||||
135 (0x87) | ||||
136 (0x88) | Quaternion j | R | - | float ? |
137 (0x89) | ||||
137 (0x89) | ||||
137 (0x89) | ||||
138 (0x8A) | Quaternion k | R | - | float ? |
139 (0x8B) | ||||
139 (0x8B) | ||||
139 (0x8B) | ||||
140 (0x8C) | Quaternion real | R | - | float ? |
141 (0x8D) | ||||
141 (0x8D) | ||||
141 (0x8D) | ||||
142 (0x8E) | Linear Acc X | R | - | int16 -32768~32768 |
143 (0x8F) | ||||
144 (0x90) | Linear Acc Y | R | - | int16 -32768~32768 |
145 (0x91) | ||||
146 (0x92) | Linear Acc Z | R | - | int16 -32768~32768 |
147 (0x93) | ||||
148 (0x94) | Gravity Vect X | R | - | int16 -32768~32768 |
149 (0x95) | ||||
150 (0x96) | Gravity Vect Y | R | - | int16 -32768~32768 |
151 (0x97) | ||||
152 (0x98) | Gravity Vect Z | R | - | int16 -32768~32768 |
153 (0x99) | ||||
154 (0x9A) | Temperature | R | - | int8 -128~127 |
155 (0x9B) | SYS STAT | R | - | uint8 |
156 (0x9C) | SYS ERR | R | - | uint8 |
157 (0x9D) | USER 0 | R/W | 0 | uint8 0~255 |
158 (0x9E) | USER 1 | R/W | 0 | uint8 0~255 |
159 (0x9F) | USER 2 | R/W | 0 | uint8 0~255 |
160 (0xA0) | USER 3 | R/W | 0 | uint8 0~255 |
161 (0xA1) | USER 4 | R/W | 0 | uint8 0~255 |
162 (0xA2) | USER 5 | R/W | 0 | uint8 0~255 |
163 (0xA3) | USER 6 | R/W | 0 | uint8 0~255 |
164 (0xA4) | USER 7 | R/W | 0 | uint8 0~255 |
165 (0xA5) | USER 8 | R/W | 0 | uint8 0~255 |
166 (0xA6) | USER 9 | R/W | 0 | uint8 0~255 |
167 (0xA7) | USER 10 | R/W | 0 | uint8 0~255 |
168 (0xA8) | USER 11 | R/W | 0 | 0~uint8 255 |
169 (0xA9) | USER 12 | R/W | 0 | uint8 0~255 |
170 (0xAA) | USER 13 | R/W | 0 | uint8 0~255 |
171 (0xAB) | USER 14 | R/W | 0 | uint8 0~255 |
172 (0xAC) | USER 15 | R/W | 0 | uint8 0~255 |
173 (0xAD) | USER 16 | R/W | 0 | uint8 0~255 |
174 (0xAE) | USER 17 | R/W | 0 | uint8 0~255 |
175 (0xAF) | USER 18 | R/W | 0 | uint8 0~255 |
176 (0xB0) | USER 19 | R/W | 0 | uint8 0~255 |
デバイスの通信速度で、デフォルトは1(1M[bps])です。
設定可能なBaudrateは以下の通りです。
Set value | Baudrate[bps] |
0 | 9600 |
1 | 57600 |
2 | 115200 |
3 | 1000000 |
4 | 2000000 |
6 | 4000000 |
※ホストとのボーレートの誤差は±2%以下が要求されます。
一部の根強いリクエストにより近藤科学殿のKRSシリーズやB3Mシリーズと一緒に使用する事を想定し、これらのプロトコルに対応したクライアント機能をsmpl20とsmpl21として提供します。
ICSの場合は適用例が極めて少ない拡張コマンドを使用してコントロールテーブルへのアクセス手段を提供しています。拡張コマンドではコントロールテーブル上で1バイトに相当するデータが2バイトに分割されて送受信される事に注意が必要です。また書き込んだ値等が許容範囲外の場合はレスポンスを返しません。
B3Mの場合はREAD/WRITE/RESETコマンドのみに応答します。
またIDの書き換えはコントロールテーブル上の値もしくはIDコマンドいずれを用いても行えますが、IDを始めNVM領域のアイテムを不揮発メモリに保存するにはDynamixel版と同様に、任意のアイテムの値を書き換えた後にコントロールテーブル中のWriteNVMに1を書き込む必要があります。
複数バイトにまたがるアイテムはリトルエンディアンでストアされます。
ICS/B3M版 | ||||
Address | Item | Access | Default Value | Type/Range |
0 (0x0) | Model Number | R | 0x4023 | uint16 |
1 (0x1) | ||||
2 (0x2) | Version of Firmware | R | 0x41 | uint8 |
3 (0x3) | ID | R/W (NVM) | - | uint8 |
4 (0x4) | Baudrate | R/W (NVM) | - | uint8 |
5 (0x5) | WriteNVM | R/W | 0 | uint8 0~1 |
6 (0x6) | LED | R/W | 0 | uint8 0~1 |
7 (0x7) | Terminator | R/W (NVM) | 1 | uint8 0~1 |
8 (0x8) | Pin Config 0 | R/W (NVM) | 0 | uint8 0~20 |
9 (0x9) | Pin Config 1 | R/W (NVM) | 0 | uint8 0~20 |
10 (0xA) | Pin Config 2 | R/W (NVM) | 0 | uint8 0~20 |
11 (0xB) | Pin Config 3 | R/W (NVM) | 0 | uint8 0~20 |
12 (0xC) | Pin Config 4 | R/W (NVM) | 0 | uint8 0~20 |
13 (0xD) | Pin Config 5 | R/W (NVM) | 0 | uint8 0~20 |
14 (0xE) | Pin Config 6 | R/W (NVM) | 0 | uint8 0~20 |
15 (0xF) | Pin Config 7 | R/W (NVM) | 0 | uint8 0~20 |
16 (0x10) | Pin Config 8 | R/W (NVM) | 0 | uint8 0~20 |
17 (0x11) | Pin Config 9 | R/W (NVM) | 0 | uint8 0~20 |
18 (0x12) | Pin Config 10 | R/W (NVM) | 0 | uint8 0~20 |
19 (0x13) | Pin Config 11 | R/W (NVM) | 0 | uint8 0~20 |
20 (0x14) | PWM Frequency | R/W (NVM) | 0 | uint16 0~50000 |
21 (0x15) | ||||
22 (0x16) | PWM Duty 0 | R/W (NVM) | 0 | uint16 0~65535 |
23 (0x17) | ||||
24 (0x18) | PWM Duty 1 | R/W (NVM) | 0 | uint16 0~65535 |
25 (0x19) | ||||
26 (0x1A) | PWM Duty 2 | R/W (NVM) | 0 | uint16 0~65535 |
27 (0x1B) | ||||
28 (0x1C) | PWM Duty 3 | R/W (NVM) | 0 | uint16 0~65535 |
29 (0x1D) | ||||
30 (0x1E) | PWM Duty 4 | R/W (NVM) | 0 | uint16 0~65535 |
31 (0x1F) | ||||
32 (0x20) | PWM Duty 5 | R/W (NVM) | 0 | uint16 0~65535 |
33 (0x21) | ||||
34 (0x22) | Capture 0 | R/W | 0 | uint16 0~65535 |
35 (0x23) | ||||
36 (0x24) | Capture 1 | R/W | 0 | uint16 0~65535 |
37 (0x25) | ||||
38 (0x26) | Capture 2 | R/W | 0 | uint16 0~65535 |
39 (0x27) | ||||
40 (0x28) | Capture 3 | R/W | 0 | uint16 0~65535 |
41 (0x29) | ||||
42 (0x2A) | OUT | R/W | 0 | uint16 0~4095 |
43 (0x2B) | ||||
44 (0x2C) | IN | R | - | uint16 0~4095 |
45 (0x2D) | ||||
46 (0x2E) | ADV 0 | R | - | uint16 0~4095 |
47 (0x2F) | ||||
48 (0x30) | ADV 1 | R | - | uint16 0~4095 |
49 (0x31) | ||||
50 (0x32) | ADV 2 | R | - | uint16 0~4095 |
51 (0x33) | ||||
52 (0x34) | ADV 3 | R | - | uint16 0~4095 |
53 (0x35) | ||||
54 (0x36) | ADV 4 | R | - | uint16 0~4095 |
55 (0x37) | ||||
56 (0x38) | ADV 5 | R | - | uint16 0~4095 |
57 (0x39) | ||||
58 (0x3A) | ADV 6 | R | - | uint16 0~4095 |
59 (0x3B) | ||||
60 (0x3C) | ADV 7 | R | - | uint16 0~4095 |
61 (0x3D) | ||||
62 (0x3E) | ADV 8 | R | - | uint16 0~4095 |
63 (0x3F) | ||||
64 (0x40) | ADV 9 | R | - | uint16 0~4095 |
65 (0x41) | ||||
66 (0x42) | ADV 10 | R | - | uint16 0~4095 |
67 (0x43) | ||||
68 (0x44) | ADV 11 | R | - | uint16 0~4095 |
69 (0x45) | ||||
70 (0x46) | DAV | R/W | - | uint16 0~1023 |
71 (0x47) | ||||
72 (0x48) | OPR MODE | R/W (NVM) | 12 | uint8 0~12 |
73 (0x49) | Axis Placement | R/W (NVM) | 0 | uint8 0~7 |
74 (0x4A) | Accel X | R | - | int16 -32768~32768 |
75 (0x4B) | ||||
76 (0x4C) | Accel Y | R | - | int16 -32768~32768 |
77 (0x4D) | ||||
78 (0x4E) | Accel Z | R | - | int16 -32768~32768 |
79 (0x4F) | ||||
80 (0x50) | Magnet X | R | - | int16 -32768~32768 |
81 (0x51) | ||||
82 (0x52) | Magnet Y | R | - | int16 -32768~32768 |
83 (0x53) | ||||
84 (0x54) | Magnet Z | R | - | int16 -32768~32768 |
85 (0x55) | ||||
86 (0x56) | Gyro X | R | - | int16 -32768~32768 |
87 (0x57) | ||||
88 (0x58) | Gyro Y | R | - | int16 -32768~32768 |
89 (0x59) | ||||
90 (0x5A) | Gyro Z | R | - | int16 -32768~32768 |
91 (0x5B) | ||||
92 (0x5C) | Euler Heading | R | - | int16 -32768~32768 |
93 (0x5D) | ||||
94 (0x5E) | Euler Roll | R | - | int16 -32768~32768 |
95 (0x5F) | ||||
96 (0x60) | Euler Pitch | R | - | int16 -32768~32768 |
97 (0x61) | ||||
98 (0x62) | Quaternion W | R | - | int16 -32768~32768 |
99 (0x63) | ||||
100 (0x64) | Quaternion X | R | - | int16 -32768~32768 |
101 (0x65) | ||||
102 (0x66) | Quaternion Y | R | - | int16 -32768~32768 |
103 (0x67) | ||||
104 (0x68) | Quaternion Z | R | - | int16 -32768~32768 |
105 (0x69) | ||||
106 (0x6A) | Linear Acc X | R | - | int16 -32768~32768 |
107 (0x6B) | ||||
108 (0x6C) | Linear Acc Y | R | - | int16 -32768~32768 |
109 (0x6D) | ||||
110 (0x6E) | Linear Acc Z | R | - | int16 -32768~32768 |
111 (0x6F) | ||||
112 (0x70) | Gravity Vect X | R | - | int16 -32768~32768 |
113 (0x71) | ||||
114 (0x72) | Gravity Vect Y | R | - | int16 -32768~32768 |
115 (0x73) | ||||
116 (0x74) | Gravity Vect Z | R | - | int16 -32768~32768 |
117 (0x75) | ||||
118 (0x76) | Temperature | R | - | int8 -128~127 |
119 (0x77) | SYS STAT | R | - | uint8 |
120 (0x78) | SYS ERR | R | - | uint8 |
ネットワーク上の個体を特定する固有の番号です。同一ネットワークに同じIDを持ったデバイスが存在してはなりません。
設定可能な範囲はICSの場合は0~31でB3Mの場合は0~254、デフォルト値はICSの場合は31でB3Mの場合は254です。
デバイスの通信速度です。
ICSの場合の設定可能なBaudrateは以下の通りです。
ICS版 | |
Set value | Baudrate[bps] |
0 | 115200 |
1 | 625000 |
2 | 1250000 |
B3Mの場合はデバイスの通信速度を決める分周値を指定し、デフォルトは1(1M[bps])です。通信速度は次式で導かれます。
Baudrate[bps]=2000000 / (Set value + 1)
主なBaudrateは以下の通りです。
B3M版 | |||
Set value | Actual Baudrate[bps] | Specified Baudrate[bps] | Error[%] |
0 | 2000000.0 | 2000000 | 0.000 |
1 | 1000000.0 | 1000000 | 0.000 |
3 | 500000.0 | 500000 | 0.000 |
4 | 400000.0 | 400000 | 0.000 |
7 | 250000.0 | 250000 | 0.000 |
9 | 200000.0 | 200000 | 0.000 |
16 | 117647.1 | 115200 | -2.124 |
34 | 57142.9 | 57600 | 0.794 |
103 | 19230.8 | 19200 | -0.160 |
207 | 9615.4 | 9600 | -0.160 |
※ホストとのボーレートの誤差は±2%以下が要求されます。