問題タブ [imx6]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux-kernel - ov5642 カメラ モジュール ピクセル クロック (8MHz) を imx6 quad に接続する方法
Debian jessie (3.14.60-fslc-imx6-sr) で i.mx6quad を使用しています。
OV5642 カメラモジュールを PARALLEL 8BIT インターフェイス (データ用に 8gpios、制御信号用に 3 つ使用) と共接続したい。制御信号からの割り込みを処理する Linux カーネル モジュールを作成しました。VSYNC および HREF 信号からの割り込みは適切に処理されますが、HREF または VSYNC よりもはるかに高速な PCLK (約 8MHz) 信号を接続すると、PCLK とのワイヤを切断するまで Linux がハングアップします (すべてスタックします)。PCLK を接続するには GPIO90 (DISP1_DATA22) を使用しますが、他の gpios でも試しました。
ここで私の質問は、PCLK などの高速信号を適切に処理するためにどの GPIO を使用する必要があるか、または Linux のハングアップを回避するために何ができるかということです??
私が使用する Linux カーネル モジュール コードを含めます。
添付の画像に示す利用可能な gpios でハミングボード ゲートを使用していることを付け加えることができます。
yocto - Yocto: パッケージの RDEPENDS から依存関係を削除/ブラックリストに登録する方法は?
https://github.com/jumpnow/meta-wandboardに基づくカスタム マシン レイヤーがあります。
カーネルを 4.8.6 にアップグレードしたので、X11 をイメージに追加したいと考えています。画像レシピ(console-image.bb
)に変更しています。wandboard は i.MX6 ベースなので、xf86-video-imxfb-vivante
からパッケージをインクルードしたいと思いますmeta-fsl-arm
。ただし、ビルドできないと不平を言って失敗しますkernel-module-imx-gpu-viv
。私はそれが起こると信じていxf86-video-imxfb-vivante
ます。imx-gpu-viv
kernel-module-imx-gpu-viv
これらの依存関係は、meta-fsl-arm BSP とバニラ Poky ディストリビューションで作成されていることを認識しています。しかし、それらはワンドボードにとっては時代遅れであるため、最新のカーネルでカスタム マシン レイヤーを使用しています。kernel-module-imx-gpu-viv
カーネルは Vivante DRM モジュールを含むように構成されていますが、パッケージをビルドしたくありません。
RDEPENDS から除外する方法はありますか? この特定のランタイム依存関係を自分で処理することを、ビルド システムにどうにかして誓うことができますか?
local.conf で「kernel-module-imx-gpu-viv」設定PNBLACKLIST[kernel-module-imx-gpu-viv]
をブラックリストに登録しようとしましたが、これは解決策の一部にすぎません。ビルドの失敗を回避するのに役立ちますが、パッケージ化プロセスは依然として失敗します。
linux - -platform eglfs を使用して Qt5 アプリケーションを実行すると、i.MX6 で「EGL エラー : EGL サーフェスを作成できませんでした: エラー 0x300b」が発生する
hellogl_es2
eglfs プラットフォームを指定して、X サーバーなしで Qtの例を実行しようとしています。
CPUはフリースケールi.MX6。
Linux カーネルは 3.10.17 です。
ディストリビューションは Ubuntu 14.04.4 LTS (trusty) です。
Qt バージョンは 5.2.1 で、http://packages.ubuntu.com、armhf アーキテクチャ、パッケージ qtbase5-dev、qtbase5-examples、qtbase5-examples-dbg からインストールされます。
コア ダンプは次のとおりです。
動作は他の Qt サンプル プロジェクトと同じです。
このパッチhttps://patchwork.openembedded.org/patch/66349/を適用して、または適用せずに、ソースから Qt をリメイクしようとしまし たが、結果はありませんでした (同じエラー)。
c++ - Qt5 on iMX6: ハードウェアアクセラレーションが使用されていることを確認するには?
Qt5
ライブラリを使用Qwt
して、いくつかのトレースをプロットし、グラフィックズームを使用し、その他の単純な Qt ウィジェット ( 、 、 などQLabel
)QPushButton
をQScrollBar
使用するアプリケーションがありますQFrame
。
アプリケーションは Linux で実行されています。
Linux カーネルは 3.10.17 です。
ディストリビューションは Ubuntu 14.04.4 LTS (trusty) です。
Qt のバージョンは 5.2.1 です。
私の質問は: iMX6 ビルトイン GPU ハードウェア アクセラレーションが使用されていることを確認するにはどうすればよいですか? 指定する必要がありますか:
Qt
.pro プロジェクト ファイルに?
についてQwt
は、使用するだけで十分QwtPlotGLCanvas
ですか?
それらは私ができる最善のことですか?
yocto - iMX6 TinyRex モジュールの yocto ビルドが起動しない
yocto を使用して iMX6 TinyRex モジュールのイメージを構築しようとしています。ビルド プロセス中に問題は発生しません。すべてが機能しているようです。しかし、出来上がった画像をSDカードにコピーして挿しても起動しません。空白の画面が表示されます。
私はこのチュートリアルに従っています:
http://www.imx6rex.com/imx6-tiny-rex/software/how-to-start-with-yocto-and-compile-source-codes/
いくつかの異なる画像を試しましたが、どれもうまくいかないようです。私はこのプロジェクトを他の人から引き継ぎましたが、yocto は初めてです。
どんな助けでも大歓迎です。
android - mipi csi2 が正しくデータを受信できません! ov9724 カメラと imx6dl マイクロコントローラーでビデオをキャプチャする際のエラー
omnivision の ov9724 カメラを imx6dl マイクロコントローラーと接続しようとしています。カメラには単一レーンの mipi インターフェイスしかなく、通信には 1 つのレーン (1 つの差動データ レーンと 1 つの差動クロック レーン) のみを使用しています。
"git://git.freescale.com/imx/linux-2.6-imx.git"に ov5640 用のカメラ ドライバーを移植しました。カメラには RAW-10 ビット出力しかないため、オンラインで見つけた参照コードに基づいてコードを編集しました。
これは、私が編集した関連する dts 構成です。
以下にエラーログを添付します。エラーを参照すると、これらの 2 つのビットがエラー レジスタ 1 のデータシートに従って設定されていることがわかります。
ビット 4: 仮想チャネル 0 のフレーム開始とフレーム終了の一致エラー
ビット 28: ヘッダー ECC に 2 つのエラーが含まれています。回復不能。
IPU - 1、CSI - 0、仮想チャネル - 0、およびレーン数 - 1 を使用するように imx を構成しました。以下のログを参照してください。
クロック設定と関係があるのではないかと思いますが、先に進む方法がわかりません。「カスタマーMIPIセンサーのデバッグ手順」ドキュメントに記載されているdphyレジスタ設定を見ました。これは、ドキュメントAN5305(ページ14 )で入手可能な情報に基づいて作成したと思われます。これをここに添付します。
以下のようにクロックを設定しました。
データシートによると、カメラ センサー側では、ピクセル clk = (ext_clk * pll_multiplier) / (sys_clk_div_pll * pre_pll_clk_div_pll * pix_clk_div_pll) = (24000000 * 0x3E) / (0x0A * 0x01 * 0x02) = 75.6 MHz .
imx 側で mipi dphy クロックを構成するために、次の計算を使用しました。(30 fps で 1280 x 720 の場合) (この計算は、ここに添付されている AN5305 ドキュメントのセクション 3.4、13 ページの式に基づいています)。
ピクセルクロック = 1280 * 720 * 30 fps * 1 サイクル/ピクセル * 1.35 ブランキング間隔 = 74.6 MHz
合計 MIPI データ レート = 74.6 * 10 ビット = 746 Mbps。 1 レーン インターフェイスの場合、MIPI クロック = 746 / (レーン数) / 2 = 746 / 1 / 2 = 373 MHz。
MIPI_CSI2_PHY_TST_CTRL1 設定 = 373 MHz * 2 (DDR モード) = 746 MHz
この値に基づいて、AN5305 の 14 ページを参照して、mxc_mipi_csi2.c で mipi dphy 設定を次のように編集しました。
時計の設定が正しいかどうかはまだわかりません。AN5305 ページ 21 に記載されている ov5640 のクロック設定についても不明です (ここに画像として添付しました - AN5305.png の MIPI CLK 設定)。なぜ彼らは PLL5 を596 MHzに設定しているのですか?
また、ipu と mipi の構成は次のとおりです。
以下に示すように、「dphy_clk」、「pixel_clk」、および「cfg_clk」を出力しました。
sh-4.3# dmesg | grep clk
ピクセル clk が 30919000 に丸められていることがわかりました。この部分がわかりませんでした。ここで、dphy_clk は 198 MHz です。追加の pll 設定などを変更する必要がありますか?
MIPI エラーを示すカーネルデバッグログ
私が所有している DSO は 200 MHz しかないため、clk およびデータ ラインをプローブできません。私が観測した波形を以下に添付します。(黄色のプローブ - DATA_P、緑色のプローブ - DATA_N、青色 - CLK_P、ピンク - CLK_N)。ストリーミングをオンにしたときにデータ ライン上のデータを観察していますが、最初はクロック ライン上に何も表示されませんでした。その後、クロックラインの分圧を100mV(データ電圧は1V程度)に下げたところ、クロックにノイズのような波形パターンが現れました。データが存在する場合、クロックが存在するようです。しかし、両方のデータ ラインを調べると、fig scope_15.bmp に示すように、クロック ラインがノイズのように見えます。なぜ時計がそのように動作するのかわかりません - ハードウェアの問題ですか? ただし、imx 側では、MPHY MIPI CSI2 PHY_STATE レジスタに従って ddr クロックが検出されます。
これが長い投稿であることは承知していますが、これまでに行ったことをすべて含めたいと思いました。私はLinuxの初心者で、基本的にこれが私の最初のプロジェクトです。以下に私の質問を要約します。
- ログに表示される MIPI CSI エラーの原因は何ですか?
- 波形のクロックは正常に見えますか? mipi インターフェイスが機能するのに十分ですか?
- dphy クロック設定が間違っている場合、imx とカメラ クロックの両方を設定する方法を教えてください。さらに重要なことは、カメラ センサー クロックが dphyclock にどのように関連しているかということです。
- ドキュメント AN5605 の 21 ページでは、Clock 596MHzの重要性と使用すべきクロックは何ですか?
考えを教えてください。
AN5305ドキュメント へのリンク - http://www.nxp.com/assets/documents/data/en/application-notes/AN5305.pdf