hmx-17の日記

技術ネタとかプライベート

SensirionのSPS30(PM2.5センサ)を触る (2)

SPS30とお話するに当たってプロトコルを理解する必要があります。
SPS30のUART接続では SHDLC(Sensirion High-Level Data Link Control)を使用してSPS30と接続します。
詳しいことはデータシートをご確認頂ければ良いのですが、
1. 0x7Eで始まって0x7Eで終わる
2. 終わりの0x7Eの前にFrame(0x7Eの後~データペイロードまで)のチェックサムを取る
3. 送受信時に特定のバイトは、別のバイト列に置き換える
というお約束が必要です。
ただ、データシートに書いてあるサンプルフレームをそのまま送る分には
受信の時に気を遣うだけでいいので気が楽かもしれません。
さて、実際の計測の流れですが
0. デバイス情報などを確認する(オプション)
1. 計測を開始する
2. データを取得する
3. 計測を終了する
という流れだけで終わりです。

実際に実装をしてみましたが、何故か正しいバイト列が帰ってこないケースが多く
I2C通信の方が安定するのでは……ということもありI2C側でも検証しようと思います。