ひでみのアイデア帳

くだらないことなんだけど、忘れないために・・・

次にやりたいことを忘れないように備忘録

SDSoCで回路を生成するとこのような感じになる。

AXI Interconnectの先にアクセス用のモジュールとファンクション用の回路が生成される。

それを合成するとこんな感じに配線される。

フォーカスしているところはAXI InterconnectのAXIバスのところ。

今回はLattePandaからEdgeで書き込んだ。
2017年11月13日 00時06分42秒 - Permament Link

ぼちぼちとZYBO Z7でMIPI

手動でMIPIのCRC計算も正常であることがわかったので解析はこれでおしまい。

ぼちぼちとRTLを作り始めた。

しかし、LANE0とLANE1でシリアルデータが2bitずれてるんだよね。

まぁ、ロックすることは簡単だから別にいいんだけど、ちょっと、気持ち悪いよなぁ。

ひとまず、MIPIからAXI Streamで出力する回路を作った。

それでDMAなどを合体して盛ってみました。

そしたらこんなブロックになりました。

ついでなのでHDMI出力も盛っています。

まだ、Linux側のドライバを最新Kernelに取り込んでいないので、それができたらMIPIカメラをキャプチャするかな・・・

2017年11月08日 01時00分29秒 - Permament Link

まだまだ、続いているMIPI解析

ZYBO Z7用のMIPI Rx回路を作成しようとしているんだけど、もう少しマジメに解析してみよう。

昨日まで解析してたのは4 Laneモードでの解析だったみたいで、データを計算するとCRCが合わなかったのだ。

そこでマジメに解析ってことに・・・

40001A60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
40001A70: 00 00 00 00 00 00 00 00 AE B8 00 00 0A D0 00 00 
40001A80: C3 3C 00 00 06 14 00 00 07 14 00 00 07 14 00 00 
40001A90: 07 14 00 00 07 14 00 00 47 14 00 00 07 14 00 00 
40001AA0: 07 15 00 00 07 15 00 00 47 14 00 00 C7 15 00 00 

なぜか、ZYBO Z7では 2 Laneモードの場合、0xAEから始まるデータで取得できるみたい。

データを並べる

Lane 0

07_06_C3_0A_AE_00

Lane 1

14_14_3C_D0_B8_00

ビット列に展開

Lane 0

0000_0111 0000_0110 1100_0011 0000_1010 1010_1110 0000_0000

Lane 1

0001_0100 0001_0100 0011_1100 1011_0000 1011_1000 0000_0000

SoTを探す

下記のイタリックの部分が各LaneのSoTである。

Lane 1のSoTはLane 0より2bit遅く出現する(元はシリアル通信なので)。

Lane 0

0000_0111 0000_0110 1100_0011 0000_1010 1010_1110 0000_0000

Lane 1

0001_0100 0001_0100 0011_1100 1011_0000 1011_1000 0000_0000

SoTを起点にデータを取り直す

Lane 0

0001_1100 0001_1011 0000_1100 0010_1010 1011_1000

Lane 1

0001_0100 0001_0100 0011_1100 1011_0000 1011_1000

Lane 0/1で交互にデータを取ると・・・

2A_D0_0C_3C

こんな感じでこのパターンはRAW 8bitのWidthが0x0CD0で0x3CがECCとなる。

ECCも計算値と間違ってないので、これでOKなのである。

2017年11月05日 23時51分01秒 - Permament Link

ZYBO Z7でPiCAM MIPI解析

C93(冬コミ)は当選しました。

いきなり、MIPIとは違う話・・・

金曜日東カ35b「AQUAXIS」になります。

コミケに起しの際は技術書典同様にお立ち寄り頂ければ幸いです。

それは置いといて・・・

ぼちぼちとZYBO Z7でPiCAMのMIPIデータを解析しています。

だいたいの解析は完了?

どこが開始ビットでどんな風にデータを読めばよいかだいたい、解析できました。

