【I2C, 1-Wire】シリアル通信 Part.2【SPI, LIN, 4-20mA】at DENKI
【I2C, 1-Wire】シリアル通信 Part.2【SPI, LIN, 4-20mA】 - 暇つぶし2ch2:774ワット発電中さん
21/04/17 17:02:07.67 dwF4MmPD.net
4-20mAだけが異質だな…

3:774ワット発電中さん
21/04/17 17:04:53.42 oG0Sw79D.net
ここんとこオシロスレで聞いて1-Wireを調べてた。
ちょっと遅いが伝送距離500mとか、電力も送れるとか、デバイスを沢山ぶら下げられるとか、それで線2本とか、規格としては中々良いね。
でもなぁ~、Maxim社がライセンスをガチガチにしている為か、ほぼMaxim社しかデバイスを作ってない。Microchip社がマスター側を少しやっている位。
で、Maxim社だから高い高い。コストメリットが無いなぁ~

4:774ワット発電中さん
21/04/17 17:11:16.47 oG0Sw79D.net
>>2
おわっ! 宣伝せずにしばらく俺様用チラ裏スレにしようと思っていたのに、見つけるの早!!
4-20mAにはHART通信があるからね。
低速で変なシリアル通信規格に味付けしてみたくてさ

5:774ワット発電中さん
21/04/17 17:25:08.22 dwF4MmPD.net
>>4
なるほど。
センサーの校正値とかにTEDSも含まれそう。
そういやVGAケーブルを介したモニタのプラグアンドプレイはどんな通信をしてるんだろうって思ったらI2Cっぽい。
基板外で使われるI2Cの例になるかな。

6:774ワット発電中さん
21/04/17 17:49:27.71 jswc15C5.net
>>5
DVI, HDMI, DisplayPortもI2Cで通信してるよ。
オシロスレッドのI2Cキッズがドヤ顔するでしょうね。

7:774ワット発電中さん
21/04/17 23:15:50.54 oG0Sw79D.net
>>5
TEDSは知らんかった。校正とかの記録があるから、比較的高価なセンサーで使うのかな。
いきなり新しい事を知ったよ thx
ディスプレイにI2Cは使われてるね。EDIDを読み取る為に。
でも中身的にはディスプレイ側にEEPROMがぶら下がっているだけ。電源もPC側が供給してる。
ただしDisplayPortはもっと進化しているよ。
DVIやHDMIとの上位互換性の為にI2CモードもあるがDisplayPort時にはLVDS双方向モードになり、EDIDは勿論、レーン構成のやり取りや信号品質のやり取りもしているんだ >>6

8:774ワット発電中さん
21/04/17 23:18:06.03 oG0Sw79D.net
>>6
奴がここに来ませんようにw
なにせまともな会話にならないからなぁ

9:774ワット発電中さん
21/04/17 23:38:31.35 oG0Sw79D.net
1-Wireの独りネタw >>3
1-Wireデバイスは高い。でも、1-Wire未対応チップでもこんな回路で1-Wireに接続出来るとか。
URLリンク(www.marubun.co.jp)
面白いね、実に面白い!
ならさ、デバイス側もMCUにすればADC, DAC, GPIO, I2Cに変換出来て色々と接続出来るね。
安価なMCUは50円位だし、ちっこいMCUなら1-Wire経由の電源で十分だし、Maxim社のラインナップの制約を受けなくなるし!
で、俺がこれを思い付いたって事は誰か先人が既にやっているに違いない(笑)
MCU用のオープンソースがどっかに落ちてるんじゃね?

10:774ワット発電中さん
21/04/18 07:47:26.62 I8nUAnHb.net
オシロスレでも聞いて誘導されてきたんだが、相談に乗ってほしい。
STM32F446nucleoボードと秋月のBMX055をI2Cで接続しているんだが、エラーが多発するんだ。
波形はこんな感じで、リンギングが原因だと思う。
URLリンク(imgur.com)
リンギング対策で
・ダンピング抵抗50~500Ωまで
・チップフェライトビーズ120~600Ωまで
・パイ型フィルタ(URLリンク(www.murata.com))
を試したんだが、一番ましなチップフェライトビーズ120Ωでも上の画像程度。
ボードのピンからBMX055までの配線長は10㎝以下。
通信速度は400kbpsで100kbpsだと速度的に厳しいのでここは妥協できない。
どうすればエラーが出ないレベルまで下げられるかな?

11:774ワット発電中さん
21/04/18 08:16:59.32 anbJfRZg.net
あ~ぁ、建ててまだ24時間も経って無いのにバラされてしまったよorz
>>10
リンギングが原因では無いと思うな。気になるならダイオードクリップしてしまえw
でさ、I2Cはオープンドレインで接続する規格。つまり立ち上がりは抵抗による浮遊容量へのチャージ波形。つまりCR時定数の波形になる。
なのに立ち上がりでオーバーシュート、つまりSTM32のI2C駆動設定を間違えているよ。

12:774ワット発電中さん
21/04/18 10:34:03.95 kSMNlBcZ.net
たしかにオープンドレインには見えない波形。
プルアップ抵抗はどれぐらいですか?
あと、STM32のI2Cの初期設定はどんなになってるんだろう。
と思ったけど、なんか立ち上がりのはじめの部分(1.5Vまで上がるところ)の勾配が不思議。
単純にプッシュプルになってるならこうはならないような。
STM32とBMX055の間に電圧変換とかバッファとかは入ってないですね?

13:774ワット発電中さん
21/04/18 12:59:24.62 GQd10xQH.net
>>10
既出だけどジワジワ上がってる所が怪しい動き
データシート見たけど、型番は実際の所よく分からんかったけどボードにはブルアップ抵抗なくて、AVRの内部抵抗がデフォルトでは標準になってるはず
AVRは久しく触ってないけど、恐らく電源はUSBでしょ?
ならAVR側の電源は5Vで秋月(型番分からないから適当なの)の方は3.3Vだったから、そこが気になる
設定でプルアップ切ってなかったら切るべき
I2Cの立ち上がりはプルアップ抵抗とコンデンサで調整するのが基本
秋月の方は10kΩになってるぽいけどこれは大きすぎ2.2kくらいにしてみるべき(ここは適宜調整)

14:774ワット発電中さん
21/04/18 13:01:50.08 GQd10xQH.net
あぁSTM32か
5Vのくだりは忘れて下さい

15:774ワット発電中さん
21/04/18 13:07:15.87 GQd10xQH.net
立ち上がりは適度に鈍るようにしてあげてほしいけど、抵抗とコンデンサの定数はLTSPICEとかでシミュレーションしてから決めてください

16:774ワット発電中さん
21/04/18 13:13:08.68 GQd10xQH.net
秋月のは写真よく見るとプルアップのジャンパは未実装か
結局コンデンサが信号線とグランドの間に入ってないのが原因な気がする

17:774ワット発電中さん
21/04/18 13:19:42.18 CcWNjLTd.net
>>10
通信距離が10cm以下なら余計なfilterは要らないと思う
考えられる原因としては(確認するべきポイント)
・ センサーモジュールのジャンパ設定があってるかの確認
・ I2Cのプルアップ状況の確認(JP4~5,8含む)
・ センサモジュールのサンプリング速度と読み込みレートに問題が無いか
・ プログラム側に問題はないか
あと、信号のプロービング方法間違ってると思う
・ 2本ともGNDを正しく接続してるか
・ 1:1ではなく1:10を使用してるか

18:774ワット発電中さん
21/04/18 13:38:44.03 GQd10xQH.net
何でエラーになってるかの原因はクロック立ち下がりのリンギングにあると考えられる
これが1Vを超過してるのでBMX055の通信線のVIL 0.3VDDIOをオーバーしてるのは明らか
ここを確かめる場合もっとズームして重ね書きでトリガレベルを1.1以上(感覚では1.5~2.0Vまで上がる時とがあるのでは)にして見つけられるはず、測定器次第だが

19:774ワット発電中さん
21/04/18 14:02:16.52 GQd10xQH.net
一般的にはダンピング抵抗が効くのはインピーダンスの不整合で発生してる場合なのでI2Cには効果はほとんどない
フェライトビーズのフィルタは10MHz超えて100MHzに掛けて効いてくるものが殆どで低速のI2Cとは相性が悪い
探せばある気はするけど選定も入手も価格も面倒くさいと思う

20:774ワット発電中さん
21/04/18 15:13:43.11 GQd10xQH.net
>>10
ついでに気になった特徴はSCLとSDAのハイ時の電圧の変動が同期してるでしょ
電源ラインも弱いか、プルアップ抵抗から嫌な回り込みしてる証拠かなと思う

21:774ワット発電中さん
21/04/18 15:13:49.89 mJJ3nHt9.net
>>12
> 立ち上がりのはじめの部分(1.5Vまで上がるところ)の勾配が不思議。
それ、不思議だよね。
どこかで見たような気もするけど、なんであぁなるんだろう?

22:774ワット発電中さん
21/04/18 15:25:51.72 CcWNjLTd.net
立ち上がりの波形の勾配は秋月のBMX055モジュールに
双方向電圧レベル変換IC(FXMA2102)が使われてる為だと思う
URLリンク(akizukidenshi.com)
データシートの波形も似たような形状に思える

23:774ワット発電中さん
21/04/18 16:08:27.24 GQd10xQH.net
>>22
それか
パラ見して信号がが0.5Vccの閾値行ったらトリガ検知してdynamic driverが動くとか書いてあるから1.7Vまでリンギングが行ってたらそれが原因の一つで確定かな(他にもあるかは知らない)

24:774ワット発電中さん
21/04/18 16:15:57.65 mJJ3nHt9.net
>>22
FXMA2102とな?だからどこかで見たような波形なのかな。
話は外れるがFXMA2102はA側とB側の電位差が不要で、バス切断可能で、かつ安価。
ノイズ対策に便利でオススメ

25:774ワット発電中さん
21/04/18 16:35:37.20 kSMNlBcZ.net
測定ポイントによると思うけど、リンギングそのものはプローブの当て方でも変わるしなあ。
エラーが多発するというのは、ちゃんとデータを取れていることもあるのかな?
400kは譲れない、ということだけど、100kなら安定して取れているのかな?

26:774ワット発電中さん
21/04/18 16:47:33.01 GQd10xQH.net
クロック外してデータだけ見てリンギング出てればその可能性は排除できる
I2Cはハイは抵抗から出してで、ローはトランジスタで吸うから電流レベルが全然違うのが特徴的で例えばグランドリードによるリンギングはこういう等方的に現れないと言うのが俺の考え
それよりむしろ通信ラインの容量が小さいからプローブ付けたら現象出ないとかの方があり得る

27:774ワット発電中さん
21/04/18 16:50:12.55 GQd10xQH.net
トイオシロっぽいから帯域が足りなくてギブス現象が出る可能性もあるけど、見た感じは余裕でしょという感想

