SENT出力センサーMLX90366の波形計測 動きました

前回波形の幅を測ってデータがオール0だったために動いていないと判断していたセンサーですが、ちゃんとデータ取れました。

キャリブレーションパルス幅が168μsなので 1Tick = 3μs
各データのパルス幅を3で割って12を引くといてデータを計算しました。

パルス長(μs) Tick数 データ
キャリブレーションパルス 168 56
ステータスニブル 60 20 8
データニブル[0] 63 21 9
データニブル[1] 60 20 8
データニブル[2] 78 26 14
データニブル[3] 51 17 5
データニブル[4] 42 14 2
データニブル[5] 54 18 6
CRCニブル 78 26 14

2016-07-19

SENT出力センサーMLX90366の波形計測

先日購入して、データが送られているところまで確認していた
MelexisのPosition Senspr MLX90366 の波形から実際のデータを計算してみました。
データがオール0、動いていないっぼいです。

パルス長(μs) Tick数 データ
キャリブレーションパルス 173 56
ステータスニブル 37 12 0
データニブル[0] 37 12 0
データニブル[1] 37 12 0
データニブル[2] 37 12 0
データニブル[3] 37 12 0
データニブル[4] 37 12 0
データニブル[5] 37 12 0
CRCニブル 52 17 5
SENT出力センサーMLX90366の波形
SENT出力センサーMLX90366の波形

SENT仕様書 J2716_201001 から J2716_201604 への変更点

SENT仕様書 J2716_201001 から J2716_201604 への変更点を
自分なりに翻訳してみました。
まちがっていたらすみません。

