さて、絵が出る様になった頃、不思議な現象がおきました
確かに絵が出るのですが、絵を明るくしていくと、ある部分がぽこっと黒くなってしまうのです、暗くなった部分は色が消えるわけではなく、そこにはそこで、絵があるのですが、いったん黒くなって、また明るくなります。
ふえー?なんだこれは?
1,2,3,4と増えていくはずの値が、突然折り返すと、精神衛生上とても良くないです。
私の特技は、不具合が出た時にその不具合を追い詰める事です
ソフトウェアの不具合はバグ(虫)と呼びますが、このバグの発生箇所を
追い詰めるのは、なかなか自信があります
まずは、何が起きているかを調べます
今回の場合、明るさに起因している事は間違いないので
丸いボールの様なものを用意したりします
ここに光を当てて、絞りを調節すると、明るさが段階的に変化する絵ができます
この値が、いくつになるのかを見ていきます
まず、光を遮光して真っ黒にします、イメージセンサの出力は真っ黒にしても少し出ているので(完全に0になったらどこかおかしいですよ)2〜10暗いの値がチラチラしていきます。
ここでは不具合がないので、少しずつ明るくしていきます。
最終的に光量は255まで明るくなります。
え?0〜255まで値が出てんじゃん!
俺の予想は127あたりで折り返すのかと思ってたけれど、ちゃんと255まで出ている・・・っと思ったら0に戻りました、なんと明るくしていくとまた0に戻り、値が上がっていく、更に255まで上がってから0にもどる。
光が飽和するところまで完全に明るくすると全て255になるのですが、その間に3回飽和していました。
ここから、回路を戻っていきます。
一つの画素信号に注目していき、bit7(最上位)ビットをオシロスコープで確認しながら
光を当てていきます
これでポイントを遡っていき、どこまで正常かを見ていきます。
最終的に、どこまで行ってもこの不具合は繋がっていて、源泉のイメージセンサにたどり着きました。
英語の仕様書を読み直します。
すると、なんと言う事でしょう。
このセンサーは10bitの出力でした
FPGAのピン数の制限で、10ビット全てを取り込む事ができなかったため
上位8bitを取り込もうとして、下位8ビットを取り込む回路になっていました。
私は回路を引いた上司に報告した・・・