2014/05/11

Overclocking Avago ADNS sensor

To get data lower latency and larger throughput from sensor, we need to overclock SCKL(fSCLK).
In ADNS-5090's datasheet, fSCLK max is determined 1MHz.
But I think, it can be more larger. So I try to find "real" max value of fSCLK.


Note(2014/06/23):
Overclocking external oscillator 24MHz to 32MHz at ADNS-3090 by rafa
http://utmalesoldiers.blogspot.jp/2014/06/adns-3090.html


Experiment environment

MCU : PSoC 4 Pioneer Kit
IDE : PSoC Creator 3.0 SP7
Sensor : ADNS-5090


Experiment steps

Increase SPI's SLCK(fSCLK) from 1MHz(1Mbps).
And try this steps (1 to 4).
--------------------------------------------------------------------------
1. Reset MCU
2. Write* 0x5A to register 0x3A (Reset sensor)
3. Read* 0x00(Get Product ID)
4. If MCU get correct value, result is OK. Else NG.
--------------------------------------------------------------------------
*Read/Write Operation code is Here :
#LogicalGaming: ADNS系センサのRead / Write Operation

http://logical-gaming.blogspot.jp/2014/04/adnsread-write-operation.html


Result


     fSCLK                       result
1.0 Mbps    OK (Max value in datasheet)
2.0 Mbps    OK
3.0 Mbps    OK
4.0 Mbps    OK
4.2 Mbps    OK
4.3 Mbps    OK
4.4 Mbps    NG
4.5 Mbps    NG
5.0 Mbps    NG
10.0 Mbps   NG



Conclusion

Threshold : fSCLK = 4.3 Mbps.
And in 4.3 Mbps, I can get data of DELTA_X, DELTA_Y, and so on.



個人の感想


日本語で書いてもニッチすぎる内容なので英語テイストな謎言語で記述しました。JAで記述して実験データ死蔵するのもアレですし。英語が相当おかしいのは重々承知ですが直す気も気力もないのでご容赦を・・・


定格最大値の4.3倍のクロックでも動いたのは意外というかあり得ないというか・・・とにかく驚きです。でも、安定性は考慮していないので実際にゲーミング用途で常用できるかどうかはなんとも言えません。

当たり前ですがクロックを上げすぎてセンサが機能しなくなっても壊れるようなことはないです。見た感じですと単に機能が止まるだけですね。

定格の1.5倍で動けば「当たり」とされる某界隈とは大違いですね。そちらはクロック自体が1000倍程違いますけど。
排熱等の諸事情でそもそも定格で連続稼働出来ないのを定格以下のクロックで動かして、ブーストと称して販売したりと色々と苦心されているようで・・・わりと近くで眺めている人間としてはクロックアップ競争の難しさと苦肉の策のマルチコア化は将来的にも色々と思う所が多いです。

その某界隈のアプローチの常套手段として動作電圧を上げることがありますが、この場合はどうなんでしょう。正直そこまでやる気力もやる人も居なさそうなので今後の課題ということで。


実は外国だとセンサ制御やってる人は居るのですが、大体がゲーマの方ではなく、Make:つまりDIY方面の方たちです。MCUにArduinoを使えばADNSセンサ用のサンプルコードも無くはないので、実は言語の壁を超えられれば参入障壁はかなり低いんじゃないかと思います。それこそMCUが載ったボードとセンサーのシールドを買ってきてサンプルコードをコピペするだけで動かせるレベルなので。

ゲーミングの世界でもデバイスの自作という選択肢が出てきたら面白そうです。
ゲームエンジンやコンピュータを一から作るよりはハードルは低いと思ったり。
既存パーツをアセンブルするだけの自作PCよりはちょっと難しいですが、ケース自作とかやってる人はぼちぼち居ますし、ぜひぜひ(何を?)

2 件のコメント:

  1. OCしたアツアツのセンサーと聞いてホイホイやってきました:)

    センサーの最大フレームレートを遥かに上回るfSCLKでも普通に動いてしまうのですねぇ。
    これならデータシート上2MHzまでのADNS-3090やADNS-9500なら
    もっと高い周波数まで耐えれそうな予感が。

    あとはセンサーの内部オシレーターをなんとかできれば
    スキャンレートそのものを無理やり向上させることもでき
    ほんとにチップがアツアツのオーバークロックができそうですが・・・
    Avagoデータシートによると
    Frame Rate = Clock Frequency/Frame_Periodということで
    内部発振周波数が24MHzで最小フレーム時間が0e7eのADNS-3090は最大フレームレートが6469fps
    内部発振周波数が47MHzで最小フレーム時間が0fa0のADNS-9500は最大フレームレートが11750fps
    となっているようです。
    レーザー出力を上げて光量低下をカバーし15000fpsで動くADNS-9500とかムネアツですね:)

    返信削除
    返信
    1. rafaさん

      コメントありがとうございます。
      fSCLKをクロック供給としていると勝手に思い込んでいて内部発振回路は考慮してませんでした。
      発振回路は内部に隠蔽されているので余程トリッキーな事をしないとOCは難しいですね。外部からクロック供給を受けるセンサーがあればよいのですが。

      光量的にはShutter値に余裕があると思うので結構行けそうなんですが。

      削除