28:774ワット発電中さん
21/04/18 16:58:33.05 kSMNlBcZ.net
>I2Cはハイは抵抗から出してで、ローはトランジスタで吸うから電流レベルが全然違うのが特徴的で例えばグランドリードによる
>リンギングはこういう等方的に現れないと言うのが俺の考え
オープンドレイン一般論としてはそれでいいけれど、FXMA2102を通しているので純粋なオープンドレインではないしね。
LHの遷移時にコンプリメンタリ駆動しているし。

29:774ワット発電中さん
21/04/18 17:16:26.80 GQd10xQH.net
>>28
SCLはマスタから出るのでSCLを見れば等方性は分かるよ
これはマイコン-変換器で見てるはずだし

30:774ワット発電中さん
21/04/18 17:17:30.39 GQd10xQH.net
変換器-BMX055ならその通り

31:774ワット発電中さん
21/04/18 17:35:36.36 I8nUAnHb.net
みんな教えてくれてありがとう
まとめて答えると、
・STM32の出力設定はオープンドレインになってる
 CubeMXの吐いたコードは当てにならないことがあるけど、コードを読んでもあってるし、
 実際に動かしてレジスタをモニタしてもオープンドレインだから本当にオープンドレインだと思う
・STM32のプルアップは10kOhmで、こっちでプルアップしてる
 BMX055もさらにプルアップしてトータル5kOhmにしたけど波形を見た限り違いが判らなかった
・使ってるオシロはpicoscope3406っていう200MHz帯域のもので、プロ向けとしてはチープだけど
 トイオシロとしては高級すぎると思う
・測定個所はnucleoボードに生えているピンで、これに直接プローブを当ててる。
・エラーの原因はおそらく立下りのリンギングだという指摘はあってると思う。
 仕様によればLOは0.3Vddということだから、3.3V系の場合は0.99V
 数回流すだけで1V超えることがあるんで、すぐエラーが出るのは当然だと思う。
・BMX055にはレベル変換ICが使われてるのは分かってたけどこれが通信に影響を
 与える可能性を全く考慮してなかった。

32:774ワット発電中さん
21/04/18 17:36:20.16 kSMNlBcZ.net
>>10の波形は変換器を通ったあとのBMX055側での波形でしょね。

33:774ワット発電中さん
21/04/18 17:40:55.30 kSMNlBcZ.net
>測定個所はnucleoボードに生えているピンで、これに直接プローブを当ててる。
あ、そうでしたか。>>32は撤回。
駆動側のI2Cも立ち上がりのアクセラレーションがかかるんですね…

34:774ワット発電中さん
21/04/18 18:19:54.02 GQd10xQH.net
詳しい情報出てきたので言えるけど
この場合の正しいプロービング場所はSCLはBMX基板のGNDと変換器入力ピン相当(データシートB0)ね
SDAはどうにか方向選別して両側見る必要あるけど、SCLはマスタから出るから受信端で見ないと駄目
送信端は波形が崩れやすい

35:774ワット発電中さん
21/04/18 18:36:33.95 anbJfRZg.net
>>18
> 何でエラーになってるかの原因はクロック立ち下がりのリンギングにあると考えられる
その可能性は極めて低そう。
I2Cにおいて SCL=Lは「データラインのHIGHまたはLOWの状態の変更は、SCLラインのクロック信号がLOWの場合にのみ可能」であり、波形の中では Lの時に SDAが変化している。
つまりリンギングは何も影響を与えていない。
そりゃそうだ、0.3Vddを超えても不感帯に突入しただけ。
Hとして認識されるには0.7Vddまで上昇しないといけないのだから。

36:774ワット発電中さん
21/04/18 18:41:28.31 anbJfRZg.net
>>31
う~ん、エラーの原因が分からんね。
ちなみにNucleoにI2C EEPROMとかI2C SRAMとか、他のデバイスを接続した時は通信に成功しているの?
OKなら問題はBMX055側、NGならNucleo側に問題あり

37:774ワット発電中さん
21/04/18 19:21:39.92 GQd10xQH.net
>>35
こんなちょっと出した波形で1V超えてるなら頻繁に1.5Vくらい普通に行くよ
それだけでクロックが崩れる
尚且クロストークも発生してる
前で書いてるけど変換器は0.5Vcc超えたらハイにしてるはずだ
変換器のクロック出力も見てみればいいんだよ

38:774ワット発電中さん
21/04/18 23:02:00.85 CcWNjLTd.net
>>31
色々悪い条件を重ねてシミュレーションしてみたんだけど
URLリンク(i.imgur.com)
立ち上がりでリンギング出る理由が・・・
オープンドレインで動いてない可能性を疑いたくなるが、CubelIDEで設定してるなら問題ないはず・・・
IOのスルーレート下げられるから下げてみたらどうだろう
あとIOもVDDも3.3Vだろうから、レベル変換IC無視して直結してみては?

39:774ワット発電中さん
21/04/19 01:29:15.59 hU74XVx8.net
>>37
0.7Vddは3.3V電源なら2.3V。1.5Vでもまだ不感帯の中だよ
> 変換器は0.5Vcc超えたらハイにしてるはず
そういうI2C規格に反したデバイスは作られないし、実際に違う

40:774ワット発電中さん
21/04/19 08:41:49.28 nZ7iInJl.net
立ち上がりでリンギングは出てないのでは。
クロックのリンギングが問題になるなら、100kでもエラーが出ると思うけれど
100kと400kで違うかどうかは、話には出てなかったかな。
実際の配線はどうなんだろう。写真があれば、見て意見ができる人もいると思う。
ところで、VIH は「これ以上は間違いなくHと認識される電圧」を指す。
なので、それ以下でもHになることは普通にある。
同様に、VIL は「これ以下は確実にL」。それより上でもLになることはある。
0.7VDD~0.3VDDは不感域ではなくて、そこの中のどこかが閾値と考えるべき。
74シリーズのC-MOSロジックでも、シュミットやTTL互換入力タイプでもない限り、VCC-GNDの中点付近に
閾値があるような認識を持ってる人は多いよね。
なお、0.7VDDと0.3VDDはシュミットのヒステリシスを反映したものでもない。
I2Cの場合はヒステリシスのMinが0.05VDD。

41:774ワット発電中さん
21/04/19 14:35:18.94 EJQ+e9zF.net
プルアップ抵抗がでかすぎると思う。
プルアップ抵抗を小さくすれば立ち上がりが早くなると共にリンギング
にも多少は効果があると思う。
配線がどうなってるか画像up。
リンギングが原因と決めてかかると解決が遅くなる。
まず100kHzでちゃんと動くのかどうか試してから順番にやった方が良い。

42:774ワット発電中さん
21/04/19 16:00:07.50 yn2Cxr3F.net
>>41
ブルアップは5kΩらしいよ。3.3Vだと大きい印象。
> まず100kHzでちゃんと動くのかどうか試してから
賛成。EEPROM繋いで動くのかな?
リンギングもショットキーダイオード噛ませればいいし。

43:774ワット発電中さん
21/04/19 17:05:07.53 EJQ+e9zF.net
>>42
>>10の波形のゆっくり立ち上がる部分は片側のプルアップ抵抗(10kΩ)のみで
引っ張り上げてられていて、その後FXMA2102がドライブして急激に上がってる
ということで、並列になるのはHレベルになってからだと思う。
立ち上がりが遅いから元が1usくらいのSCLが600nsあるかないかになってしま
っている。

44:774ワット発電中さん
21/04/19 18:01:49.71 yn2Cxr3F.net
>>43
そっか、FXMA2102で分離するから10kΩか。大きいな。
ところでI2C規格を読み直したら、マスターが1つならPush-Pullで駆動しても構わないとか。ほぉ~

45:774ワット発電中さん
21/04/19 23:06:36.50 nZ7iInJl.net
>立ち上がりが遅いから元が1usくらいのSCLが600nsあるかないかになってしま
>っている。
BMX055のI2CクロックのH時間のminが600ns。>>10の波形を見るとだいたい600ns。
ちょいとはマージンがあるとは思うけれど、プルアップで改善できるなら試す価値あるかも。
>>31
>BMX055もさらにプルアップしてトータル5kOhmにしたけど波形を見た限り違いが判らなかった
この「さらにプルアップ」なんだけど、
さらに、とユーザーが能動的になれるのは、ユーザーが手を加えているからだと思った。
URLリンク(akizukidenshi.com)
もし「さらにプルアップ」がR3,R4を指すなら、中継ICの電圧遷移に関係なく、最初からNucleo側と並列になってる。

46:774ワット発電中さん
21/04/20 18:08:37.54 i5OjJuCo.net
みんなアドバイスありがとう。
・BMX055以外にI2Cスレーブデバイスがなかったので、STM32のI2Cを2つ使って
 自分自身に信号を送るようにしてみた。STM32内部のプルアップでは波形がなまりすぎだったんで、
 別に2.2kOhmでプルアップしてみた。
 立下り時にリンギングがみられるけど最大でも500mVくらい。
 測定の様子→URLリンク(imgur.com)
 波形→URLリンク(imgur.com)
・上でうまくいったのでBMX055を接続した状態で2.2kOhmを追加したけど、波形の違いは判らなかった。
 その時の回路図(SDAとSCLは同じようにプルアップしてるので簡略化してる)はこんな感じ
 URLリンク(imgur.com)
・STM32とBMX055の配線はこんな感じ
 使用時の様子→URLリンク(imgur.com)
 配線の様子→URLリンク(imgur.com)
STM32の設定は問題なさそうで、やっぱり配線の問題っぽいとこまでは分かった。

47:774ワット発電中さん
21/04/20 19:16:27.57 wO+ubhR4.net
>>46
問題は相手側かぁ~
配線も泣き別れしているけど、これ位の長さなら問題無さげ。
お試しでショットキーダイオードは付けた?

48:774ワット発電中さん
21/04/20 23:39:46.50 gbtqqNMR.net
>>46
以前の波形と比較するとSCLのパルス幅が違うんだけどI2Cの設定
変えたの?
傾きが違うのはプルアップ抵抗の差としても立ち上がり始める
タイミングが違うみたいなんだけど。
URLリンク(i.imgur.com)

49:774ワット発電中さん
21/04/21 00:21:24.17 o0iaWkr5.net
>>46
もうひとつ。
電源のグランドはつながってるけど信号のリターンがないので
STM32のSCLとSDAが出てるコネクタ内のグランドとBMX055の
グランドをつないだ方がいいね。SCLに添わせる感じで。

50:774ワット発電中さん
21/04/21 01:24:50.04 206m4Ng2.net
>>46
ちょっと前に軽く言ったけど
パッシブプローブのグランドリードを正しく接続しないと正しく測定できないよ
↓以下はは同じ回路から測定方法を変えたもの
URLリンク(i.imgur.com) (正しく測定した波形)
URLリンク(i.imgur.com) (正しく測定した波形・拡大)
URLリンク(i.imgur.com) (グランドリード不適切な波形)
URLリンク(i.imgur.com) (グランドリード不適切な波形・拡大)
で、リンギングの原因は測定方法だろうから、実際の回路に問題は無いと思うのよ
速度上げたせいで加速度センサのバッファが空の状態でデータ読み出してない?

