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個のスイッチを開放すると受信モードに移行します。

SENT対応低価格ロジックアナライザー

SENTのデータをデコード出来る低価格のロジックアナライザーを探してみました。

Saleae Logic か LAP-C がSENTプロトコルに対応していないか期待したのですが
残念ながら未対応でした。(この2つはすでに持っているので購入の必要が無い)

IKA LOGIC
ScanaPLUSScanaQuad がSENTに対応しているようです。
2つ共「ScanaStudio」という同じソフトを使っています。

多分一番安いSQ25でもSENTの解析は出来ると思いますがこれだと
Serial protocolでのトリガがかからなさそうなのでもう一つ上の
SQ50の購入を検討しています。

本体の購入は「通販ショップ エレファイン」さんで購入できそうです。
ちなみにSQ25が11,232円です。
(当ブログは「通販ショップ エレファイン」さんとは何の関係もございません)

SENT 出力のセンサー

SENTのテストの為のマイコンボードはMicrochip社の
「dsPIC33EV 5V CAN-LIN Starter Kit」を購入したが
肝心のセンサーはまだ購入していないので探してみたがなかなか見つからない。

なんとか以下のセンサーを見つけた。
(「Digi-Key」から購入可)

Melexis社

MLX90367 : Triaxis Position Sensor Feat. SENT Protocol
MLX90366 : Triaxis Position Assembly Feat. SENT Protocol

Micronas社
HAL3735DJ : Programmable Hall-Effect Sensor

当然ながらデータシートは英語です。

Microchip社のCan-Lin Starter Boardを購入

SENTの実験を行う為にMicrochip社のTest Boardを購入しました。
製品名は「Can-Lin Starter Board」ですがSENT用のI/Fも実装されています。
搭載のマイコンチップは「dsPIC33EV256GM106」です。
このCPUはSENTの受信モード、送信モード両方で使えるみたいです。
またフラッシュプログラマーとしてPICKIT3互換の回路を実装しているために
別途プログラマーの購入の必要がありません。(自分は元々PICKIT3を持っていましたが)

RSオンラインで10,418円で購入、注文した翌日には届きました。
User’s GuideとDemo CodeはMicrochipのホームページからダウンロード出来ます。

まだ使っていませんが徐々に使っていく予定です。

Microchip社のCan Lin Sent Starter Kit
Microchip社のCan Lin Sent Starter Kit

このブログを始めるにあたって

I2C、SPI、UARTその他いくつかのシリアルインターフェースに関しては知っていましたが
「SENT(Single Edge Nibble Transmission)」に関してはその存在すらも知りませんでした。

「SENT(Single Edge Nibble Transmission)は、センサとECUマイコンシステムを接続するシリアル・バスで、主に車載アプリケーションに用いられてる。」
現状では車載以外では使用例がなさそうです。

「SAE Internationalで2007年4月に最初の仕様書が発行されています。
2007-04 J2716_200704
2008-02 J2716_200802
2010-01 J2716_201001
2016-04 J2716_201604
つい先日最新の仕様書が発行されていますが
現在市場に流通しているSENT対応の製品は 「2010-01 J2716_201001」準拠だと思います。

まだまだ情報が少ない「SENT」なので自分の備忘録もかねて
調べたことを綴って行こうかと思っています。

本当に情報が少ないので間違った解釈も多々有ると思いますのでお気付きの点がございましたらご指摘をお願いします。