ただ、腑に落ちない部分もあって・・・

  • データは6bitずれる
  • Frame StartのByte数が不明
  • RAW 8bit/10bit
  • 不明なデータフレームがある
  • 1Lineのデータの長さがわからない
    • 全てが固定でないような感じ・・・

ここまで解析できたがぼちぼちやってる状態です。

データシート読まずにやってるのも悪いのですが・・・

PiCAM V2(SONY製)

SONY製のPiCAM V2ですが8bitか10bitのRAWデータしか出力しないんですね。

PiCAMが出力するフレームは下記の4つでした。

  • Frame Start
  • Frame End
  • Embedded Data
  • RAW(8bit/10bit)

Frame Start

Frame Startは次のようなビット配列で到着する。

次のはオリジナルキャプチャーモジュールのデータである。

400010B0: 00 00 00 00 E0 80 00 00 02 7B 00 00 FC F5 00 00                       
400010C0: FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00                       
400010D0: FF FF 00 00 FF FF 00 00 FF FF 00 00 3F 0F 00 00                       

これからMIPI LANE 0/1のデータを抜き出すと

  • LANE 0 = FC02E0
  • LANE 1 = F57BB0

これをビット列にする

  • LANE 0 = 1111_1100 0000_0010 1110_0000
  • LANE 1 = 1111_0101 0111_1011 1011_0000

SoTを見つけ出す(次のイタリックが10111000のコード)

  • LANE 0 = 1111_1100 0000_0010 1110_0000

ここからMIPIのDIを抜き出すと0x00でFrame Startがわかる。

しかし、その直後のデータが0x5Eとかになる。

これの意味がわからない。

たぶん、インクリメントな数値のように思える。

Frame End

まだ、出会ってない(^-^;

Embedded Data

これは何使えば良いのか不明なので無視する。

RAW(8bit/10bit)

フレームレングスが固定でないのが気になるところ。

あとはここさえ解ければ画像に戻せるんだが・・・

2017年11月03日 23時25分57秒 - Permament Link

ZYBO Z7のMIPI信号の解析

さて、解析できる回路を作ったのでさっそく信号をキャプチャーしてみた。

Webを調べるとMIPIの同期は1011_1000な信号を拾えればOKのようなのだがこれのMSB/LSBはよく分かっていない。

信号をキャプチャーしてみるとこんな感じのデータが取得できる。

400010A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
400010B0: 00 00 00 00 2E B8 00 00 C0 29 00 00 FF FF 00 00
400010C0: FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00
400010D0: FF FF 00 00 FF FF 00 00 FF 4F 00 00 03 00 00 00
400010E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

データはオリジナルキャプチャーモジュールの作りなので次のようにint型でデータが並んでいる。

それが入力クロックで取得できていることになっている。

bit 信号
[31:20] 未使用
[19:16] LP_LANE1_N, LP_LANE1_P, LP_LANE0_N, LP_LANE0_P
[15:8] MIPI_LANE1
[7:0] MIPI_LANE0

つまり、MIPI_LANE0は次のような順番になっているということです。

0x2E, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03

ビットにするとこんな感じなのかな?

0010_1110_1100_0000_1111_1111...

う〜ん、10Byteぐらいのデータってなんだ?

しかも、1011_1000なデータって見つからんし・・・

他にはこんなデータがあった。

400011F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40001200: 00 00 00 00 00 00 00 00 AE B8 00 00 84 04 00 00
40001210: 42 AA 00 00 95 00 00 00 16 55 00 00 84 55 00 00
40001220: 96 71 00 00 63 5A 00 00 95 11 00 00 56 55 00 00
40001230: 55 5A 00 00 15 07 00 00 40 A5 00 00 95 29 00 00

こっちは長いので本命のデータかもしれない。

夜も更けてきたので今日はここま

さて、本日はC93の当落発表なのでこれで今年最後にもうひと頑張りするかしないかきまるのだ。

2017年11月02日 02時15分19秒 - Permament Link