51:774ワット発電中さん
21/04/21 12:37:57.83 sBU0Xz6+.net
>>46
ところでそもそも、
> 接続しているんだが、エラーが多発するんだ。
これってなんのエラー?
どこかのCRCエラー?あるいはNAK?レジスタ値がおかしい?
どれ?

52:774ワット発電中さん
21/04/21 15:24:44.01 o0iaWkr5.net
I2C Fast-modeでのSCLの規格
tLOW 1.3us min
tHIGH 0.6us min
抵抗でプルアップしている以上バス上のtHIGHは短くなるんだから
tLOW 1.25us
tHIGH 1.25us
のduty=50%で送信すれば規格を満足しそうに思うんだが、わざわざ
tHIGHを短く送信するのが普通なのかな。
なぜtLOW 1.25us minの規格にしなかったのだろう。
1000kHzの方の規格ではtLOW 0.5us minとなっている。

53:774ワット発電中さん
21/04/21 17:16:03.57 sBU0Xz6+.net
>>52
I2CはLの時にデータセットし、Hの時に読み取るからじゃね?

54:774ワット発電中さん
21/04/21 18:47:15.42 sBU0Xz6+.net
>>52
あと、マルチマスターの時にSCLの引っ張り具合を見てなんちゃらかんちゃらと規格書に書いてあったな。
それ絡みとか?

55:774ワット発電中さん
21/04/21 23:07:34.56 o0iaWkr5.net
機能を欲張りすぎてがんじがらめになってるのかな

56:774ワット発電中さん
21/04/22 05:40:08.33 NF249Wxl.net
俺は少なくとも歯学部卒業して以来、常に医学部コンプを持っていた。
確かに歯学部入学当初は同じような境遇のヤツが多くいた。
一年生の時から「将来は口腔外科医としてやっていきたいです」
なんて言ってな。
でも結局口外に進んだのは俺一人。
皆、歯学部の6年間で医科との絶対的な差に気付いたか。
歯科という本来の役割に気付いたか。
はたまた6年間チャランポランな学生生活で当初の志を忘れたか。

57:774ワット発電中さん
21/04/22 06:09:07.06 Fk9QiK/A.net
さあて釣れるかね

58:774ワット発電中さん
21/04/22 08:29:51.61 RPuhTreH.net
>>40
> 0.7VDD~0.3VDDは不感域ではなくて、そこの中のどこかが閾値と考えるべき。
それ、どこのメーカー?
そんなエセI2Cチップ掴まされたらノイズ耐性ボロボロ、たまったもんじゃないなぁ。
メーカー教えてよ、使わない様にするから。
で、真っ当なメーカーならそんなチップは作らないよ。
URLリンク(www.analog.com)
I2C準拠のレシーバは、0.3×VCCという入力“L” レベル(VIL)より低い電圧をロジック“L” と解釈し、0.7×VCCという入力“H” レベル(VIH)より高い電圧をロジック“H”と解釈する必要があります。
メーカー教えてね

59:774ワット発電中さん
21/04/22 21:45:21.97 kg5GIq2U.net
>>58
>0.3×VCCという入力“L” レベル(VIL)より低い電圧をロジック“L” と解釈し
は、「VIL(0.3・Vcc)より低ければ、Lと解釈しないといけない」の意味であって、
高い電圧から下がってきたときに、「VIL(0.3・Vcc)きっちりに落ちるまではLと
解釈してはいけない」という意味じゃないよ。
っていうか、その資料の図1に0.7・Vcc~0.3・Vccについて、
Receiver Threshold Band (しきい値はここの範囲)
って書いてあるよね? 不感域とは書いてないでしょ?

60:774ワット発電中さん
21/04/23 08:33:28.73 tR2dKQt0.net
>>59
> Receiver Threshold Band (しきい値はこの範囲)
おまいはアナデバと喧嘩する気なのかい?
「より低い電圧をロジック“L” と解釈」「より高い電圧をロジック“H”と解釈する必要があり」と説明されてんだよね。
しきい>値<ならそのどこかにあるって解釈もあるが、しきい>帯<なんだよ。
まぁ論より証拠、そのメーカー教えてね

61:774ワット発電中さん
21/04/23 09:53:25.71 9ZYoJHbM.net
シュミットトリガを非明記で使ってる方がまともなベンダーならありえないぞ
VILを超えたり、VIHを下回ってるのに、ヒステリシスが入ってるはずだから問題ないとかやってんのか?
んな評価有り得ないよ

62:774ワット発電中さん
21/04/23 10:14:30.16 tR2dKQt0.net
>>61
規格に沿って作ってんのに明記するか?

63:774ワット発電中さん
21/04/23 10:29:48.54 CXgVY0MV.net
>>61
> シュミットトリガを非明記で使ってる方がまともなベンダーならありえないぞ
いや、あるかどうかは知らんけどそれでも規格に準拠してればいいとは思う
問題はID:tR2dKQt0が非明記なのにそれがある「はず」っで思っちゃってところ
まあ低能によくある「書いてない所は俺の都合のいいようになってるはずだ病」だと思う

64:774ワット発電中さん
21/04/23 10:39:17.28 +ivz15M+.net
>>58,60
I2Cを語る以前に、基本のロジック回路から勉強し直すことをお勧めします
>40,59の方の説明で有ってるので、理解出来ない様でしたら「理解力・読解力」をもっと身に着ける事をお勧めします

65:774ワット発電中さん
21/04/23 11:22:15.30 7LoAc/yq.net
>>63,64
まぁ、その通りだね

66:774ワット発電中さん
21/04/23 12:14:19.63 tR2dKQt0.net
>>63
> 問題はID:tR2dKQt0が非明記なのにそれがある「はず」っで思っちゃってところ
おまえらが分かって無いのはよく分かったよ(笑)
I2C バス仕様およびユーザーマニュアル
URLリンク(www.nxp.com)
5.1 Fast-mode (Fm) - ファーストモード
&#8226; Fast-modeデバイスの入力は、スパイク抑制とSDA/SCLのシュミットトリガ入力を装備。
規格書にこうして明記されてんのに何言っちゃてんのさ?

67:774ワット発電中さん
21/04/23 12:53:15.37 ZjDc7fSO.net
>>66
Vhys シュミットトリガ入力の
ヒステリシス: 0.05VDD
の意味もわかってないんだろうな…
そもそもシュミットトリガ自体を理解してるのか怪しいレベルw

68:774ワット発電中さん
21/04/23 13:01:22.14 tR2dKQt0.net
>>64
なんと言うか、ネットには知ったかぶりして平気でウソを言う>>40な奴が居るからさ、気を付けなきゃいけないんよ。
見ててごらん、「ごめんなさい」と言わずにしれっと消えるからさ

69:774ワット発電中さん
21/04/23 13:58:52.52 tR2dKQt0.net
>>67
おまいは最小値の意味すら理解せんのか?

70:774ワット発電中さん
21/04/23 14:31:43.38 WPZ6oBwd.net
>>69
ヒステリシスとか最小値とかをちゃんと理解してたら
> そりゃそうだ、0.3Vddを超えても不感帯に突入しただけ。
> Hとして認識されるには0.7Vddまで上昇しないといけないのだから。
なんてアホなことは言わないはずだがw

71:774ワット発電中さん
21/04/23 22:32:15.47 T3Gn3b7b.net
VIH, VILの意味ぐらいすなおに受け入れないなら電子工作を語らない方がいいと思う。
ヒステリシス電圧 0.05Vdd(min)からも考えてみなよ、って親切をうけながら突っぱねてどうするんだろう。
データシートや規格に最小値として0.05Vddと書かれているわけだから、デバイスにばらつきがあったとしても
VDD=5Vであるなら、0.25Vのヒステリシスがあればいいことになるよ。ここは合意できるかな?
もし0.7VDD~0.3VDDが不感地帯だとするのなら、ヒステリシスは誤差なく0.4VDDでなければならぬ、って
ことになる。そもそも、廉価な半導体部品を作るのに、そんなに誤差なく作れるわけがないのにな。
VIL=0.3VDD(max)の解釈はどうするつもりなんだろう。これは
「このICの入力に電圧を与えてLとして認識してほしけりゃ最大でも0.3VDDにしなさいよ」
ってことで、
同様にVIH=0.7VDD(min)は、
「このICの入力に電圧を与えてHとして認識してほしけりゃ最小でも0.7VDDにしなさいよ」
だし。
VOL=0.4V(max)は、「指定条件下で、このIC(または規格のIC)が出力するLは最大でも0.4Vにしなさい」ってこと。
>>58のリンク先にこう書かれている
「これらの要件により、ロジック“L” のノイズ・マージンとして0.3×VCC &#8211; 0.4V」
VCCが5Vなら、「ロジック“L” のノイズ・マージンとして1.5V &#8211; 0.4V」となっている。
つまりこれは、「規格に適合したICのワーストケースでL出力が0.4Vであっても、受ける方のVILが1.5Vなので、
1.5V-0.4V =1.1Vのノイズが入っても大丈夫」 ということ。
VILを超えたら、どこでHと認識されるか、わからないからそれ以上はマージンに含まれない、という意味でもあるよ。

72:774ワット発電中さん
21/04/24 14:07:27.80 zDPE3dsp.net
不感帯って普通に使う言葉?

73:774ワット発電中さん
21/04/24 14:40:25.26 nuIf2a+O.net
不感帯 シュミットトリガ
でGoogle検索。多くはヒットしないけど、使われている例もあるね

74:774ワット発電中さん
21/04/24 23:13:21.56 ZiFGONHy.net
>>72
不感帯で検索したら M-System、機械工学辞典、横河電機、オムロン制御機器、宮崎技術研究所、PID制御論文。。。個人プログはヒットしねぇーw
業界用語みたいね、プロ?

75:774ワット発電中さん
21/04/25 07:17:56.38 oEHtkgBh.net
究極のシリアル伝送、1000mを270Mbps。
URLリンク(ja.kcugenii.com)
これって中身はどうなっているんだ?
100BaseなPHYに専用トランス?

76:774ワット発電中さん
21/04/27 00:34:11.23 hOoNzZkL.net
100BASE-T と 同軸ケーブルをブリッジする製品は見つかったけれど、IC単品で売ってるのかな。
普通の1000BASE-Tでも 100m までいけるんだね。
既設の同軸が使えるのでもなければ、LANケーブルの方がとりまわしはしやすそう。

77:774ワット発電中さん
21/04/27 00:44:14.13 hOoNzZkL.net
不感帯は英語だとdead band だったはず。
少なくとも、
>>58のリンク先の図の Receiver Threshold Band は 不感帯 ではないね。
VIH、VILの値は、直接はヒステリシスやしきい値を表すわけじゃないことは分かったのかな。
>見ててごらん、「ごめんなさい」と言わずにしれっと消えるからさ
こんなふうに書いた人は、間違ったときは「ごめんなさい」というべきだ、という規範を持ってるんだと思う。
でも消えたのが本人というオチなんだろうか。それは悲しい。