1 クロック・ティック時間の変動に対してのクロックの変動を明確化
2 高速12bitセンサーのアペンディクス
3 シリアルメッセージの非使用とイニシャライズの変更
4 独立したセンサー内の5V電源のオプションサポートの変更
5 より多くの柔軟性と診断情報を許容する為にシリアルメッセージのサイクルを64メッセージ以下に変更
6 SENTの間違ったCRCによって検出されないSENTフレームの為のEMC感受性試験ガイドラインの明確化
7 付録A.6温度センサーの要件を追加
8 付録Eを追加
9 付録G 推奨コネクターを追加
10 付録H(SENTのデータフレーム構造の変更と一般的なセンサーの要件を付録AからHへの移動
11 より高電流のセンサーサポートの変更
12 E.3エラーメッセージと信号を追加
13 A.7 温度センサーと一体化したポジションセンサーの追加
14 SENTの標準構成の概要を追加(3.2)

SENT J2716_201604

SAE Internationalのページから
SENTの仕様書を購入しました。
購入したのは
J2716_201604 で
4月に改版された分です。
その前の J2716_201001 が 56ページで 今回購入した J2716_201604 は120ページになっています。
価格はUS$で74ドル、日本円で8151円でした。

購入はこちらから
SENT – Single Edge Nibble Transmission for Automotive Applications

Syncフレームのパルス長確認

dsPIC33EV Starter kit のサンプルソフトでは TickTime が 50μsになっていたので
3μsに変更して Syncフレームの TICK長を確認してみました。

計測結果166μsでした。
3μs(1 Tick Time) × 56 = 168μs

実測値と2μsの誤差がありますが問題ない範囲です。
(測定に使っているロジックアナライザーの性能誤差かも)

2016-05-23

Message_Frame
dsPIC33/PIC24 ファミリ リファレンス マニュアル、SENT (Single-Edge Nibble Transmission)モジュール」より

用語
TICK TIME : SENTでパルス幅を決定する最小(基準)単位の時間

Microchip社のSENT (Single-Edge Nibble Transmission) モジュールのマニュアル

SENT関係の仕様書やマニュアルはほとんど英語版しかありませんが
Microchip社で日本語のマニュアルが配布されています。

但し書きとして
「注意:この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジナルの英語版をご参照願います。」
と有りますが、じゅうぶん参考になると思います。

Microchip社
dsPIC33/PIC24 ファミリ リファレンス マニュアル、SENT (Single-Edge Nibble Transmission)モジュール

dsPIC33EV 5V CAN-LIN Starter KitでSENT送信

dsPIC33EV 5V CAN-LIN Starter KitでSENT出力の波形を確認しました。
波形はZeroplus社のLAP-Cで計測したSENT信号とモニタ用のUART信号です。
パルス長の確認とかはまだですが、それらしい波形は出ています。

スクリーンショット 2016-05-22 15.01.59

スクリーンショット 2016-05-22 15.01.37

シリアルポートに出力されているモニタデータです。
2016-05-22

Nibble(ニブル)とは?

Nibbleとは?
長年ブログラマーをやっていて、恥ずかしながら「nibble」の意味を知りませんでした。
1/2バイト、通例 4 ビットのことを「nibble」と表現します。

SENTはデータを4bit単位で扱うので、このニブルがすごく重要なキーワードとなります。

weblioでの「nibble」の検索結果

dsPIC33EV 5V CAN-LIN Starter KitでSENT送信(準備編)

マイクロチップ社のホームページからダウンロードしたデモプログラムでSENT送信をやってみました。。

まずはソースコードを変更してSENT送信が動くようにします。

ソースコードの 45行 ~ 85行 の翻訳

* その他の注意事項:
*ソフトウェアはdsPIC33EV256GM106スターターキットにロードされるように設計されています。
*
*どのようにデモが行われるか。
* a)CAN、LINおよびSENTとスイッチ、POTはすべて使用でき、そして温度データは3つの信号に送信されます。
* b)HWインターフェイスは1秒毎にPOT電圧、スイッチのステータスおよび温度(摂氏)を送信します。
* c)LEDは送信モード中に関連したスイッチを押したときに点灯します。
* d)CANのスピードは、ビットあたり10Tqの250kbpsの設定です
* e)LINスピードは4800bpsであり、アナライザのタイムアウトは1000ミリ秒に設定する必要があります
* f)LINインタフェースは、BAT端子に外部+ 12VDCの接続が必要です。
*
*ボードのデフォルトのパワーオン状態は送信モードです。これは1-2-3-2-1を点滅する3つのLEDで表示されます。
*MCLRスイッチが押されている間に3つのユーザスイッチのいずれかが100ミリ秒間以上押されている場合 、
*ボードは受信モード変わります。3つのLEDが5回点滅します。
*受信モードを開始するためにスイッチ(複数可)を解放(OFF)する必要があります。
*
*送信および受信モードの両方をUARTでモニタ出来ます。これは、端末にASCIIデータで表示します。
*
*次のように外部ADM00393ボードを接続すると、すべてのインターフェイスのメッセージのモニタが可能となります。
*
* ADM00393の電圧設定ジャンパーが5Vになっているのを確認してください!必要に応じて3ジャンパ線があります。
*
* TXD – RB4は、ADMのRXD端子に接続します
* GND – GNDは、ADMのG端子に接続します
* DVDD – DVDDは、ADMのVDDピンに接続します
*
* デモの設定は、ボーレートは38400/8 / N / 1に設定されています。これは、ソースを変更して再コンパイルすることによって変更することができます
* 端末プログラムが、同じに設定されていることを確認してください。
*
* CANメッセージコードは、AN1249アプリケーションノートに基づいています。 CANの設定の詳細については、それを参照してください。
*
* 重要!
*
* このデモを実行するためには、CANをアクティブにする必要があります。これはCANと接続するCANバス、CANアナライザまたは他のいずれかが必要です。
* DM330018ボードは、CANインタフェースに接続されます。そうでなければ、プログラムコードは、CANメッセージを受信する箇所で「ハングアップ」します。
* CANを接続しない場合(SENTまたはLINだけ使いたい場合)、あなたは、ソースコードの行をコメントアウトして再コンパイルする必要があります。
* 手順については、ユーザーズ・ガイドを参照してください。
*
*
* プロセッサは、水晶+ PLLで起動します、クロックの切り替えはしません!

ユーザーズ・ガイドからCANを無効にする方法
CANを無効にする方法はマニュアルの27ページに書いてあります。
要は ソースファイル(33EV_main_v11.c)の472行目の
CAN_Transmit()をコメントアウトするだけです。

コメントアウト後にビルドしてStarter Kitにプログラムを書き込みます。

プログラム書込み後 MCLR ボタンを押すとLEDが
1→2→3の順番に点灯して3→2→1の順番に消灯します。
この状態で Starter Kit はトランスミットモードで動作しています。

受信モードへの切り替えに関して
自分の翻訳が違っているのかもしれませんが実際には
3個のスイッチ(1個でも複数でも可)とMCLRスイッチを同時に押して
先にMCLRスイッチを開放して次に3個のスイッチを開放すると受信モードに移行します。