Samu Kyautar Kyauta

Wakilinmu zai tuntube ku nan ba da jimawa ba.
Imel
Sunan
Sunan Shiga
Saƙo
0/1000
Habari
Gida> Samun

RK3576 Linux Camera Bring-Up: Daga Driver na Sensor zuwa Na-ƙarshe na Frame

Sep 18, 2026

RK3576 shine processor ne da aike Rockchip don industriya na vision, amfani mai kyau na siguriti, da AI vision terminals. Ya kawo ISP V3.9 image signal processor (da ke taimaka cikin 16 MP) da uku MIPI CSI-2 receiver modules (biyu D-PHY V2.0 modules da daya C/D-PHY module). Wannan D-PHY lane ya taimaka cikin 4.5 Gbps, wannan C-PHY trio ya taimaka cikin 2.5 Gsps, da wannan CSI port ya taimaka cikin hudu virtual channels.

RK3576 camera solution an raba shi a kan Linux Media framework da V4L2-subdev subdevice model. Babban data path shine: image sensor → MIPI CSI receiver controller → VICAP video capture unit → ISP V3.9. Sensor ya amfani shi a matsayin subdevice mai gamsarwa kuma ya amfani da MIPI CSI, VICAP, da ISP don zama babban image acquisition pipeline.

9fc96edf-ab49-422a-ab84-c8be9dfe7c83.png

Kamar yadda RK3576 ya ba mu kuma uku na MIPI CSI da VICAP zai iya samun manyan taswirai ta hanyar daidai, ISP V3.9 shine hardware na uku da yawa kuma zai iya amfani da algorizam na ISP ne a cikin taswira daya kawai.

A lokacin rarraba abubuwan da suka dace da project, abubuwan da za su iya fuskanta sun hada da kuskuren I2C, kuskuren MIPI link, ko kuskuren samun Media pipeline, wanda ke haifar da kuskuren samun farko na taswira. Wannan rubutu ya bayyana tarihin rarraba abubuwa ta hanyar ingantaccen amfani da shi da za a iya amfani da shi don rarraba abubuwan da suka dace da embedded vision.

1. Amfani da Hardware da Kernel: Cire abubuwan da suka dace da hardware ta yau da kullun kafin rarraba abubuwan da suka dace da project

A cikin kula da driver, dukkan abubuwan da muke gane su ne ba su zama sababinsu na koda da driver code, amma su ne daga abubuwan baya kamar hardware wiring, power sequencing, ko missing kernel configuration. Don haka, a yadda za mu fara sensor driver development, mun ga waɗannan abubuwan baya kamar hardware da kernel environment da suka ƙare kuma suka bayyana.

Sukukuwa da hardware suna haɗawa da sensor power rails, I2C bus, MIPI differential links, da reset/power-control GPIO pins.

ebac6959-e7fa-403f-b478-9f36f23e227d.png

Sensor power-up sequencing shine wani daga cikin abubuwan da ke tsari sosai a kula. Dukkaka power rails kamar AVDD, DOVDD, da DVDD suka yi amfani da power-up sequence da aka bayyana da sensor. Kullum supply-voltage deviation ko incorrect power-up/power-down timing zai iya saba shi da I2C communication failures da abnormal sensor operation.

I2C bus: Kuji pin-multiplexing configuration da sensor slave address, kuma ku bayyana cewa I2C pull-up resistors suna da amfani da kyau.

MIPI: Tabbata kuma amsa wani CSI channel wanda aka amfani da shi a cikin hardware, adadin MIPI lanes, da impedance matching a differential signal lines. Kuma tabbata cewa sensor reference clock (XVCLK) wanda aka buguwa daga RK3576 ta aiki daidai.

Reset/power-down control pins: Tabbata wani active-level logic (active high/active low), da kare cewa amsa na GPIO ta fito da schematic.

Kernel configuration: Kuji kuma amsa kernel options don Media subsystem, V4L2-subdev subdevices, MIPI CSI controller da PHY drivers, VICAP, da ISP V3.9. Idan wani component wanda ke bukatar yanzu ba suka hada a cikin kernel, ko suka hada a matsayin module amma bai samu karin load ba, to Media pipeline zai iya gano camera hardware. Bayan da kernel suka hada da suka flash, muna baya kuji kuma amsa loading status na kowanne driver module. Kuji kuma dmesg log da tabbata cewa ba kusan error kamar missing modules ko initialization failures.

2. Device Tree (DTS) Configuration: Haɗawa na devices