78:774ワット発電中さん
21/04/27 01:07:55.29 ccChwTS0.net
10base5でも500m行けるよ

79:774ワット発電中さん
21/04/27 06:19:28.07 vZWB+MAy.net
>>76
「G.hn」でDigiKeyを検索すると1社見つかるところまでは見た。専用ICだった。
Gはギガの略で、hnはHomeNetworkの略、ラスト1マイル接続用らしい。ケーブルTVの同軸にギガを載せるもの。
光が普及した日本ではホーム用には出番無さそうだが、監視カメラの既存配線を使う用途では行けるんかな。
より対線のRS-485でデジタル映像伝送は、流石に無理なのか?

80:774ワット発電中さん
21/04/27 06:48:27.56 hOoNzZkL.net
>>79
>より対線のRS-485でデジタル映像伝送は、流石に無理なのか?
10Mbps超なら圧縮されていれば通りそう。
URLリンク(www.maximintegrated.com)
RS-485でもプリエンファシスとかあるんですね。

81:774ワット発電中さん
21/04/27 08:36:02.87 h1ryTD7o.net
>>80
そのページは見たことある。
距離と転送レートのグラフもあるね。
URLリンク(www.maximintegrated.com)
10Mbpsだと300ftちょい、100mでRS-485を選択する理由がね。

82:774ワット発電中さん
21/04/27 20:06:19.89 Du2svZBO.net
>>78
10BASE-T1L
ツイストベア1対で1kmを10Mbps、これいいね。
URLリンク(www.analog.com)

83:774ワット発電中さん
21/04/29 08:43:05.90 H8EkUsWx.net
1ペアだからコリジョンを考慮しなくても良いのか。
イーサネット系はそろそろコリジョンって仕様をなくしても良いと思うんだけどな。

84:774ワット発電中さん
21/04/29 11:41:19.85 L62+fAST.net
>>83
1ペアだからコリジョンはあり得るよ、ハーフデュプレックスだから。
イーサでもフルデュプレックスでスイッチングハブならコリジョンは発生しないよ。

85:774ワット発電中さん
21/04/29 12:40:38.21 rebhiOso.net
>>84
ボケてた。
コリジョン有ったら距離伸ばせないはずだが。IPG延ばしてるのかな?

86:774ワット発電中さん
21/04/29 15:46:14.28 MayD3nUp.net
イーサネットは10BASEと100BASEと1000BASEのそれぞれの系でプロトコルが物理層からして違うし、ハブやルータで吸収してるだけ
10BASE系はプリアンブルとジャム信号、待ち時間の整合でコリジョン問題を解決している

87:774ワット発電中さん
21/04/29 15:55:30.99 MayD3nUp.net
だから端末同士の通信だと片方が全二重だから大丈夫というわけでもなくて全二重と半二重の通信だとそのままコリジョンで死ぬ事もあり得る
そのため1000BASE系からは全部オートネゴシエーションになった

88:774ワット発電中さん
21/04/29 15:58:47.41 L62+fAST.net
>>86
> 10BASE系はプリアンブルとジャム信号、待ち時間の整合でコリジョン問題を解決
IEEE802.3a/iと、802.3cgは同じなのか?

89:774ワット発電中さん
21/04/29 16:42:31.41 WWQxaAGj.net
>>87
> 片方が全二重だから大丈夫
誰もそんなことは言ってないけど大丈夫?

90:774ワット発電中さん
21/04/29 17:04:09.02 MayD3nUp.net
>>89
一般論を言ってるだけだぞ
被害妄想すぎ

91:774ワット発電中さん
21/04/29 17:18:21.57 MayD3nUp.net
イーサネットの規格は乱立しまくったのもあって弊害も多いけど、それ自体のプロトコルはよく考えられててコリジョン検知一つ取っても学べる所が多い
他の通信規格より複雑なプロトコルが早くからパッケージ化されていて触れる事なく使えるようになってるけど

92:774ワット発電中さん
21/04/29 17:18:31.46 Q3wzuaO7.net
この板でそんなチンケな一般論を開陳したくなっちゃったのかw

93:774ワット発電中さん
21/04/30 10:11:38.28 5sGCEHuX.net
フリーなロジアナは見つかるが、フリーなI2Cアナライザが見つからない。
俺の探し方が悪いだけか?

94:774ワット発電中さん
21/04/30 10:27:19.82 ysam7qRz.net
>>93
よくわからんが、Amazonで1000円位か4000円位のロジアナ+PluseView(sigrok)あたりじゃ駄目ですか?

95:774ワット発電中さん
21/04/30 10:27:59.39 KuAZkhTU.net
>>93
フリーのロジアナアプリで、I2Cも解析できるでしょ?
URLリンク(sigrok.org)
プロトコル一覧
URLリンク(sigrok.org)

96:774ワット発電中さん
21/04/30 10:28:12.40 5sGCEHuX.net
おぅ、sigrokに Protocol decoderがあるのか!

97:774ワット発電中さん
21/04/30 10:29:05.13 5sGCEHuX.net
ありがとう

98:774ワット発電中さん
21/04/30 13:29:28.81 B6mLDBJH.net
>>93
ラインアイが有名

99:774ワット発電中さん
21/04/30 13:30:31.51 B6mLDBJH.net
フリーなか

100:774ワット発電中さん
21/05/02 12:16:38.71 hSSVTInH.net
上の方でアドバイスをもらった者だけど、いろいろ試してみた。
・クランプダイオード追加
 (これに伴って、モジュールには5Vではなく、3.3Vをnucleoボードから供給するように変更)
 →エラー(NAK受信)はなくなったが、波形が汚いのは相変わらず
・さらに、SCLだけ信号線とGNDをツイストペア化
 →あまり変わってなさそうだけど詳細を見ると立下りのリンギングが気になる
概観:URLリンク(imgur.com)
詳細:URLリンク(imgur.com)
青がSCLで、立下り時のリンギングが気になる
とりあえずこれで3時間くらい、何らかのエラーが発生したら落ちるようにして
ポーリングでひたすらデータを読んでるけど動作しているので
・クランプダイオード有
・ツイストペア無
・電源3.3V
でいこうとおもう。

101:774ワット発電中さん
21/05/02 13:25:20.82 ZABvcc6a.net
>>100
もしかしてBMX055上のLDOが発振してたとか。
波形的にはそうは見えなかったけど。

102:774ワット発電中さん
21/05/02 13:29:53.99 ZABvcc6a.net
>>100
あと立ち上がりが遅い。プルアップを小さくしようよ

103:774ワット発電中さん
21/05/02 13:32:40.90 BLAk1sKB.net
>>100
最近自分作った矩形波シグナルジェネレーターでリンキングしてたので
出力にAをGNDにKのVfの低いダイオード入れたら止まったよ
もうやってるならスマソ

104:774ワット発電中さん
21/05/02 13:33:29.31 BLAk1sKB.net
リンギング間違い(´;ω;`)

105:774ワット発電中さん
21/05/02 17:57:39.17 0jRzMplG.net
>>100
FXMA2102を外せばすべて解決する気がする

106:774ワット発電中さん
21/05/03 13:48:35.40 LbYP0TqX.net
I2Cでスレーブ側でSDAがLowに固定で固まる症状でるひといる?(´・ω・`)
I2C_LCDがこういう特定の症状だすから個別に SCLのワンパルス送って復帰させてるんだけど
標準でコリジョン起きた時SCLにワンパルス送っておいたほうがいいのかな?(´・ω・`)

107:774ワット発電中さん
21/05/03 13:52:35.64 ODVyGGqZ.net
♪前から来る奴ぁワンパルス、後ろから来る奴ぁ背負い投げ

108:774ワット発電中さん
21/05/03 13:55:57.35 LbYP0TqX.net
ルネサスのI2Cトラブル相談でもSCLからワンパルス送る的なこと書いてあったってことは
コリジョン時にSCLからワンパルス送るのを標準仕様にしておいたほうが無難ってことだよね?(´・ω・`)
どうおもう?(´・ω・`)

109:774ワット発電中さん
21/05/03 14:24:55.81 LbYP0TqX.net
>>10
フェライトビーズがコイル成分になって I2Cラインの静電容量と共振してコリジョンが多発してるんじゃない?(´・ω・`)

110:774ワット発電中さん
21/05/03 14:26:08.20 LbYP0TqX.net
フェイライトビーズで発振実験してる人なんかもいなかったっけ?(´・ω・`)

111:100
21/05/03 15:56:26.18 rwuhxEsZ.net
全回路配線し終えて8個のBMX055と通信できるようになったよ
今ぶん回して通信異常が起こらないか確認中
>>103
その意味でクランプダイオードって言ったんだけど用語の使い方間違ってた?
>>105
FXMA2102は端子がボディに隠れてるんでうちの装備では簡単に取れなさそう
取れればパターンを追いかけてジャンパ飛ばせると思うけど
>>109
うーん、フェライトビーズってR高いから多分Qが低い
なので、発振はそうそうしないんじゃないかな

112:774ワット発電中さん
21/05/03 16:02:46.02 l56ln1JH.net
つうか、やっぱ波形おかしい それを直すのが先決

113:774ワット発電中さん
21/05/03 16:10:14.64 rwuhxEsZ.net
>>112
立ち上がりが普通のオープンドレインっぽくないのはFXMA2102のせいだと思う
FXMA2102のアプリケーションのFig9でよく似た波形が出てるし
URLリンク(www.onsemi.jp)

114:774ワット発電中さん
21/05/03 16:38:37.50 LbYP0TqX.net
>>111
Qが低くても 静電容量と減衰振動するでしょ?(´・ω・`)

115:774ワット発電中さん
21/05/03 16:43:10.26 LbYP0TqX.net
フェイライトビーズはトロイダルコアにくらべてノイズが抵抗成分をすり抜けやすい気がする(´・ω・`)

116:774ワット発電中さん
21/05/03 16:45:20.33 LbYP0TqX.net
フェイライトビーズをFM波の出力増幅に利用したりして電子工作してるひとのwebなんかもあるきがする(´・ω・`)

117:774ワット発電中さん
21/05/03 16:48:42.17 LbYP0TqX.net
>>112
そのほうがプロジェクトがおおきくなったときトラブル少ないよね(´・ω・`)

118:774ワット発電中さん
21/05/03 17:31:06.51 LbYP0TqX.net
>>108
この一行だけでトラブルや故障の相談の件数が減って 費用対効果抜群じゃないか?(´・ω・`)

119:774ワット発電中さん
21/05/04 19:05:40.49 0pEYKhD6.net
仮にコリジョンでI2Cがとまっても復帰できれば永遠に通信できる(´・ω・`)
error復帰もふくめて通信テストを一日中やって error対処がうまく出来てるかテストしてる(´・ω・`)
1000万回くらいやってもフリーズすること無くI2C通信できてる(´・ω・`)

120:774ワット発電中さん
21/05/04 19:07:03.07 0pEYKhD6.net
ノイズによるコリジョンからの復帰をちゃんと組んでないとすぐに故障判定とかして
補修費用コストがかさむ(´・ω・`)

