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送信(準備編)

マイクロチップ社のホームページからダウンロードしたデモプログラムで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個のスイッチを開放すると受信モードに移行します。

ZEROPLUSのLAP-CがWIn10に対応&追加プロトコル無料

秋月電子やマルツパーツで販売されているZEROPLUSのLAP-Cシリーズのソフトウェア&ドライバーが
Win8、Win10対応になりました。
おまけに110種以上のプロトコルが無料に!
(最新版のソフトウェアーは標準ですべてのプロトコルに対応していますので別途プロトコルファイルをダウンロードする必要はありません。)

パソコンをWin10にアップデートしてから使えなくなっていたので
これで復活です。
ソフトウェアーダウンロードページ

対応プロトコル一覧

マルツオンライン(Amazon)

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