原因はわかりました。
これも「あるある」で、「そんなことないだろう!」という点でした。前回の、99.9%関係ないと言っていた、プルアップ抵抗でした。さらに、プローブをつなぐことで現象が変わることもわかりました。
- 10kΩだと、プローブあり・なし関係なく、クロックが止まる。
- 4.5kΩだと、プローブありはクロック止まる。プローブなしはクロック動く。
- 2.5kΩだと、プローブありはクロック動く、プローブなしはクロック止まる。
これじゃ、ロジアナでデバッグしづらいです。ロジアナつないだ時とつないでいないときの動きを確認しながら、デバッグすることになりそう。超安物のロジアナを使っているのが良くないんですよね。。。
下図は動作しているパルスシーケンスです。
(1)で変なノイズが入っているのが気になります。
(2)はいままでクロックが出ていなかったところです。
(3)はPICからのACK応答ですが、BFチェックだけでなく、タイムアウトチェックも行っているので、ACK応答が遅れています。割り込みを使えばACK応答は早くできると思いますが、割り込み処理を重くすると、多重割り込みや割り込み禁止中の割り込み遅延の対策が必要になるので、割り込みを使わないことにしました。