RK3576 camera device tree: Yana bayani akan hardware resources kuma yana amfani da port da endpoint nodes don bind image pipeline links a tsakanin sensor, MIPI CSI, VICAP, da ISP.

Sensor node ana jinya a cikin I2C bus node na muhimci kuma yana bayani akan I2C slave address, reset pin, power-down control pin, da sensor reference clock. Idan akwai wani property zai iya sao sensor initialization har abin da CSI PHY hardware ya kashe, domin gudanar da timing races wanda su ke nufin an ba da PHY.

Shin na MIPI CSI controller node yana da biyu ports: input ya ƙara ga image sensor, kuma output ya ƙara ga unit na VICAP. Bayan sa, VICAP ya bayyana bayanan taswira ga ISP V3.9. Jarraba cewa endpoints suka nuna daga biyu hali, kuma abubuwan da suka shiga a cikin remote-endpoint suka haɗa da dukkanin da suka shiga a cikin biyu hali. Idan haɗin daga biyu hali ba ta haɗa da dukkanin da suka shiga, Media framework baza iya gano tsari na bayanai ta amfani. Bayan saukarwa, saukarwa, kuma saukarwa na DTS, muna farin ciki duba dmesg log don ganin cewa duk device nodes suna a halin da ke karya daidai kuma ba a samu kuskure na deferred-probe wadda suka zama daidai. Kuskure na deferred-probe wadanda suka zama daidai yana nufin cewa ayyukan GPIO, clock, ko power-resource suna da kuskure.

6dce10d2-b1e9-4e9a-937b-a9e64ec9a8d8.png

3. Zabu na Driver na Sensor Subdevice: Model na V4L2-subdev

Matsayin sensor na platform RK3576 ana samun sa ne a cikin shirin V4L2-subdev. Matsayin sensor ba za a saba da /dev/video node; yana kashe ne kamar Media subdevice entity. Wani daga cikin wajibinsa ce kuma haɗawa da matsayin sensor register, amfani da kudin da ƙarfi, tsarin bayanin hali na hoton, da tsarin yin amfani da hoton da ƙare.

Matsayin ya kashe a cikin hudu (5) matsayi: I2C probe, amfani da kudin da ƙarfi, jadalarin matsayin hali, tsarin bayanin hali na pad, da tsarin yin amfani da hoton da ƙare.

A lokacin yadda makiya ya faru, ID na chip na sensor ta karawa da I2C don ganin cewa chip ya dace. Idan karanta ID ta kasa, tattaunawa zai iya gudan yawa a I2C, tsarin kariya, da kuma kuskuren kariya da reset. Fungashin kariya/reset ta amfani da tsarin kariya mai zuwa da kariya mai futa: a lokacin kariya mai zuwa, kowane kariya ta shiga da tsarin, pin na reset ta shiga da tsarin yadda aka bayani, sannan reset ta futa kuma sensor ta samu lokaci don kara yawa a cikin. Tsarin kariya mai futa ya yi ayyukan da suka daga baya.

Tabili na bayani na tsari ya zama suka gudanar da dukkanin bayanin sensor na tsari don hanyoyin fahimtar, kuma yadda ake sanya shi cikin MIPI. Idan kowane tsohon bayani na kasa ya canza bayanin sanya, aljihirin ya sanya dukkanin bayanin tsari da ke muna amfani da su. Bayanin pad-format ya sanya bayanin media-bus na farashi, wanda ya kamata ya zama daidai da bayanin Bayer na sensor (kamar BGGR ko RGGB). Idan a sanya bayanin ba daidai ba, zai zama sabon bayanin lafiya na farashi. Bayanin stream-control ya amfani da stream_on don sanya amfanin tsari wanda ke shiga aiki don sanya farashin sensor cikin MIPI, amma stream_off ya kashe sanya farashi. Bayan da aljihirin ya gudanar da su, a sanya bayanin bincike cikin Kconfig na kernel da Makefile don haka, domin aljihirin zai iya aikata cikin kernel ko a sanya kamar module na kernel da ke iya sanya.

4. Bincike ta hanyar kadan: Samun farko na farashi ta hanyar kadan

Ba a ƙara yin amfani da kuma tsarin tsohon alamar da farko. Yi amfani da tsarin tsohon alamar na uku daga cikin kudin da suka ƙare: tabbata cewa tsohon alamar na driver ya gaskiya → tabbata cewa tsarin Media ana amfani da shi ta yawa → tsoho bayanin raw da V4L2.