121:774ワット発電中さん
21/05/04 19:31:18.77 HNLSq7Ll.net
>>120
このちゃんとってのが曲者で毎回担当者違いますみたいなのだと、いつか問題が発生するのよね
プログラマは電気の事分からんから
電気エンジニアですらI2Cあんま知らんの多いし

122:774ワット発電中さん
21/05/04 19:43:51.30 0pEYKhD6.net
>>121
デバイスごとにeepromなんかにコリジョン回数を記録しておいたほうがいいかも(´・ω・`)
このデバイスはコリジョン回数 単位時間あたり 何回以上で交換とか基準も考えておいたほうがいいかもね(´・ω・`)

123:774ワット発電中さん
21/05/04 19:48:49.78 0pEYKhD6.net
eepromなんかにコリジョン回数記録とかまではめんどっちいかな?(´・ω・`)
ただユーザーがどんなerrorが起きてるかぐらいは把握できるようにしときたい(´・ω・`)

124:774ワット発電中さん
21/05/04 20:04:20.16 0pEYKhD6.net
けっこうこうやって掲示板に気軽に書き込んでると
あっそういえばここ組んでなかったみたいなの思い出す(´・ω・`)

125:774ワット発電中さん
21/05/04 22:45:47.49 ZJ3JqPlt.net
>>106
理解出来て無くて悪いけど「スレーブ側のSDAがLowで固まる症状」がコリジョンであると断定した理由はなに?
コリジョンと聞くとマルチマスターでマスターからのアクセスの衝突を思い浮かべるんだけど

126:774ワット発電中さん
21/05/05 00:22:20.82 CiQVUnbf.net
>>125
コリジョンフラグが立つからだけど?(´・ω・`)

127:774ワット発電中さん
21/05/05 00:59:21.96 0FtNFW6W.net
> コリジョンフラグが立つから
フラグが立つだけでマルチマスターでは無いのね。
で、原因は
>>120
> ノイズによるコリジョンからの復帰
ノイズって事かぁー

128:774ワット発電中さん
21/05/05 01:49:17.05 CiQVUnbf.net
>>127
スレーブ側のSDAがLowで固まる症状 とかで検索するとでてくるから特定デバイスのバグではあると思う(´・ω・`)
ただその特定デバイスも使いたいし ネット検索で類似例がこれだけあるってことは
標準で組んでおこうかなって話(´・ω・`)

129:774ワット発電中さん
21/05/05 01:56:49.98 CiQVUnbf.net
特定デバイスの I2C論理回路の中身に固まるようなハードウエア論理回路があるものが多数あるってことだから
その対策を考えておいたほうがいいでしょ?(´・ω・`)

130:774ワット発電中さん
21/05/05 02:03:05.68 CiQVUnbf.net
組み込まれた論理回路のメタステーブルを解決するにはソフトめんでの柔軟性
を活かす以外ない(´・ω・`)

131:774ワット発電中さん
21/05/05 02:18:28.12 CiQVUnbf.net
って思うんだけど
どう思う?(´・ω・`)

132:774ワット発電中さん
21/05/05 03:32:47.74 0FtNFW6W.net
>>128
これね
URLリンク(ja.na4.teamsupport.com)

133:774ワット発電中さん
21/05/05 04:10:56.16 CiQVUnbf.net
>>132
他にも色々あるでしょ?(´・ω・`)
これだけ多いってことは それなりに対処したほうがよくない?(´・ω・`)

134:774ワット発電中さん
21/05/05 06:43:55.43 Xe8pnedV.net
>>124
仕様書とかコードを人に説明してるとあっ!って思うことまれによくあるよねw

135:774ワット発電中さん
21/05/05 07:35:08.41 U/iq2Oo2.net
他人に解説するように語りながら作成する

136:774ワット発電中さん
21/05/05 07:36:08.18 U/iq2Oo2.net
独りで対話をし始めるといよいよヤバいけど

137:774ワット発電中さん
21/05/05 08:06:29.37 0FtNFW6W.net
>>133
FAQ 107454、FAQ 107068、FAQ 2000051がヒットするけど内容は同じっぽい。
あとはSH7286とAVRでマルチマスター時のバスロックが1件の、計2件しか無いけど?
ルネ固有問題?ってな印象

138:774ワット発電中さん
21/05/05 13:42:37.27 gsZcU9Sw.net
>>129
まぁね。何事も例外処理は必要だね

139:774ワット発電中さん
21/05/05 13:53:10.61 nl7UZlWD.net
お前らほんとなんも知らないんだな
産業用の小さい世界じゃなくて外出たら?
0603のはんだ付け、オシロで評価、I2Cの知識、
これだけ出来るってだけでも引く手あまただから
無理すぎる

140:774ワット発電中さん
21/05/05 14:18:40.55 GcyVzWAV.net
君まだ生きてたの?

141:774ワット発電中さん
21/05/05 16:43:32.73 L5n+F1AX.net
> その対策を考えておいたほうがいいでしょ?(´・ω・`)
って思うなら対策すればいいじゃん
まずそんなことが起きないようにノイズ対策すべきだとは思うけどケースバイケースだしね

142:774ワット発電中さん
21/05/05 16:49:54.85 CiQVUnbf.net
>>137
組み込まれた論理回路のメタステーブルの問題はメーカー問わずどこでもあるんじゃないか?(´・ω・`)
>>141
ノイズっていっても論理レベルを超えるような大きいノイズは無いんだけどなぁ(´・ω・`)

143:774ワット発電中さん
21/05/06 02:01:54.74 aIs0oRIt.net
>>139
恥ずかしくて出てこれないよ普通

144:774ワット発電中さん
21/05/06 04:48:47.70 c4UlOrII.net
>>143
何いってんだ?(´・ω・`)

145:774ワット発電中さん
21/05/06 07:47:14.04 bTCLSfFh.net
>>142
> 組み込まれた論理回路のメタステーブルの問題はメーカー問わずどこでもあるんじゃないか?(´・ω・`)
I2Cでノイズや不具合なきゃメタステーブルなんてならないでしょ
> ノイズっていっても論理レベルを超えるような大きいノイズは無いんだけどなぁ(´・ω・`)
測定して言ってるんだよね?
そもそも発生頻度も書いてない時点でなんとも言えんが

146:774ワット発電中さん
21/05/06 07:48:07.13 bTCLSfFh.net
>>140,143
相手すんなよ…

147:774ワット発電中さん
21/05/06 08:53:58.92 Rne0XR0L.net
BGAの手ハンダが出来なきゃお話にならん。。。

148:774ワット発電中さん
21/05/06 09:24:04.92 c4UlOrII.net
>>145
I2CのレジスタにI2Cクロックとシステムのクロック分周が同一のときの注意文読んだこと無いの?(´・ω・`)
多分低消費電力思考でそのへん攻めてると通常稼働でメタステーブルでる(´・ω・`)

149:774ワット発電中さん
21/05/06 10:43:15.60 bTCLSfFh.net
>>148
> I2CのレジスタにI2Cクロックとシステムのクロック分周が同一のときの注意文読んだこと無いの?(´・ω・`)
ソース出してくれ

150:774ワット発電中さん
21/05/06 10:55:38.41 +aq5kMeg.net
ドヤ顔おじさんスレ名物ちょっとネガティブなこと書かれると自分への攻撃だと思って過剰反応しすぎ問題
そんな夜中に書き込みって無職かジジイの早朝覚醒?w
というかいつまでスレ違いのアース談義してんだよw
頭蓋骨アースした方がいいんじゃねーの?外来ノイズで狂い過ぎぃwww

151:774ワット発電中さん
21/05/06 11:38:25.00 c4UlOrII.net
>>149
メタステーブル とか バスクロック分周とかで検索してみ(´・ω・`)

152:774ワット発電中さん
21/05/06 11:40:42.52 c4UlOrII.net
>>150
技術にとってお前みたいのは害悪なんだ(´・ω・`)
去ね(´・ω・`)

153:774ワット発電中さん
21/05/06 11:56:02.84 Hg67/gf8.net
>>151
出せないなら別にいいよ、妄言に付き合う気はないから

154:774ワット発電中さん
21/05/06 12:06:28.52 c4UlOrII.net
>>153
eratta I2C で検索かければタイミング関係いっぱいでてくるよ?(´・ω・`)

155:774ワット発電中さん
21/05/06 12:11:01.11 Hg67/gf8.net
>>154
>>153
そもそも検索キーワード変わってるしw

156:774ワット発電中さん
21/05/06 18:04:36.50 c4UlOrII.net
>>155
煽るだけ煽ってコメントなしか・・・・?(´・ω・`)

157:774ワット発電中さん
21/05/06 18:17:04.17 c4UlOrII.net
I2C方位計測のテストしてみたら 三次元データ出てきた(´・ω・`)
atan2 で単純な方位 と 地平面に対しての平面x成分の傾き と 平面y成分の傾きデータ取れた(´・ω・`)
3Dシミュレータで視野なんかこれで変えられるね(´・ω・`)

158:774ワット発電中さん
21/05/06 18:25:02.33 bTCLSfFh.net
>>156
だからその注意文とやらのソース出せよ
> I2CのレジスタにI2Cクロックとシステムのクロック分周が同一のときの注意文読んだこと無いの?(´・ω・`)
ソースもない妄言に何をコメントしろって言ってるんだ?w

159:774ワット発電中さん
21/05/06 18:26:38.89 c4UlOrII.net
>>158
マイコンのI2Cのpdf資料に記載されてるだろ(´・ω・`)

160:774ワット発電中さん
21/05/06 18:40:50.62 B9/9tgZc.net
>>159
まあそういわずに、具体的なPDFのURLとページ番号を書けば。

161:774ワット発電中さん
21/05/06 19:22:17.21 kI6eddHC.net
20年近く前の話だけど、I2Cの通信でコマンドを2回連続で打つ仕様の製品に携わったことがある。
ひょっとしてメタステーブル対策だったのかな?
1回発目のコマンドだと応答しないデバイスがいるらしく、とりあえず2回打てば問題ない。という理由だったような気がする。
2発目のコマンドでエラーが起きないのが不思議だったけど、あれはなんだったんだろう?

162:774ワット発電中さん
21/05/06 19:25:24.83 c4UlOrII.net
>>161
restartとかじゃなくて?(´・ω・`)

163:774ワット発電中さん
21/05/06 19:26:30.76 c4UlOrII.net
ごめん間違えた (´・ω・`)
Repeated Start じゃなくて?(´・ω・`)

164:774ワット発電中さん
21/05/08 15:57:52.24 Fu78so+D.net
CXPIとか…
2016年なのでもう5年前とか… (知らんかった)
車載LAN規格「CXPI(Clock Extension Peripheral Interface)」
URLリンク(monoist.atmarkit.co.jp)
CANの応答性とLINの低コスト、両方をイイとこどりした車載LAN規格が必要だと考えた。そこで、LINの構成をベースにCAN並みの応答性を実現できるような規格の開発を目指した。

165:774ワット発電中さん
21/05/09 06:29:31.46 hOyBJ9DX.net
>>164
通信速度は最大20kbpsってけっこう低速だね(´・ω・`)
一線信号を反転して二線化とかすれば相当ノイズに強くなって速度増すのに・・・・(´・ω・`)
EMPについてあんま考えてないのかな?(´・ω・`)

