« 鬱と適応障害 | トップページ | 英会話と組み込みスキル »

2023年1月 7日 (土)

年末年始休みの開発テーマ

連休に何もしないのも退屈だし、
しかし、直近のテーマは少々停滞気味だ....

ということで、長らく謎の、CANの通信不調に
対する基礎的な実験準備をする。

------

どうも、このCANというヤツ。
いい加減な設定でも、何となく動いているように
見えるのもあって、危険なセッティングのものが
製品として出回っているような気がする。

気がする、どまりなのは、
製品のCANセッティングに関する情報が
取れることはまずないし。


なんなら、製造元がそもそもこの手の
セッティングの存在について
全く把握してない、って状況もある。

本職のはずなのに、製造元のはずなのに、
このレベルの技術的問い合わせに
回答できるところなんて、ほんとに
お目にかかれないんだよなあ....


で、こんな微妙なものを買い集めて
なんとなく試作品を作って、納品したりするもんだから
なんとも制御不能なトラブルが起きたりする。

もう、ずっとこの状況は変わらないし、
周りもみな、そういう状況なので、
”そういうもの”としてすら、扱われている始末だ。

こんなんだから、皆扱うのを嫌ったりするんだよな....

------

これじゃどうにもならないんだけど、
だれも手を付けようとはしていなさそうだ。

こういうのは、克服すると色々オイシイ話もあったりするので
ちょっと掘ってみることにする。


------

怪しんでいるのは、データサンプリングタイミングに
関するところ。

具体的には、CANコントローラーのうち、
SJWのセッティングがおかしい、
もしくはSJWが機能しない状態にあるのでは?と
思われるものの存在。

あぶりだすのも難しいし、特定できたところで
製品の中身をいじれる可能性は、ほぼないので
追及しても仕方ない、ともいえるんだけど。

少なくとも、状況を把握できれば、
本質的な対策の可能性は出てくる。

------

ここから先は推測なんだけど、
どうやってこの状況を作り出すか、について。

微妙にビットクロックレートをずらしてやれば、
そのうち完全に同期がずれて、SJWが動作するようになる。
通常のSTD IDで、8バイトデータであれば、
1パケット111ビット~なので、 0.5~1%ほど
ずらして、エラーが頻発するようだと
同期機構が機能してない、と判断できそう。

マイコンでやろうとすると、
システムクロックを外部のVFOとかで作って
微調整すればいけそうだけど、
動作中に周波数を連続的に可変出来て、
かつ安定した動作ができるVFOはなかなかない。

------

そこで、STM32F4で、PLLのセッティングを動作中に
いじることで、システムクロックを152MHz~168MHzの
間を、0.25MHzステップで、可変できるようにしてみた。

これで、APB1につながっているCANコントローラが
出力するパケットのビットレートも
950kbps~1050kbpsの間で調整できるようになる。

これを、CANの送信エラーカウンタをモニタしながら
操作することで、SJWが機能不全で、
いきなりエラーを出し始めるような、
躾のできてないユニットがあぶりだせる
のではないか?と思っている。

------

とりあえず、PLLをいじって、システムクロックを
微調するのはうまく機能しているようだ。

システムの暴走とかもなさそう。

これで、実際のCAN BUSにつなげてみて、
わざとずれたビットレートパケットに対する
BUSの挙動を洗い出してみる。

| |

« 鬱と適応障害 | トップページ | 英会話と組み込みスキル »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 鬱と適応障害 | トップページ | 英会話と組み込みスキル »