ひでみのアイデア帳

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

Ubuntuの再インストール

なんか久々にブログを書くような気がする。

母艦のUbuntu 17.10の動作が不安定になってきたのでUbnutu 16.04.3 LTSで再インストールを行った。

実に久しぶりのUbuntuのインストールである。

最初にディスク全てのバックアップをとってみた。

そうすると・・・

ドットで始まるファイルの容量が5GBもあった。

何がそんなにつかっているんだろうか?

暇ができたらバックアップファイルから調査してみよう。

お決まりのアップデート

最初にするのはアップデートである。

もう、これはログイン時のお決まりのコマンド・・・

$ sudo apt update
$ sudo apt upgrade

Unitiは嫌いなのでMATEに変更

古き良き時代のGNOME2スタイルが良いんです。

$ sudo apt install -y ubuntu-mate-desktop

日本語ディレクトリを英名に変更

下記のダイアログで日本語ディレクトリを英名に変更する

$ LANG=C xdg-user-dirs-gtk-update

Caps LockとCtrlの入れ替え

下記のファイルを書き換えてリブートする。

/etc/default/keyboard

# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL="pc105"
XKBLAYOUT="jp"
XKBVARIANT=""
XKBOPTIONS="ctrl:nocaps"
BACKSPACE="guess"

Linux Kernelを最新に

次のコマンドでLinux Kernelを最新バージョンにする。

sudo apt install linux-generic-hwe-16.04
sudo apt install linux-generic-hwe-16.04-edge

chrome

chromeをインストールするときのおまじない。

$ sudo apt-get install libappindicator1

次のサイトからgoogle-chrome-stable_current_amd64.debをダウンロードする。

https://www.google.co.jp/chrome/browser/desktop

$ sudo dpkg -i google-chrome-stable_current_amd64.deb

ひとまず、完了

この時点でディスクを7GBしか使っていない。

これでVivadoとか入れ始めると、ディスクを圧迫し始めるんだよなぁ。

2017年12月03日 01時51分48秒 - Permament Link

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

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