166:774ワット発電中さん
21/05/09 06:34:32.16 hOyBJ9DX.net
UART信号のPWM化とかの利点と 一線信号を反転して二線化 を比較すると
後者に軍配があがりそうだけど・・・・(´・ω・`)

167:774ワット発電中さん
21/05/09 07:07:59.96 hOyBJ9DX.net
BtoBの囲い込み目当ての規格なのかな?(´・ω・`)

168:774ワット発電中さん
21/05/09 07:15:27.20 hOyBJ9DX.net
電気自動車とかになると大電力の車種なんかも出てくるからEMPとか電磁ノイズに関する
規格が優位になってくるだろうね(´・ω・`)

169:774ワット発電中さん
21/05/09 07:16:35.28 hOyBJ9DX.net
配線取り回し問題は実は スペースジェットなんかでも
いろいろ言われてたよね(´・ω・`)

170:774ワット発電中さん
21/05/09 09:44:26.06 UcushVbi.net
でかくなってくると色々問題が発生してくるけど、エンジニアは飯の種だから秘匿しがち
俺もノウハウ全開示なんてしない

171:774ワット発電中さん
21/05/09 11:13:26.86 /P1YFRdA.net
トラブルシューティングなら想定外のヒゲ状のノイズ、不安定な電圧、エッジの様子を見たくなる。
ある程度のサンプリングレートでアナログ波形は必要でしょね。
いまどきは廉価版オシロでも、I2C、UART、SPIのデコード機能は付いてるものが多い。
既存品の解析ならともかく、自分のマイコンで、動作のわかっているデバイスを制御するならデコードの出番は少ない。

172:774ワット発電中さん
21/05/09 13:07:37.54 DGoo6c43.net
>>166
CXPIやLINの上位にはCANがあり、それはCANで実現しているからね。
遅くてもいいからCANより低コストでないとメリットが無いという経済的事情。
CXPIをDigiKeyで検索するとロームとかサイプレスだけとか。しかもLINよりトランシーバーが3倍位高い。
欧米では相手にされていない雰囲気。

173:774ワット発電中さん
21/05/09 13:52:25.31 hOyBJ9DX.net
>>172
CANのほうがトランシーバチップが安いのならコストの低価格化っていう根底からして
いらない規格になっちゃうね(´・ω・`)

174:774ワット発電中さん
21/05/09 13:58:22.70 hOyBJ9DX.net
さらにCANは RS485のIPなんかを利用してたりもするんかぁ(´・ω・`)
RS485のほうが性能高くて低コストってことかな?(´・ω・`)

175:774ワット発電中さん
21/05/09 14:03:59.97 cnqSE/U0.net
RS485の物理層だと、送信側がコリジョンを発見できるとは限らんし。

176:774ワット発電中さん
21/05/09 14:10:18.86 hOyBJ9DX.net
>>175
CANのコリジョン判定にはどんなものがあるの?(´・ω・`)

177:774ワット発電中さん
21/05/09 15:06:47.62 DGoo6c43.net
>>173
うぉ!確かにLINよりCANのトランシーバーが安い!
RS-485よりも安い!
まさかこんな事になっているとは知らんかったorz

178:774ワット発電中さん
21/05/09 15:11:09.13 hOyBJ9DX.net
>>177
そもそも通信関係のネックは 問題発生時の人件費じゃない?(´・ω・`)

179:774ワット発電中さん
21/05/09 15:28:38.84 cnqSE/U0.net
>>176
CANはドミナントとリセッシブがぶつかったらドミナントが勝つけれど、
RS485は、1 と 0 がぶつかったときにどっちが勝つか保証できないし。
プロトコルでの検出は自分で調べて。

180:774ワット発電中さん
21/05/11 15:23:45.21 dUf4+6Zq.net
RS485
USBもI2CもSPIも電灯線で20mは無理だしw
秋月でトランシーバICが\50円だし

181:774ワット発電中さん
21/05/11 16:31:41.84 52xSAJqq.net
RS485でコリジョンはどうするの?
プロトコルでカバー?

182:774ワット発電中さん
21/05/11 16:48:19.30 9ybL7//Y.net
>>181
Arbiter Taskで監視。 リプライエラーでタイマーインターバル可変させて、リトライ。
PIC16Fでだけど。

183:774ワット発電中さん
21/05/11 19:05:02.78 R1ezPjnr.net
そもそもRS485は所謂物理層までしか規定してないから衝突みたいな概念はケアしない
4相(全二重)なり2相(半二重)で問題の違いはあるけど、
一番問題になるのが、みんなModbusなりちゃんとしたプロトコルを使えば良いのだけど、特にスレーブ側が気にせず(ユニットメーカーが考えなしに)独自仕様のプロトコルで動かして、解析に時間のかかるバグを発生させやすい

184:774ワット発電中さん
21/05/11 19:28:42.79 R1ezPjnr.net
マスタースレーブ通信だからマスター側で衝突しない様に管理できるはずなのにプロトコルが合わないから衝突が発生してしまうのは悲劇でしかない

185:774ワット発電中さん
21/05/11 20:04:39.64 9ybL7//Y.net
まぁねぇ。 ベルコン作業でリプライ時間がまちまちなM-S通信では衝突対策は必須だね。
Arbiterの待ち行列やタイムアウト時間を各々変化させてやると9600ボーで6人分ぐらいはなんとかなる。
PLC+Modbusではできない仕様だ。

186:774ワット発電中さん
21/05/12 06:13:36.05 1iFL8FLL.net
産業装置なんかでも 電源投入時のタイミングとかコリジョンからの自動復帰の
プログラムがきっちり組まれて無くて
電源投入時に手動でerror処理しないといけないとかある(´・ω・`)
簡単な通信をきっちりやるだけで使い勝手が雲泥の差なのに(´・ω・`)

187:774ワット発電中さん
21/05/12 06:21:48.08 G8E3E8Na.net
そこまでゴミな機械に出会ったことはないわ

188:774ワット発電中さん
21/05/13 20:53:45.98 ij3QGV1J.net
上の方でBMX055とうまく通信できないと言ってた者だけどやっと安定して動くようになった。
あれから何をやったかというと、
・余計なものを取っ払ってシンプルにするため、FXMA2102を外して、信号線をジャンパで飛ばす
・リンギングを抑えるため、ダンピング抵抗100Ohmを入れる
これで波形を見る限りI2Cの規格を満足するようになったが、かなりの確率でNAKが返ってくる。
よく観察すると、最初の通信を乗り切ると何時間でも通信し続けるため、信号の品質ではなく、
BMX055が起動時に何かあるのではとマニュアルを見て分かったのが、デフォルトのスリープモードが
最初の通信でノーマルモードに切り替わるということから、わざと1発目に意味のない信号を出して、
ノーマルモードに移行するようにした。
これをすると、数回に1度しか起動しなかったのが、10回程度繰り返して毎回起動しているのでこれが正解だと思う。
こんなことネットで探してもどこにも書いてないし、なんでうちだけこんな問題が起きたのか分からんのだが、
ネットの記事ではArduinoみたいなそんなに速度の出ないマイコンを使ってるのに対して、俺が使ってるSTM32F446は
かなり高速なのでそこらへんが関係しているのかもしれない。
波形についていうと、今回はFXMA2102を引っぺがしてダンピング抵抗をつけたが、
つけたままでもダンピング抵抗の値を変えても行けると思う。
心が疲れたのでちょうどいい値を探さずに引っぺがしたけど。

189:774ワット発電中さん
21/05/14 01:58:39.50 yg5p5nPJ.net
>>188
そういやあのFXMA2102にバスコンが付いて無いんだよな。

190:774ワット発電中さん
21/05/17 14:31:15.01 7Ty1Alc3.net
CAN FDってどうよ? 使っているヤシいる?

191:774ワット発電中さん
21/05/19 18:08:58.74 Sd448gny.net
>>190
反応無いね。
CAN FDってプロトコルを替えるから、全てのデパイスをFD対応にしないといけないんでしょ?
一瞬検討対象になったけど、それがネックになってボツになった。

192:774ワット発電中さん
21/05/21 19:49:45.78 lHkKbVF8.net
>>191
thx
CAN FDやってみたは。
帰って来るメッセージ判断できるんで両刀使いできるよ。
if ((_gMsg.field.formatType == CAN_2_0_FORMAT) && (_gMsg.field.idType == CAN_FRAME_EXT))
{...}
64バイトは応用が広がるな。
CANからCAN FDに全作品変更予定。 30数点のアナデジ基板があるんでKiCAD修正とファームウェア修正せねば。

193:774ワット発電中さん
21/06/01 11:41:07.71 383dBzT5.net
Microwire…
単語は知ってたがSPIの亜種かと思ってたわ(今日知った)

194:774ワット発電中さん
21/06/13 03:39:07.50 Ic4p+uVJ.net
LINのウェイクアップについて質問です。
現在LINについて勉強中です。
LINではマスタノードからのヘッダ送信で通信が開始する認識です。
スリープフレームはマスタノードからスレーブノードに送信するという説明を見ました。
一方ウェイクアップフレームはスレーブノードからも送信出来るとありました。
この場合、スレーブノードは何をトリガーにウェイクアップフレームを送信するのでしょうか。
マスタノードはスリープ状態なのでヘッダ送信も出来ないのではないかと思い、スレーブノードからのウェイクアップフレームはどういう風に送信されるのかがイメージ出来ません。
どなかご教授頂けないでしょうか。

195:774ワット発電中さん
21/06/13 07:59:19.33 iK7XxW/W.net
>>194
詳しくないけど、
> スレーブノードは何をトリガーにウェイクアップフレームを
スレーブにイベントが発生した時。例えば雨を感知した、室温が上昇したとか。
> スレーブノードからのウェイクアップフレームはどういう風に送信されるのかがイメージ
単に信号を唐突にLにしているだけ。
URLリンク(image.itmedia.co.jp)
ここの説明が分かりやすい
URLリンク(monoist.atmarkit.co.jp)

196:774ワット発電中さん
21/06/14 12:29:41.95 RNIevnsW.net
ウェイクアップは通常時みたいにヘッダ→レスポンスの一連の通信ではなく、
ただ一定期間Loにするだけなんですね。
ありがとうございます。

197:774ワット発電中さん
21/11/02 00:02:46.41 C5AWVpWR.net
SPIの配線について皆さんにお伺いしたいです。
今いじっている基板でSPIのスレーブを9個つなげてるのですが、インピーダンスマッチングができていないのか、マイコンの出力が足りないのか、なかなかクロックを上げられません。
4MHzまではなんとかいけるのですが、8MHzにするとCLKの立ち上がりが鈍ってしまうのと、MOSIとMISO波形のダンピングがひどいです。
一応配線は1筆書きにして線幅は0.15mmにしているのですが、これだと一番遠位では整合できてるけど、マイコンに近いほうでは歪むような気がして、正しいのかわからなくなりました。
クロックの同期とかなら、ファンアウトバッファを介して分配配線すればいいように思えるのですが、SPIではどうすればいいのでしょうか。
皆さんは、複数のスレーブをつなげる際はどうなさっていますか?

198:774ワット発電中さん
21/11/02 09:25:32.37 GLWtGpKq.net
>>197
SPIで9台とかは経験ないけど、全体での配線距離はどのぐらいなの?
バッファとかで出力を上げるんじゃなくてダンピング抵抗入れて信号の立ち上がりを遅くした方が良いのでは?
URLリンク(i.imgur.com) (現状の波形・推測)
URLリンク(i.imgur.com) (ダンピング抵抗1)
URLリンク(i.imgur.com) (ダンピング抵抗2)

199:774ワット発電中さん
21/11/03 07:44:50.74 wCty7tS+.net
>>197
> 皆さんは、複数のスレーブをつなげる際はどうなさっていますか?
高速グループと低速グループに分け、間にバッファ入れて分離する。
> SPIではどうすればいいのでしょうか。
9個もデバイス繋いだら配線容量にピン容量に配線インダクタンスで目茶苦茶になる。だから途中にバッファを入れる。
全てのデバイスを高速動作させたいならバッファでツリー構成にする(今はデイジーチェーンっしょ?)
余談:
その昔のISA-Busは8MHzでいいとこ8スロット。でもフルに使うと動かなくて困った。
9個もあるなら発想変更が必要かな

200:774ワット発電中さん
21/11/03 14:51:29.73 yxqVC9TY.net
まあ、ISAはクロック同期式でもなくて、タイミング規定もグダグダだしな。

201:774ワット発電中さん
21/11/03 23:19:29.41 wCty7tS+.net
余談
>>200
それはATバスの話。
ISAバスはEISAバスのサブ規格だから互換性が取れる様にタイミングも新たに定義された。
とは言ってもATバスのグダグダを駆逐出来た訳では無いのはご指摘の通り(笑)
閑話休題
SPIバスに9デバイスかぁ~、割と無茶だと思う。
SPIはモトローラが作ったらしいが規格書はあるんかいな?見た事が無い。
それとも、いまやSDカードのSPIモードが標準規格になるんかいな。誰か知ってる?
それで今やSPIもI2CもNXPが作った事になるんか。変なの

202:774ワット発電中さん
21/11/04 08:46:16.72 stPG9W78.net
そもそもSDカードのSPIモードがなくなろうとしているのに。

203:774ワット発電中さん
22/02/26 19:14:50.67 xSRjRRo7.net
質問教えてください。
PICを使ってCANの勉強をしていますが、よくわかりません。
IDというのは、29bitと11bitがあります。またフィルタも29と11があります。
1. なぜ長さが2種類あるのですか? どのように使い分けるのでしょうか?
2. アクセプタンスフィルタがありますが、受け入れフィルタのことだと思います。
  要は、自分の欲しいIDのメッセージだけを取り込むために、フィルタで and をとって
  振り分けている、という考えであっていますか?
3. 受信中にもかかわらず受信側がACKというbitを返すようですが、
  例えば5つのノードで聞いている中で、どのノードがACKを返すのでしょうか?
  全員か返すのでしょうか? それとも返す人が決まっているのでしょうか?
4. また、ACKを返すのは、フィルタ合格して自分の欲しいデータが届いた時だけ返すのでしょうか?
  それとも、自分の受信希望でないIDに対しても、
  「送信者さん、ちゃんと送信できてますよ、安心してくださいね」と、
  返すのでしょうか? そうすると全員がACKを返すようにも思いますが。
よろしくお願いします。

204:774ワット発電中さん
22/02/27 07:10:06.17 7+8USz+Q.net
>>203
ここはハードのスレだからね(>>1)、ソフトの質問にはレス付かないかも (((((^-^;

205:774ワット発電中さん
22/02/27 07:22:09.66 va6xzqLU.net
stackoverflowとかで聞いた方がよさそう。
これ答えられる奴は日本の質問掲示板なんか見てないっしょ

206:774ワット発電中さん
22/02/27 11:19:56.61 EnAKkGuc.net
>>204 >>205
ありがとうございました。
他で聞いてみますね。
どうもありがとう。

207:774ワット発電中さん
22/02/28 13:33:54.51 sQv3vdrt.net
>>203
>1. なぜ長さが2種類あるのですか
ackは全員が返すから、誰か受け取れなかったやつがいてもわからない。

208:774ワット発電中さん
22/02/28 13:38:48.44 sQv3vdrt.net
>>203
>1. なぜ長さが2種類あるのですか
長さが足りなくなったから
>要は、自分の欲しいIDのメッセージだけを取り込むために、
そんなもん。
ackは該当するやつが返す。
複数同じアドレスな奴がいれば、受け取れない奴がいてもわからない。

209:774ワット発電中さん
22/03/01 16:50:30.63 3MXpgfSX.net
ACKっしょん! ・・・うー。だれぞ 噂しやがったなバーローちくしょーい!!

210:774ワット発電中さん
22/04/25 05:44:53.30 c0bqEsvh.net
>>202
SPIモードで 数十Gbyte読み取ったら数十時間かかったw(´・ω・`)

