とある筋より情報をいただき(ありがとうございます)、FeliCa Linkの電源状態が稼働状態にまだなっていないのではないか、という感じになってきた。
でも、SDA=Lにしてから10msecも待ったのに・・・。
んじゃあ、20msecにしてやってみるか。リトライもしてみよう。
んあ??
ACKが返ってきた??
その後の書込みがおかしいのは、まあソフト要因だからよいとして、ACKが返ってきたのだ!
でも、20msecで一度スレーブアドレスを書き込み、そこで失敗して815usecくらい待ってからリトライして成功したのか。
初期化状態から稼働状態までの待ち時間が20msecでも足りないってこと???
気になったので、時間を10msecにだけしたアプリにしてみた。
つまり、前回失敗したときとの違いはリトライをするかどうかだけだ。
あれ・・・。
1回目に失敗して、やっぱり815usecくらい後で成功している。
このロジアナ波形は、A2がSDAで、開始トリガはA2の立ち下がりエッジだ。
スタンバイから初期化になるトリガは、本当にSDA="L"だけなのだろうか?
いや、もちろんVDDが供給されるとかあるんだろうけど、SDA="L"だけだったら待ち時間を10msecにした場合には815usecがもっと長くなってから成功しないとつじつまが合わないように思う。
あるいは、私のハードウェア構成がよろしくないか。。。
とりあえず、SDA="L"になっている時間を延ばす作戦はやめて、リトライ回数を増やすことにした。
増やす、といってもどのくらいの時間が妥当かわからないので、無限繰り返しにした。
・・・これだと、2msec以内にはうまくいったことになる。
こうやって見ると、SDA="L"だけじゃなくて、SDAとかSCLがある程度ぱたぱた動くというところにも条件がありそうに見えた。
なんか、私が知っているI2Cデバイスとは異なる動きをするので、正直なところどうしてよいかわからない。
時間について記載が無いチップというのは、ちょっと使うのには厳しいなあ。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。