009954b9-0ee8-4b2b-a85c-c66149963d38.png

Daga cikin kudin: Tabbata cewa tsohon alamar na sensor ya gaskiya

Bayan yin kari, duba dmesg kuma nemo bayanin da suka fiye da tsohon alamar na sensor. Yi amfani da i2cdetect don fahimta I2C bus da ke cikin kudin kuma tabbata cewa adireshin na sensor ya samu.

  • Idan ba a samu abin da ke cikin I2C: Duba kari na sensor, tsarin reset, sallama I2C na hardware, da tsarin kudin pin.
  • Idan adireshin na I2C zai samu amma idan Chip ID ya fiye ba ta gaskiya: tsarin I2C na hardware ya yi aiki, kuma alama ce wani adireshin na register ba ta gaskiya ko wani baya na sensor.

Daga cikin kudin: Tabbata tsarin Media Framework

Yi amfani da media-ctl don ganin lista na ayyukan al'adu na Media. A cikin halin da aka fi yawan lokaci, ayyukan al'adu na kawo abubuwa kamar sensor, mipi_csi, vicap, da isp39 zasu ga daga cikin wani kudin, kuma kowane pad port zai ga daga cikin wani kudin.

  • Idan ayyukan al'adu na sensor ba su ga daga cikin wani kudin: bayani na sensor driver ya kashe.
  • Idan ayyukan al'adu sun ga daga cikin wani kudin amma raba ba ta daga cikin wani kudin: bayani na bidirectional pairing na DTS ba tare da kyau.

A lokacin gano abubuwa mai zuwa, zan i amfani da media-ctl don sanya ayyukan al'adu daya-daya: sanya raba akan ayyukan al'adu da sanya format na hoton, size na hoton, da kuma sanya lane configuration don kowane ayyukan al'adu na kawo abubuwa. Kuskurin na media-ctl suna daga cikin wani kudin na lane count, media-bus format, ko size na hoton wanda ke fi kyakkyawan yadda sensor ya iya aiki. Idan media-ctl ya aiki da kyau, yana nufin cewa ayyukan al'adu na software daga sensor zuwa ISP an sanya su.

Kudin 3: Kwatanta hoton da V4L2 da samun farko na raw frame

VICAP/ISP ya zaba /dev/video node, wanda ke taimaka wajen kira na farko na taswira a cikin user-space. Yi amfani da v4l2-ctl don sanya format na piksel na taswira, kira farko na taswira ta hanyar mmap, kuma adana bayyanin Bayer RAW. Idan kamar yadda bayyanin RAW ya dace da kamar yadda ake gano, to ya kare kira na farko na taswira. Bayyanin RAW zai iya rarraba a amfani da alama mai tsari na taswira don ganin taswirar Bayer na farko.

5. Yadda ake amfani da kuskuren da suka gabata

  • media-ctl ya nuna error lokacin da aka sanya link: Musan kafin daga biyu DTS endpoint binding, sannan ku duba media-bus format, resolution, da lane-count parameters.
  • V4L2 frame capture ya kara lokaci ba ta nuna bayyanin taswira: Duba cewa stream_on an yi shi da kyau a cikin driver, cewa CSI PHY ya samu clock lock, kuma cewa sensor ya nuna MIPI data stream.
  • Alamarai da suka ƙara ko alamarai da suka ƙara kuma yawa: Dalilin da suka zama shi shine tsarin MIPI da ayyukan sa, ƙaramin kofin da ayyukan sa, kuskuren bayanin Bayer, ko yawa na ripples a cikin saitin sensor.
  • Alamarai da suka ƙara a wani lokaci ko alamarai da suka ƙara a wani lokaci: Lokacin da sensor ya faru/ya gudan ya zama ba ta dace ba, ko saitin hardware ba ta dace ba.

Mun samu solushin na RK3576 da ke ciki da kyau kuma mun samu kudin tattalin arziki, kudin haɗa hardware, da kudin amfani da kasa. Don alamarai da suka ƙara da farko ko da farko da saurin alamarai, za mu ba da saurin hardware, debugging na driver, da optimization na system daya don tabbatar da alamarai da suka ƙara a fasahar alamarai na industriya, alamarai na amfani da kasa, alamarai na AI, da saurin alamarai. Sauri mu a [email protected].

Samu Kyautar Kyauta

Wakilinmu zai tuntube ku nan ba da jimawa ba.
Imel
Sunan
Sunan Shiga
Saƙo
0/1000