211:774ワット発電中さん
22/04/25 07:22:48.33 Ug5ZtHvg.net
よく頑張った!
感動した!

212:774ワット発電中さん
22/04/28 05:54:18.72 qY7le17c.net
基本的な質問すいません
232cってTx、Rx、SGの3本で全二重通信とあるんですが、
SG共通なのになぜ双方向に同時通信できるんでしょうか。
SGで帰りの電流がぶつかるように思うんですが。

213:774ワット発電中さん
22/04/28 06:12:49.43 EMFjj+5/.net
>>212
SGは全てを受け止める大地のような存在だから

214:774ワット発電中さん
22/04/28 09:00:16.63 mX7agLrH.net
電流には着目せず、電圧で送信・読み取りしてるからじゃね?しらんけど

215:774ワット発電中さん
22/06/26 09:42:23.02 qvtVKcOX.net
マルチマスターの衝突防止を自分で実装すると結構奥が深いね。
2wireでいい方法ある?

216:774ワット発電中さん
22/06/26 14:53:21 v3XvhMT0.net
>>215
そら無理レベル。お互いに衝突して無い事を同時に確認しても、次のフェーズでは衝突するし。
さらに同時にリカバリしようとしてまた衝突。ヘタすると永久ループ入り。
優先度をラウンドロビンで回すしか手が無いと思うな

217:774ワット発電中さん
22/06/26 19:03:18 omlMaAvw.net
マスター達を制御するスーパーマスターを作るのだ。

218:774ワット発電中さん
22/06/26 19:54:36.22 YvEUtk8T.net
ランダムな時間待ってから送れば?

219:774ワット発電中さん
22/06/26 20:03:44.82 lW9USo0E.net
>>217
良いアイデア!!
それなら出来そうだわ。
マイコンがもう一ついるけどね。
>>216
同時に送信ってあり得るからね。
何か通信の開始をずらせる方法があればいいんだけど。

220:774ワット発電中さん
22/06/26 21:05:11 lW9USo0E.net
>>218
CSMA/CA方式っていうのがあるんだね。
ネットにはあまり情報がないけど。

221:774ワット発電中さん
22/06/27 00:28:31.96 jhrfI1eN.net
>>220
CSMA/CDなら10BASEでさんざんやってたろ。

222:774ワット発電中さん
22/06/27 07:29:56.45 Dd49bD66.net
>>221
でもCAの情報はかなり少ないね

223:774ワット発電中さん
22/06/27 07:37:52.54 jhrfI1eN.net
>>222
無線じゃないからCDすれば十分だろ。

224:774ワット発電中さん
22/06/27 08:25:39.33 0RdO9zav.net
CSMA-CDってゼロックスが技術情報無料で公開してなかったっけ?

225:774ワット発電中さん
22/06/27 09:03:52.80 /WNptHYH.net
>>223
>>216

226:774ワット発電中さん
22/06/27 10:19:01.59 5SPB+8/V.net
>>225
さすがに >>216 はバカ過ぎると思わないの?
CSMA/CD はバックオフしてるだろ。

227:774ワット発電中さん
22/06/27 10:25:37.25 SrXIuQqo.net
2台のマスターが同時進行したとき
(9600bps/8Byte送信時間7ms/UARTの受信バッファ1Byte単位)
1.データを8Byte単位のパケットに分解
2.10msの間ループし、その間Rxバッファにデータの着信があれば2.へ
3.データ送信
でもこれだと1nsも違わずに同時送信した場合衝突するね。

228:774ワット発電中さん
22/06/27 10:54:50.90 SrXIuQqo.net
間違えました。UARTのバッファが1byteで、バッファを確認できるのが、1byte単位なので、1byteの送信時間である8/9600秒、つまり約1msは空白時間(他のマスターの送信を検知できない時間)。その間はどのマスターも同時に送信の権利を取得できる事になるね。

229:774ワット発電中さん
22/06/27 11:29:42.14 5SPB+8/V.net
そうだよ、だからコリジョン検出するんだよ。

230:774ワット発電中さん
22/06/27 21:54:18.66 U3pADLmC.net
>>229
それ、無い物ねだり。
元ネタは>>215氏だが、この2wireとは通常I2Cの事。そしてI2Cのマルチマスターをサポートしているならコリジョン検出機能も当然サポートしている。
それなら話はハイお仕舞いだが、通常のシングルマスターはそんなコリジョン検出なんてない。通常使用なら不要な機能だからね。
そんなシングルマスターでマルチマスターをしたい。どうコリジョン検出してリカバリするか?
が議論の焦点なんだが、ここにコリジョンを唱えても明後日の話

231:774ワット発電中さん
22/06/27 22:50:42.37 SrXIuQqo.net
半二重のRS-485上に複数機器をつなげたModbusがヒントになるかと思い、調べてみたのですが、仕組みはシングルマスターなんですね。
衝突を回避するロジックが欲しい。。。
やはりランダム時間待ちがいいのかな。

232:774ワット発電中さん
22/06/28 12:10:10.96 rj79WJlK.net
データを送信する前に、「今から送信するよ」(予備送信)を数回送る。その間、受信バッファに何もデータが入ってこなければ送信の権利を獲得出来る。
どのマスターかが権利を獲得したら他のマスターは一定時間送信を行わない。
っていうの思いつきました!
ダメ出し添削して下さい!!

233:774ワット発電中さん
22/06/28 13:05:53.75 mQGvjtN4.net
>>232
CSMA/CDnOほうがマシ

