• RK3588 点亮imx586摄像头


    一.硬件原理图

    mipi摄像头硬件确认点:

    1.供电:5V,2.8V,1.2V,1.8V,reset脚(硬拉3.3,上电的时候从低到高),pwron脚外接

       3.3V。

    2,时钟:MCLKOUT是24兆时钟。

    3.4组差分mipi线。mipi的data线的波形为方波。

    二.驱动移植

    RK提供的默认sdk里面已经将支持的所有摄像头驱动都添加到了内核,所以不需要移植该驱动了。

    需确认下移植驱动对应的一些信息

    源程序
    kernel/drivers/media/i2c/imx586.c

    kernel/drivers/media/i2c/Makefile

    kernel/drivers/media/i2c/Kconfig

    kernel/arch/arm64/configs/rockchip_linxu_defconfig

    Makefile脚本

    1. obj-$(CONFIG_VIDEO_IMX415) += imx586.o
    2. config VIDEO_IMX586
    3.     tristate "Sony IMX586 sensor support"
    4.     depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
    5.     depends on MEDIA_CAMERA_SUPPORT
    6.     help
    7.       This is a Video4Linux2 sensor driver for the Sony
    8.       IMX415 camera.
    9.       To compile this driver as a module, choose M here: the
    10.       module will be called imx586.
    • 驱动对应的宏开关
    CONFIG_VIDEO_IMX586=y

    添加设备树文件:

    1. &i2c5 {
    2. status = "okay";
    3. pinctrl-names = "default";
    4. pinctrl-0 = <&i2c5m0_xfer>;
    5. imx586: imx586@1a {
    6. compatible = "sony,imx586";
    7. reg = <0x10>; //插摄像头看iic5上出现的新设备后填入
    8. clocks = <&cru CLK_MIPI_CAMARAOUT_M1>;
    9. clock-names = "xvclk";
    10. pinctrl-names = "default";
    11. pinctrl-0 = <&mipim0_camera3_clk>;//需要和硬件确认是复用的哪个时钟,确认可以量到波形
    12. power-domains = <&power RK3588_PD_VI>;
    13. //reset-gpios = <&gpio3 RK_PC7 GPIO_ACTIVE_HIGH>;//现在硬件上是直接拉高,所以不用配
    14. //avdd-supply = <&vcc_mipidphy0>;//供电也是直接供电,所以不用配
    15. rockchip,camera-module-index = <0>;
    16. rockchip,camera-module-facing = "back";
    17. rockchip,camera-module-name = "default";
    18. rockchip,camera-module-lens-name = "default";
    19. port {
    20. imx586_out0: endpoint {
    21. remote-endpoint = <&mipidphy0_in_ucam0>;
    22. data-lanes = <1 2 3 4>;
    23. };
    24. };
    25. };
    26. };
    27. &csi2_dphy0 {
    28. status = "okay";
    29. ports {
    30. #address-cells = <1>;
    31. #size-cells = <0>;
    32. port@0 {
    33. reg = <0>;
    34. #address-cells = <1>;
    35. #size-cells = <0>;
    36. mipidphy0_in_ucam0: endpoint@1 {
    37. reg = <1>;
    38. remote-endpoint = <&imx586_out0>;
    39. data-lanes = <1 2 3 4>;
    40. };
    41. };
    42. port@1 {
    43. reg = <1>;
    44. #address-cells = <1>;
    45. #size-cells = <0>;
    46. csidphy0_out: endpoint@0 {
    47. reg = <0>;
    48. remote-endpoint = <&mipi2_csi2_input>;
    49. };
    50. };
    51. };
    52. };
    53. &csi2_dphy0_hw {
    54. status = "okay";
    55. };
    56. &mipi2_csi2 {
    57. status = "okay";
    58. ports {
    59. #address-cells = <1>;
    60. #size-cells = <0>;
    61. port@0 {
    62. reg = <0>;
    63. #address-cells = <1>;
    64. #size-cells = <0>;
    65. mipi2_csi2_input: endpoint@1 {
    66. reg = <1>;
    67. remote-endpoint = <&csidphy0_out>;
    68. };
    69. };
    70. port@1 {
    71. reg = <1>;
    72. #address-cells = <1>;
    73. #size-cells = <0>;
    74. mipi2_csi2_output: endpoint@0 {
    75. reg = <0>;
    76. remote-endpoint = <&cif_mipi2_in0>;
    77. };
    78. };
    79. };
    80. };
    81. &rkcif {
    82. status = "okay";
    83. };
    84. &rkcif_mipi_lvds2 {
    85. status = "okay";
    86. port {
    87. cif_mipi2_in0: endpoint {
    88. remote-endpoint = <&mipi2_csi2_output>;
    89. };
    90. };
    91. };
    92. &rkcif_mipi_lvds2_sditf {
    93. status = "okay";
    94. port {
    95. mipi_lvds2_sditf: endpoint {
    96. remote-endpoint = <&isp0_vir0>;
    97. };
    98. };
    99. };
    100. &rkcif_mmu {
    101. status = "okay";
    102. };
    103. &rkisp_unite {
    104. status = "okay";
    105. };
    106. &rkisp_unite_mmu {
    107. status = "okay";
    108. };
    109. &rkisp0_vir0 {
    110. status = "okay";
    111. /* dual isp process image case
    112. * other rkisp hw and virtual nodes should disabled
    113. */
    114. rockchip,hw = <&rkisp_unite>;
    115. port {
    116. #address-cells = <1>;
    117. #size-cells = <0>;
    118. isp0_vir0: endpoint@0 {
    119. reg = <0>;
    120. remote-endpoint = <&mipi_lvds2_sditf>;
    121. };
    122. };
    123. };

    三.驱动调试

    把驱动代码和设备树文件添加进去后就可以开始调试了。

    使用i2ctool工具查看i2c5,发现有2个新的设别:0x10,0x50,猜测其中一个是senser,另一个可能是sensor的马达地址,尝试修改sensor的地址为0x10或者0x50看imx586能不能进probe函数。

    当修改imx586的地址为ox10的时候,看imx586已经进了probe函数了。

    从log可以看出imx586已经进了probe函数,但是并没有识别到sensor。

    这时候,需要确认mipi摄像头上的供电是否正常,时钟是否正常。

    经确认是sensor的一路供电没有,供电正常后可以设别到sensor。

    到了这一步,可以确认,iic设备已经可以设别到sensor了,并挂载在iic5上面。

    四.查看拓扑

    1. rk3588_t:/ # media-ctl -d /dev/media0 -p
    2. Opening media device /dev/media0
    3. Enumerating entities
    4. Found 14 entities
    5. Enumerating pads and links
    6. Media controller API version 0.0.177
    7. Media device information
    8. ------------------------
    9. driver rkcif
    10. model rkcif-mipi-lvds2
    11. serial
    12. bus info
    13. hw revision 0x0
    14. driver version 0.0.177
    15. Device topology
    16. - entity 1: stream_cif_mipi_id0 (1 pad, 11 links)
    17. type Node subtype V4L
    18. device node name /dev/video0
    19. pad0: Sink
    20. <- "rockchip-mipi-csi2":1 [ENABLED]
    21. <- "rockchip-mipi-csi2":2 []
    22. <- "rockchip-mipi-csi2":3 []
    23. <- "rockchip-mipi-csi2":4 []
    24. <- "rockchip-mipi-csi2":5 []
    25. <- "rockchip-mipi-csi2":6 []
    26. <- "rockchip-mipi-csi2":7 []
    27. <- "rockchip-mipi-csi2":8 []
    28. <- "rockchip-mipi-csi2":9 []
    29. <- "rockchip-mipi-csi2":10 []
    30. <- "rockchip-mipi-csi2":11 []
    31. - entity 5: stream_cif_mipi_id1 (1 pad, 11 links)
    32. type Node subtype V4L
    33. device node name /dev/video1
    34. pad0: Sink
    35. <- "rockchip-mipi-csi2":1 []
    36. <- "rockchip-mipi-csi2":2 [ENABLED]
    37. <- "rockchip-mipi-csi2":3 []
    38. <- "rockchip-mipi-csi2":4 []
    39. <- "rockchip-mipi-csi2":5 []
    40. <- "rockchip-mipi-csi2":6 []
    41. <- "rockchip-mipi-csi2":7 []
    42. <- "rockchip-mipi-csi2":8 []
    43. <- "rockchip-mipi-csi2":9 []
    44. <- "rockchip-mipi-csi2":10 []
    45. <- "rockchip-mipi-csi2":11 []
    46. - entity 9: stream_cif_mipi_id2 (1 pad, 11 links)
    47. type Node subtype V4L
    48. device node name /dev/video2
    49. pad0: Sink
    50. <- "rockchip-mipi-csi2":1 []
    51. <- "rockchip-mipi-csi2":2 []
    52. <- "rockchip-mipi-csi2":3 [ENABLED]
    53. <- "rockchip-mipi-csi2":4 []
    54. <- "rockchip-mipi-csi2":5 []
    55. <- "rockchip-mipi-csi2":6 []
    56. <- "rockchip-mipi-csi2":7 []
    57. <- "rockchip-mipi-csi2":8 []
    58. <- "rockchip-mipi-csi2":9 []
    59. <- "rockchip-mipi-csi2":10 []
    60. <- "rockchip-mipi-csi2":11 []
    61. - entity 13: stream_cif_mipi_id3 (1 pad, 11 links)
    62. type Node subtype V4L
    63. device node name /dev/video3
    64. pad0: Sink
    65. <- "rockchip-mipi-csi2":1 []
    66. <- "rockchip-mipi-csi2":2 []
    67. <- "rockchip-mipi-csi2":3 []
    68. <- "rockchip-mipi-csi2":4 [ENABLED]
    69. <- "rockchip-mipi-csi2":5 []
    70. <- "rockchip-mipi-csi2":6 []
    71. <- "rockchip-mipi-csi2":7 []
    72. <- "rockchip-mipi-csi2":8 []
    73. <- "rockchip-mipi-csi2":9 []
    74. <- "rockchip-mipi-csi2":10 []
    75. <- "rockchip-mipi-csi2":11 []
    76. - entity 17: rkcif_scale_ch0 (1 pad, 11 links)
    77. type Node subtype V4L
    78. device node name /dev/video4
    79. pad0: Sink
    80. <- "rockchip-mipi-csi2":1 []
    81. <- "rockchip-mipi-csi2":2 []
    82. <- "rockchip-mipi-csi2":3 []
    83. <- "rockchip-mipi-csi2":4 []
    84. <- "rockchip-mipi-csi2":5 [ENABLED]
    85. <- "rockchip-mipi-csi2":6 []
    86. <- "rockchip-mipi-csi2":7 []
    87. <- "rockchip-mipi-csi2":8 []
    88. <- "rockchip-mipi-csi2":9 []
    89. <- "rockchip-mipi-csi2":10 []
    90. <- "rockchip-mipi-csi2":11 []
    91. - entity 21: rkcif_scale_ch1 (1 pad, 11 links)
    92. type Node subtype V4L
    93. device node name /dev/video5
    94. pad0: Sink
    95. <- "rockchip-mipi-csi2":1 []
    96. <- "rockchip-mipi-csi2":2 []
    97. <- "rockchip-mipi-csi2":3 []
    98. <- "rockchip-mipi-csi2":4 []
    99. <- "rockchip-mipi-csi2":5 []
    100. <- "rockchip-mipi-csi2":6 [ENABLED]
    101. <- "rockchip-mipi-csi2":7 []
    102. <- "rockchip-mipi-csi2":8 []
    103. <- "rockchip-mipi-csi2":9 []
    104. <- "rockchip-mipi-csi2":10 []
    105. <- "rockchip-mipi-csi2":11 []
    106. - entity 25: rkcif_scale_ch2 (1 pad, 11 links)
    107. type Node subtype V4L
    108. device node name /dev/video6
    109. pad0: Sink
    110. <- "rockchip-mipi-csi2":1 []
    111. <- "rockchip-mipi-csi2":2 []
    112. <- "rockchip-mipi-csi2":3 []
    113. <- "rockchip-mipi-csi2":4 []
    114. <- "rockchip-mipi-csi2":5 []
    115. <- "rockchip-mipi-csi2":6 []
    116. <- "rockchip-mipi-csi2":7 [ENABLED]
    117. <- "rockchip-mipi-csi2":8 []
    118. <- "rockchip-mipi-csi2":9 []
    119. <- "rockchip-mipi-csi2":10 []
    120. <- "rockchip-mipi-csi2":11 []
    121. - entity 29: rkcif_scale_ch3 (1 pad, 11 links)
    122. type Node subtype V4L
    123. device node name /dev/video7
    124. pad0: Sink
    125. <- "rockchip-mipi-csi2":1 []
    126. <- "rockchip-mipi-csi2":2 []
    127. <- "rockchip-mipi-csi2":3 []
    128. <- "rockchip-mipi-csi2":4 []
    129. <- "rockchip-mipi-csi2":5 []
    130. <- "rockchip-mipi-csi2":6 []
    131. <- "rockchip-mipi-csi2":7 []
    132. <- "rockchip-mipi-csi2":8 [ENABLED]
    133. <- "rockchip-mipi-csi2":9 []
    134. <- "rockchip-mipi-csi2":10 []
    135. <- "rockchip-mipi-csi2":11 []
    136. - entity 33: rkcif_tools_id0 (1 pad, 11 links)
    137. type Node subtype V4L
    138. device node name /dev/video8
    139. pad0: Sink
    140. <- "rockchip-mipi-csi2":1 []
    141. <- "rockchip-mipi-csi2":2 []
    142. <- "rockchip-mipi-csi2":3 []
    143. <- "rockchip-mipi-csi2":4 []
    144. <- "rockchip-mipi-csi2":5 []
    145. <- "rockchip-mipi-csi2":6 []
    146. <- "rockchip-mipi-csi2":7 []
    147. <- "rockchip-mipi-csi2":8 []
    148. <- "rockchip-mipi-csi2":9 [ENABLED]
    149. <- "rockchip-mipi-csi2":10 []
    150. <- "rockchip-mipi-csi2":11 []
    151. - entity 37: rkcif_tools_id1 (1 pad, 11 links)
    152. type Node subtype V4L
    153. device node name /dev/video9
    154. pad0: Sink
    155. <- "rockchip-mipi-csi2":1 []
    156. <- "rockchip-mipi-csi2":2 []
    157. <- "rockchip-mipi-csi2":3 []
    158. <- "rockchip-mipi-csi2":4 []
    159. <- "rockchip-mipi-csi2":5 []
    160. <- "rockchip-mipi-csi2":6 []
    161. <- "rockchip-mipi-csi2":7 []
    162. <- "rockchip-mipi-csi2":8 []
    163. <- "rockchip-mipi-csi2":9 []
    164. <- "rockchip-mipi-csi2":10 [ENABLED]
    165. <- "rockchip-mipi-csi2":11 []
    166. - entity 41: rkcif_tools_id2 (1 pad, 11 links)
    167. type Node subtype V4L
    168. device node name /dev/video10
    169. pad0: Sink
    170. <- "rockchip-mipi-csi2":1 []
    171. <- "rockchip-mipi-csi2":2 []
    172. <- "rockchip-mipi-csi2":3 []
    173. <- "rockchip-mipi-csi2":4 []
    174. <- "rockchip-mipi-csi2":5 []
    175. <- "rockchip-mipi-csi2":6 []
    176. <- "rockchip-mipi-csi2":7 []
    177. <- "rockchip-mipi-csi2":8 []
    178. <- "rockchip-mipi-csi2":9 []
    179. <- "rockchip-mipi-csi2":10 []
    180. <- "rockchip-mipi-csi2":11 [ENABLED]
    181. - entity 45: rockchip-mipi-csi2 (12 pads, 122 links)
    182. type V4L2 subdev subtype Unknown
    183. device node name /dev/v4l-subdev0
    184. pad0: Sink
    185. [fmt:SRGGB10/4000x3000
    186. crop.bounds:(0,0)/4000x3000
    187. crop:(0,0)/4000x3000]
    188. <- "rockchip-csi2-dphy0":1 [ENABLED]
    189. pad1: Source
    190. -> "stream_cif_mipi_id0":0 [ENABLED]
    191. -> "stream_cif_mipi_id1":0 []
    192. -> "stream_cif_mipi_id2":0 []
    193. -> "stream_cif_mipi_id3":0 []
    194. -> "rkcif_scale_ch0":0 []
    195. -> "rkcif_scale_ch1":0 []
    196. -> "rkcif_scale_ch2":0 []
    197. -> "rkcif_scale_ch3":0 []
    198. -> "rkcif_tools_id0":0 []
    199. -> "rkcif_tools_id1":0 []
    200. -> "rkcif_tools_id2":0 []
    201. pad2: Source
    202. -> "stream_cif_mipi_id0":0 []
    203. -> "stream_cif_mipi_id1":0 [ENABLED]
    204. -> "stream_cif_mipi_id2":0 []
    205. -> "stream_cif_mipi_id3":0 []
    206. -> "rkcif_scale_ch0":0 []
    207. -> "rkcif_scale_ch1":0 []
    208. -> "rkcif_scale_ch2":0 []
    209. -> "rkcif_scale_ch3":0 []
    210. -> "rkcif_tools_id0":0 []
    211. -> "rkcif_tools_id1":0 []
    212. -> "rkcif_tools_id2":0 []
    213. pad3: Source
    214. -> "stream_cif_mipi_id0":0 []
    215. -> "stream_cif_mipi_id1":0 []
    216. -> "stream_cif_mipi_id2":0 [ENABLED]
    217. -> "stream_cif_mipi_id3":0 []
    218. -> "rkcif_scale_ch0":0 []
    219. -> "rkcif_scale_ch1":0 []
    220. -> "rkcif_scale_ch2":0 []
    221. -> "rkcif_scale_ch3":0 []
    222. -> "rkcif_tools_id0":0 []
    223. -> "rkcif_tools_id1":0 []
    224. -> "rkcif_tools_id2":0 []
    225. pad4: Source
    226. -> "stream_cif_mipi_id0":0 []
    227. -> "stream_cif_mipi_id1":0 []
    228. -> "stream_cif_mipi_id2":0 []
    229. -> "stream_cif_mipi_id3":0 [ENABLED]
    230. -> "rkcif_scale_ch0":0 []
    231. -> "rkcif_scale_ch1":0 []
    232. -> "rkcif_scale_ch2":0 []
    233. -> "rkcif_scale_ch3":0 []
    234. -> "rkcif_tools_id0":0 []
    235. -> "rkcif_tools_id1":0 []
    236. -> "rkcif_tools_id2":0 []
    237. pad5: Source
    238. -> "stream_cif_mipi_id0":0 []
    239. -> "stream_cif_mipi_id1":0 []
    240. -> "stream_cif_mipi_id2":0 []
    241. -> "stream_cif_mipi_id3":0 []
    242. -> "rkcif_scale_ch0":0 [ENABLED]
    243. -> "rkcif_scale_ch1":0 []
    244. -> "rkcif_scale_ch2":0 []
    245. -> "rkcif_scale_ch3":0 []
    246. -> "rkcif_tools_id0":0 []
    247. -> "rkcif_tools_id1":0 []
    248. -> "rkcif_tools_id2":0 []
    249. pad6: Source
    250. -> "stream_cif_mipi_id0":0 []
    251. -> "stream_cif_mipi_id1":0 []
    252. -> "stream_cif_mipi_id2":0 []
    253. -> "stream_cif_mipi_id3":0 []
    254. -> "rkcif_scale_ch0":0 []
    255. -> "rkcif_scale_ch1":0 [ENABLED]
    256. -> "rkcif_scale_ch2":0 []
    257. -> "rkcif_scale_ch3":0 []
    258. -> "rkcif_tools_id0":0 []
    259. -> "rkcif_tools_id1":0 []
    260. -> "rkcif_tools_id2":0 []
    261. pad7: Source
    262. -> "stream_cif_mipi_id0":0 []
    263. -> "stream_cif_mipi_id1":0 []
    264. -> "stream_cif_mipi_id2":0 []
    265. -> "stream_cif_mipi_id3":0 []
    266. -> "rkcif_scale_ch0":0 []
    267. -> "rkcif_scale_ch1":0 []
    268. -> "rkcif_scale_ch2":0 [ENABLED]
    269. -> "rkcif_scale_ch3":0 []
    270. -> "rkcif_tools_id0":0 []
    271. -> "rkcif_tools_id1":0 []
    272. -> "rkcif_tools_id2":0 []
    273. pad8: Source
    274. -> "stream_cif_mipi_id0":0 []
    275. -> "stream_cif_mipi_id1":0 []
    276. -> "stream_cif_mipi_id2":0 []
    277. -> "stream_cif_mipi_id3":0 []
    278. -> "rkcif_scale_ch0":0 []
    279. -> "rkcif_scale_ch1":0 []
    280. -> "rkcif_scale_ch2":0 []
    281. -> "rkcif_scale_ch3":0 [ENABLED]
    282. -> "rkcif_tools_id0":0 []
    283. -> "rkcif_tools_id1":0 []
    284. -> "rkcif_tools_id2":0 []
    285. pad9: Source
    286. -> "stream_cif_mipi_id0":0 []
    287. -> "stream_cif_mipi_id1":0 []
    288. -> "stream_cif_mipi_id2":0 []
    289. -> "stream_cif_mipi_id3":0 []
    290. -> "rkcif_scale_ch0":0 []
    291. -> "rkcif_scale_ch1":0 []
    292. -> "rkcif_scale_ch2":0 []
    293. -> "rkcif_scale_ch3":0 []
    294. -> "rkcif_tools_id0":0 [ENABLED]
    295. -> "rkcif_tools_id1":0 []
    296. -> "rkcif_tools_id2":0 []
    297. pad10: Source
    298. -> "stream_cif_mipi_id0":0 []
    299. -> "stream_cif_mipi_id1":0 []
    300. -> "stream_cif_mipi_id2":0 []
    301. -> "stream_cif_mipi_id3":0 []
    302. -> "rkcif_scale_ch0":0 []
    303. -> "rkcif_scale_ch1":0 []
    304. -> "rkcif_scale_ch2":0 []
    305. -> "rkcif_scale_ch3":0 []
    306. -> "rkcif_tools_id0":0 []
    307. -> "rkcif_tools_id1":0 [ENABLED]
    308. -> "rkcif_tools_id2":0 []
    309. pad11: Source
    310. -> "stream_cif_mipi_id0":0 []
    311. -> "stream_cif_mipi_id1":0 []
    312. -> "stream_cif_mipi_id2":0 []
    313. -> "stream_cif_mipi_id3":0 []
    314. -> "rkcif_scale_ch0":0 []
    315. -> "rkcif_scale_ch1":0 []
    316. -> "rkcif_scale_ch2":0 []
    317. -> "rkcif_scale_ch3":0 []
    318. -> "rkcif_tools_id0":0 []
    319. -> "rkcif_tools_id1":0 []
    320. -> "rkcif_tools_id2":0 [ENABLED]
    321. - entity 58: rockchip-csi2-dphy0 (2 pads, 2 links)
    322. type V4L2 subdev subtype Unknown
    323. device node name /dev/v4l-subdev1
    324. pad0: Sink
    325. [fmt:SRGGB10/4000x3000]
    326. <- "m00_b_imx586 5-0010":0 [ENABLED]
    327. pad1: Source
    328. -> "rockchip-mipi-csi2":0 [ENABLED]
    329. - entity 63: m00_b_imx586 5-0010 (1 pad, 1 link)
    330. type V4L2 subdev subtype Sensor
    331. device node name /dev/v4l-subdev2
    332. pad0: Source
    333. [fmt:SRGGB10/4000x3000]
    334. -> "rockchip-csi2-dphy0":0 [ENABLED]

    m00_b_imx586 5-0010 (1 pad, 1 link):表示imx586实在mipi0上,挂载在iic5,。

    fmt:SRGGB10/4000x3000 表示格式为GB10,分辨率为4000*3000.

    拓扑通路为:

    m00_b_imx586 -> rockchip-csi2-dphy0 -> rockchip-mipi-csi2 -> stream_cif_mipi_id0 -> video0

    五.抓取图像

    命令:

    v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=BG10 \--stream-mmap=3 \--stream-skip=3 \--stream-to=/tmp/cif888.out \--stream-count=1 \--stream-poll
    
    1. [ 370.297011] mipi2-csi2 ERR1:0x10000000 (ecc2)
    2. [ 370.297022] mipi2-csi2 ERR1:0x10000000 (ecc2)
    3. [ 370.297033] mipi2-csi2 ERR1:0x10000000 (ecc2)
    4. [ 370.297043] mipi2-csi2 ERR1:0x10000000 (ecc2)
    5. [ 370.297054] mipi2-csi2 ERR1:0x10000000 (ecc2)
    6. [ 370.297065] mipi2-csi2 ERR1:0x10000000 (ecc2)
    7. [ 370.297075] mipi2-csi2 ERR1:0x10000000 (ecc2)
    8. [ 370.297086] mipi2-csi2 ERR1:0x10000000 (ecc2)
    9. [ 370.297097] mipi2-csi2 ERR1:0x10000000 (ecc2)
    10. [ 370.297108] mipi2-csi2 ERR1:0x10000000 (ecc2)
    11. [ 370.297119] mipi2-csi2 ERR1:0x10000000 (ecc2)
    12. [ 370.297130] mipi2-csi2 ERR1:0x10000000 (ecc2)
    13. [ 370.297141] mipi2-csi2 ERR1:0x10000000 (ecc2)
    14. [ 370.297154] mipi2-csi2 ERR1:0x10000000 (ecc2)

    发现一直报mipi2-csi2 ERR。

    原因:一般报这种错误为物理层解析不到mipi协议

    排查:可能mipi4组差分线出现虚焊假焊,可能mipi插线没有整理好,也可能mipi波形不对。

    mipi data波形:为方波

  • 相关阅读:
    Qt应用开发(基础篇)——输入对话框 QInputDialog
    系统软件开发平台的介绍
    java基础 集合2
    【300+精选大厂面试题持续分享】大数据运维尖刀面试题专栏(十三)
    Anaconda使用笔记
    《牛客题霸-算法篇》刷题之NC111 最大数
    C#使用词嵌入向量与向量数据库为大语言模型(LLM)赋能长期记忆实现私域问答机器人落地之openai接口平替
    VM虚拟机的安装与配置及操作系统的安装
    国产麒麟V10系统如何运行exe文件,麒麟系统运行windows软件
    Pycharm中Debug的高级技巧
  • 原文地址:https://blog.csdn.net/weixin_49303682/article/details/132819345