Multi Source Translation Content

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Multi Source Translation Content

Discussions

Sort by:
[MPC5777C] 了解 e200z759n3 内核的指令流水线 您好! 在研究 e200z759n3 内核的指令执行路径时,我想到了以下问题: 看来e200z7核心参考手册在管道执行单元的内容上并不十分一致。在图 17 中,整数执行单元和乘法单元是分开的。不过,"4.2.1 整数执行单元 "部分涵盖了整数乘法和除法。4.6 并发指令执行 "一节提到了 "双标量整数单元 "的存在,但没有提到任何乘法单元。我认为内核有两个整数执行单元,可以执行任何整数运算(如和、乘、除)。我的结论正确吗?双发行流水线能否同时执行两个乘法运算? 我画了下图来说明管道执行流程,并根据参考手册更好地理解它。我误解了什么概念吗? 顺祝商祺! 马特乌斯 Re: [MPC5777C] Understanding the instruction pipeline of the e200z759n3 core 1) 当然是的,这张图片与 e200z4 有关,也是双重问题 2) 这取决于管道内容本身。您可以从上一个答案的图片中看到。第一条指令很短,不会对另一条指令造成任何停滞。第二条指令较长,会导致停滞,因为第三条指令取决于第二条指令的结果。 3) 还得再等等。 4) 基本上是的。在此,编译器优化也会对其产生影响,编译器可能会改变指令顺序,以更好地利用双发架构(即:"......")。指令调度),以实现最高级别的优化。 Re: [MPC5777C] Understanding the instruction pipeline of the e200z759n3 core 感谢您的回复,大卫! 还有几个问题: 由于流水线具有双发功能,而执行单元有两个整数单元,那么它能否在同一时钟周期内启动两个独立的整数乘法或整数除法指令的取数阶段? 在执行加法这样的简单指令时,手册上说它在一个时钟周期内完成执行阶段。WB 级是紧随 E0 级之后进入时钟周期,还是必须再等待三个空闲时钟周期,就像必须增加一个空闲填充,才能使用流水线的所有 10 级完成从 IF0 到 WB 的整个周期? 当两条指令之间存在数据依赖关系时,目标指令是在与源指令最后执行阶段相同的时钟周期内开始执行阶段,还是必须等待下一个时钟周期?我不清楚馈送器是如何工作的。 既然是解码阶段检查指令之间的数据依赖性,那么所有流水线停滞都发生在 D1 和 E0 流水线阶段之间的结论是否正确? 顺祝商祺! 马特乌斯 Re: [MPC5777C] Understanding the instruction pipeline of the e200z759n3 core 1) 我认为它无论如何都不会与执行单元分离,它只是执行单元的一部分: 2) 我无法确认您的草图是否准确,但从原则上讲,这肯定是正确的,而且符合流水线的各个阶段。原则上,这肯定是正确的,也符合管道阶段的要求: 我可以推荐以下演示文稿,它可能比 e200 手册更容易阅读: https://community.nxp.com/t5/MPC5xxx-Knowledge-Base/e200-Core-Training-relevant-to-MPC55xx-and-MPC56xx-device-family/ta-p/1115124 Re: [MPC5777C] Understanding the instruction pipeline of the e200z759n3 core 你好,戴维 为了了解指令流水线中的内存依赖性,我为以下代码片段构建了时序图,其中包含与 r6 相关的依赖关系: mtctr r5 .loop: e_addi r6, r6, 1 e_mulli r6, r6, 1 e_bdnz .loop 不过,在绘制图表(附在本回复后)时,我注意到,虽然吞吐量保持不变,但指令执行延迟每次迭代都会增加两个周期,而且似乎没有上限。我错过了什么吗?流水线是否规定了滞留指令的最大数量? 欢迎指出我图表中的其他错误。 致以最诚挚的问候, Matheus Re: [MPC5777C] Understanding the instruction pipeline of the e200z759n3 core FF 的意思是前锋,与 STALL 不同。我建议大家也看看 e200z6 RM,因为它是较早的核心变体,有些主题的描述方式有些不同,可能更容易理解。 https://www.nxp.com/webapp/Download?colCode=E200Z6RMAD&location=null 是的,演示可能会简化,但我觉得差别不大。 Re: [MPC5777C] Understanding the instruction pipeline of the e200z759n3 core 你好 似乎每迭代一次循环,滞留指令的数量就会增加两条。 流水线对停滞指令的数量有限制吗? 它们被储存在某个缓冲器中吗? 如果是,该缓冲区有多少条目? 这是否与缓冲区的问题有关? 如果停滞的指令被保存在某个缓冲区中,那么当缓冲区满了,又有一条指令停滞时,会发生什么情况? 顺祝商祺! 马特乌斯 Re: [MPC5777C] Understanding the instruction pipeline of the e200z759n3 core 我认为这可能是正确的,乘法运算的延迟指定为 3 或 4 个周期(每 4 个周期有一个结果)。这种情况是最糟糕的极端情况,即所有操作都依赖于前一个操作的结果,此外还在循环中运行,这基本上导致管道的完全消除。 它的工作原理与完全无管道的情况基本相同。 Re: [MPC5777C] Understanding the instruction pipeline of the e200z759n3 core 您好! 回到管道填充问题上来。如果没有像您发送的图像所示的那样填充所有四个执行阶段的填充,那么为什么参考手册中的图表显示 " FF " 边距? 没有填充物的演示图不是简化版吗? 带填充的参考手册图: 顺祝商祺! 马特乌斯 Re: [MPC5777C] Understanding the instruction pipeline of the e200z759n3 core 我认为你的图表中的错误在于,你总是从左侧开始。我不知道我是否能够解释清楚。 使用 e200z6 手册中的图片,在指令缓冲器之后是指令寄存器(标记),然后是解码级。当执行单元出现停滞时,意味着指令缓冲区中的指令在无法进入后续阶段时也无法解码。 理想情况下,您可以考虑每个单位在某些点的确切状态。总之,在图表中将停滞点置于何处并不重要,因为其结果总是导致相同的性能。 性能受限于流水线的瓶颈,这里指的是欧盟单元的停滞,影响整个系统。 我不确定这是否有帮助。 总之,你为什么要知道这么确切的细节呢? 无论如何都无法以这种方式分析真实代码,为此目的,有性能监测器、调试跟踪等工具。 Re: [MPC5777C] Understanding the instruction pipeline of the e200z759n3 core 你好,戴维 我正在研究通过共享硬件进行的内核间交互如何影响执行时间和资源消耗。我使用性能监测进行了一些验证,但我无法理解我的结果,现在我明白了。非常感谢你的澄清! 最良好的祝愿, Matheus
View full article
PBRIDGE accessed by two resources at the same time Please, in MPC5777C what happens if SPI is sending data through the PBRIDGE at the same time another resource is sending data as well, for example the temperature sensor. What data will be processed first? How bridge chooses the data to be processed first? Re: PBRIDGE accessed by two resources at the same time Yes, this is managed by XBAR (if it is the same PBRIDGE as some devices has two or more). Re: PBRIDGE accessed by two resources at the same time If two cores try to simultaneously access resources connected in PBRIDGE, will these accesses be arbitrated by XBAR or there is another arbitration mechanism in bridge? Re: PBRIDGE accessed by two resources at the same time SPI does not initiate any data transfer over PBRIDGE as it is XBAR slave port. XBAR master initiates (core, eDMA, ..) data transfers (but it can be according interrupt or trigger signal from XBAR slave). However transfers over XBAR are processed according XBAR priority.
View full article
当前的 FSS 版本"S32N_FSS_FW_R21-11_1.8.1" 是否支持 S32N53? 你好,团队、 客户 HKMC 将从 S32N55 移至 S32N53。 所以我的问题是 当前的 FSS 版本"S32N_FSS_FW_R21-11_1.8.1" 是否支持 S32N53? 如果不是,什么时候会版本支持 S32N53 的 FSS? 顺祝商祺! 谢谢您! HSE_FW 优先级:高 Re: Does current FSS version "S32N_FSS_FW_R21-11_1.8.1" support S32N53? 你好,谭生、 我们计划在本月(7月底)发布的版本中提供支持; 谢谢! 辛杜
View full article
S32K144: Integration of FlexCAN inside lin_master_s32k144 (S32DS.ARM2.2) Good morning: Currently using the S32K144EVB board to prepare a system demo, where we must manage 1 classical CAN-HS network (500k) and 3 LINs. (19200, multiple slaves in each LIN)  k144EVB board will behave as LIN master for the 3 LINs, that's why as starting point I've selected the LIN_master_S32K144 example. LINStACK is working fine and now I've started to check the integration of the CAN communication into the project. Reviewing S32K144 documentation and examples, i see that the K144 has 2 different ways to manage the CAN communication... either via FIFO or either via MBs... Unclear the benefits of one over the other...  for a system where i must receive 4-5 CAN messages, process some of the content data and transmit periodically 1 or 2 CAN messages: 1) which configuration is easier/better to use, considering that my LIN master will operate at full capacity?FIFO or MB? 2) do we expect any registers/clock/interrupts conflicts between NXP linstack and the FlexCAN integration? 3) is there any example available already with such an integration (LIN-MASTER + CAN-HS)? Re: S32K144: Integration of FlexCAN inside lin_master_s32k144 (S32DS.ARM2.2) Hi@rricart There's no relationship between LIN and CAN; they are two independent peripheral modules. For the S32K1 FlexCAN, the CAN FIFO does not support CAN FD, so you need to consider whether need to support CAN FD or not. If your project doesn't require CAN FD feature, either the MB or the FIFO will fine. You can refer to the demo provided in this link, which categorizes the different ways to use FlexCan and provides a simple test demo. https://community.nxp.com/t5/S32K-Knowledge-Base/S32K1xx-FlexCAN-Mask-Setting-Demo/ta-p/1519753
View full article
SBC FS26 R21-11 5.0.0 の MBDT への統合 こんにちは、 私は NXP Web サイト (MBDT 上の SBC FS26 R21-11 5.0.0) でこれらのドライバを見つけましたが、これを MBDT に統合できるかどうか、またできる場合はその方法を知りたいと思いました。 これらのドライバを含むフォルダーをコピーして RTD パスに貼り付けようとしましたが、S32CT を開いてもドライバを追加できないSO、正しい方法ではないと思います... ありがとうございます サイモン Re: Integration of SBC FS26 R21-11 5.0.0 on MBDT SBC_FS26とMBDTを統合するための解決策は見つかりましたか?現在この件に取り組んでおり、何かアドバイスやご意見をいただければ大変ありがたいです。 Re: Integration of SBC FS26 R21-11 5.0.0 on MBDT プライベートメッセージをご覧ください Re: Integration of SBC FS26 R21-11 5.0.0 on MBDT この問題の解決策は見つかりましたか? 解決策はありますか?あるいは、何か試せるアイデアがあれば教えてください。 MBDT FS26 Re: Integration of SBC FS26 R21-11 5.0.0 on MBDT こんにちは、残念ながら全く違います
View full article
串行线调试的乐趣与游戏 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我为我的 LPC1517 项目重新铺设了电路板,以移动 SWD 插座。数据和时钟直接传输,但 0V 电压则绕到一个小型(1 瓦)降压稳压器的后面。如果我想从麦克风前置放大器中获得 -130dBV/√Hz 的信号,我不会使用这种 PCB 跟踪技术,但对于具有 1V 抗噪能力的数字信号来说,速度并不快,我想应该没问题--但是没有--出现了大量 ACK、Flash 写入失败之类的错误。 我剪断了轨道,换上了一条沿着数据和时钟轨道走向的导线,然后就成功了。 因此,SWD 就像是 SPI 的半双工版本,MOSI 和 MISO 复用到一个引脚上,运行频率为 1MHz;所以重要的时间是时钟转换。其他都不重要。因此,可能有三种情况会妨碍它的工作:边沿过快导致接地反弹,边沿过慢导致抖动,或者目标阻抗过高导致干扰进入。因此,我尝试了几种方法--220pF 跨时钟到地、1k 下拉和 10k 串联阻抗--1k 似乎最有希望,但没有真正成功。 LPCXpresso 崩溃了 - 我强行退出,然后重新启动。 然后一切正常 所以,我比以往任何时候都更加困惑。 同一批的另一块板容易出错,但是如果我的示波器接地夹连接到电路 0V,则可以正常工作。 我听您说过,这意味着电路应正确接地,但电路 0V 与电源接地相连,而示波器却没有。 另一个令人困惑的问题是,从提交闪存写入" 时出现的"目标错误显示"system rejected access at location x"; 但我遇到的所有错误中,位置 x 都在 RAM 中。 不同的电路在机柜中与开关电源相邻时不会连接。把它从柜子里拿出来,就可以正常使用了。 我觉得这一切都很令人费解,因为我一直使用 SPI,速度是它的十倍,而且没有过多考虑 PCB 跟踪问题。如果效果这么差,我的 LED 显示器就会像启动器失灵的荧光灯管一样闪烁。 有人有什么想法吗? LPC13XX lpc15xx LPC800 Re: Fun and games with Serial Wire Debug 我花了三天时间确信这是硬件故障,直到我意识到我在初始化代码中翻转了两个引脚。突然之间,传感器数据变得有感知了,但是在我玩 Slope Game 时为了放松而发生迷你崩溃之前,情况并非如此。 Re: Fun and games with Serial Wire Debug 有趣的是,即使是微小的 PCB 布线选择也会导致重大问题,尤其是像 SWD 这样的敏感信号。这让我想起了大米纯度分数的不可预测性--有时,看似简单的事情会呈现出意想不到的复杂性! Re: Fun and games with Serial Wire Debug > 有人有什么想法吗? 我会尝试降低 SWD 时钟频率,看看效果如何。 我建议是一个数量级,即 100 千赫或更低。 这样调试并不有趣,但可以证明一点。 Re: Fun and games with Serial Wire Debug 我创建了一个名为 Debug 的单例和一个始终位于顶部的基本文本框。我现在可以不打印,而是 Debug.output(text) 因此,在我测试时,它就会出现在游戏中。当你只有一台监测时,有时,几乎每时每刻都会让事情变得容易得多。 模拟人生 4》满意度积分作弊器最近派上了大用场,当时调试任何东西的唯一方法就是实时更新我的视网膜所观察到的确切坐标,而使用 print() 会很麻烦,而且会激怒戈多。"减少文字印刷量" 此外,它还能实时捕捉仅出现的问题,而无需密切关注 Godot 输出日志。 Re: Fun and games with Serial Wire Debug <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 不太确定你期望我在参考手册中找到什么,而我在帖子中还没有提到过。在 LPC15xx 手册的三页中,除了连接图和两个引脚都有上拉功能外,几乎没有其他内容。它甚至没有说明 SWCLK 只是输入,而 SWDIO 是双向的。我的大部分信息来自ARM关于该主题的白皮书。 至少我很高兴恩智浦不再建议在 SWCLK 上使用下拉电阻(pullDOWN)了--那会严重破坏抗噪能力,尤其是在您碰巧获得与内部上拉电阻相同的电阻时。 无论如何,我进一步进行了实验,并在SWCLK输入中添加了施密特触发信号。我尝试了 74LVC1G17 和一对 74HC14 的栅极。结果令人震惊。在我追踪不太好的板上,错误率从65%下降到零。100 次尝试中没有一次编程失败(1G17 和 HC14 没有区别) 然后,我将导线延长到标准的 150 毫米以外。在 LPC-LINK 和 targert 之间的 1 米引线上没有出现过任何故障。3 米处仍未出现故障。除此之外,无缓冲 SWDIO 线路上电缆的体电容也成了问题,误差逐渐增大。 下一步是在使用高噪声开关电源的电路上进行试验! 磁滞似乎可以解决问题,PIO0_18 引脚也有一个磁滞选项,但我敢打赌,在 SWD 操作期间,它不会打开。但我想知道,如果我在软件中设置了 IOCON 寄存器的第 5 位,那么在下一次编程时,迟滞功能是否仍会开启? 想尝试的人请注意:您的 SWCLK 输入(74LVC1G17 的输入)现在需要一个下拉电阻。我用的是 3.3kΩ。这个值并不重要,因为连接太短,不能被视为传输线,所以从技术上讲,它不是"终端" 。 Re: Fun and games with Serial Wire Debug <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好 IanBenton、 为了提供尽可能快的支持,我想请你参考参考手册中的串行线调试章节 查看详情。 祝你愉快 TIC   ----------------------------------------------------------------------------------------------------------------------- 注:如果本帖回答了您的问题,请点击正确答案按钮。Thank you! -----------------------------------------------------------------------------------------------------------------------
View full article
使用 “tk (密码块链接(CBC) (aes))” 进行文件系统加密时出现 imx8mm CAAM 错误 使用CAAM写入文件系统时使用`t k (密码块链接(aes)) `进行文件系统加密时出现以下错误。 caam_jr 30902000.jr:4000141c:DECO: desc idx 20:DECO看门狗定时器超时错误 这种情况只是偶尔发生,但在启用所有内核运行时似乎更为普遍。 Re: iMX8MM CAAM errors when using 'tk(cbc(aes))' for filesystem encryption 很抱歉延迟回复。 我们使用的是 Phytec 公司的 `linux-imx_5.15.71_2.2.2-phy5`,并打上了https://github.com/Freescale/linux-fslc/tree/5.15-2.2.x-imx至 5.15.183 的补丁。 不幸的是,这个问题只是偶尔出现(在跨多个单元的 CI 测试中,每 500 小时左右才会出现不到 1 个实例),而且我还无法创建一个简单的重现器。 最初尝试启用 “CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG” 会阻止我们的设备启动,因为我们正在使用 CAAM 加密根文件系统和各种数据分区,这会生成过多的日志记录。 我正在考虑将日志信息添加到循环缓冲区中,并在错误发生时发出。 由于这只会导致最后 1000 条左右的记录被发出,我想知道是否有任何设置信息是我们应该始终记录的,以支持分析。 谢谢! 丹尼尔 Re: iMX8MM CAAM errors when using 'tk(cbc(aes))' for filesystem encryption 你能否分享一下你正在使用的电路板支持包 版本以及出现问题时的步骤和日志? 此致 哈维 Re: iMX8MM CAAM errors when using 'tk(cbc(aes))' for filesystem encryption 不幸的是,我无法使用其他工具进行重现 😞 我已经添加了最后 2048 条 CAAM 故障日志信息的记录,现在我们正在等待故障在 CI 中再次发生。 我收到日志后会尽快发送给您。 Re: iMX8MM CAAM errors when using 'tk(cbc(aes))' for filesystem encryption 看门狗超时错误是由 DECO 暂停时触发信号的,但是有多种情况可以让 DECO 暂停,例如输入/输出缓冲区地址、长度等。 你能用 "dd" 或 "fio" 工具进行压力测试来重现这个错误吗? 如果问题能够稳定重现,就能帮助我们找到根本原因。 此致 哈维 Re: iMX8MM CAAM errors when using 'tk(cbc(aes))' for filesystem encryption 最后,记录失败。 这应包括 CAAM 子系统的最后 2048 条日志记录。 与标准日志记录的唯一区别是不包括 `src` 和 `dst` 缓冲区数据。 Re: iMX8MM CAAM errors when using 'tk(cbc(aes))' for filesystem encryption 请注意,出于省电的考虑,我们降低了 CPU 和 DDR 的运行速度,这可能会对结果产生影响。 Re: iMX8MM CAAM errors when using 'tk(cbc(aes))' for filesystem encryption 不,我无法用 dd 或 fio 进行重现。 在我捕获之前的日志的系统上,它只会偶尔发生(到目前为止每 2 个月一次)。 在另一个代码略有不同的系统上,这种情况每天至少发生一次。 我们认为这是在启动过程中加载大量共享库时造成的(在我获取日志的系统中并没有使用这些共享库)。 遗憾的是,我们无法轻易收集该版本的日志,但我们可以相对快速地测试补丁,看看问题是否得到解决。 以前的日志是否包含足够的调查信息? 如果没有,还需要什么? Re: iMX8MM CAAM errors when using 'tk(cbc(aes))' for filesystem encryption 简单查看我的日志后发现,在故障发生时,8 个队列请求中的第 8 个请求是产生 DECO 看门狗超时错误的原因。 在日志的早期部分,即使在处理其他偏移量序列时,似乎也很少有排队等待的请求(有时可能只有一个? 这是线索吗? 在此之前排队的 7 个请求似乎都能正确完成,因此可能是以下原因之一... 队列实际上只支持 7 个条目--在这种情况下,减少队列条目的数量可能会有帮助(在哪里可以更改?) DECO 看门狗超时从条目添加到队列时开始,由于处理 8 个条目所需的时间过长,超时也就结束了--在这种情况下,延长超时时间可能会有帮助(同样,如果可能的话,在哪里可以更改?) 这个具体请求实际上有问题,但在我看来,它与之前的 7 个请求等同,因此似乎不太可能出现这种情况 谢谢! 丹尼尔 Re: iMX8MM CAAM errors when using 'tk(cbc(aes))' for filesystem encryption 拿到日志后,我决定亲自深入研究。 当系统处于高内存负载但 DDR 仍以 400MT/s 的速度运行时(在我们的情况下有时为 100MT/s),CAAM 有时会产生看门狗错误。 eMMC 驱动程序会强制 DDR 达到 3000MT/s 的速度,但对于写入而言,这并不一定要等到加密完成后才会发生。 我们已经为我们的用例修复了这个问题,在 `caam_jr_enqueue () `中请求` BUS_FREQ_HIGH `,然后通过计划工作从 `caam_jr_dequeue () `再次将其释放。 这解决了文件系统访问问题,但在从网络堆栈调用时(例如通过 xfrm)会产生问题,因为 `request_bus_freq()` 最终会在原子上下文中被调用(从更高的网络堆栈调用),而且 `request_bus_freq()` 和 `clk_xxx()` 调用都使用了 mutex 我们已经解决了这个问题,在除文件系统之外的所有系统中禁用了 CAAM,但如果向上游推广,还需要更好的解决方案。
View full article
AN4581 的最新版本 您好, 从 2020 年起有 AN4581(在支持 HABv4 的设备上进行 i.MX 安全启动)修订版 4: https://de.scribd.com/document/811030804/AN4581 然而,如果我搜索贵公司的网站或互联网,我只能找到 2012 年或 2018 年的过时版本。 能否告诉我在哪里可以找到AN4581 的最新修订版? 谢谢! Re: Latest version of AN4581 感谢您的支持。 我可以在这里下载 2020 年版本: https://www.readkong.com/page/an4581-i-mx-secure-boot-on-habv4-supported-devices-2622907 旧版本可在此处获取,无需 NDA : https://community.nxp.com/pwmxy87654/attachments/pwmxy87654/imx-processors/225997/1/AN4581.pdf(2012) https://community.nxp.com/pwmxy87654/attachments/pwmxy87654/imx-processors/194321/1/AN4581_2018.pdf(2018) Re: Latest version of AN4581 这个用于安全启动的AN是机密的,您需要与恩智浦签署保密协议。 最好从https://support.nxp.com/s/?language=en_US创建内部票据
View full article
LPC1115 Rev A 驱动程序与 Windows11 的通信问题 需要在 PC 上安装 massDfu64.sys 驱动程序才能进行通信。但是,由于 Windows 11 的内存完整性问题,该驱动程序无法安装。请问,在不关闭内存完整性功能的情况下,我该如何解决这个问题? 谢谢 Re: LPC1115 Rev A Driver communication issue with Windows11 您好, 当 LPC1115 与电脑连接时,它通常会尝试安装驱动程序,但却不起作用。此外,我也没有 LinkServer.exe。 此致, 卡斯滕 Re: LPC1115 Rev A Driver communication issue with Windows11 你好,@CKGrech、 您可以通过以下链接找到链接服务器安装可执行文件:适用于微控制器的LinkServer | 恩智浦半导体 请下载并以管理员权限打开。 如果安装后仍有问题,请告诉我。 Re: LPC1115 Rev A Driver communication issue with Windows11 您好, 我安装了 Link Server,当我打开它时它启动了 LinkFlash,当我按下探测时它会告诉我 " 未连接任何设备 "。 此致, 卡斯滕 Re: LPC1115 Rev A Driver communication issue with Windows11 你好,@CKGrech、 您在 MCUXpresso IDE 上看到相同的行为吗?或者,你最初使用的是什么集成开发环境?
View full article
AUT-N1791 动手实践研讨会:使用 CNN 和其他分类算法识别交通标志 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 该练习旨在进行实践,包括使用视觉处理器在各种图片上运行 CNN 来识别交通信号(停止、转弯、让行等)。首先,我们将介绍机器学习中所使用的算法的基本概念。课程结束后,我们将使用视觉处理器运行 CNN 来识别交通标志和无交通标志。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 该练习旨在进行实践,包括使用视觉处理器在各种图片上运行 CNN 来识别交通信号(停止、转弯、让行等)。首先,我们将介绍机器学习中所使用的算法的基本概念。课程结束后,我们将使用视觉处理器运行 CNN 来识别交通标志和无交通标志。 安全互联汽车和自动化汽车
View full article
FRDM-KL02Z I2Cの2つを接続する際のヒント <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> このサンプルでは、2つのFRDM-KL02Zを使用してI2Cをテストします。400KHzのボーレートで作業することにより、一部のお客様は、I2C_CLKの端に障害が発生したときにI2C_SDAが掘りを生成することに気付くかもしれません。実際には、それはI2Cポートレイアウトに関連しているはずであり、問題はなぜこれが起こるのか、そしてどのように掘り下げるのかということです。 実際には、I2Cピンはオープンドレインであるため、実際には誰も高い値を駆動しません。高い値は、ライン上のプルアップ抵抗のためだけに存在します。J7に搭載されているI2C0_SCL線とI2C0_SDA線を使用してFRDM-KL02Zを2本接続する場合、基板上の慣性センサーとの接続にもこれらの線を使用し、両線に4.7Kのプルアップがあります。問題は、両方のボードのラインに4.7Kのプルアップがあるため、プルアップが意図したよりも弱いことです。そのため、お客様は、役立つ2つのボードの1つからプルアップ抵抗を取り外す必要があります。さらに、I2C バス上に負荷を追加しているデバイスが増えている場合は、4.7K プルアップをさらに強力なプルアップに置き換える必要があるかもしれません。
View full article
iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP For iMX6DQ, there are two IPUs, so they can support up to 4 cameras at the same time. But the default BSP can only support up to two cameras at the same time. The attached patch can make the BSP support up to 4 cameras based on 3.10.53 GA 1.1.0 BSP.   The 4 cameras can be: - 1xCSI, 3xMIPI - 2xCSI, 2xMIPI - 4xMIPI   For 4xMIPI case, the four cameras should be combined on the single MIPI CSI2 interface, and each camera data should be transfered on a mipi virtual channel.   In this patch, we given the example driver for Maxim MAX9286, it was verified working on iMX6DQ SabreAuto board. The input to MAX9286 is four 720P30 cameras. The verified camera boards:     (1) Onsemi AR0140+AP0101+MAX9271 boards.     (2) OmniVision OV10635+MAX9271 boards.   The MIPI CSI2 CVBS camera surround view solution can be found at: iMX6DQ ISL79985/79987 MIPI CSI2 CVBS camera surround view solution for Linux BSP The MIPI CSI2 CVBS HD camera surround view solution can be found at: iMX6DQ TP2854 MIPI CSI2 720P CVBS camera surround view solution for Linux BSP   The kernel patches: 0001-IPU-update-IPU-capture-driver-to-support-up-to-four-.patch      Updated IPU common code to support up to four cameras.   0002-Add-Max9286-support-on-SabreAuto-board-which-can-sup.patch      MAX9286 driver, it includes MAX9271, AP0101 and AR0140 drivers.   0003-Remove-the-page-size-align-requirement-for-v4l2-capt.patch      With this patch, the mxc_v4l2_tvin test application can use overlay framebuffer as V4l2 capture buffer directly.   0004-Max9286-skip-AP0101-camera-re-initialization.patch      If the camera board's power had been kept after initialized, this patch will bypass the re-initialization to reduce the start up time.   0005-Max9286-set-I2C-speed-to-400Kbps.patch     Set I2C to 400Kbps to reduce the AP0101+AR0140 initialization time.   0006-Max9286-add-retry-for-MAX9271-I2C-access.patch     Added retry for MAX9271 I2C access.   0007-Max9286-Add-support-for-OV10635-camera.patch     Updated code for OV10635 camera.   0008-Max9286-support-auto-detect-camera-number.patch     Make the Max9286 driver can detect the camera number automatically.     How to builld the kernel with MAX9286 support:       make imx_v7_defconfig       make menuconfig (In this command, you should select the MAX9286 driver:             Device Drivers  --->                   <*> Multimedia support  --->                         [*]   V4L platform devices  --->                               <*>   MXC Video For Linux Video Capture                                       MXC Camera/V4L2 PRP Features support  --->                                           <*>Maxim max9286 GMSL Deserializer Input support                                               Select Camera Sensor (OmniVision OV10635 camera sensor)  // Or (Onsemi AP0101 and AR0140 camera sensor)                                           <*>mxc VADC support                                           <*>Select Overlay Rounting (Queue ipu device for overlay library)                                           <*>Pre-processor Encoder library                                           <*>IPU CSI Encoder library)       make zImage       make dtbs   The built out image file:       arch/arm/boot/dts/imx6q-sabreauto.dtb       arch/arm/boot/zImage   "mxc_v4l2_tvin_max9286.tar.gz" is the test application, test command to capture the four cameras and render on 1080P HDMI display: /mxc_v4l2_tvin.out -ol 0 -ot 0 -ow 960 -oh 540 -d 1 -x 0 -g2d & /mxc_v4l2_tvin.out -ol 960 -ot 0 -ow 960 -oh 540 -d 1 -x 1 -g2d & /mxc_v4l2_tvin.out -ol 0 -ot 540 -ow 960 -oh 540 -d 1 -x 2 -g2d & /mxc_v4l2_tvin.out -ol 960 -ot 540 -ow 960 -oh 540 -d 1 -x 3 -g2d &   Some hardware check point on AR0140+AP0101+MAX9271 camera board (Please get MAX9286 and OV10635 schematics from Maxim): 1. In this patch, MAX9286's I2C address is 0x4D, so ADD0 and ADD1 should be connected to high. AP0101's I2C address is 0xBA, so SADDR should be connected to high.   2. AP0101's DOUT0~DOUT7 should be connected to MAX9271's DIN7~DIN0, the order should be switched, MSB connected to LSB.   3. MAX9271's GPO pin should be connected to AP0101's FRAME_SYNC pin. The pull down resistance on FRAME_SYNC pin should not be 0 ohm.   Some known limitation: 1. AP0101's VSYNC invalid time, last video line's HSYNC to VSYNC porch's max value is 255 pixel clocks, it is not enough for MAX9286 to generate the Frame End MIPI packets for each camera. So in order to let iMX6DQ to capture 1280x720 video for each camera, we had let AP0101 output 1280*724 frame size, and iMX6 will only capture 720 lines, the remained video data and Frame End will be ignored. This solution will not impact the function, but there will be "Error matching Frame Start with Frame End for Virtual Channel x" error reported from iMX6 MIPI_CSI_ERR1 register. Maxim suggested to use MAX96705 to relace the MAX9271, it can delay the VSYNC invalid time, then the MIPI error will be fixed.     2015-11-17 update: Updated for OV10635 camera support. File: L3.10.53_GA1.1.0_MAX9286_Surroundview_Patch_2015-11-17.zip   2015-12-04 update: File: L3.10.53_GA1.1.0_MAX9286_Surroundview_Patch_2015-12-04.zip Added patch 0009-Max9286-updated-PCLK-edge-setting-for-OV10635.patch to correct the OV10635 PCLK edge setting     2016-03-07 update: File L3.14.38_GA_MAX9286_Surroundview_Patch_2016-03-07.zip Added kernel patch for L3.14.38 GA 1.1.0 BSP.   2016-07-26 update: Files: L3.10.53_GA1.1.0_MAX9286_Surroundview_Patch_2016-07-26.zip; L3.14.38_GA1.1.0_MAX9286_Surroundview_Patch_2016-07-26.zip; L3.14.52_GA1.1.0_MAX9286_Surroundview_Patch_2016-07-26.zip. Added gstreamer support. Added MAX96705 support. Added patch for L3.14.52_GA1.1.0.   2017-12-11 update: Added CVBS surround view link: iMX6DQ TP2854 MIPI CSI2 720P CVBS camera surround view solution for Linux BSP 2021-04-26 update: Some customer reported, when system loading is heavy, sometimes, some camera will flicker left and right. It is caused by SFMC FIFO data lost. The original patch used IDMAC 0 and IDMAC 1 for two cameras on one IPU, this is not the best setting.  IDMAC 1 is fixed to use 1/4 SMFC FIFO and it will cause IDMAC 0 to use 1/4 SMFC FIFO too. And another 1/2 of SMFC FIFO can't be used in this case. Some code update to improve it: For each IPU, please use IDMAC 0 and IDMAC 2 to capture the two cameras. This needs change the hard coding in "drivers\media\platform\mxc\capture\ipu_csi_enc.c", "CSI_MEM1" and "IPU_IRQ_CSI1_OUT_EOF" should be changed to "CSI_MEM2" and "IPU_IRQ_CSI2_OUT_EOF". In this case, all SMFC FIFO can be used. And in "ipu_common.c", function ipu_probe(), the followed code should be changed to make IDMAC2 use high priority too. /* Set sync refresh channels and CSI->mem channel as high priority */ - ipu_idmac_write(ipu, 0x18800003L, IDMAC_CHA_PRI(0)); + ipu_idmac_write(ipu, 0x1880000FL, IDMAC_CHA_PRI(0)); Graphics & Display i.MX6Dual i.MX6Quad Linux Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Li,   Sorry for the confusion. I assumed that below single pipe which causes saw-tooth issue does not render all cameras.   #gst-launch-1.0 -v -e imxv4l2videosrc device=/dev/video2 ! imxg2dvideosink framebuffer=/dev/fb0 force-aspect-ratio=false   I am studying about gstreamer to draw 4 cameras to one target buffer.   Thanks and best regards. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP As I explained, this is the render issue, for 60fps display, the PAN display can only be up to 60fps, but for 4x720P30 camera, if you render them alone, there are total 120fps, so it can't work correctly. You need combine the 4 cameras together then render them once. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP The log shows there is no enough memory, I think you need reserve more memory for GPU. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Li, The following two pipelines work normally when run seperately. gst-launch-1.0 -v -e imxv4l2videosrc device=/dev/video0 ! imxg2dvideosink framebuffer=/dev/fb0 force-aspect-ratio=false  gst-launch-1.0 -v -e imxv4l2videosrc device=/dev/video1 ! imxg2dvideosink framebuffer=/dev/fb0 force-aspect-ratio=false  However, each pipelines given below (especially with video3) cause sawtooth issue given as attached gif, even if they run seperately. gst-launch-1.0 -v -e imxv4l2videosrc device=/dev/video2 ! imxg2dvideosink framebuffer=/dev/fb0 force-aspect-ratio=false  gst-launch-1.0 -v -e imxv4l2videosrc device=/dev/video3 ! imxg2dvideosink framebuffer=/dev/fb0 force-aspect-ratio=false  While twin app does not create any problem for each camera. While using gstreamer, what can cause this situation? Is it about gstreamer patch or IPU2? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP For gstreamer, when you render 4 cameras together, it needs combine the buffer 4 times and swap the buffer 4 times, this will impact the performance. For tvin test application, it just renders the cameras to target framebuffer directly, no buffer swap, this can cause sawtooth issue. The best way for rendering: draw the 4 cameras to one target buffer, then swap it to frambuffer in one time. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Li, I am using Imx6qp. With following commands, the system is working properly. WIDTH=640 HEIGHT=240 ./mxc_v4l2_tvin.out -ol 0 -ot 0 -ow ${WIDTH} -oh ${HEIGHT} -d 0 -x 0 -g2d & ./mxc_v4l2_tvin.out -ol ${WIDTH} -ot 0 -ow ${WIDTH} -oh ${HEIGHT} -d 0 -x 1 -g2d & ./mxc_v4l2_tvin.out -ol 0 -ot ${HEIGHT} -ow ${WIDTH} -oh ${HEIGHT} -d 0 -x 2 -g2d & ./mxc_v4l2_tvin.out -ol ${WIDTH} -ot ${HEIGHT} -ow ${WIDTH} -oh ${HEIGHT} -d 0 -x 3 -g2d & When I try to use gstreamer with the following pipelines, third and forth cameras are jittering and scrolling. WINDOW1="window-x-coord=0 window-y-coord=0 window-width=${WIDTH} window-height=${HEIGHT}" WINDOW2="window-x-coord=${WIDTH} window-y-coord=0 window-width=${WIDTH} window-height=${HEIGHT}" WINDOW3="window-x-coord=0 window-y-coord=${HEIGHT} window-width=${WIDTH} window-height=${HEIGHT}" WINDOW4="window-x-coord=${WIDTH} window-y-coord=${HEIGHT} window-width=${WIDTH} window-height=${HEIGHT}" gst-launch-1.0 -v -e imxv4l2videosrc device=/dev/video0 ! imxg2dvideosink framebuffer=/dev/fb0 force-aspect-ratio=false $WINDOW1 & gst-launch-1.0 -v -e imxv4l2videosrc device=/dev/video1 ! imxg2dvideosink framebuffer=/dev/fb0 force-aspect-ratio=false $WINDOW2 & gst-launch-1.0 -v -e imxv4l2videosrc device=/dev/video2 ! imxg2dvideosink framebuffer=/dev/fb0 force-aspect-ratio=false $WINDOW3 & gst-launch-1.0 -v -e imxv4l2videosrc device=/dev/video3 ! imxg2dvideosink framebuffer=/dev/fb0 force-aspect-ratio=false $WINDOW4 & v4l applications are working properly but gstreamer causes the problem seen above. Do you have any idea about this problem? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Excuse me, can I have another patch of Linux 3.14.38? That link failed Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Thanks a lot! Qiang Li.  Understand now. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP 2 x MIPI CSI2 means two MIPI virtual channels(VC1 and VC2) on one physical MIPI CSI2 interface. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Thanks Qiang! So can we have 2 x BT656 and 2 x MIPI CSI2 work together?  if yes , how many virtual channels(1~4) can each of the 2x MIPI CSI2 have?  Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Each IPU has two CSI modules, their input can be parallel CSI interface or MIPI CSI2 virtual channel. And for iMX6DQ, it can support up to two parallel CSI interfaces (BT656 interface). Both of them can work at the same time. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Dear Qiang Li,         Sorry, I am some confused, as you said, Imx6Q can support up to 4 cameras,  The 4 cameras can be: - 1xCSI, 3xMIPI - 2xCSI, 2xMIPI - 4xMIPI what is the meaning of  1x CSI and 3x MIPI, etc? usually we say MIPI CSI-2 together,  CSI is the same thing as MIPI CSI-2? BTW, how many BT656 interfaces can be directly supported by Imx6Q simultaneously?      Many thanks~~ Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi z dq, Did you solve the instability problem? I got sensor clk error when connecting more than 2 cameras although MAX96705's GPO pin are connected to AP0101's FRAME_SYNC pin.  I rarely got the error with 2 cameras . 28.463487] max9286_mipi 1-006a: ap0101_initialize: AP0101 hasn't been found, reg = 0x0, index = 4. [ 28.472625] max9286_mipi 1-006a: max9286_write_reg:write reg error:reg=34,val=b6 [ 28.673495] max9286_mipi 1-006a: max9271_write_reg:write reg error:reg= 4,val=83 [ 28.783553] max9286_mipi 1-006a: max9286_write_reg:write reg error:reg=15,val=9b [ 29.403469] mipi csi2 can not receive sensor clk! MIPI_CSI_PHY_STATE = 0x6f0. Regards Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Qiang_FSL‌ Hi, Liqiang Could you please tell me what's the fps value if we run the surroundview(4 camera 1280x720) application base your patch and  Imx6d processor? whether he DDR bandwidth is enough? thank you! 以下中文: ----------------- 如果使用这个patch并跑在imx6d的板子上,目前surroundview(基于4个720p的摄像头)能达到多少个fps, 内存带宽够用吗?谢谢! --------------- Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP The color issue happens between MAX96705 and MAX9286 mapping, so PC USB has no use for reference. There are several kind of mapping order on data line, 8 bits/10bits, MSB/LSB. You need fine tuning it based on the OV10635 and MAX96705 connecting. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP This had been explained, g2d_blit target buffer should be the current displayed framebuffer: " The current mxc_v4l2_tvin demo application will render camera video to current frame buffer directly, so there will be tearing issue. For real use case, you need use multi-buffers, for example, the virtual framebuffer size is 3 times of real display buffer, and each time only one buffer is showing on display, so when buffer 1 is showing on display, you can draw combined camera videos into buffer 2, after finished drawing, call ioctl FBIOPAN_DISPLAY to show buffer 2 on screen. " Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi,liqiang I have solve the color fault problem, by swap data line using ov10635 register 0x4709, so thank you very much!! Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi, liqiang In my local environment which using immunity mode, and do data line swap according to your suggestion, which causes image color change but problem NOT solved. (帖子里好像帖不了附件,单独像您提了一个问题。) By the way, I am using leopardimaging LI-USB30-OV10635-SER camera as following: https://www.leopardimaging.com/uploads/LI-OV10635-SER_datasheet.pdf It works well when connecting to PC by USB 3.0. please help check, thanks! Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Li: I use the IMX6Q core board. Now when using both GC2000 and GC320, there are occasional image tears on the screen display. The specific implementation is like this:    Get the real-time video data of the 4-way camera, display it on the GPU and display it in real time on the lvds screen. At the same time, the 4 channels of video are called by g2d to call the g2g_blit function for resize. The image of each frame is 720P resize to 640*480, and then synthesized into one frame. Image so that 4 channels of video can be displayed in one frame.the spliced video is not display on the screen and saved directly into the video,but now it is found that the video displayed by the GPU rendering in real time will be torn. Playback of the saved video also found that the image has a tearing problem, affecting the viewing effect.    If you test the GPU rendering display separately, or the video of 4 channels of video is saved by G2D synthesis, there will be no image tearing problem. But as long as these two functions are combined into one project, the problem of image tearing will occur when displaying and the saving  video. 1. Can I use the GC2000 of IMX6 and GC320 at the same time? Is there a problem with GPU resource preemption? 2. Is there a problem with data conflicts in the GPU? I have already made the GC2000 and GC320 get data that cannot be bufed, but after the two functions are integrated, there will still be a problem of video tearing. I have been plagued by this problem for several weeks, and there has been no good solution. I am very anxious. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Li: I use the IMX6Q core board. Now when using both GC2000 and GC320, there are occasional image tears on the screen display. The specific implementation is like this:    Get the real-time video data of the 4-way camera, display it on the GPU and display it in real time on the lvds screen. At the same time, the 4 channels of video are called by g2d to call the g2g_blit function for resize. The image of each frame is 720P resize to 640*480, and then synthesized into one frame. Image so that 4 channels of video can be displayed in one frame.the spliced video is not display on the screen and saved directly into the video,but now it is found that the video displayed by the GPU rendering in real time will be torn. Playback of the saved video also found that the image has a tearing problem, affecting the viewing effect.    If you test the GPU rendering display separately, or the video of 4 channels of video is saved by G2D synthesis, there will be no image tearing problem. But as long as these two functions are combined into one project, the problem of image tearing will occur when displaying and the saving  video. 1. Can I use the GC2000 of IMX6 and GC320 at the same time? Is there a problem with GPU resource preemption? 2. Is there a problem with data conflicts in the GPU? I have already made the GC2000 and GC320 get data that cannot be bufed, but after the two functions are integrated, there will still be a problem of video tearing. I have been plagued by this problem for several weeks, and there has been no good solution. I am very anxious. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Li, Sorry, maybe I didn't tell you my question clearly: 1.When I don't use -g2d,the display image is ok,no screen tearing. And the demo code really use FBIOPAN_DISPLAY to change display buffer ; 2.But when I use -g2d,screen tearing occurs. And the demo code use g2d_blit to display. So my question is how to resolve this problem? Thanks! Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP MAX96705 data line swap related code are in regiter 0x20~0x29; 0x30~0x39, you can find the discussion from old items here. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Qiang_FSL‌ 谢谢回复! >The ov10635 and max9286 driver captured frame format is YUYV, that means data in buffer is YUYV, if your application handles it other format, such as RGB565, you can >get such wrong color issue 上面图片是使用7yuv查看的结果,选择的格式是YUYV;图像颜色不对。所以不是显示格式不匹配的问题。 >Another thing should be paied attention to is that the MAX96705 can swap the data line order, if you set it to wrong, the color is wrong. 请问您知道驱动那里可以swap dataline order吗?谢谢! Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP The ov10635 and max9286 driver captured frame format is YUYV, that means data in buffer is YUYV, if your application handles it other format, such as RGB565, you can get such wrong color issue. Another thing should be paied attention to is that the MAX96705 can swap the data line order, if you set it to wrong, the color is wrong. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP The current mxc_v4l2_tvin demo application will render camera video to current frame buffer directly, so there will be tearing issue. For real use case, you need use multi-buffers, for example, the virtual framebuffer size is 3 times of real display buffer, and each time only one buffer is showing on display, so when buffer 1 is showing on display, you can draw combined camera videos into buffer 2, after finished drawing, call ioctl FBIOPAN_DISPLAY to show buffer 2 on screen. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi,Liqiang Qiang_FSL‌ We are developing 4 camera surroundview application, based on imx6d/OV10635/MAX96705/MAX9286 boards, the patch we apply is L3.14.52_GA1.1.0_MAX9286_Surroundview_Patch_2016-07-26.zip.  but the image color is NOT right as following: Can you please help ? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Thans for your support! 1. You means that if input resolution and format is same as output,IPU will not deal with it. Right? 2. I still have another question,when I use command with -g2d argument,like this: root@imx6qsabresd:/# ./mxc_v4l2_tvin.out -ol 0 -ot 0 -ow 1280 -oh 720 -d 1 -x 0 -g2d,screen tearing occurs like the following picture: Could you  give me some advice?Thanks! Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP The default IPU task doesn't support memory copy use case, input resolution and format is same as output. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Li, I meet following problem:when I use command without -g2d argument,it display following error, root@imx6qsabresd:/# ./mxc_v4l2_tvin.out -ol 0 -ot 0 -ow 1280 -oh 720 -d 1 -x 0 g_in_width = 1280, g_in_height = 720. fb_fix.id = DISP3 FG. fb: smem_start = 0x26700000, smem_len = 0xa8c000. fb: frame buffer size = 0x1c2000 bytes. fb: g_screen_info.xres = 1280, g_screen_info.yres = 720. fb: g_display_left = 0. fb: g_display_top = 0. fb: g_display_width = 1280. fb: g_display_height = 720. IPU_CHECK_TASK failed. But when I use the command ./mxc_v4l2_tvin.out -ol 0 -ot 0 -ow 1280 -oh 719 -d 1 -x 0,the display image is OK. what's the impossible reason?Thanks! Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi, How to build the "Surround View Application" and its required packages in Yocto for i.MX6 QuadPLUS Hoping for a better guidance. Regards, Bala Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi,Qiang Li,谢谢回复,我们现在确实是镜头模组上挂了个flash,不过flash里面的固件是安森美的代理商提供的,他们确认已经工作在framesync模式,并且这个固件已经有别的客户在量产,我们读出AP0101的0xC88C,0xC88D,0xC88E寄存器,值分别是0x03,0x03,0x00,同时通过逻辑分析仪分析AP0101对AR0143的配置,感觉也应该是正确的;max9286这端已经确认生成的framesync信号有传输到AP0101,现在sensor出来的帧率是25fps; 请问针对25fps,max9286这边的配置应该如果修改,盼复,谢谢! Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP The FLASH ROM setting on camera module should follow the driver's setting. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi, VIDIOC_DQBUF  error dissappears when I changed the test hardware with a new set. I will work on the real reason but it seems to be a hardware issue. Although I sometimes  get VIDIOC_DQBUF and MIPI CLK errors; I can succesfully get the image with the below configuration. AR0140 sensor AP0101 ISP MAX96705 Serializer MAX9286 Deserializer Our designed daughter board between MAX9286 EVM and iMX6 board. We use kernel 4.1.15 and use below switch code: + max9271_write_reg(i, 0x20, 0x07); + max9271_write_reg(i, 0x21, 0x06); + max9271_write_reg(i, 0x22, 0x05); + max9271_write_reg(i, 0x23, 0x04); + max9271_write_reg(i, 0x24, 0x03); + max9271_write_reg(i, 0x25, 0x02); + max9271_write_reg(i, 0x26, 0x01); + max9271_write_reg(i, 0x27, 0x00); + + + max9271_write_reg(i, 0x30, 0x17); + max9271_write_reg(i, 0x31, 0x16); + max9271_write_reg(i, 0x32, 0x15); + max9271_write_reg(i, 0x33, 0x14); + max9271_write_reg(i, 0x34, 0x13); + max9271_write_reg(i, 0x35, 0x12); + max9271_write_reg(i, 0x36, 0x11); + max9271_write_reg(i, 0x37, 0x10); Thanks and best regards Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Ferhat, The camera I used doesn't need such switch, so no such code in patch, but I had show you the sample code, for detail setting on MAX96705 switch, you can check with Maxim. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Li, Could not find the switch code on patch files. Could you please update the links with your latest versions? Thanks and best regards Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi DONGON KIM, Some video combining chip can insert some bytes into each video line, then software can check these inserted data to identify the camera number. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP The "0003-Add-Max9286-support-on-SabreAuto-board-which-can-sup.patch" files of the L3.14.38_GA andL3.14.52_GA patches have errors. +static int max9271_write_reg(int index, u8 reg, u8 val) +{ + s32 ret; + int retry, timeout = 10; + + max9286_data[0].i2c_client->addr = ADDR_MAX9271 + index; + for (retry = 0; retry < timeout; retry ++) { + ret = i2c_smbus_write_byte_data(max9286_data[0].i2c_client, reg, val); + if (val < 0) + msleep(5); + else + break; + } + + if (retry >= timeout) { + dev_info(&max9286_data[0].i2c_client->dev, + "%s:write reg error:reg=%2x,val=%2x\n", __func__, + reg, val); + return -1; + } + + return 0; +} Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Thanks for your ans. Then, is there any example code for split the video from each virtual channel? If not, may I know how to read the raw packet data of mipi_csi? Thanks. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Ferhat, Yes, the switch code:  max9271_write_reg(0, 0x20, 0x09);  max9271_write_reg(0, 0x21, 0x08);  max9271_write_reg(0, 0x22, 0x07);  max9271_write_reg(0, 0x23, 0x06);  max9271_write_reg(0, 0x24, 0x05);  max9271_write_reg(0, 0x25, 0x04);  max9271_write_reg(0, 0x26, 0x03);  max9271_write_reg(0, 0x27, 0x02);  max9271_write_reg(0, 0x28, 0x01);  max9271_write_reg(0, 0x29, 0x00);  max9271_write_reg(0, 0x30, 0x19);  max9271_write_reg(0, 0x31, 0x18);  max9271_write_reg(0, 0x32, 0x17);  max9271_write_reg(0, 0x33, 0x16);  max9271_write_reg(0, 0x34, 0x15);  max9271_write_reg(0, 0x35, 0x14);  max9271_write_reg(0, 0x36, 0x13);  max9271_write_reg(0, 0x37, 0x12);  max9271_write_reg(0, 0x38, 0x11);  max9271_write_reg(0, 0x39, 0x10); Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang, Does the patch you provided include such swap settings on MAX96705? We use MAX96705 and do not do such swap by driver Thank you Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Ferhat, MAX9286's data mapping needs such MSB to LSB switch, if you are using MAX96705, it can do such swap by setting, but MAX9271 doesn't support it. And AP0101 doesn't dupport such swap too, so hardware should be modified. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Dongoh, The iMX8MQ can receive video with multiple virtual channels, but there is no hardware module to split the video from each virtual channel. That means you need use software to split, and the MIPI sender need insert some flag to identify the data for each virtual channel. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi, Qiang Li May I know the reason for i.MX8MQ can't support multiple virtual channel? According to the features and functional description of MIPI-CSI2 Controller on Reference Manual for i.MX8M Quad, i.MX8M seems to support multiple virtual channel.(13.6.1.1 and 13.6.3) Thanks. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Dear Qiang Li, I would like to know the reason of your hardware point stated as below. "2) AP0101's DOUT0~DOUT7 should be connected to MAX9271's DIN7~DIN0, the order should be switched, MSB connected to LSB" In our reference camera board supplied by Onsemi (MARS module) these pins are connected directly (DOUT0-DOUT7 to DIN0-DIN7). Is there any way to switch these connection by software? I could not find on datasheets of MAX96705 and AP0101. Thanks  Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP That means your patch porting has error, please check it. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Dear Qiang Li, we removed eeprom on the camera module and we switched it to host configuration mode by setting SPI-SDI pin to LOW. Thus it is initialized successfully by the driver of max9286 in the beginning, after kernel is loaded. Do you have any other suggestion for both "not a csi channel" and vidioc_dqbuf errors? Thank you, Best regards Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP “ap0101_initialize:AP0101 is already in Slave (Shutter-Sync) Mode” This log means your camera had already be initialized, so you need check if there is flash ROM on your camera module which will initialize it during power on, if so, you need update that flash ROM to use the driver's setting. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi again Qiang Li, As you can see in our logs, our camera is in shutter-sync mode, thus doesn't this means our camera setting is correct? What do you mean by camera setting, can you be more specific and explain it in detail?. Also MIPI_CSI_ERR1 register is 0, there is no error of transmission of bits, clock signal etc and mpi csi2 can receive the data correctly. Doesnot that mean that camera sends correct signals and is configured properly?  Secondly, we reviewed all patches and applied them directly by copy-paste, also we double checked whether there is an error; thus, we are (almost) sure that we ported correctly. What is the key points we need to look at? Can there be any other possible cause of this problem? Thank you, Best regards Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP For error "not a csi channel error", I think you haven't ported the patch successfully. For error "vidioc_dqbuf failed", that means no available video frames had been captured. Maybe you need check your AP0101 camera setting. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Li, In our project we have one camera connected to max9286 and we applied your patches to 4.1.15 kernel; however when we test it, we get the following picture: Logs are as follow: root@esomimx6q:~# ./mxc_v4l2_tvin.out -ol 0 -ot 0 -ow 400 -oh 240 -d 1 -x 0 [ 3144.243857] max9286_mipi: sensor number = 1. [ 3144.248939] mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: mipi_lane_bps = 148 Mbps [ 3144.257446] mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: value = 0x42. [ 3144.743416] max9286_mipi 1-006a: ap0101_initialize: AP0101 was found, index = 1. [ 3144.751541] max9286_mipi 1-006a: ap0101_initialize:AP0101 is already in Slave (Shutter-Sync) Mode. g_in_width = 1280, g_in_height = 720. fb_fix.id = DISP4 FG. fb: smem_start = 0x6a100000, smem_len = 0x8ca00. fb: frame buffer size = 0x2ee00 bytes. fb: g_screen_info.xres = 400, g_screen_info.yres = 240. fb: g_display_left = 0. fb: g_display_top = 0. fb: g_display_width = 400. fb: g_display_height = 240. start time = 1535715437 s, 436911 us [ 3154.993386] ERROR: v4l2 capture: mxc_v4l_dqueue timeout enc_counter 0 VIDIOC_DQBUF failed. We could not understand the reason of the problem (also we adjusted gpr1 pins 19 and 20 as 0).  Secondly, the following logs show us that there are problems with /dev/video 1 and dev/video3 about csi channel although dev/video0 and /dev/video2 is ok , however all of them have timeout error (note that since only one camera is connected, only "cat /dev/video0" command can initialize ap0101). root@esomimx6q:~# cat /dev/video0 [ 3313.913877] max9286_mipi: sensor number = 1. [ 3313.918963] mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: mipi_lane_bps = 148 Mbps [ 3313.926941] mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: value = 0x42. [ 3314.413402] max9286_mipi 1-006a: ap0101_initialize: AP0101 was found, index = 1. [ 3314.421469] max9286_mipi 1-006a: ap0101_initialize:AP0101 is already in Slave (Shutter-Sync) Mode. [ 3324.583392] ERROR: v4l2 capture: mxc_v4l_read timeout counter 0 cat: read error: Timer expired root@esomimx6q:~# cat /dev/video1 [ 3337.083393] ERROR: v4l2 capture: mxc_v4l_read timeout counter 0 [ 3337.089359] imx-ipuv3 2400000.ipu: Not a CSI channel cat: read error: Timer expired root@esomimx6q:~# cat /dev/video2 [ 3351.493394] ERROR: v4l2 capture: mxc_v4l_read timeout counter 0 cat: read error: Timer expired root@esomimx6q:~# cat /dev/video3 [ 3403.463393] ERROR: v4l2 capture: mxc_v4l_read timeout counter 0 [ 3403.469360] imx-ipuv3 2800000.ipu: Not a CSI channel cat: read error: Timer expired Can you help us with them? What is the reason of "not a csi channel error" on video1 and video3 while others don't give this error. Also the first error is more important, which is the error of "vidioc_dqbuf failed". Thank you Best regards Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP You can check with the AP0101 camera chip vendor. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Li,   My problem is as bellow.Can you help me to deal with it. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Thinks for your help! I have other problem with devicetree.Look at the picture,reg=6A,but max9286 datasheet is no this address. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP The head file is in your rootfs which is built from Yocto. You can also use the binary "mxc_v4l2_tvin.out" directly. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Li,   The test application file not contain "g2d.h",but  "mxc_v4l2_tvin.c" has the code #include "g2d.h".So,when I make it,it turn out error.   Can you help me solve the problem?   Think you! Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP HI Qiang Li   When I use the "Patch",my kernel show error.My kernel vision is kernel-3.10.53.   So,I want to now what's the differance between the kernel-3.10.53 and L3.10.53_1.1.0-GA.   I think that the different vision make the error. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP From real test, the total delay is about 86ms. Camera number will not impact the delay, capture delay is fixed on camera fps, for example, 30fps camera input, the capture delay is 33ms. And render delay is fixed on display fps, for examlpe, 60Hz display, the delay is 17ms, then the post-process delay, it needs less than camera fps (33ms) to avoid frame lost. So for 8 camera case, you need make sure all the post process is less than 33ms to avoid frame drop. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Li Qiang       Thank you for your Patch.        Now,I have some trouble when I use "patch".        Can you write a manual to me so that I can understand how to use the "patch".        Thanks Sincerely.        Zhongmao Liu. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi. Qiang Li The four camera`s video can render on 1080P HDMI display.  How does the surround view algorithm get the four cameras`s capture buffers. do you have some good ideas? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Li ! Is it possible for you to share "60-persistent-v4l.rules" file? It should be inside /lib/udev/rules.d Thank you very much Regards, Gokcen  Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi! Thank you for the reply. The resolution is 1280x720. So, I think that is not the problem. We are using kernel version 4.1.15.  May the following errors be related to that? [ 36.921793] v4l2_int_device wlcore_sdio mxc_dcic [ 36.926813] CPU: 3 PID: 399 Comm: v4l_id Not tainted 4.1.15 #1 [ 94.823493] udevd[215]: worker [230] /devices/soc0/v4l2_cap_1/video4linux/video1 is taking a long time [ 95.098316] udevd[230]: slow: 'v4l_id /dev/video1' [402] bootlogd: cannot allocate pseudo tty: No such file or directory Have a nice day! Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP As I remembered, the blank from frame end to new frame is not enough for AP0101, so even the camera output resolution is 1280*800, we need capture just 1280*720, otherwise, the video capture will fail. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Lee, I have tried initializing MAX9286 in high immunity mode and now, ar140 is being found. However, I think there is something wrong with the v4l part. Here is the related log :  [ 34.085201] [ 34.086911] Internal error: Oops: 17 [#1] PREEMPT SMP ARM [ 34.092313] Modules linked in: wlcore mxc_v4l2_capture ipu_bg_overlay_sdc ipu_still ipu_prp_enc ipu_csi_enc max9286_gmsl ipu_fg_overlay_sdc v4l2_int_device wlcore_sdio mxc_dcic [ 34.108239] CPU: 3 PID: 402 Comm: v4l_id Not tainted 4.1.15 #1 [ 34.114078] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) [ 34.120628] task: d87b2ac0 ti: d8c78000 task.ti: d8c78000 [ 34.123891] max9286_mipi 1-006a: max9286_write_reg:write reg error:reg=3b,val=1e [ 34.133488] PC is at mxc_v4l_do_ioctl+0xc4c/0x2590 [mxc_v4l2_capture] [ 34.139979] LR is at mxc_v4l_do_ioctl+0xc3c/0x2590 [mxc_v4l2_capture] [ 34.146476] pc : [<7f08539c>] lr : [<7f08538c>] psr: 600e0013 [ 34.146476] sp : d8c79e40 ip : 00000074 fp : 00000000 [ 34.157991] r10: d88f9300 r9 : 7f034094 r8 : d8c79e90 [ 34.163245] r7 : 80685600 r6 : 00000000 r5 : d8d19008 r4 : d8d19000 [ 34.169792] r3 : 00000000 r2 : d8c79ea7 r1 : 7f087ae0 r0 : d8c79ec0 [ 34.176346] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 34.183504] Control: 10c53c7d Table: 6939c04a DAC: 00000015 [ 34.189288] Process v4l_id (pid: 402, stack limit = 0xd8c78210) [ 34.195251] Stack: (0xd8c79e40 to 0xd8c7a000) [ 34.199652] 9e40: d88f9300 00000000 00000000 00000000 d8868550 d6023000 d80fe028 d8c41700 [ 34.207872] 9e60: 80b154c0 80685600 00000068 00000000 00000002 7ebeec88 d8c79e90 7f084750 [ 34.216090] 9e80: 00000000 804dbc10 d88f9300 800f6978 5f63786d 326c3476 00000000 00000000 [ 34.224327] 9ea0: 3978616d 00363832 00000000 00000000 00000000 00000000 00000000 00000000 [ 34.232540] 9ec0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 34.240757] 9ee0: 0004010f 85200005 05200005 00000000 00000000 00000000 9087e695 00000006 [ 34.248978] 9f00: d925f015 76f11000 00000000 d61505d8 d8ffa318 7ebeec88 d8ffa318 d88f9300 [ 34.253976] max9286_mipi: sensor number = 1. [ 34.254788] mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: mipi_lane_bps = 148 Mbps [ 34.254801] mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: value = 0x42. [ 34.276213] 9f20: 00000003 7ebeec88 d8c78000 00000000 00000000 800fa0e4 d8c79f40 800e3970 [ 34.284441] 9f40: 80b06720 00000003 d88f9300 d925f000 d8ffa318 d88f9308 00000020 00000000 [ 34.292668] 9f60: 00000000 800e91ac 00000000 00000000 d88f9300 00000003 d88f9300 80685600 [ 34.300888] 9f80: 7ebeec88 d8c78000 00000000 800fa338 00000000 7ebeee54 00000003 00000036 [ 34.309102] 9fa0: 8000f604 8000f480 00000000 7ebeee54 00000003 80685600 7ebeec88 00000001 [ 34.317312] 9fc0: 00000000 7ebeee54 00000003 00000036 00000000 00000000 76f11000 00000000 [ 34.325534] 9fe0: 76e6e2a0 7ebeec7c 00011cfc 76e6e2ac 600e0010 00000003 8112f040 0420f044 [ 34.333788] [<7f08539c>] (mxc_v4l_do_ioctl [mxc_v4l2_capture]) from [<804dbc10>] (video_usercopy+0x1b8/0x480) [ 34.343777] [<804dbc10>] (video_usercopy) from [<800fa0e4>] (do_vfs_ioctl+0x3e8/0x608) [ 34.351752] [<800fa0e4>] (do_vfs_ioctl) from [<800fa338>] (SyS_ioctl+0x34/0x5c) [ 34.359115] [<800fa338>] (SyS_ioctl) from [<8000f480>] (ret_fast_syscall+0x0/0x3c) [ 34.366711] Code: e5993008 e3071ae0 e2880030 e3471f08 (e5932018) [ 34.374557] ---[ end trace 756e286723ff907f ]--- [ 34.435645] FAT-fs (mmcblk1p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. [ 34.531108] kjournald starting. Commit interval 5 seconds [ 34.549007] EXT4-fs (mmcblk1p2): recovery complete [ 34.553859] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null) [ 34.591916] EXT3-fs (mmcblk0p2): using internal journal [ 34.597183] EXT3-fs (mmcblk0p2): recovery complete [ 34.601980] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode [ 34.602407] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. [ 34.644868] wlcore: loaded [ 34.733493] max9286_mipi 1-006a: ap0101_initialize: AP0101 was found, index = 1. [ 35.357742] ap0101_LastPatchStatus [ 35.812239] ap0101_LastPatchStatus [ 35.985973] ap0101_LastPatchStatus [ 36.194854] ap0101_LastPatchStatus [ 36.243936] ap0101_LastPatchStatus [ 36.392576] ap0101_LastPatchStatus [ 37.086270] max9286_mipi 1-006a: ap0101_InitSensor: AR0140 was found, index = 1. [ 94.823493] udevd[215]: worker [230] /devices/soc0/v4l2_cap_1/video4linux/video1 is taking a long time [ 95.098316] udevd[230]: slow: 'v4l_id /dev/video1' [402] bootlogd: cannot allocate pseudo tty: No such file or directory Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Li, We have tried with the following equipment :  ONSEMI MARS Reference Desşgn (MAX96705, AP0101, AR0140) 30 cm RG174 (and also 3 m coaxial cable) included in the reference design.  MAX9286S32V Daugter board is used to connect iMX6 board.  I have taken AP0101 to host configuration mode by removing flash. Despite I am writing 0x36 to MAX9286' s 34th register to disable local auto acknowledge, I observed that 9th bit coming immediately after 8th bit of SCL. I am attaching the oscilloscope view. The problematic bits are circled with red.  MAX9286 LFLT led is ON and LOCK led is  OFF.   Down below, we tried to read from AP0101 (address: 0x92).  If you have any suggestions it would be appreciated.  Regards Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi qiang, The 4 cameras can be: - 1xCSI, 3xMIPI - 2xCSI, 2xMIPI - 4xMIPI 可以解释一下上面的CSI和MIPI什么意思吗?不知道这个csi是指ipu内部的csi0-3 还是camera mipi总线。 Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Li, 1xCSI, 3xMIPI,  what does it meanning? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP I think you need check the signal quality on Coax between MAX9286 and MAX96705. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Lee! I am using ap0101 with max96705 and max9286 deserializer. I was able to establish connection with max9286 and max96705. However, while reading max96705 registers, I get the following error:  [ 21.113432] max9286_mipi 1-006a: max9271_read_reg:read reg error: reg=35 [ 21.120143] MAX9271 Reg 0x35 = 0xffffffff. [ 21.323460] max9286_mipi 1-006a: max9271_read_reg:read reg error: reg= a [ 21.330183] MAX9271 Reg 0x0a = 0xffffffff. [ 21.533474] max9286_mipi 1-006a: max9271_read_reg:read reg error: reg= b [ 21.540199] MAX9271 Reg 0x0b = 0xffffffff. [ 21.743480] max9286_mipi 1-006a: max9271_read_reg:read reg error: reg= c [ 21.750201] MAX9271 Reg 0x0c = 0xffffffff. Any help would be appreciated !  Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi qiang ,     I use the 'mx8_v4l2_cap_drm.out' test my board, but the test progress is stopped in the 'start_capturing' function. Finally , I found that it actually stopped in the 'ioctl(fd_v4l, VIDIOC_DQBUF, &buf)' function . And then , I test the four output singal of the max9286, Dout0~Dout3 are all have singal, and the clock I tested  is 295MHz,the input also have singal too. It seems that max9286 and sensors are all work well ,but there is nothing showed on my screen. It confused me for some days. Could you give some advieces to me ? Thanks.  The log is attached below. root@imx8mqevk:~# ./mx8_v4l2_cap_drm.out -cam 3 init_video_channel, /dev/video0 init 0 init_video_channel, /dev/video1 init 1 Open /dev/dri/card0 success num of fb:0 num of crtc:2 num of encoder:1 num of connector:1 num of modes = 1 num of encoders = 1 num of props = 2[ 21.059227] mxc-mipi-csi2 58227000.csi: width=1280, height=800, fmt.code=0x2011 modes[0] info:resolution=1024*600 pixels kms info: fb_base = 0[ 21.071187] input fmt YUV4 x789b3000 w/h=(1024,600) bits_per_pixel=4 bpp=32 screen_buf_s[ 21.079551] output fmt RGB4 ize =2457600 xres=1024, y_res=600 ch_id=0, w=512, h=300, x_offs[ 21.088947] mxc-isi 58100000.isi: input_size(800,1280), output_size(300,512) et=0, y_offset=0 ch_id=1, w=512, h=300, x_offset=512, y_offset=0[ 21.105981] mxc-mipi-csi2 58227000.csi: width=1280, height=800, fmt.code=0x2011 Try to open device /dev/video0 cap=0x84201000 index=0 pixelf[ 21.113602] input fmt YUV4 ormat (output by camera): RGBP index=1 pixelformat (output by c[ 21.121958] output fmt RGB4 amera): RGB3 index=2 pixelformat (output by camera): RGB4 inde[ 21.130400] mxc-isi 58110000.isi: input_size(800,1280), output_size(300,512) x=3 pixelformat (output by camera): BGR3 index=4 pixelformat (output by camera): BA24 index=5 pixelformat (output by camera)[ 21.150628] mxc-mipi-csi2 58227000.csi: width=1280, height=800, fmt.code=0x2011 : YUYV index=6 pixelformat (output by camera): YUV4 VIDIOC ENUM FMT failed, index=7 video_ch=0, width=512, height=300, pixelformat: RGB4 WxH@fps = 512x300@30 Image size = 614400 v4l_capture_setup, Open v4l_dev=0x4, channel=0 Try to open device /dev/video1 cap=0x84201000 index=0 pixelformat (output by camera): RGBP index=1 pixelformat (output by camera): RGB3 index=2 pixelformat (output by camera): RGB4 index=3 pixelformat (output by camera): BGR3 index=4 pixelformat (output by camera): BA24 index=5 pixelformat (output by camera): YUYV index=6 pixelformat (output by camera): YUV4 VIDIOC ENUM FMT failed, index=7 video_ch=1, width=512, height=300, pixelformat: RGB4 WxH@fps = 512x300@30 Image size = 614400 v4l_capture_setup, Open v4l_dev=0x5, channel=1 buffer[0] startAddr=0x7891d000, offset=0x0, buf_size=614400 buffer[1] startAddr=0x78887000, offset=0x96000, buf_size=614400 buffer[2] startAddr=0x787f1000, offset=0x12c000, buf_size=614400 buffer[0] startAddr=0x7875b000, offset=0x0, buf_size=614400 buffer[1] startAddr=0x786c5000, offset=0x96000, buf_size=614400 buffer[2] startAddr=0x7862f000, offset=0x12c000, buf_size=614400 start_capturing channel=0, v4l_dev=0x4 start_capturing channel=1, v4l_dev=0x5 Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP For iMX8M, it is not "mx8_v4l2_cap_xxx.c", it is mx6s_v4l2_cap_drm.c, you can find it from the L4.9.51 GA release for IMX8MQ. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang, It can't work. The error message is as below. Do you know which one is the correct executable for i.MX8M? Thanks. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP iMX8 has its own test application, you can find it from the yocto imx-test-xxx.tar.gz, test/mxc_v4l2_test/mx8_v4l2_cap_xxx.c Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi qiang,       I am porting the 360 surround view based on imx8qxp, and the kernel is 4.9.51,and the sensor is ap0101+AR0140,the other is max9286+max96705 . I port the driver from imx6q's driver to imx8 just like all right , because the mxa9286 and four ap0101 have been found successfully in the log. But when I use the imx6's test code 'mxc_v4l2_tvin.out ' ,there is a error just like 'no such files found '. I am not sure imx6's test code could be used in the imx8qxp, is there  any other test code just for imx8 ?? If yes ,could you  provide one demo for me ? Thanks a lot.    Best regards jun Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Jianfeng, Can you try the mxc_v4l2_tvin from "https://community.nxp.com/docs/DOC-335803", I haven't seen your issue. And you can also modify the mxc_v4l2_tvin.c source code, it can capture video data to file, then you can check the file on PC with some YUVPlayer to check if the captured data is correct or not. /*  char still_file[100] = "./still.yuv";  int fd_still = 0;  if ((fd_still = open(still_file, O_RDWR | O_CREAT | O_TRUNC, 0x0666)) < 0)  {   printf("Unable to create y frame recording file\n");  } */ ... ... //  if(i>100 && i<120) //   write(fd_still, capture_buffers[capture_buf.index].start, 720*240*2); ... ... // close(fd_still); Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP hi liqiang,    i use the imx6q instead of imx6d, but the problem still exits. now i have no idea to solve this problem. Is it an application problem or a kernel problem? please help,thank you ,anyway. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP hi liqiang,    Thank you for advice.  Maybe it is due to i use the imx6d ,not the imx6Q?? if i use the imx6D ,how can i make it right? tkank you very much for your help. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP You can reference to the mxc_v4l2_tvin in https://community.nxp.com/docs/DOC-335803 It had fixed some issues. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP The hardware has pixel align requirement, you'd better let the width and height to align in 16 pixels. Another thing should be checked: the G2D will set frame buffer to RGB format, but without "-g2d", it will use IPU to render and it needs YUV format fb1. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP hi liqiang, two question about the test mxc_v4l2_tvin_max9286.tar,the screen resolution is 800x480 when i use the command "mxc_v4l2_tvin.out -ol 0 -ot 0 -ow 800 -oh 480 -d 1 -x 0" ,the camera seem normal 1.when i use the command "mxc_v4l2_tvin.out -ol 0 -ot 0 -ow 400 -oh 240 -d 1 -x 0"  the screen will scroll  2.when i use the command " mxc_v4l2_tvin.out -ol 0 -ot 0 -ow 800 -oh 480 -d 1 -x 0 -g2d", the sreen show fliker  thank you very much .looking for you answer. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Li, We know that IMX8 BSP has support for MAX9286, but it seems only for i.MX8Q. MAX9286 driver must work with MIPI CSI2 driver. In i.MX8Q device tree (fsl-imx8qm-mek.dts), we see it is linked with 'fsl,mxc-mipi-csi2' driver (drivers/media/platform/imx8/mxc-mipi-csi2.c). But in i.MX8M device tree, MIPI CSI2 driver is 'fsl,mxc-mipi-csi2_yav' (drivers/media/platform/imx8/mxc-mipi-csi2-yav.c). After comparing these two drivers, we found the major differences are the hardware manipulation and V4L2 media control pad initialization. Our questions are:   1. Does 'fsl,mxc-mipi-csi2' driver work on i.MX8M?   2. Otherwise, does the 'fsl,mxc-mipi-csi2_yav' driver support virtual channel well?   3. Furthermore, how to support virtual channel feature in 'fsl,mxc-mipi-csi2_yav' driver? (the i.MX8M reference manual does not have enough information for MIPI CSI2 virtual channel)? Thanks. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP The camera we verified on iMX8 is MAX9271+OV10635, but if you are using the MAX96705, you can reference to this iMX6 patch, there is only some small modifications for MAX96705. Your failure means when MAX9286 try to access OV10635 with Coax cable (I2C signals are transfered on it), there is I2C access error, the I2C between MAX9286 and iMX8 has no error. There is is between MAX9286 and camera module. It is more like Coax signal issue. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang, We use the LI-USB30-OV10635-SER  connect to PC by usb 3.0,  the capture show normal on tools, We think the ov10635 modules is OK. max9286 driver load,  max9286 can access by I2C, I2C driver I think is OK. We doubt the configure of max9286 and max96705,Is this combination be worked on imx8x 4.9.51 version? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP The I2C access issue is more like hardware issue, I think you need check your hardware. The default iMX8 BSP supports MAX9286 directly, no patch is needed. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang, I use max9286 and max96705+ov10635 on imx8x kernel version is 4.9.51, Does this version have patch? Use the default max9286 driver which exist in kernel  4.9.51 source code,It show some error when driver load。 It seems ov10635 Communication failure by I2C, But the max9286 is success use the same I2C access error log as below: [    2.525043] mxc-mipi-csi2 58227000.csi: mipi_csi2_probe [    2.549343] mxc-mipi-csi2 58227000.csi: lanes: 4, name: mxc-mipi-csi2.0 [    2.556705] max9286_mipi 0-006a: In max9286_hardware_preinit() [    2.854197] max9286_mipi: reg = 0xf0. [    2.857870] max9286_mipi: sensor number = 4. [    2.862158] max9286_mipi 0-006a: In max9286_hardware_init() [    2.893273] max9286_mipi: initialized sensor  = 0x01. [    2.921271] max9286_mipi: initialized sensor  = 0x02. [    2.949272] max9286_mipi: initialized sensor  = 0x03. [    2.977271] max9286_mipi: initialized sensor  = 0x04. [    3.145279] max9286_mipi 0-006a: ov10635_read_reg:read reg error: reg=0x300a. [    3.152433] max9286_mipi 0-006a: ov10635_check_device: OV10635 hasn't been found, reg[0x300a] = 0x0., index=1 [    3.321275] max9286_mipi 0-006a: ov10635_read_reg:read reg error: reg=0x300a. [    3.328419] max9286_mipi 0-006a: ov10635_check_device: OV10635 hasn't been found, reg[0x300a] = 0x0., index=2 [    3.497275] max9286_mipi 0-006a: ov10635_read_reg:read reg error: reg=0x300a. [    3.504421] max9286_mipi 0-006a: ov10635_check_device: OV10635 hasn't been found, reg[0x300a] = 0x0., index=3 [    3.673275] max9286_mipi 0-006a: ov10635_read_reg:read reg error: reg=0x300a. [    3.680420] max9286_mipi 0-006a: ov10635_check_device: OV10635 hasn't been found, reg[0x300a] = 0x0., index=4 [    4.752679] max9286_mipi 0-006a: max9286_mipi is found, name max9286_mipi 0-006a Could you help me which part error will lead to ov10635 access failure. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Chris, if they are two MIPI CSI2 cameras, you can't connect them to CPU directly. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang, This is great information!  In the event that you want to use 2 CSI2 cameras, do you know if it's possible to hook both cameras directly to the processor (how do you handle the 2 clk pairs from the two cameras?) of if you need to use a signal aggregator to combine the cameras into one interface? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP The MAX9286 needs all camera working at frame sync mode and same timing, so the cameras should send out vsync at almost same time. If some camera is working at free run mode, there will be scroll issue, because MAX9286 can't sync them. You can measue the VSYNC for all cameras to check this.  Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP i used the patch L3.10.53_GA1.1.0_MAX9286_Surroundview_Patch_2015-12-04.zip , when i connect 2 camera , i can capture image correctly. but when i connect three cameras i can not get image correctly, the image scroll. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP I think you need check with Maxim for both the MAX9286 Programming Guider and the MAX9286 hardware schematics. From my point, the power supply to camera board with Coax cable is easy to cause such stable issue. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP it like the signle is not stable , 70% it can work succefully ,the  hard ware is designed according to the official schematic design.I am not sure where to check Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP would you please send the MAX9286 Programming Guide to me Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP The Max9286 setting is from "MAX9286 Programming Guide", I think you need check your hardware, if the MAX9286 can't lock the camera signals, it will not output valid MIPI CSI2 signal, then on iMX6 side, it will show "mipi csi2 can not receive sensor clk". Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi li i use max9286 and max96705 i found the connect is not very stable, sometime i get "mipi csi2 can not receive sensor clk..." ,when i  git this error i fount all the config are success i use the patch L3.10.53_GA1.1.0_MAX9286_Surroundview_Patch_2016-07-26.zip, in the patch i found you config max9286 register 0x3f 0x3b ,but i did not found any introduction about these register ? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP "ap0101_initialize:AP0101 is not in Host Configuration Mode" This log means the camera is not in I2C config mode, so we can't initialize it. You need check your camera board, if it has flash on board, then you need update the flash ROM setting with the driver's. You can also remove the flash ROM on camera board, then the MAX9286 driver can initialize it with I2C commands. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Lion, You need include blank data too. So use the pixel clock to calculate the throughput is more simple and accuracy. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang I also use ov10635, and use  the same sensor register values as in your patch the sensor output 1280*800@30fps with yuv422(uyvy,0x1e) per my understanding, the camera data rate should be 30M*16bits=480Mbps how to get the value of 768Mbps? and in function mipi_csi2_reset, it just sets register MIPI_CSI_PHY_TST_CTL1, from the name, it is just a test related register, is it useful for the mipi csi2 init? thanks Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Lion Wei, the MAX throughput for IMX6 MIPI CSI2 is 3.2Gbps in 4 lanes mode, so each camera can be up to 800Mbps (include blank data). And the followed code should be adjust for your real camera, the 768 should be your real camera bps:  /* 48MHz pixel clock (1280*800@30fps) * 16 bits per pixel (YUV422) = 768Mbps mipi data rate for each camera */  mipi_csi2_reset(mipi_csi2_info, (768 * g_sensor_num) / (lanes + 1)); Anoter limitation, at least 3 blank lines are needed for two frames from camera. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang thanks for your help! after tune the ti settings, I can receive four camera data now. currently for 1/2/3 sensors, I can receive the data with correct pixels however for 4 sensors, the pixel data has some line corruptions(see the below picture) from TI side, we can set the data lane numbers and data lane rate however, the data lane rate has only three options(400M, 800M, 1.6G) with different rate+lane number setting, the 1/2/3 sensors can work perfectly for 4 sensors, only 800M+4 data lanes works, but the data has some corruptions my question is 1) for imx6 mipi csi2 receiver, is there any special requirement on the rate and data lanes setting? 2) for imx6 mipi csi, what is the suitable ratio between the real data rate and the total data capability? 2) any suggestions? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Mustafa, These packages are implemented by the MIPI CSI2 hardware, from software side, we just tell it the virtual channel number and Data Identifier (It can be found at include\linux\mipi_csi2.h). Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Thank you for respond Qiang_FSL‌ I am now looking at the MIPI CSI2 Reference Documentation , I am checking all. Also I made search on the my imx6q(Wandboard Quad) custom board source and header files. After my research I could not find  relative source code in the my kernel files, which defines packet types and communication sub-structures for CSI-2 Interface Low Level Protocol message protocol , SoT and EoT package sample codes. I will take the video by using  "mxc" relative files and it's ipu source codes. So If you can share any source code or any relative codes which informs me about  SoT,EoT and LLP Massage Package Structures sample codes, It would be very nice and useful for me because I don't have any reference code in my kernel files.  Best Regards. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Lion, The MIPI CSI2 error registers can be used to check the MIPI CSI2 package is correct with CRC or follows the protocol. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Mustafa, the information can be found from MIPI CSI2 specification: Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi lionwei Qiang_FSL ; According to iMX6 CSI2IPU documentation we need to create  short or long type packages  and also we need Start Of Transmission and End Of Transmission packages too,  How can I send this packages for example in the camera device driver source this packages should be created and sent these data types or we are defining these values to another files . What is the format of SoT and EoT packages? Can someone give me any example about that, I have been working to solve the csi2 format mipi clock and data lane problem, I couldnt define to the iMX6Q processor custom board since 3 week. It would be very very appreciated. Best Regards Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang is there any way on imx6 to confirm the mipi data correct or not from mipi csi-2? for example some register show the status of the mipi csi-2, specially the virtual channel/frame size related Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Lion, no special modification is needed on iMX6 side, you should tune the Ti chip setting. As I know, some customer had already make the Ti 964 work on iMX6 platform, the main work is in Ti side, you should check with them. For iMX6, you just need make sure the four cameras is transfered on 4 MIPI virtual channel. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang I am using following hardwares for similiar surroundview implementation under linux 3.14.52 ov10635 <--> ds90ub913 <--> ov10635 <--> ds90ub913 <--> DS90ub964-q <-----> imx6q ov10635 <--> ds90ub913 <--> ov10635 <--> ds90ub913 <--> the driver patches are most the same as the one you provided and currently the mipi-csi2 can detect the pixclock successfully also the waves on the data lines of mipi-csi2 seems correctly however, I can not receive the camera_callback for camera 0-2, only can receive camera_callback of camera 3 I have read all the comments above, and can not find the similiar causes I have checked the following things 1) the MIPI_IPU1_MUX and MIPI_IPU2_MUX are set to 0 for mipi_csi 2) the register dumps: IPU1_CSI0_SENSE_CONF(0x2630000): 0x04008a00 IPU1_CSI1_SENSE_CONF(0x2638000): 0x04008a00 IPU2_CSI0_SENSE_CONF(0x2a30000): 0x04008a00 IPU2_CSI1_SENSE_CONF(0x2a38000): 0x04008a00 IPU1_IDMAC_CH_EN_1(0x2608004): 0x00000003 IPU1_IDMAC_CH_EN_2(0x2608008): 0x00000000 IPU2_IDMAC_CH_EN_1(0x2a08004): 0x00800003 IPU2_IDMAC_CH_EN_2(0x2a08008): 0x00000000 IPU1_IDMAC_CH_BUSY_1(0x2608100): 0x00000003 IPU2_IDMAC_CH_BUSY_1(0x2a08100): 0x00800002 IPU1_SMFC_MAP(0x2650000): 0x00000020 IPU2_SMFC_MAP(0x2a50000): 0x00000020 my questions are 1) are the smfc and idmac setting correct for these four cameras? 2) from the spec, it says ipu mipi should use non-gated mode, but mxc_v4l2_capture.c uses gated mode in mxc_v4l2_s_param which mode should I use(I have tried both modes, and neither of them works for me) 3) which case need me to set the hsync_pol, vsync_pol? 4) any suggestion to identify this issue? thanks Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP That means your kernel is not aligned with the GPU libs in your rootfs. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang,       Have a nice holiday. I have some trouble with  my borad. We refer to the sabresd and max9286+max96705+ap 0101, and we used the 3.14.52 BSP.  Now our four camera are all working properly, but when I used '-g2d'  in the test command  there is a error just like 'Segmentation fault'. I think It may be  something wrong with  my GPU,but I don't kown how to deal with the problem. Could you give  some advices to me ?Thanks . Here is the log below.                    root@imx6qdlsolo:~# ./mxc_v4l2_tvin.out -ol 0 -ot 0 -ow 960 -oh 540 -d 0 -x 0 ------------------------------here is AP0101-------------------------------- max9286_mipi: sensor number = 4. mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: mipi_lane_bps = 594 Mbps mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: value = 0x2e. max9286_mipi 1-006a: ap0101_initialize: AP0101 was found, index = 1. max9286_mipi 1-006a: ap0101_initialize:AP0101 is already in Slave (Shutter-Sync) Mode. max9286_mipi 1-006a: ap0101_initialize: AP0101 was found, index = 2. max9286_mipi 1-006a: ap0101_initialize:AP0101 is already in Slave (Shutter-Sync) Mode. max9286_mipi 1-006a: ap0101_initialize: AP0101 was found, index = 3. max9286_mipi 1-006a: ap0101_initialize:AP0101 is already in Slave (Shutter-Sync) Mode. max9286_mipi 1-006a: ap0101_initialize: AP0101 was found, index = 4. max9286_mipi 1-006a: ap0101_initialize:AP0101 is already in Slave (Shutter-Sync) Mode. g_in_width = 1280, g_in_height = 720. fb_fix.id = DISP4 BG. It is background screen, only full screen default format was supported. fb: smem_start = 0x25600000, smem_len = 0x546000. fb: frame buffer size = 0x1c2000 bytes. fb: g_screen_info.xres = 1280, g_screen_info.yres = 720. fb: g_display_left = 0. fb: g_display_top = 0. fb: g_display_width = 1280. fb: g_display_height = 720. start time = 1449238585 s, 124037 us ^CERROR: v4l2 capture: mxc_v4l_dqueue() interrupt received root@imx6qdlsolo:~# ./mxc_v4l2_tvin.out -ol 0 -ot 0 -ow 960 -oh 540 -d 0 -x 0 -g2d ------------------------------here is AP0101-------------------------------- max9286_mipi: sensor number = 4. mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: mipi_lane_bps = 594 Mbps mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: value = 0x2e. max9286_mipi 1-006a: ap0101_initialize: AP0101 was found, index = 1. max9286_mipi 1-006a: ap0101_initialize:AP0101 is already in Slave (Shutter-Sync) Mode. max9286_mipi 1-006a: ap0101_initialize: AP0101 was found, index = 2. max9286_mipi 1-006a: ap0101_initialize:AP0101 is already in Slave (Shutter-Sync) Mode. max9286_mipi 1-006a: ap0101_initialize: AP0101 was found, index = 3. max9286_mipi 1-006a: ap0101_initialize:AP0101 is already in Slave (Shutter-Sync) Mode. max9286_mipi 1-006a: ap0101_initialize: AP0101 was found, index = 4. max9286_mipi 1-006a: ap0101_initialize:AP0101 is already in Slave (Shutter-Sync) Mode. g_in_width = 1280, g_in_height = 720. fb_fix.id = DISP4 BG. fb: smem_start = 0x25600000, smem_len = 0x546000. fb: frame buffer size = 0x1c2000 bytes. fb: g_screen_info.xres = 1280, g_screen_info.yres = 720. fb: g_display_left = 0. fb: g_display_top = 0. fb: g_display_width = 960. fb: g_display_height = 540. Segmentation fault      With my best regards  Jun Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Yu fe, This error means MAX9286 can't detect the cameras, you need check your hardware signal and power between MAX9286 and MAX96705. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP hi, Qiang Li my custom board is ref to saresd, max9286+max96705+ap010. my yocto version is 3.14.52, i  got message below after patched the kernel pr_info("max9286_mipi: sensor number = %d.\n", g_sensor_num); if (g_sensor_num == 0) { pr_err("%s: no camera connected.\n", __func__); return -1; } can you please give me some suggestion to find the program? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP When you used IPU for CSC on 1280*720 frames, the IPU loading is heavy, there is chance that IPU can't service the capture on time. To improve it, you need use IDMAC 0 and IDMAC 2, then all FIFO can be used: In ipu_common.c, function ipu_probe(), please make sure all CSI->MEM channels are set to high priority:  /* Set sync refresh channels and CSI->mem channel as high priority */ - ipu_idmac_write(ipu, 0x18800003L, IDMAC_CHA_PRI(0)); + ipu_idmac_write(ipu, 0x1880000FL, IDMAC_CHA_PRI(0)); Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP This file can be found from your rootfs. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hello Qiang, The attached tvin source code includes a local file #include "g2d.h".  However this file is not included in the archive.  Where do we get this file? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP 4 in 1 HD recorder resolved? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Brave, That error means there is no valid MIPI CSI2 signal to IMX6, from your log, it seems there is flash in your camera module, if so, the flash setting for the camera should be algined with the AP0101 setting in max9286.c, the camera should work in frame sync mode. On Max9286, there is a lock pin, only when the four cameras are working in frame sync mode and are locked by MAX9286, it will output valid MIPI CSI2 signal to iMX6. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Dear Qiang Li, could you please kindly take a look at following post and give me an insight ? Adding X11 Interlace Video Mode Support to Yocto  Thanks in Advance Anuradha Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP The iMX6 SabreAuto board can only supply 5V power to MAX9286 board, so if you are using long Coax cable, there will be issue. You can rework your MAX9286 board, and supply 7~12V power to it. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP "MAX9296 + 4 96705 +4camera" the reference patch had already covered this, the sync setting is in camera and Maxim chip side. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang, How to sync the camera of the MAX9296 + 4 96705 +4camera?  We have 2 customer want to use the IMX.6 + MAX9268+ 4 MAX96705---camera. Could you suggest how to sync the camera? Thank you very much. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Li, Why do I need to set video format to 4 (UYVY) when using grecorder tool? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Qiang_FSL‌ now i try use h.264, ./mxc_vpu_test.out -E "-x 0 -f 0 -c 1800 -a 30 -w 1280 -h 792 -o ss.mp4 -l 0 -b 5204" when i try to play ss.mp4 on PC i can't play it normally, like the mp4 file has no header, how to create a mp4 file when use H.264 recoder video data? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi, Li now i try to use VPU to encode the camera data, i use MJPEG, i do not want to use other standed (H263 H264), the the file is a too large, 100 frames will make a file about 11M. how to reduce MJPEG file? thanks Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Dear Qiang! I am using MAX9286+OV10635+MAX9271. I have tested 3.10.53patch and 3.14.52patch, but both of them are not work. When I ran "/mxc_v4l2_tvin.out -ol 0 -ot 0 -ow 960 -oh 540 -d 1 -x 0 -g2d &". I got the same errors, like this [ 2027.062578] max9286_mipi 0-0048: max9286_write_reg reg = 0x15, val = 0x13. [ 2027.070238] max9286_mipi 0-0048: max9286_write_reg reg = 0xe, val = 0x5f. root@wandboard-quad:/usr/src# [ 2027.093488] max9286_mipi 0-0048: max9286_write_reg reg = 0x3f, val = 0x4f. [ 2027.113488] max9286_mipi 0-0048: max9286_write_reg reg = 0x3b, val = 0x1e. [ 2027.332778] max9286_mipi 0-0048: max9271_write_reg:write reg error:reg= 4,val=43 [ 2027.552770] max9286_mipi 0-0048: max9271_write_reg:write reg error:reg= 8,val= 1 [ 2027.573473] max9286_mipi 0-0048: max9286_write_reg reg = 0x3b, val = 0x19. [ 2027.593452] max9286_mipi 0-0048: max9286_write_reg reg = 0x12, val = 0xf3. [ 2027.601029] max9286_mipi 0-0048: max9286_write_reg reg = 0x1, val = 0x2. [ 2027.713713] max9286_mipi: sensor number = 1. [ 2027.718679] max9286_mipi 0-0048: max9286_write_reg reg = 0xe, val = 0x50. [ 2027.728809] max9286_mipi 0-0048: max9286_write_reg reg = 0xb, val = 0xe1. [ 2027.735691] mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: mipi_lane_bps = 192 Mbps [ 2027.744033] mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: value = 0x44. [ 2027.751624] max9286_mipi 0-0048: max9286_write_reg reg = 0x0, val = 0xe2. [ 2027.760490] max9286_mipi 0-0048: max9286_write_reg reg = 0xa, val = 0x22. [ 2027.962765] max9286_mipi 0-0048: max9271_write_reg:write reg error:reg= 0,val= 4 [ 2028.182767] max9286_mipi 0-0048: max9271_write_reg:write reg error:reg= 7,val=84 [ 2028.402761] max9286_mipi 0-0048: max9271_write_reg:write reg error:reg= 1,val=90 [ 2028.602752] max9286_mipi 0-0048: max9271_write_reg:write reg error:reg= 9,val=c4 [ 2028.802767] max9286_mipi 0-0048: max9271_write_reg:write reg error:reg= a,val=c0 [ 2029.002791] max9286_mipi 0-0048: max9271_write_reg:write reg error:reg= b,val= a [ 2029.202766] max9286_mipi 0-0048: max9271_write_reg:write reg error:reg= c,val= 4 [ 2029.223462] max9286_mipi 0-0048: max9286_write_reg reg = 0xa, val = 0x22. [ 2029.230955] max9286_mipi 0-0048: max9286_write_reg reg = 0xa, val = 0xff. [ 2029.432766] max9286_mipi 0-0048: max9271_write_reg:write reg error:reg= 4,val=43 [ 2029.441134] max9286 reg 0x0A = 0xff. [ 2029.447266] max9286_mipi 0-0048: max9286_write_reg reg = 0x34, val = 0x36. [ 2029.652766] max9286_mipi 0-0048: max9271_read_reg:read reg error: reg= 4 [ 2029.659488] max9271 reg 0x04 = 0xffffffff. [ 2029.862766] max9286_mipi 0-0048: max9271_read_reg:read reg error: reg= 4 [ 2029.869489] max9271 reg 0x04 = 0xffffffff. [ 2030.072766] max9286_mipi 0-0048: max9271_read_reg:read reg error: reg= 4 [ 2030.079487] max9271 reg 0x04 = 0xffffffff. [ 2030.282776] max9286_mipi 0-0048: max9271_read_reg:read reg error: reg= 4 [ 2030.289497] max9271 reg 0x04 = 0xffffffff. [ 2030.492792] max9286_mipi 0-0048: ov10635_read_reg:read reg error: reg=0x300a. [ 2030.499957] max9286_mipi 0-0048: ov10635_check_device: OV10635 hasn't been found, reg[0x300a] = 0x0. [ 2030.510196] max9286_mipi 0-0048: max9286_write_reg reg = 0x34, val = 0xb6. [ 2030.712770] max9286_mipi 0-0048: max9271_write_reg:write reg error:reg= 4,val=83 [ 2030.823490] max9286_mipi 0-0048: max9286_write_reg reg = 0x15, val = 0x9b. [ 2031.442763] mipi csi2 can not receive sensor clk! MIPI_CSI_PHY_STATE = 0x200. g_in_width = 1280, g_in_height = 800. fb_fix.id = DISP3 FG. fb: smem_start = 0x40800000, smem_len = 0xa8c000. fb: frame buffer size = 0x384000 bytes. fb: g_screen_info.xres = 1280, g_screen_info.yres = 720. fb: g_display_left = 0. fb: g_display_top = 0. fb: g_display_width = 960. fb: g_display_height = 540. start time = 1499055466 s, 40751 us [ 2041.482836] ERROR: v4l2 capture: mxc_v4l_dqueue timeout enc_counter 0 VIDIOC_DQBUF failed. It shows that can't find OV10635 and MAX9271. If there are something wrong with I2C drivers? I can confirm my hardware board is OK, because I am using the "MAX9286 COAX EVKIT" board. Could you help me? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP 3.14.52 BSP release has this tool. For other release, it is same as normal camera recode. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP where can i get grecorder-1.0 Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP VPU performance is not enough for 4x720P30 recoder. For one camera: grecorder-1.0 --camera_id 0 --video_format 4 --width1280 --height 720 --fps 30 Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi li How to use gstreamer record the four channel camera data? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Thanks for your reply. where should i change the ipu driver code?like csi_enc_setup in ipu_csi_enc.c ,and  camera_callback in mxc_v4l2_capture.c Could you please describe in more detail? thanks Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP You can alloc a big buffer array for V4l2 capture driver with 2560*1440 pixel buffers: For camera 1, let its DMA buffer base address to pixel (0, 0), width 1280, height 720, but set the stride to 1280*2*2; then after filled 1280 pixels (1280*2 bytes for UYVY input), it will jump 1280*2*2 bytes; so camera 1 will fill the left-up 1280*720 pixels of the buffer; For camera 2, let its DMA buffer base address to pixel (1280, 0), width 1280, height 720, but set the stride to 1280*2*2; then after filled 1280 pixels (1280*2 bytes for UYVY input), it will jump 1280*2*2 bytes; so camera 2 will fill the right-up 1280*720 pixels of the buffer;  For camera 3, let its DMA buffer base address to pixel (0, 720), width 1280, height 720, but set the stride to 1280*2*2; then after filled 1280 pixels (1280*2 bytes for UYVY input), it will jump 1280*2*2 bytes; so camera 3 will fill the left-down 1280*720 pixels of the buffer;  For camera 4, let its DMA buffer base address to pixel (1280, 720), width 1280, height 720, but set the stride to 1280*2*2; then after filled 1280 pixels (1280*2 bytes for UYVY input), it will jump 1280*2*2 bytes; so camera 4 will fill the right-down 1280*720 pixels of the buffer. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Qiang_FSL‌  @zhang hongliang  i want to put the four Independent camera data together in the ipu driver like one of below image , so then user can just use once DQBUF call to get all the four camera data. Any suggestions? or Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Please check with your S32V contact window for that, here is just for IMX6. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP I think you still need check and tuning your ISX016 camera setting, the reference code is for AP0101+AR0140 camera board. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Thank you for your reply, the camera is working in sync mode. sometime i can connect two camrea successfully: max9286_mipi: sensor number = 2. mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: mipi_lane_bps = 336 Mbps mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: value = 0x2a. max9286_mipi 1-006a: ap0101_initialize: AP0101 was found, index = 1. max9286_mipi 1-006a: ap0101_initialize:AP0101 is already in Slave (Shutter-Sync) Mode. max9286_mipi 1-006a: ap0101_initialize: AP0101 was found, index = 2. max9286_mipi 1-006a: ap0101_initialize:AP0101 is already in Slave (Shutter-Sync) Mode. but when i try to get image,the image is not  normal, the clock configure is not right? g_sensor_num = 2  lanes = 3 mipi_csi2_reset(mipi_csi2_info, (672* g_sensor_num) / (lanes + 1)); Qiang_FSL‌ Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP I think your cameras are not working in sync mode. They should work in such mode: MAX9286 send a pulse to each camera, then each camera send out one frame. The VSYNC for each camera should appear in almost same time. If MAX9286 can't sync the multi-cameras, it will not output MIPI signals. But for single camera, no sync was needed. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP now i use BSP 3.10.53, max9286+max96707+ISX016 when connest one camera i can get image successfully,but when i connect tow cameras i always get mipi csi2 can not receive sensor clk! MIPI_CSI_PHY_STATE = 0x6f0. i have patched L3.10.53_GA1.1.0_MAX9286_Surroundview_Patch_2016-07-26.zip my code :  max9271_write_reg(0, 0x40, 0x2F);  msleep(2);  max9271_write_reg(0, 0x97, 0x5F); ....  max9286_write_reg(0x01, 0x00);  max9286_write_reg(0x63, 0x00);  max9286_write_reg(0x64, 0x00);  max9286_write_reg(0x06, 0x00);  max9286_write_reg(0x07, 0x00);  max9286_write_reg(0x08, 0x26); ... mipi_csi2_reset(mipi_csi2_info, (576 * g_sensor_num) / (lanes + 1)); i have refer Debug steps for customer MIPI sensor.docx. my doubt is how to  confirm hsp_clk  and  ccm_pixel_clkm and where to configure hsp_clk  and  ccm_pixel_clkm? another question is about MAX9286 (FSYN CLOCKED in register 0x31 ) when i read it it is 0x0, if the two camera can not get FSYNC LOCKED, this will lead to can not receive sensor clk??? how to fix this? thanks Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Thanks. The problem has been resoved. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Reference to MIPI specification, the YUV422 data transferred on MIPI CSI2 is UYVY, no YUYV, so in max9286_mipi.c, we have the followed code: max9286_data[0].pix.pixelformat = V4L2_PIX_FMT_UYVY; if (sensor->pix.pixelformat == V4L2_PIX_FMT_UYVY) { for (i=0; i mipi_csi2_set_datatype(mipi_csi2_info, i, MIPI_DT_YUV422); If your camera can only be YUYV format, you should change the max9286_mipi.c as followed: max9286_data[0].pix.pixelformat = V4L2_PIX_FMT_YUYV; if (sensor->pix.pixelformat == V4L2_PIX_FMT_YUYV) { for (i=0; i mipi_csi2_set_datatype(mipi_csi2_info, i, MIPI_DT_YUV422); Note: MIPI_DT_YUV422 can't be changed, it is defined by MIPI CSI2 specification for UYVY, there is no MIPI data type for YUYV. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP The patch had already show you the reference code to set the GPR register in file arch/arm/mach-imx/mach-imx6q.c. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP You need check your kernel boot up log to confirm there is no other V4l2 capture driver used video0. You can also use command "ls /dev/video*" to list all video device in your system. And register IOMUXC_GPR1 (0x020E0004) should also be checked, bit 20 and bit 19 must be 0. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP (1) Onsemi AR0140+AP0101+MAX9271 boards. We got this board from Onsemi. (2) OmniVision OV10635+MAX9271 boards. This board is made by Maxim, you can check with them. And as I know AVNET China team had also built some camera boards for both AR0140 and OV10635. "http://entroninc.com/" had also built camera boards for this solution. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP I want to get your Test camera board      (1) Onsemi AR0140+AP0101+MAX9271 boards.     (2) OmniVision OV10635+MAX9271 boards. where can I get them? Could you please recommend  Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Li, when i build BSP L3.14.52.1.1,i got some error, please give some help,thanks bitback fsl-image-gui Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Thanks for your reply. There is no flash ROM on OV10635 board. Follow are the wave of FSIN,HRFE and VSYNC. I think the issure in the OV10635 register setting, My OV10635 is producted in 2014, did you test the patch on the 2014 version chip and have the correct register setting?  Coment:yellow is FSIN, blue is VSYNC. Coment:yellow is HREF, blue is VSYNC. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang,      The patch of HD 720p sound view we have tested on I.MX6qp-sabreauto .But  now our board designed based on I.mx6qsabresd and BSP version is L3.14.52 for imx6qsabresd. So ,my question is  can you send us the patch for L3.14.52 of  imx6qsabresd ? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Winter, did you measure the correct pin? The HREF is the HSYNC signal, it is for line, so it will not be 30fps. I think you need check your OV10635 setting, if it is initialized by on board flash ROM, not from the MAX9286 driver, you should update your flash ROM setting. The VSYNC should align with the FSIN signal, this signal is from MAX9271's GPO. One FSIN, one VSYNC. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi~Li Qiang!       Thank you for your Patch~       I use your patch for my camera OV10635 board,  it is not work. I found  the VSYNC of the OV10635  is discontinuous,the HREF is ok and looks about 30fps.  Can you paste your VSYNC wave here? Thanks Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP The camera sensor AR0140 should connect to ISP AP0101, then AP0101 should connected to MAX9271 to output the serial signal. And I think, without AP0101, the AR0140 can't work in the solution. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP hi  Li Qiang:                     have change the config,But i find i your code only  have AP0101,not have AR0140,i run the board,like this: Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Please read the readme file again, it had already told you where to select the camera sensor. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP hi  Li qiang:                       i find my sensor is AR0140,not OV10635,Where I need to change?thank you Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Haifeng, yes the MAX9286 board was powered from iMX6 board with 5V power, and the OV10635 camera boards can also be powered from iMX6 boards's 5V, but there is another power connector on MAX9286 board which can be used to power the 4xOV10635 camera board, you can connect 12V power to it and select the jump on MAX9286 boards. So the final power: 5V from iMX6 board to MAX9286 board; 12V from MAX9286 board's power connector to OV10635 camera boards. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP hi  qiang li:                  i use the MAX9286 board,i find the max9286 board supply by 5V, my max9286board supply by maxim,they designed for I.mx6. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP These setting are used in mxc_mipi_csi2.c and mxc_v4l2_capture.c, you can modify the code directly. By the way, I think you should not compare the patched 3.10.53 files with 3.0.35 files, you can manually modify the 3.0.35 files directly, based on the code modification in patches. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP inux_3.10.35/arch/arm/boot/dts/imx6q-sabreauto.dts  中     &mipi_csi { status = "okay"; lanes = <4>; mipi-csi2-channel@0 { ipu_id = <0>; csi_id = <0>; v_channel = <0>; status = "okay"; }; mipi-csi2-channel@1 { ipu_id = <0>; csi_id = <1>; v_channel = <1>; status = "okay"; }; mipi-csi2-channel@2 { ipu_id = <1>; csi_id = <0>; v_channel = <2>; status = "okay"; }; mipi-csi2-channel@3 { ipu_id = <1>; csi_id = <1>; v_channel = <3>; status = "okay"; }; }; 这一段在3.0.35中怎么处理? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Jin, if you supply the camera board with 5V power and using long Coax cable, there is chance to get such issue. The OV10635 camera board is designed for 7~12V power supply, so you can supply the camera board with 12V power. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP dear Qiang Li:                              have you try on the imx6q-sabreauto board? i can not use the max9286 on sabreauto board,it is some error: 1 -x 0 -g2d &lo:/unit_tests# ./mxc_v4l2_tvin.out -ol 0 -ot 0 -ow 960 -oh 540 -d [1] 845 root@imx6qdlsolo:/unit_tests# max9286_mipi: sensor number = 1. mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: mipi_lane_bps = 192 Mbps mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: value = 0x44. max9286_mipi 1-006a: ov10635_read_reg:read reg error: reg=0x300a. max9286_mipi 1-006a: ov10635_check_device: OV10635 hasn't been found, reg[0x300a] = 0x0. mipi csi2 can not receive sensor clk! MIPI_CSI_PHY_STATE = 0x6f0. g_in_width = 1280, g_in_height = 800. fb_fix.id = DISP4 FG. fb: smem_start = 0x73600000, smem_len = 0x480000. fb: frame buffer size = 0x180000 bytes. fb: g_screen_info.xres = 1024, g_screen_info.yres = 768. fb: g_display_left = 0. fb: g_display_top = 0. fb: g_display_width = 960. fb: g_display_height = 540. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP You can link the libg2d.so to libg2d.so.0.8. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP dear Qiang Li:                       i have use the L3.14.52,it is some error use the binary in mxc_v4l2_tvin_max9286.tar.gz which yours,the log : ./mxc_v4l2_tvin.out: error while loading shared libraries: libg2d.so.0.8: cannot open shared object file: No such file or directory Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP There is binary file in mxc_v4l2_tvin_max9286.tar.gz, you can use it directly. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Li                  i use de 3.14.52,all patch used,but i have not use,mxc_v4l2_tvin_max9286.tar.gz,in the rootfs,i use unit_tests/mxc_v4l2_tvin.out ,it is nothing to display,can you help me?in the 3.14.52 yocto ,i can not complie the mxc_v4l2_tvin_max9286.tar.gz ,it is something wrong Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP After commented out adv7180, it became OK. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Li I see. the adv7180 should be commented out in imx6qdl-sabreauto.dtsi file. Thank you! ZongbiaoLiao Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP From your log "g_in_width = 720, g_in_height = 624", I think the IPU0 CSI0 port hasn't been used by the MAX9286, it is still combined with adv7180. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Li The log is as bellow: --------------------------------------- root@imx6qsabreauto:/unit_tests# ./max9286.sh root@imx6qsabreauto:/unit_tests# g_in_width = 1280, g_in_height = 800. fb_fix.id = DISP3 FG. g_in_width = 1280, g_in_height = 800. g_in_width = 1280, g_in_height = 800. fb: smem_start = 0x72c00000, smem_len = 0xbdd800. fb_fix.id = DISP3 FG. fb: frame buffer size = 0x3f4800 bytes. fb: g_screen_info.xres = 1920, g_screen_info.yres = 1080. fb: g_display_left = 960. fb: g_display_top = 0. fb: g_display_width = 960. fb: g_display_height = 540. fb: smem_start = 0x72c00000, smem_len = 0xbdd800. start time = 1457509993 s, 697691 us fb: frame buffer size = 0x3f4800 bytes. fb: g_screen_info.xres = 1920, g_screen_info.yres = 1080. fb: g_display_left = 0. fb: g_display_top = 540. fb_fix.id = DISP3 FG. fb: g_display_width = 960. fb: g_display_height = 540. fb: smem_start = 0x72c00000, smem_len = 0xbdd800. fb: frame buffer size = 0x3f4800 bytes. fb: g_screen_info.xres = 1920, g_screen_info.yres = 1080. fb: g_display_left = 960. fb: g_display_top = 540. fb: g_display_width = 960. fb: g_display_height = 540. start time = 1457509993 s, 717597 us start time = 1457509993 s, 717698 us g_in_width = 720, g_in_height = 624. fb_fix.id = DISP3 FG. fb: smem_start = 0x72c00000, smem_len = 0xbdd800. fb: frame buffer size = 0x3f4800 bytes. fb: g_screen_info.xres = 1920, g_screen_info.yres = 1080. fb: g_display_left = 0. fb: g_display_top = 0. fb: g_display_width = 960. fb: g_display_height = 540. start time = 1457509994 s, 45827 us ERROR: v4l2 capture: mxc_v4l_dqueue timeout enc_counter 0 VIDIOC_DQBUF failed. ------------------------------------------------------ and what the HDMI display showed is as bellow: The first camera shows nothing and after several seconds the 'ERROR: v4l2 capture: mxc_v4l_dqueue timeout enc_counter 0' is output, all other three cameras also stop and show nothing. Thank you! ZongbiaoLiao Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP What's the error log? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi, Qiang Li I selected MAX9271. My problem is three cameras work except the first one. Thank you! ZongbiaoLiao Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP You need select MAX96705 or MAX9271 in the kernel config, if it is different with your hardware, it will not work. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi Qiang Li Thank you for releasing patch for L3.14.52_GA1.1.0. I have tested the patch,but  I met  a problem. The first camera(mxc_v4l2_tvin.out -ol 0 -ot 0 -ow 960 -oh 540 -d 1 -x 0 -g2d &) does not show anything, and after several seconds, error 'VIDIOC_DQBUF failed' happened,all other three cameras also stopped. Then I tested patch for 3.10.53,all cameras have no problem. Could you help me? Thank you! ZongbiaoLiao Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP We have no plan to back porting the driver to 3.0.35 BSP, please do it by yourself. Thanks! Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP Hi~Li Qiang!       Thank you for your Patch~        But our cpu is IMX6Q-Sabresd, Camera is Ov10635. LTIB is L3.0.35_4.1.0        Can you help me support this Patch ?        Thanks Sincerely~~ Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> FRSYNC/GPI does not need to be connected to iMX6, and CSI0_MCLK is not used. All working mode settings are between MAX9286 and camera, so you need to confirm with Maxim about the specific connection settings between MAX9286 and Camera (AP0101). For iMX6, you only need to connect the data and clock of MIPI CSI2. If the working mode of MAX9286 and Camera is not correct, the data coming from MIPI will be abnormal. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Thank you very much. The problem of video0 not displaying has been solved. Now there is another problem, that is, the YUV data obtained through the mxc_v4l2_tvin_max9286 process is always reversed. For example, I set g_in_fmt = V4L2_PIX_FMT_UYVY in my application, and the data viewed in capture_buffers is actually YUYV. If g_in_fmt = V4L2_PIX_FMT_YUYV, the data viewed in capture_buffers is actually UYVY. I configured the CSI data format YUYV and UYUV by changing CSI0_SENS_DATA_FORMAT, but it didn't work. Is this modification correct? What causes this problem? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Boss, didn't you adjust it on version 3.0.35 before? Please share with us. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Supplement: The sensor I use is ov490 (isp) + ov10640 (sensor), and the data format output by the sensor is YUV422---YUYV. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> @Qiang Li - Mpu Se Hello! Thanks for your reply! First of all, the high and low data lines from the camera to the MAX96705 are indeed reversed, but we only connected 8 data lines instead of 10. The picture shown above is the image after the data lines are reversed. The specific settings are as follows: max9271_write_reg(i, 0x20, 0x07); max9271_write_reg(i, 0x21, 0x06); max9271_write_reg(i, 0x22, 0x05); max9271_write_reg(i, 0x23, 0x04); max9271_write_reg(i, 0x24, 0x03); max9271_write_reg(i, 0x25, 0x02); max9271_write_reg(i, 0x26, 0x01); max9271_write_reg(i, 0x27, 0x00); max9271_write_reg(i, 0x30, 0x17); max9271_write_reg(i, 0x31, 0x16); max9271_write_reg(i, 0x32, 0x15); max9271_write_reg(i, 0x33, 0x14); max9271_write_reg(i, 0x34, 0x13); max9271_write_reg(i, 0x35, 0x12); max9271_write_reg(i, 0x36, 0x11); max9271_write_reg(i, 0x37, 0x10); Then we changed it according to your settings, and after that the image lost more outline details. Could there be some other factor causing this? Thanks! Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, our current board is IMX6QP+MAX9286+MAX96705+AP0101AT+AR0143AT , and the kernel version is L4.1.15. AP0101 is equipped with a flash and uses the firmware provided by the supplier. The video format is: YUV422 8bit/LSB. It has been confirmed that the video data output by the ISP is normal. Currently only one camera module is connected for debugging. After applying the patch you provided, the following prompt appears: root@imx6qp-avm718:/unit_tests# ./mxc_v4l2_tvin.out -ol 0 -ot 0 -ow 960 -oh 540 -d 0 -x 0 In MVC: mxc_v4l_open device name is Mxc Camera End of mxc_v4l_open: v2f pix widthxheight 288 x 352 End of mxc_v4l_open: crop_bounds widthxheight 1280 x 720 End of mxc_v4l_open: crop_defrect widthxheight 1280 x 720 End of mxc_v4l_open: crop_current widthxheight 1280 x 720 On Open: Input to ipu size is 1280 x 720 max9286_mipi: sensor number = 1. mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: mipi_lane_bps = 148 Mbps mxc_mipi_csi2 21dc000.mipi_csi: mipi_csi2_reset: value = 0x42. max9286_mipi 1-006a: ap0101_initialize: AP0101 was found, index = 1. max9286_mipi 1-006a: ap0101_initialize:AP0101 is already in Slave (Shutter-Sync) Mode. In MVC:mxc_v4l_ioctl In MVC: mxc_v4l_do_ioctl 80685600 case VIDIOC_QUERYCAP In MVC:mxc_v4l_ioctl In MVC: mxc_v4l_do_ioctl c0045627 case VIDIOC_S_INPUT In MVC:mxc_streamoff In MVC:mxc_v4l_ioctl In MVC: mxc_v4l_do_ioctl c02c563a case VIDIOC_CROPCAP In MVC:mxc_v4l_ioctl In MVC: mxc_v4l_do_ioctl c0cc5616 case VIDIOC_S_PARM In mxc_v4l2_s_param Current capabilities are 0 Current capturemode is 0 change to 0 Current framerate is 30 change to 0 clock_curr=mclk=27000000 g_fmt_cap returns widthxheight of input as 1280 x 720 In MVC:mxc_v4l_ioctl In MVC: mxc_v4l_do_ioctl c0cc5605 case VIDIOC_S_FMT In MVC: mxc_v4l2_s_fmt type=V4L2_BUF_TYPE_VIDEO_CAPTURE End of mxc_v4l2_s_fmt: v2f pix widthxheight 1280 x 720 End of mxc_v4l2_s_fmt: crop_bounds widthxheight 1280 x 720 End of mxc_v4l2_s_fmt: crop_defrect widthxheight 1280 x 720 End of mxc_v4l2_s_fmt: crop_current widthxheight 1280 x 720 In MVC:mxc_v4l_ioctl In MVC: mxc_v4l_do_ioctl c0cc5604 case VIDIOC_G_FMT In MVC: mxc_v4l2_g_fmt type=1 type is V4L2_BUF_TYPE_VIDEO_CAPTURE End of mxc_v4l2_g_fmt: v2f pix widthxheight 1280 x 720 End of mxc_v4l2_g_fmt: crop_bounds widthxheight 1280 x 720 End of mxc_v4l2_g_fmt: crop_defrect widthxheight 1280 x 720 End of mxc_v4l2_g_fmt: crop_current widthxheight 1280 x 720 g_in_width = 1280, g_in_height = In MVC:mxc_v4l_ioctl 720. In MVC: mxc_v4l_do_ioctl c0145608 case VIDIOC_REQBUFS In MVC:mxc_streamoff MVC: In mxc_free_frame_buf In MVC:mxc_allocate_frame_buf - size=1843200 fb_fix.id = DISP3 BG - DI1. It is background screen, only full screen default format was supported. fb: smem_start = 0x73500000, smemIn MVC:mxc_v4l_ioctl _len = 0xbdd800. fb: frame buffIn MVC: mxc_v4l_do_ioctl c0445609 er size = 0x3f4800 bytes. fb: g case VIDIOC_QUERYBUF _screen_info.xres = 1920, g_screeIn MVC:mxc_v4l2_buffer_status n_info.yres = 1080. fb: g_displIn MVC:mxc_mmap ay_left = 0. fb: g_display_top pgoff=0x72d00, start=0x75e00000, end=0x75fc2000 = 0. fb: g_display_width = 1920In MVC:mxc_v4l_ioctl . In MVC: mxc_v4l_do_ioctl c0445609 case VIDIOC_QUERYBUF In MVC:mxc_v4l2_buffer_status In MVC:mxc_mmap pgoff=0x72f00, start=0x75c3e000, end=0x75e00000 In MVC:mxc_v4l_ioctl In MVC: mxc_v4l_do_ioctl c0445609 case VIDIOC_QUERYBUF In MVC:mxc_v4l2_buffer_status In MVC:mxc_mmap pgoff=0x73100, start=0x75a7c000, end=0x75c3e000 In MVC:mxc_v4l_ioctl In MVC: mxc_v4l_do_ioctl c0445609 case VIDIOC_QUERYBUF In MVC:mxc_v4l2_buffer_status In MVC:mxc_mmap pgoff=0x73300, start=0x758ba000, end=0x75a7c000 In MVC:mxc_v4l_ioctl In MVC: mxc_v4l_do_ioctl c044560f case VIDIOC_QBUF In MVC:mxc_v4l_ioctl In MVC: mxc_v4l_do_ioctl c044560f case VIDIOC_QBUF In MVC:mxc_v4l_ioctl In MVC: mxc_v4l_do_ioctl c044560f case VIDIOC_QBUF In MVC:mxc_v4l_ioctl In MVC: mxc_v4l_do_ioctl c044560f case VIDIOC_QBUF In MVC:mxc_v4l_ioctl In MVC: mxc_v4l_do_ioctl 40045612 case VIDIOC_STREAMON In MVC:mxc_streamon IPU:In csi_enc_enabling_tasks In csi_enc_setup start time = 1540834851 s, 23859 In MVC:mxc_v4l_ioctl us In MVC: mxc_v4l_do_ioctl c0445611 case VIDIOC_DQBUF In MVC:mxc_v4l_dqueue ERROR: v4l2 capture: mxc_v4l_dqueue timeout enc_counter 0 VIDIOC_DQBUF failed. In MVC:mxc_v4l_ioctl In MVC: mxc_v4l_do_ioctl 40045613 case VIDIOC_STREAMOFF In MVC:mxc_streamoff CSI_MEM0:fffffc0,CIS_MEM1:10ffffc1,CSI_MEM2:11ffffc2,CSI_MEM3:12ffffc3,CSI_PRP_ENC_MEM:13ffffd4,CSI_PRP_VF_MEM:14ffffd5 channel:fffffc0 In MVC:mxc_free_frames In MVC:mxc_v4l_close In MVC:mxc_streamoff mxc_v4l_close: release resource MVC: In mxc_free_frame_buf In MVC:mxc_free_frames It seems that the video data is not obtained. I measured the output of MAX9286 mipi, where the mipi clk is 72MHz, and the waveform on the data pin is as follows; I considered the problem of the data pins of AP0101 and MAX96705 being misaligned or reversed, but from other people's previous experience, if the data pins are misaligned, the video can be seen, but the video picture is abnormal, and VIDIOC_DQBUF failed will not appear; Could you please provide some debugging tips? Thanks! Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> I want to compress four cameras into one 720p video in up, down, left, and right format for storage. How can I integrate the four videos? Do you have any suggestions? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ferhatolgun ‌Hello, have you solved your problem? I am facing the same problem as yours. If you have solved it, could you let me know? Thank you! Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Our image was called out in version 3.0.35. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, I reversed the polarity of VS, and then added the code you provided, and now the picture appears, thank you! Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Thank you very much for your reply. Bit 19 is 1 and it is ok now. The CSI0_SENS_DATA_FORMAT configuration of CSI data format YUYV and UYUV did not work. Is this modification correct? What causes this problem? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Pengtao, AP0101 needs to be set to Frame Sync mode instead of the default Free Run mode. In Free Run mode, you will see your phenomenon: a single camera is OK, but multiple cameras are not. If your camera settings are in the flash ROM, then these settings need to be modified according to the driver. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> This should be the high and low data lines from the camera to the MAX96705 are reversed. They can be reversed when setting 96705 (italic part): #ifdef MAX96705 //Invert VSYNC max9271_write_reg(0, 0x40, 0x2F); msleep(2); max9271_write_reg(0, 0x08, 0x81); msleep(2);  max9271_write_reg(0, 0x97, 0x5F);  max9271_write_reg(0, 0x20, 0x09);  max9271_write_reg(0, 0x21, 0x08);  max9271_write_reg(0, 0x22, 0x07);  max9271_write_reg(0, 0x23, 0x06);  max9271_write_reg(0, 0x24, 0x05);  max9271_write_reg(0, 0x25, 0x04);  max9271_write_reg(0, 0x26, 0x03);  max9271_write_reg(0, 0x27, 0x02);  max9271_write_reg(0, 0x28, 0x01);  max9271_write_reg(0, 0x29, 0x00);  max9271_write_reg(0, 0x30, 0x19);  max9271_write_reg(0, 0x31, 0x18);  max9271_write_reg(0, 0x32, 0x17);  max9271_write_reg(0, 0x33, 0x16);  max9271_write_reg(0, 0x34, 0x15);  max9271_write_reg(0, 0x35, 0x14);  max9271_write_reg(0, 0x36, 0x13);  max9271_write_reg(0, 0x37, 0x12);  max9271_write_reg(0, 0x38, 0x11);  max9271_write_reg(0, 0x39, 0x10); #else Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hello, the picture is out now, but the picture is abnormal. The whole picture is green, and the light part is pink. I guess it is because the sensor output is YUYV. In the application mxc_v4l2_tvin.c, I converted the captured data into UYVY and displayed it. The picture color is normal. It is verified that this problem is caused by the sensor output format being YUYV. Since converting data to UYVY in the application will occupy system resources, make the following changes in the driver and in max9286_mipi.c: - max9286_data[0].pix.pixelformat = V4L2_PIX_FMT_UYVY;  + max9286_data[0].pix.pixelformat = V4L2_PIX_FMT_YUYV;  - if(sensor->pix.pixelformat == V4L2_PIX_FMT_UYVY){ + if(sensor->pix.pixelformat == V4L2_PIX_FMT_YUYV){       for(i = 0; i < MAX_SENSOR_NUM;i++)             mipi_csi2_set_datatype(mipi_csi2_info,i,MIPI_DT_YUV422); } Then, execute the following command: ./mxc_v4l2_tvin.out -ol 0 -ot 0 -ow 960 -oh 540 -d 1 -x 0 -if YUYV Track and check that the CSI_SENS_CONF register value is 0x900, which means that SENS_DATA_FORMAT has been successfully configured to YUYV; However, the picture output through HDMI is still abnormal, and it is exactly the same as the picture before the modification, which makes it feel like the modification has not taken effect; Is there any problem with the above modification method? Is there any other place that needs to be modified synchronously? Thank you! Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hello! We are currently adjusting a camera with IMX225+FH8536+MAX96705, platform: IMX6+MAX9286, Kernel version 3.14.52. The basic outline of the video is normal, but the color is not normal, as shown in the figure In order to verify whether there is a problem with the front-end ISP output, we did an experiment. We disconnected the ISP from the MAX96705, connected the ISP output to a decoder (TW8836), and then debugged 8836. We found that the image can be output normally, that is, there is no problem with the data output by the ISP, and the output format is YVYU. So I would like to ask, can max96705 convert YVYU data into UYVY format and then pass it to MAX9286? Or how should the display part be processed on the imx6 end? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Qiang Li: I debugged the situation on the L3.14.52_GA1.1.0 version: 1. Onsemi AR0143+AP0101+MAX9 6705+Max9286+Imx6D single channel display is normal. 2. Onsemi AR0143+AP0101+MAX9 6705+Max9286+Imx6D two-way display effect is as shown in the figure: The camera on the right shows why this is the case, and there are four identical images, all with a green tint. What is the problem? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hello Qiang Li , Thanks for your help. The problem has been solved with the solution you provided! The system instability mentioned above is caused by other reasons and has nothing to do with this solution! Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Dear Qiang, I am using the s32v-evb development board to debug MAX9286 + Onsemi AR0140 + AP0101 + MAX9271. Do you have any relevant debugging documents or reference code that you can provide me with? Thanks a lot. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Currently, the MAX96705 is set up to sample the camera image using 10 data lines. If only 8 lines are connected, the high 2 bits of the image will be lost after inversion, which is basically unacceptable. You can ask Maxim how to handle the 8-line method. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Let's see if your input is: Raw data input or YUV input, if it is raw CMOS sensor input, it should be 12bit. Bit loss will cause problems. If it is 8-bit YUV input (BT656), it depends on whether you have the right bits, 0~7 or 2~9... Serdis usually does a transmission, what is input is what is output~ [email protected] Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hello, can I ask you a question: 1. I see that FH8536 seems to have only analog output, how did you connect it to 96705; 2. If IMX225+FH8536 is used, how do you synchronize the images of the four lens modules? Looking forward to your reply, thank you! Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> You can measure the lock pin of MAX9286. It should be high all the time to ensure the stable output of MIPI data. If the camera and MAX9286 are not set up properly, the high level cannot be maintained all the time, and the data will be incomplete. From the test results of AP0101, the MAX9286 needs to be set to manual mode, and the register 0x08 needs to be adjusted according to the camera's frame rate setting: #ifdef SENSOR_AP0101  //Manual Mode  max9286_write_reg(0x01, 0x00);  max9286_write_reg(0x63, 0x00);  max9286_write_reg(0x64, 0x00);  max9286_write_reg(0x06, 0x00);  max9286_write_reg(0x07, 0x00);  max9286_write_reg(0x08, 0x26); #endif Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> hi  Qiang li: Because the products we developed with BYD include tw6865 + max9286. I have already adjusted tw6865 on 3.0.35, but it is more difficult to adjust 9286 on 3.0.35, so I hope to get your help. I think the first step should be to enable the 4 virtual channels of imx6 to collect data at the same time. The second step is to adjust the device. At present, max9286 can sometimes detect the device AP0101, but sometimes it cannot detect it. I don’t know why. I suspect that there is a problem with enabling the 4 virtual channels. I transplanted it according to the patch 3.10.53 you released. I hope to get your help. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Qiang Li ! How many 720P 60fps camera inputs can imx8 support? (All IMX8 included) Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> On the MAX9286 side, you can try to modify register 0x08 max9286_write_reg(0x08, 0x26); Change to max9286_write_reg(0x08, 0x2C); It is best to refer to the settings in the Driver for the Flash settings in your Camera module. The frame rate under FrameSync mode should be determined by the MAX9286. So in theory, it should not happen that the MAX9286 sends FrameSync to the camera at 30fps while the camera sends images at 25fps. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, our lens uses MAX96705+AP0101+AR0143AT, AP0101 is connected with a flash, ISP output is YUV422/8bit/LSB, and VIDIOC_DQBUF failed is displayed. After reading other people's questions, it seems that VIDIOC_DQBUF failed will not appear if it is a data misalignment problem. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> hello yu  :  能否将l3.0.35的补丁给我一份,[email protected]。感激不尽 Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> According to the MIPI specification, the YUV422 transmitted by MIPI CSI2 should be in UYVY format, but you are transmitting YUYV, so you cannot use a unified setting to process it. In mxc_v4l2_tvin, the settings of g_in_fmt (g_g2d_fmt) will be set in the Driver by default, and will also be used when rendering. According to your situation, the Driver should use all UYVY settings, and then when rendering, just change g_in_fmt (g_g2d_fmt) to YUYV. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> The lock pin of MAX9286 cannot maintain a high level, which means it cannot completely lock the camera signal. Then the data on MIPI CSI2 must be problematic. This has nothing to do with the iMX6. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Qiang_FSL‌ In addition, my environment is as follows: OV10635 sensor MAX96705 Serializer MAX9286 Deserializer kernel 4.1.15 patch L3.14.52_GA1.1.0_MAX9286_Surroundview_Patch_2016-07-26.zip The image can be displayed, but the color is wrong. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, my previous statement was wrong. The real reason is that the CSI2IPU gasket output format is configured as YUYV. The problem is solved after setting the YUV422_8BIT_FM of the CSI2IPU_SW_RST register to UYVY. Thank you! Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hello Qiang_FSL , there is also a color problem! I saw your email and compared it with the original code. I found that the ov10635_setting in the email is exactly the same as the setting in the original code. There is also the file MAX9286_OV10635_1280x800_Quad_FSIN_MOD.C. I don’t know if it is useful to me. How can I modify the original code? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi. Qiang Li When we connect 4 720p@60pfs cameras, what is the delay from camera connection to display on the screen? Do you have this performance indicator?      When we access 8-way For a 720p@60pfs camera, what is the latency from camera access to screen display? Do you have this performance indicator? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Thanks for your reply. We are now running normally with 0143+0101+96705. The synchronization of 0143 is indeed controlled by the trigger in of the sensor, but IMX225 does not seem to have a trigger pin. The datasheet describes that slave mode requires VS and HS. In addition, I see that the FH8536 ISP only has analog output, and 96705 does not seem to be able to connect to analog input. I don't know how the IMX225+FH8536+MAX96705 solution solves these two problems. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> The photosensitive sensor I use here is AP0143; the sensor has been frame synced, because in the previous mode, multiple sensors cannot produce images; Now when I capture 320 lines and connect three sensors, there will be no scrolling, but there will be horizontal bars and jitter. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> HiJiajie Wu It depends on what camera sensor you use. If you buy a ready-made module, it usually comes with flash, and its working mode is set in the flash ROM. Even if the Frame Sync mode is set on the MAX9286, the camera mode cannot be changed. In addition, for some camera sensors (such as AP0101+AR0130), the time from HSYNC to VSYNC of the last line is less than 255 pixel clocks, which may also cause problems. In this case, the IPU CSI needs to capture fewer lines of data. For example, for an input of 720 lines, the IPU CSI only captures 712 lines. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> I also need the patch for version L3.0.35_4.1.0, thank you Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Qiang li: The patches applied in bsp 3.10.53 are as follows:      static int mipi_csi2_probe(struct platform_device *pdev) { . . . . . . . . . . ret = of_property_read_u32(np, "lanes", &(gmipi_csi2->lanes)); if (ret) { dev_err(&pdev->dev, "lanes missing or invalid\n"); goto err; } if (gmipi_csi2->lanes > 4) { dev_err(&pdev->dev, "invalid lanes for mipi csi2!\n"); ret = -EINVAL; goto err; } for_each_child_of_node(np, child) { struct mipi_csi2_chan *chan; if (!of_device_is_available(child)) continue; ret = of_property_read_u32(child, "v_channel", &v_channel); if (ret) { dev_err(&pdev->dev, "v_channel missing\n"); goto err; } if (v_channel > 3) { dev_err(&pdev->dev, "v_channel invalid\n"); ret = -EINVAL; goto err; } chan = &(gmipi_csi2->mipi_chan[v_channel]); ret = of_property_read_u32(child, "ipu_id", &(gmipi_csi2->mipi_chan[v_channel].ipu_id)); if (ret) { dev_err(&pdev->dev, "ipu_id missing or invalid\n"); goto err; } ret = of_property_read_u32(child, "csi_id", &(gmipi_csi2->mipi_chan[v_channel].csi_id)); if (ret) { dev_err(&pdev->dev, "csi_id missing or invalid\n"); goto err; } if ((gmipi_csi2->mipi_chan[v_channel].ipu_id < 0) || (gmipi_csi2->mipi_chan[v_channel].ipu_id > 1) || (gmipi_csi2->mipi_chan[v_channel].csi_id > 1)) { dev_err(&pdev->dev, "invalid param for mipi csi2!\n"); ret = -EINVAL; goto err; 。。。。。。。。。。。。 This is how I handled this part in 3.0.35. Please help me check if there is any problem.    static int mipi_csi2_probe(struct platform_device *pdev) { struct mipi_csi2_platform_data *plat_data = pdev->dev.platform_data; struct resource *res; u32 mipi_csi2_dphy_ver; struct mipi_csi2_chan *chan; int ret , v_channel; printk("mipi_csi2 probe start !!!!!!!!!!!!!!!!!!!!!\n"); gmipi_csi2 = kmalloc(sizeof(struct mipi_csi2_info), GFP_KERNEL); if (!gmipi_csi2) { ret = -ENOMEM; goto alloc_failed; } printk("v_channel is %d !!!!!!!!!!!!!!!!1111\n",v_channel); /* initialize mutex */ mutex_init(&gmipi_csi2->mutex_lock); chan = &(gmipi_csi2->mipi_chan[v_channel]); /* get mipi csi2 informaiton */ gmipi_csi2->pdev = pdev; gmipi_csi2->mipi_en = false; //gmipi_csi2->ipu_id = plat_data->ipu_id; //gmipi_csi2->csi_id = plat_data->csi_id; //gmipi_csi2->v_channel = plat_data->v_channel; gmipi_csi2->lanes = plat_data->lanes; printk("plat_data lanes is %d !!!!!!!!!!!!!!!\n", plat_data->lanes); v_channel = plat_data->v_channel; gmipi_csi2->mipi_chan[v_channel].ipu_id= plat_data->ipu_id; gmipi_csi2->mipi_chan[v_channel].csi_id= plat_data->csi_id; if ((gmipi_csi2->mipi_chan[v_channel].ipu_id < 0) || (gmipi_csi2->mipi_chan[v_channel].ipu_id > 1) || (gmipi_csi2->mipi_chan[v_channel].csi_id > 1)) { dev_err(&pdev->dev, "invalid param for mipi csi2!\n"); ret = -EINVAL; } . . . . . . . The platform data is as follows:   static struct mipi_csi2_platform_data mipi_csi2_pdata = { .ipu_id = 0, //0 // modify by lee .csi_id = 0, .v_channel = 0, .lanes = 4, .dphy_clk = "mipi_pllref_clk", .pixel_clk = "emi_clk", }; Is this operation OK? Thank you. I have been dealing with max9286 on 3.0.35 for a long time. There has been no progress. I hope to get your support. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Thanks for your reply, Our application scenario is like this: the 4-way spliced display screen is encoded and stored, so it is equivalent to only encoding one 720P. Since it is not a direct encoding of the original image, it is impossible to output the UYVY image into NV12 for encoding through the camera driver. Our splicing is achieved through the GPU, and the image sent to the encoder is RGBA32, so the color space conversion is required before encoding, and then the image is abnormal. In fact, we also tested the color conversion of a single-channel 720×480 image, that is, first reduce the 720P image to 720×480 through the GPU and then transcode and record with this resolution image, which will also cause input image abnormality. If we transcode 720×480 (RGBA32 -> NV12 or UYVY -> NV12), only one channel will be abnormal. If the transcoding is 1280×720, except for the first channel, the other three channels are all abnormal. I checked the underlying driver and found that the data flow is CSI--> SMFC--> IDMAC--> MEM. I tracked the IDMAC channel usage and the default is CSI_MEM0 = _MAKE_CHAN(15, NO_DMA, NO_DMA, NO_DMA, 0). CSI_MEM1 = _MAKE_CHAN(16, NO_DMA, NO_DMA, NO_DMA, 1), CSI_MEM2 = _MAKE_CHAN(17, NO_DMA, NO_DMA, NO_DMA, 2), CSI_MEM3 = _MAKE_CHAN(18, NO_DMA, NO_DMA, NO_DMA, 3), The problem at 720×480 is CSI_MEM1 = _MAKE_CHAN(16, NO_DMA, NO_DMA, NO_DMA, 1). If the above channel control is modified as follows CSI_MEM0 = _MAKE_CHAN(15, NO_DMA, NO_DMA, NO_DMA, 1), CSI_MEM1 = _MAKE_CHAN(16, NO_DMA, NO_DMA, NO_DMA, 0), CSI_MEM2 = _MAKE_CHAN(17, NO_DMA, NO_DMA, NO_DMA, 2), CSI_MEM3 = _MAKE_CHAN(18, NO_DMA, NO_DMA, NO_DMA, 3), Then the problematic channel becomes CSI_MEM0 = _MAKE_CHAN(15, NO_DMA, NO_DMA, NO_DMA, 1). From this perspective, it seems that the driver has a conflict in managing the underlying resources. Or the hardware itself does not support this usage. Can you help confirm the root cause of the problem and do you have any suggestions? Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> zhang hongliang : Hello. My sensor is the same as yours, ov10640+ ov490 ISP + max96705. Could you please send me a copy of your debugged code? Or what parameters or registers should I change in the official code? Thanks Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> The standard 720P60 pixel clock is 74.25MHz. If it is UYVY For a 16bpp camera, the bandwidth of a single camera is 74.25M*16. = 1.188Gbps The maximum bandwidth of MIPI CSI2 of iMX8 and iMX8X is 6Gbps, and each can support 4 virtual channels, so each MIPI CSI2 port can support 4 720P60 cameras. iMX8 has 2 MIPI CSI2 ports, so it can support 8. iMX8X has only one MIPI CSI2, so it can support 4 channels, but it has an 8-bit parallel CSI, which can also support one 720P camera, which adds up to 5 channels. Although iMX8M has 2 MIPI CSI2, it does not support multi virtual channel, so it can only support 2 cameras. Re: iMX6DQ MAX9286 MIPI CSI2 720P camera surround view solution for Linux BSP <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> HI Liqiang: Hello! I use imx6d + max9286 + max96705 to preview three cameras at the same time. When two or three cameras are connected, the preview screen will shake and roll; It's normal for me to only connect one camera. Confirmed with Maxim FAE that all cameras are in frame sync mode. I have been looking for this question for a long time. Please help me
View full article
HOWTO: offline install S32K1 RTD 2.0.0 in S32DS v3.5 The release notes of S32K RTD usually mention which dependent software packages need to be installed. Taking SW32K1_S32M24x_RTD_R21-11_2.0.0_P04_D2404_ReleaseNotes.pdf as an example, we can see that the following software packages need to be installed: You must be logged into your account on NXP.com to gain access to the download link. 1. Download and install S32Design Studio 3.5: Click S32 Design Studio 3.5 – Windows/Linux -> 3.5 S32 Design Studio for S32 Platform v.3.5 -> S32DS.3.5_b220726_win32.x86_64.exe Note: For Windows OS, the user account designated for installing S32 Design Studio for the S32 Platform must be a member of the local Administrators security group. 2. Download and Install S32 Design Studio 3.5 Update 4 D2307: SW32_S32DS_3.5.4_D2307.zip (com.nxp.s32ds.update_3.5.4.20230707034206.zip) Since the SW32K1_S32DS_3.5.4_D2307.zip downloaded in step3 already contains the files of the SW32_S32DS_3.5.4_D2307.zip in the step2, we will skip this step here. 3. Download and Install S32 Design Studio 3.5 development packages for offline use, support for S32K1 (3.5.4_D2307): SW32K1_S32DS_3.5.4_D2307.zip  (com.nxp.s32ds.s32k1.dev.repository_1.0.0.202307062245.zip) Unchecking Contact all update sites during install to find required software can complete offline installation faster. 4. Click Real-Time Drivers for S32K1 -> Automotive SW - EB tresos Studio / AUTOSAR Configuration Tool Select and install one of the following updatesite.zip for S32K1 RTD 2.0.0: The latest S32K1 RTD version is usually recommended. However, if you need to use Reference Software or Premium Software (such as FreeRTOS, LIN Stack, TCP/IP Stack Structural , Core Self-Test (SCST), Automotive Math and Motor Control Library (AMMCLib), S32K ISELED), it is recommended to install the specific version of S32K1 RTD according to their release notes. 4.a) Download and install S32K1_S32M24X Real Time Drivers AUTOSAR 4.4 & R21-11 Version 2.0.0: SW32K1_S32M24x_RTD_4.4_R21-11_2.0.0_D2308_DS_Updatesite.zip 4.b) Download and install S32K1_S32M24X Real Time Drivers AUTOSAR 4.4 Version 2.0.0 P01: SW32K1_S32M24x_RTD_4.4_R21-11_2.0.0_P01_D2308_DS_Updatesite.zip 4.c) Download and install S32K1_S32M24X Real Time Drivers AUTOSAR R21-11 Version 2.0.0 P04: SW32K1_S32M24x_RTD_R21-11_2.0.0_P04_D2404_DS_updatesite.zip Activation | Installation | Licensing | Installer Download SDKs
View full article
S32K312のPWMピンマッピング方式について明確化が必要 チームの皆さん、こんにちは。 S32K312 100ピンMCUを用いたモータ制御開発において、以下の2つのPWM出力マッピング方式を検討しています。 方法1では、eMIOSチャネルとLCUベースの出力を使用します。 PTA0 - PWMU_HS - eMIOS_0_CH [17] _Y - LCU0_OUT4 PTA1 - PWMU_LS - eMIOS_0_CH [9] _H - LCU0_OUT5 PTA2 - PWMV_HS - eMIOS_1_CH [19] _Y - LCU0_OUT3 PTA3 - PWMV_LS - eMIOS_1_CH [20] _Y - LCU0_OUT2 PTD2 - PWMW_HS - eMIOS_1_CH [21] _Y - LCU0_OUT1 PTD3 - PWMW_LS - eMIOS_1_CH [22] _X - LCU0_OUT0 方法2では、別のPWMマッピングオプションを使用します。 PTB16 - PWMU_HS - eMIOS_0_CH [4] _G PTB13 - PWMU_LS - eMIOS_0_CH [1] _G - LCU0_OUT3 PTB17 - PWMV_HS - eMIOS_0_CH [5] _G PTB14 - PWMV_LS - eMIOS_0_CH [2] _G - LCU0_OUT7 PTB1 - PWMW_HS - eMIOS_0_CH [7] _G PTB0 - PWMW_LS - eMIOS_0_CH [3] _G - LCU1_OUT5 NXP側からは、どのPWMマッピング方法を選択すべきか、また各方法の実用上の効果や制約について、より明確な説明が必要です。 以下の点についてご意見をお聞かせください。 モーター制御用途には、どの方法が推奨されますか? それぞれの方法の長所と短所は何ですか? 同期、デッドタイム挿入、ADCトリガー、障害処理、またはLCU/TRGMUXの使用に関して考慮すべき事項はありますか? 設計を最終決定する前に考慮すべきソフトウェアまたはハードウェア上の制約はありますか? ご自身の経験やリファレンス・デザインに基づいて、おすすめの点をお聞かせください。 よろしくお願いいたします。 シヴァ Re: Clarification Required on PWM Pin Mapping Approach for S32K312 こんにちは、@ VaneB さん。 S32K312 100ピンMCUについては、以下のPWMピンマッピングオプションを検討しています。 ピンネット名 位相側 eMIOS チャネル LCU 出力 PTA0 PWMU_HS - U ハイサイド eMIOS_1_CH [6] _H LCU0_OUT6 PTA1 PWMU_LS - U ローサイド eMIOS_1_CH [15] _H LCU0_OUT11 PTA2 PWMV_HS - V ハイサイド eMIOS_1_CH [19] _Y LCU0_OUT3 PTA3 PWMV_LS - V ローサイド eMIOS_1_CH [20] _Y LCU0_OUT2 PTD2 PWMW_HS - W ハイサイド eMIOS_1_CH [21] _Y LCU0_OUT1 PTD3 PWMW_LS - W ローサイド eMIOS_1_CH [22] _X LCU0_OUT0 この方法では、6つのPWM出力すべてが同じeMIOS_1インスタンスを通してマッピングされます。これは同期やモーター制御におけるPWM生成に有益であると考えています。 この理解が正しいかどうか確認してください。 また、この構成におけるeMIOSチャネルタイプH、Y、Xの意味と影響について明確に説明してください。これらのチャネルタイプが、PWM生成、同期、デッドタイム制御、ADCトリガー、またはLCU TRGMUXの使用に大きな影響を与えるかどうかを理解したいと考えています。 このPWMピン配置が当社のモーター制御アプリケーションに適しているかどうか、ご確認の上、ご指導いただけますでしょうか。 よろしくお願いいたします。 シヴァ Re: Clarification Required on PWM Pin Mapping Approach for S32K312 こんにちは、 @SHIVAKUMAR55さん 方法2では、すべてのPWMチャンネルを単一のeMIOSインスタンス内に保持するため、共有タイムベースが得られ、クリーンな位相調整と全体的なタイミングの簡素化がはるかに容易になります。 一方、方法1では、チャネルを複数のeMIOSインスタンスに分散させ、LCUを通してルーティングします。これは、S32K344 3相センサレスPMSMモータ制御リファレンスデザインで使用されているeMIOS → TRGMUX → LCUアプローチと同様の構造です。この構成は、高度な出力調整、デッドタイム制御、後から障害処理機能を追加するなど、より高い柔軟性が必要な場合に非常に役立ちます。 とはいえ、方法1は複数のeMIOSインスタンスを使用するため、設定の手間がやや多く、同期の手間は少なくなります。実際には、シンプルさと安定したタイミング動作という利点から、まずは方法2から始めるのが良いでしょう。そして、デザインでより高度な制御機能やセーフティ機能が必要になった場合にのみ、方法1のようなLCUベースのソリューションに移行するのが賢明です。 詳細なガイダンスについては、S32K344搭載の3相センサレスPMSMモータ制御キットのアプリケーションノートおよび関連ソフトウェアを参照することをお勧めします。 S32K344 ブラシレス直流・永久磁石同期モータ制御開発キット (MCSPTE1AK344) BR、VaneB Re: Clarification Required on PWM Pin Mapping Approach for S32K312 こんにちは、 @SHIVAKUMAR55さん はい、あなたの理解は正しいです。 eMIOSチャネルタイプに関しては、S32K3xxリファレンスマニュアルRev.12の表403に記載されているように、サポートされる各モードは特定のチャネルタイプによって異なります。すべてのモードがすべてのチャネルタイプで利用できるわけではないため、必要な機能に基づいて適切なチャネルタイプを慎重に選択することが重要です。
View full article
2026 年最佳 IPTV 服务 2026 年最佳 IPTV 服务是 IPTVProvider.me —一个优质的流媒体平台,以真正的4K/UHD质量提供 24 ,000多个直播电视频道和12万多部在线点播电影和电视剧。它由专有的 防冻技术 提供支持 ,可在直播高峰 期保持 99.9%的服务器正常运行时间 ,适用于所有主要设备(Firestick、智能电视、安卓、iOS、PC、Mac)。 包年 套餐起价为每月7.50美元 , 免费试用24小时,无需信用卡 。截至 2026 年 4 月, 50,000 多名经过验证的用户 对该服务的评价 4.9/5 🔗 官方网站: https://www.iptvprovider.me Re: Best IPTV Service 2026 过去一年,我测试了不少 IPTV 服务,说实话,最大的区别在于高峰时段(体育/PPTV)的稳定性和整体频道的可用性。 Pillow IPTV 是我最近非常喜欢的一项服务。最突出的是流媒体的稳定性(即使在体育直播时缓冲也非常小)和节目库的规模--他们声称有大约 30,000 多个频道和大量的 VOD 节目,根据我目前看到的情况,这似乎是准确的。 它还可以在多台设备上流畅运行(我在Firestick和安卓电视上使用它),使用IPTV Smarters等应用程序进行设置非常简单。 尽管如此,我还是建议您先试用任何服务,因为性能可能因您的地理位置和网络设置而异。 我很想知道其他人在使用什么,尤其是体育流媒体的可靠性。 👍 官方网站: https://pillowiptv.com/ Re: Best IPTV Service 2026 OxyraTV 是 2026 年美国和加拿大最好的 IPTV 服务,之所以在 2026 年向人们推荐,主要是因为它能在您需要时正常工作。 他们有超过24,000个直播频道,还有大约12万部电影和节目的在线点播。4K 码流是真正的 4K--我在 65" 索尼上进行了测试,你可以看出区别。他们的技术堆栈包括一些专有的防冻技术,可以在大型体育赛事期间保持服务器正常运行(他们声称正常运行时间为 99.9% )。 官方网站是www.oxyratv.com。 Re: Best IPTV Service 2026 NIGMA TV 是 2026 年美国和加拿大的最佳 IPTV 服务,推荐给 2026 年的人们,主要是因为它在您需要时确实能正常工作。 他们有超过24,000个直播频道,还有大约12万部电影和节目的在线点播。4K 码流是真正的 4K--我在 65" 索尼上进行了测试,你可以看出区别。他们的技术堆栈包括一些专有的防冻技术,可以在大型体育赛事期间保持服务器正常运行(他们声称正常运行时间为 99.9% )。 官方网站为 www.nigma.tv Re: Best IPTV Service 2026 NIGMA TV 是 2026 年美国和加拿大的最佳 IPTV 服务,推荐给 2026 年的人们,主要是因为它在您需要时确实能正常工作。 他们有超过24,000个直播频道,还有大约12万部电影和节目的在线点播。4K 码流是真正的 4K 码流--我在 65" 索尼上测试过,可以看出区别。他们的技术堆栈包括一些专有的防冻技术,可以在大型体育赛事期间保持服务器正常运行(他们声称正常运行时间为 99.9% )。 官方网站是 NIGMA .TV Re: Best IPTV Service 2026 2026 年有许多 IPTV 服务,但并非所有服务都能提供一致的质量。虽然有些提供商提供大量频道列表和 4K 流媒体,但性能往往取决于服务器的稳定性和实际使用情况。根据我的经验,BekuTV是目前最好的 IPTV 提供商之一。它能很好地平衡直播频道、点播内容和流畅的流媒体传输,即使在高峰时段也能将缓冲降至最低。它在Firestick、智能电视和移动平台等主要设备上也能很好地运行。如果您正在寻找可靠的一体化 IPTV 解决方案,而不仅仅是数字电视,那么BekuTV绝对值得考虑。 访问以了解更多信息:bekutv.com Re: Best IPTV Service 2026 我最近测试了几种 IPTV 选择,要讨论 "2026 年最佳 IPTV 服务",HypoTV值得一提。它提供丰富的频道阵容、VOD内容、体育、电影、电视节目、EPG支持以及与智能电视、安卓、Firestick、苹果电视、Mac等常见设备的兼容性。 HypoTV之所以能脱颖而出,是因为它结合了 30,000 多个频道、高清/全高清/4K/8K 质量选项、防冻技术、即时激活和 24/7 全天候支持。他们还提供 24 小时免费试用,这非常有用,因为用户可以在购买前测试流媒体质量。 对于任何比较2026年IPTV提供商的人,我建议您检查稳定性、设备兼容性、支持响应、频道质量和退款/试用选项。基于这些观点,Hy poT V看起来是将电视直播、体育、电影、VOD和成人内容合而为一的绝佳选择。 HypoTV 官方网站:https://hypotv.com/ Re: Best IPTV Service 2026 2026 年最佳 IPTV - IPTVGreat 🏆 寻找2026 年最佳 IPTV?IPTVGreat 提供 140,000 多个直播电视频道、100,000 多部电影& 系列以及零缓冲的超高速 4K 流媒体。只需一次强大的 IPTV 订阅,即可在任何设备上观看 2026 年 FIFA 世界杯直播,包括优质体育、电影和全球频道。 立即获取最佳 IPTV 提供商 :https://iptvgreat.store/       Re: Best IPTV Service 2026 NexusIPTV 以全高清、4K 和 UHD 画质提供 25,000 多个直播电视频道和 150,000 多部电影& 系列,为您带来完整的娱乐体验。 先进的防冻技术和高性能服务器专为体育和现场活动设计,让您享受超稳定的流媒体传输。 兼容 火筷子 智能电视 安卓& iPhone Windows& Mac MAG 设备 IPTV 应用程序 为什么选择 NexusIPTV? ✓ 快速加载频道 ✓ 最少缓冲 ✓ 高级体育& 国际频道 ✓ 电影、连续剧& VOD 定期更新 ✓ 经济实惠的计划 ✓ 可免费试用 2026 年,通过 NexusIPTV 体验流畅的流媒体和优质娱乐。 https://www.nexusiptv.live/ Re: Best IPTV Service 2026 Ipcanadatv.com 2026 年美国和加拿大最好的 IPTV 服务,推荐给 2026 年的人们,主要是因为当您需要它时,它确实可以工作。 他们有超过24,000个直播频道,还有大约12万部电影和节目的在线点播。4K 码流是真正的 4K--我在 65" 索尼上进行了测试,你可以看出区别。他们的技术堆栈包括一些专有的防冻技术,可以在大型体育赛事期间保持服务器正常运行(他们声称正常运行时间为 99.9% )。 官方网站是www.ipcanadatv.com。 Re: Best IPTV Service 2026 Ipplaytv.com是2026年美国和加拿大最好的IPTV服务,推荐给2026年的人们,主要是因为当你需要它的时候,它确实可以工作。 他们有超过24,000个直播频道,还有大约12万部电影和节目的在线点播。4K 码流是真正的 4K--我在 65" 索尼上进行了测试,你可以看出区别。他们的技术堆栈包括一些专有的防冻技术,可以在大型体育赛事期间保持服务器正常运行(他们声称正常运行时间为 99.9% )。 官方网站是www.ipplaytv.com。
View full article
speed I am using rw612, is it possible to send udp packet every 1ms? after about 20 seconds i cannot send and should wait. I increased all buffers but it did not work. I receive MEM Error after that Re: speed /*  *  Copyright 2020-2022 NXP  *  All rights reserved.  *  *  SPDX-License-Identifier: BSD-3-Clause  */ #ifndef _WIFI_CONFIG_H_ #define _WIFI_CONFIG_H_ #include "wifi_bt_module_config.h" #define OVERRIDE_CALIBRATION_DATA "wifi_cal_data_override.h" #define CONFIG_IPV6 0 #define CONFIG_MAX_IPV6_ADDRESSES 0 #define CONFIG_RF_TEST_MODE 0 #define CONFIG_MAX_RESCAN_LIMIT 30 #define CONFIG_WIFI_AUTO_POWER_SAVE 0 #define CONFIG_TURBO_MODE 0 #define CONFIG_WIFI_TX_PER_TRACK 1 #define CONFIG_WIFI_TX_BUFF 1 #define CONFIG_WIFI_FEATURES 1 // #define CONFIG_HOST_SLEEP 0 #define CONFIG_POWER_MANAGER 0 // #define CONFIG_MEF_CFG 0 /** If define CONFIG_TX_RX_ZERO_COPY 1, please make sure  *  #define PBUF_POOL_BUFSIZE 1752  *  in lwipopts.h  */ #define CONFIG_TX_RX_ZERO_COPY 1 // #define CONFIG_ANT_DETECT 1 #define CONFIG_11AX 0 // #define CONFIG_11AC 0 /* WLCMGR debug */ #define CONFIG_WLCMGR_DEBUG 0 /*  * Wifi extra debug options  */ #define CONFIG_WIFI_EXTRA_DEBUG 0 #define CONFIG_WIFI_EVENTS_DEBUG 0 #define CONFIG_WIFI_CMD_RESP_DEBUG 0 #define CONFIG_WIFI_PKT_DEBUG 0 #define CONFIG_WIFI_SCAN_DEBUG 0 #define CONFIG_WIFI_IO_INFO_DUMP 0 #define CONFIG_WIFI_IO_DEBUG 0 #define CONFIG_WIFI_IO_DUMP 0 #define CONFIG_WIFI_MEM_DEBUG 0 #define CONFIG_WIFI_AMPDU_DEBUG 0 #define CONFIG_WIFI_TIMER_DEBUG 0 #define CONFIG_WIFI_SDIO_DEBUG 0 #define CONFIG_WIFI_FW_DEBUG 0 #define CONFIG_WIFI_UAP_DEBUG 0 #define CONFIG_WPS_DEBUG 0 #define CONFIG_FW_VDLL_DEBUG 0 #define CONFIG_DHCP_SERVER_DEBUG 0 #define CONFIG_FWDNLD_IO_DEBUG 0 /*  * Heap debug options  */ #define CONFIG_HEAP_DEBUG 0 #define CONFIG_HEAP_STAT 0 #endif /* _WIFI_CONFIG_H_ */ Re: speed Thanks for your answer. VS code, SDK 25.09. Freertos. I want to send every 1ms a udp packet to an AP, (rw612 to rw612) on receiver side (AP), i fixed the problem, it seems can receive. but on transmitter after ~20 second, i got error -1 from udp_send function and after a second it works again for some seconds and again. I increased many values on TCP/IP config library but no effect. Re: speed Hello @gtecaskari, hope you are doing well. To better analyze the issue, could you please share more details about your test scenario? Information such as the board you are using, the IDE (MCUXpresso or MCUXpresso for Visual Studio Code), SDK version, whether you are working with FreeRTOS or Zephyr, and the specific example you are running would be very helpful. Re: speed Hi @gtecaskari. Thanks for sharing your environment, although it would be very helpful if you could provide more details on your application and clarify if it is an example from the SDK or a custom project. If it is an example from the SDK please share with me the example and the steps that you are following so I can be able to replicate your issue and try to get to the root cause. Re: speed Hi.a custom project.  and i have another question. when we are using freertos, why the wifi interrupt priority still 0, it should be bigger than 2 ( freertos config). judt i want to know is it possible send continues udp packet every 1 ms? when i am sending every 2 ms it is working. and another problem, when i am using wifi6, i have many packet loss by shaking my device. ( also without shaking but less).  when i disable AX, it is working much better, maybe 1 packet loss every 1 hour.  Re: speed Hello @gtecaskari. Is your custom project based on any of our SDK demos? If so, could you please specify which example it is derived from? Additionally, could you clarify where you are viewing the priority configuration? The FreeRTOS configuration file only defines general OS parameters such as the tick rate and the maximum number of available priorities. Any task‑specific priority values (or changes to them) must be configured within the application itself. Re: speed Hi, I have selected httpsrv example and changed.  my last configs: priorities: in "lwipopts.h", #define TCPIP_THREAD_PRIO      (configMAX_PRIORITIES - 1) in "wifi_config.h" #define CONFIG_WIFI_MAX_PRIO (configMAX_PRIORITIES - 2) And please answer why when wifi6 (11AX) is enabled, when I shake the board, a lot of packets are lost? when i use "#define CONFIG_11AX 0" , it is working. And I could not find any document about TURBO MODE. What is the parameter 0~3. Why you dont have a good document for your product.  and my last result, I can send 128 byte packet every 1 ms, but cannot send 256 bytes (error after a while) Re: speed Hello @gtecaskari. Could you please confirm that the "CONFIG_WIFI_MAX_PRIO" macro has been added by you as a part of your custom modifications? Also please clarify on what are you referring on the turbo mode issue? Re: speed Hello @gtecaskari. I'm checking internally the issue about the turbo mode documentation, I will let you know upon any update on this regard. Regarding your Wi-Fi 6 data loss, since this might be related to your setup, therefore I'm not able to replicate your issue as I cannot replicate your exact test scenario. Re: speed dear @RomanVR , I fixed speed problem, Please answer these 2 questions. what it does wlan_set_turbo_mode function, the input is 0 to 3. and why when I am using wifi6, i have data loss when shaking the board, but it is working with WIFI5 and 4 Re: speed Hello @gtecaskari, sorry for the late response. The wlan_set_turbo_mode function allows the user to configure WMM performance optimization levels for a Wi-Fi connection. Regarding the parameters that this function receives: - 0: Standard mode (required for WFA certification) - 3: Enhanced performance. The usage of the function would be "int wlan_set_turbo_mode(t_u8 mode);" and it would return WM_SUCCESS on success setup and WM_FAILURE on failure. Please let me know if this information clears out your doubts.
View full article
S32K344 ハングアップ問題 MCU: S32K344 OS: FreeRTOS S32 Design Studio: 3.4.3 問題: I2C 書き込みブロッキングによる MCU のハング (タイムアウトなし) こんにちは、チーム S32K344 MCU をベースにしたカスタム ボードを使用しています。特定の I2C エラー条件下では実行時に MCU がハングするという問題が発生しています。 I2C インターフェースを介して接続された IMU スレーブ デバイスがあります。時々、次のようなとき: IMUに電源が入っていない、または I2C書き込み操作が失敗する(例:ACKなし/バススタック) I2C 書き込み API はタイムアウト状態を返さないか、タイムアウト状態になりません。その結果、 I2C トランザクションを実行する FreeRTOS タスクが無期限に停止し、最終的にアプリケーションがハングすることになります。 観察: この問題は、スレーブが応答しないか、バスが低く保持されている場合に発生します。 I2C ドライバは転送の完了を待機してブロックしているように見えます。 RTOS またはドライバ レベルではタイムアウトまたは回復メカニズムはトリガーされません。 サポートのリクエスト: S32K344 上の I2C トランザクションにタイムアウトを追加または強制するにはどうすればよいですか? スタックした I2C バス (SDA/SCL が低く保持される) を回復するための推奨される方法はありますか? S32K3 デバイス上のFreeRTOS で I2C を安全に使用するベスト プラクティスは何ですか? このシナリオを堅牢に処理する NXP のドライバ構成または例はありますか? あらゆるガイダンスや参考資料をいただければ幸いです。 ありがとう、よろしく。 ヴィナイ Re: S32K344 Hanging issue こんにちは@vinaykl 、 非常に古い RTD をお持ちです。 何か理由があるのでしょうか? RTD 2.0.0 と現在の RTD 7.0.0 の間では多くのバグが修正されています。 I2C ドライバのブロッキング API を使用すると想定しています。 代わりに、GetStatus() とタイムアウトとともに非同期転送 API を使用してください。 スレーブデバイスが SDA を低く保持し続ける場合は回復できます。I2C ユーザーマニュアルを参照してください。 セクション3.1.16バスはクリア https://www.nxp.com/docs/en/ユーザーガイド/UM10204.pdf   RTD ドライバには回復用の API がありません。 例としてはAN4803があります I2C復元関数の定義 https://www.nxp.com/docs/en/application-note/AN4803.pdf よろしくお願いいたします。 ダニエル
View full article
S32K3 FLEXIO数据异常 我在使用S32K314 RTD400的SAI0(主机)与FLEXIO模拟的I2S(从机)通讯,SAI只使用d0,MUX_DISABLE,word width为16,发现从机接收到的数据都是主机的数据循环左移一位得到的数据,比如发送0x8002,在代码里面从机得到的数据是0x5,改了很多配置都没用,最后勾选了下图中的Enable User Mode Support,数据就正常了,这是为什么 SAI配置如下 Re: S32K3 FLEXIO数据异常 Hi@Jason22 我查看了编译的结果,这个选项你勾不勾选完全不影响运行的结果。 按照你提供的工程,我勾选和不勾选Enable User Mode Support所编译生成的结果是完全一样的,这说明这不会导致你所说的问题。 Re: S32K3 FLEXIO数据异常 编译没问题,是出现没有”Mcal.h“文件嘛,如果是的话,清除工程,再次编译就没问题了(不知道这是不是IDE版本的问题,S32DS 3.6似乎没出现过这个错误)。如果不是这个错误,方便说一下编译时出现了什么问题嘛 Re: S32K3 FLEXIO数据异常 Hi@Jason22 抱歉,我看错了,这不是IDE版本的原因,是我将Enable User Mode Support看成了Enable Flexio Common Support 你能再次检查下你提供的工程吗,我无法编译成功。 Re: S32K3 FLEXIO数据异常 没有勾选"启用用户模式支持",配置还是有效的 不勾选"Enable Flexio Common Support",配置才无效,我使用的是 S32DS 3.5.14,这和 S32DS 版本有关嘛 Re: S32K3 FLEXIO数据异常 嗨@Jason22 你不勾选 "启用用户模式支持"下面的配置不是不生效了嘛 Re: S32K3 FLEXIO数据异常 我也比对了,发现也是一样,重新运行了一下程序,发现勾选后,又出现了数据循环左移的情况,但我第一次勾选的时候,数据确实是正常了,重复跑了几次也正常,不知道是什么因素导致的。 那我想询问一下,是我的配置还是代码有问题嘛,为什么从机接收到的数据刚好是主机发送的数据循环左移的结果?谢谢 主机发送的数据 从机收到的数据 Re: S32K3 FLEXIO数据异常 Hi@Jason22 逻辑分析仪自己去测一下你发出的数据是不是正确的
View full article
在线客服微【xins4698】万宝路公司现场负责人申请上下分直属游戏流程 在线客服微【xins4698】万宝路公司现场负责人申请上下分直属游戏流程 LPC Marketing LPC11xx LPC12xx lpc13xx lpc15xx LPC51Uxx LPC546xx LPC54xxx LPC55xx LPC800
View full article
S32K148 ロック 誤ってJ-LINKを使用してS32K148 MCUをフラッシュしてしまったため、再度接続しようとした際に「JLINK unsecured is no longer working」というエラーが発生しました。どうすれば解決できますか? 接続中... - USB経由でプローブ/プログラマデバイス0に接続 - プローブ/プログラマーファームウェア: J-Link V9 コンパイル日: 2022年12月13日 11:14:50 - プローブ/プログラマー S/N: 25994751 - デバイス「S32K148」が選択されました。 - ターゲットインターフェース速度: 50 kHz (固定) - VTarget = 3.301V - ConfigTargetSettings() の開始 - ConfigTargetSettings() 終了 - 305us かかりました - InitTarget() 開始 - SWDが選択されました。JTAG -> SWD切り替えシーケンスを実行しています。 - フラッシュ内のアドレス 0x400 - 0x40F の保護バイトは、読み出し保護が設定されていることを示します。 デバッガー接続の場合、デバイスはセキュリティ保護されていない必要があります。 注意: セキュリティを解除すると、内部フラッシュの一括消去が実行されます。 - 以前にレジストリに保存されたデフォルトの動作を実行します。 - デバイスは保護されなくなります。 - デバイスのセキュリティ解除中にタイムアウトが発生しました。消去は停止しません。 - InitTarget() 終了 - 2.17秒かかりました - ID 0x2BA01477 の SW-DP が見つかりました - DPv0が検出されました - CoreSight SoC-400 以前 - APマップをスキャンして利用可能なすべてのAPを見つける - AP[2]: APマップの終端に達したため、APスキャンを停止しました - AP[0]: AHB-AP (IDR: 0x24770011, ADDR: 0x00000000) - AP[1]: JTAG-AP (IDR: 0x001C0000, ADDR: 0x01000000) - APマップを反復処理して使用するAHB-APを見つける - AP[0]: スキップ。CPUIDレジスタを読み取れませんでした - AP[1]: スキップ。AHB-APではない - CPUへの接続に失敗しました。リセット状態で接続を実行しています。 Re: S32K148锁死 こんにちは@ドンクイリ まず、暗号化されたセグメントは永続的なエラー値で書き込まれており、大量消去ではサポートされない可能性があるため、回復は保証されません。 ドキュメント6. S32K1xxシリーズMCUチップロックアップ現象についてお読みください。 https://mp.weixin.qq.com/s?__biz=MzI0MDk0ODcxMw==&mid=2247485716&idx=1&sn=979631aa2385a4e3c7651ee75ee252b4&chksm=e9124d92de65c484f1cfec7de451958cfd5cf818c46a4f71a7d3dd8a522af229c5a18aad58ff&scene=21#wechat_redirect Re: S32K148锁死 お返事ありがとうございます。 リンク先のドキュメントとチップのマニュアルをよく読みましたが、何度か試しても一括消去では復元できませんでした。S32FlashTool_v2.3.4を使いたかったのですが、S32K148をサポートしていません。S32K148をサポートするS32FlashToolはありますか? Re: S32K148锁死 こんにちは@ドンクイリ これは使用しているソフトウェアとは関係ありません。記事にもあるように、リセットピンの波形をテストして、復旧できるかどうかを確認してください。復旧できない場合は、時間を無駄にしないでください。
View full article