234:774ワット発電中さん
22/06/29 11:11:18.73 tIgNAd70.net
>>230
コリジョンフラグ監視してリカバリ

235:774ワット発電中さん
22/06/29 11:36:15.53 Z6lMDjPp.net
I2Cの上でTCP/UDPするスレはここですか

236:774ワット発電中さん
22/06/30 19:32:47.14 Oxfspa5h.net
シングルマスターで設計しなおす

237:774ワット発電中さん
22/08/13 21:12:14.28 YvU66aBO.net
ここでいいのかわかりませんが質問させてください。
CANの質問があります。
CANの2本の線を基板の上で終端します。普通は120Ωのようです。
I/F ICのデータシートを見ると、終端方法には、
・120Ω抵抗のみの場合と、
・60Ω+60Ωで中間からコンデンサでGDに落とす場合
が書いてあります。
質問ですが、
・後者の方法は、何のために行うのでしょうか。何か性能がUPするのでしょうか。
・前者の方法と後者の方法は、どのようにして使い分けるのでしょうか?
よろしくお願いします。

238:774ワット発電中さん
22/08/13 21:48:41.14 sYjQlAON.net
>>237
片方が断線しても通信出来る様にするため、たぶん。
(CANには強くないけど)抵抗の中点からコンデンサ経由にすると、AC的にシングルエンド終端2本になる。
CANは一方に障害が発生しても通信継続する仕様で、シングルエンドなら継続出来るし。

239:774ワット発電中さん
22/08/13 22:09:18.91 YvU66aBO.net
>>238
ありがとうございます。
なるほど、頭いいですね。Cで接地されるとてうことですね。
片線で通信できるようにするには、SPLIT端子の付いたICを使うと思っていました。
終端の中点(1/2抵抗値)からGNDにCなので、
コモンモードの強化(Yコンのように)かなぁ、とも考えていました。
回線の小目電圧を除去して、ICの入力電圧範囲に入れるとか。

240:774ワット発電中さん
22/08/13 22:31:57.45 WnkI2paj.net
>>237
CAN信号の終端処理を適切に行う
URLリンク(monoist.itmedia.co.jp)
2ページ目の質問4

241:774ワット発電中さん
22/08/14 01:33:55.80 cB+W/4bt.net
>>240
大変ありがとうございました。
このように説明された文章を探しきれずにいました。
どうもありがとうございました。
2回読みましたが、
「分割終端により、CANHとCANLの両方のラインにローパスフィルターが作られ、
 トランシーバーからバスに出る高周波ノイズの多くが低減されます。」
この部分の説明がよくわかりませんね。
LPFを構成する CxR のCはスプリットのCだと思いますが、Rがどれなのか。
「トランシーバーからバスに出る高周波ノイズ」は、
バス線からICに入ってくる方向なのではないでしょうか、と疑問に思うのでした。
どうもありがとうございます。

242:774ワット発電中さん
22/08/14 08:34:06.54 nKDfZqD6.net
ブースター接種 ⇒ 超過死亡 ⇒ 芸能人体調不良
://krsw.2ch.sc/test/read.cgi/covid19/1651729211/l50
URLリンク(o.5ch.net)

243:774ワット発電中さん
22/10/30 23:07:16.42 Nm3wtfkk.net
なぁ、I2Cに同じデバイス(=同じアドレス)をピン容量が許す限り目一杯ぶら下げたい場合はどうする?
簡単な手としてI2Cスイッチがあるけど、あれって4系統しかぶら下げられない…
FETスイッチなら安価に並べられるけど、I2CってSDA共通でSCLだけスイッチでもいいのか?

244:774ワット発電中さん
22/10/31 22:16:40.15 eQP3cPhz.net
>>243
事例はあったけど…
URLリンク(seppina.cocolog-nifty.com)
専用IC使えってか…

245:774ワット発電中さん
22/11/02 07:42:06.79 2NNAby5O.net
可変IOピンを使うのはどう?

246:774ワット発電中さん
22/11/02 22:11:03.48 +Jh16aDA.net
>>245
なにそれ?ぐぐってみるわ

247:774ワット発電中さん
22/11/02 22:15:53.84 +Jh16aDA.net
>>245
秋月がヒットしたが、これか↓?イメージ涌かない
スレッショルド可変型ドライバ TD62602P
[TD62602P]
通販コード I-06266
発売日 2013/05/21
メーカーカテゴリ 株式会社東芝セミコンダクター社(TOSHIBA)
TD62602Pは6回路入りのスレッショルドフリードライバで反転型・オープンコレクタとなっております。電源、GND、入出力端子はCMOSの4049、4050と同じです。基準電圧端子(Vref)は内部で1/2VCCになるように設定されていますが、外付抵抗により可変することができます。

248:774ワット発電中さん
22/11/02 22:26:31.81 +Jh16aDA.net
話のネタに、こんなのも見つけた
I2Cアドレス重複を抵抗とダイオードだけで解決する方法
URLリンク(picalittle.tech)
一見、おぉすげぇ~なんだが、ちょと間違えるとMCU→I2Cデバイスに向かって貫通電流が流れるやん。
却下したw

249:774ワット発電中さん
22/11/13 07:03:47.60 gtoQUMzc.net
I2Cに同じデバイス(=同じアドレス)を目一杯ぶら下げる方法、頭の中で思考実験して安価な方法を閃いたわ。
制御側をどうすっかな……

250:774ワット発電中さん
22/11/13 07:25:15.88 gtoQUMzc.net
しかしなんだな、I2Cはシリアル信号を一筆書きに配線出来るのがメリットなのに、アドレスが衝突するとアドレス変換とか、制御信号が複数必要になるのがなんだかなぁ~。SPIでも同じだけどさ。
I2Cでも最新はアドレスが被ったら自動で振り直してくれるけど、あんまり普及してないし。
その点、JTAGってスゴくない?シリアル、割と高速、数珠繋ぎ可、でもデバイスの特定可。その上に本来のバウンダリスキャンで基板の検査可!
I2CやSPIはJTAGに置き換わったほうが、世の中幸せになれるかもと今思った

251:774ワット発電中さん
22/11/13 09:53:03.07 714Qu1rs.net
割と高速といっても、クロック応答の一番遅いものに制限されるんじゃなかったか。
長い歴史があるにも関わらず採用数が低いものにはそれなりの理由があるわけだし、その理由を考える方がいいと思う。

252:774ワット発電中さん
22/11/13 10:02:46.97 714Qu1rs.net
SCLだけの選択でもいけそうな気がするけれど、>>243でも言及されている容量が問題になりそう。
クロックストレッチングを考慮しなくていいなら74xx138でもいいかな。
アナログマルチプレクサを使ってるのは見たことがある。

253:774ワット発電中さん
22/11/13 21:07:05.48 gtoQUMzc.net
>>252
> クロックストレッチングを考慮しなくていいなら74xx138でもいいかな。
クロックストレッチ! SDA側をイジる理由はそれだったのか、なるほどね。
あと138、イネーブルピンを操作してクロックにするのか。なるほどね。
ただ8本では足りないや、最大16デバイスを切り替えたいので。
ヒントありがと

254:774ワット発電中さん
22/11/22 00:35:36.24 0Ky2aNih.net
ラズパイにBME280をI2Cで繋げて温湿度と気圧を測りたいんだけど、ラズパイとBME280を6mほど離したいのよ。
ちょっと離れすぎているのでバッファーを入れたほうが良いかなと思うんだけど、PCA9515を使ったら良いかな?

255:774ワット発電中さん
22/11/22 07:49:28.24 1jTT42La.net
しくみをI2Cのままにして、バッファを入れて強化する、ということだと、
・両側にバッファを設ける
・プルアップ抵抗を小さくして耐ノイズ性を上げる
ということになると思う。
I2C バッファ で検索したらPCA9600もヒットした。
プルアップ100Ωのオープンドレインでの通信でも10mぐらいはやったころがある。
意図的にノイズを印加したらデータも壊れるけれど、どれぐらいまでOKかは用途次第だし。
コストと消費電流の問題がクリアできるなら良いのでは。
スピードを落として電線を工夫したら(線間容量を減らすとか)、生のI2Cのままでもそこそこ
行ける気もするけど。

256:774ワット発電中さん
22/11/22 08:01:33.20 Ckm4OxTG.net
プルアップ抵抗下げても限界あるよね。
ノイズでデータの長期的な信頼性は低そう。

257:774ワット発電中さん
22/11/22 08:34:39.35 1jTT42La.net
限界があるといっても、どんなものにだって限界があるし、信頼線の高い低いもイチゼロではない。
プルアップ抵抗を下げることは、ぶら下げるコンデンサの容量も大きくていいこととセットだし、
より大きいノイズ耐性を持つことには違いない。
イチゼロ思考ってものごとを整理しやすい。陥りやすい罠ですね。
I2C 延長 で検索したら、ほかの物理線に変換するものも見つかる。
(それとて、どこかには限界があることには違いはない)

258:774ワット発電中さん
22/11/22 08:57:29.15 67tL8nHy.net
>>254
そうだね、PCA9515を使うのがいいと思う。
ただ、6mって邪魔じゃない?無線化は考えないの?Bluetooth温湿度計とか立派な奴が2000円、スイッチサイエンスとかで探せばいいやつがありそう。

259:774ワット発電中さん
22/11/22 12:02:21.75 TlOdeR7N.net
誰もイチゼロで話はしてないっていう

260:774ワット発電中さん
22/11/22 14:37:04.16 xCobUJjO.net
>>259
・ーーー・ ・ーー ・ー・

261:774ワット発電中さん
22/11/22 18:45:00.04 Ckm4OxTG.net
I2cで長距離ケーブルで引っ張って
痛い目にあったから絶対やらない。
連続動作で変なデータが入る。
バッファ入れたりノイズ対策やったけどゼロにはならなかった。

262:774ワット発電中さん
22/11/22 19:21:44.65 oFGGyz86.net
>>261
だろうな、だから無線を薦める俺

263:774ワット発電中さん
22/11/23 12:14:07.75 rLL0/KDM.net
ちょっと自信が無くて有識者の意見が聞きたいのだけど
速度を20kbps以下にして以下の様な回路にすれば安価に対応できるではないだろうか?
URLリンク(i.imgur.com)
たぶん\(^o^)/
20kbpsで厳しい場合は速度を下げて1か2か1,2両方の方法で対応
1.コンデンサの容量を上げる
2.各種抵抗値を上げる
逆に下手にバッファー使ったら信号の上下速度が上がって結果的に
リンギングやストレキャパシタンス(配線間の寄生容量)の影響で不具合の原因になるのでは?

264:774ワット発電中さん
22/11/23 12:34:00.49 HXJpwizD.net
>>263
同じように外部のI2Cのセンサーをケーブルで引っ張って計測したことある。
連続動作してるとたまにマイコンがフリーズしたりする。
外乱ノイズの影響だと思って
フィルター入れたり絶縁したり色々やったけどだめ。
センサー外したら大丈夫だった。
I2cは基板内で使うもんだと思う。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch