- 12V Akku mit 280 Ah bauen         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 27

Thema: NGW100 ISI Video

  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    33
    Beiträge
    522
    Anzeige

    E-Bike
    V4L2_CID_I2C_WRITE und V4L2_CID_CLKRC sind von mir selbt zugefügte Kommandos, um von Anwendungsprogramm das CLKRC -Register beschreiben zu können, bzw jedes beliebige Register(V4L2_CID_I2C_WRITE).

    Ich bin gerade nicht zuhause, deshalb kann ich Dir keine videodev2.h schicken, aber irgendwo dort ist per #define eine Konstante Namens V2L_CID_BASE oder änlich definiert, die den Offset für Treiber-spezifische Controls enthält. Schreib da einfach sowas in der Art rein:

    #define V4L2_CID_FRATE (V4L2...BASE + 0)
    #define V4L2_CID_I2C_WRITE (V4L2...BASE + 1)
    #define V4L2_CID_CLKRC (V4L2...BASE + 2)

    Zeile 122 Über CHIP_ID habe ich schon herausgefunden, aber I2C-Adresse für das Kameramodul ist mir noch nicht klar.
    Datenblatt S. 11: The device slave addresses are 42 for write and 43 for read.

    Eventuell musst Du die Adresse duch 2 teilen, da i2c_smbus_write_byte_data und i2c_smbus_read_byte_data einen Adressbereich von 0..127 verlangen.

    MfG Mark

  2. #12
    Neuer Benutzer Öfters hier
    Registriert seit
    12.05.2008
    Beiträge
    25
    Hallo Mark,

    achso, deshalb schriebst Du 0x60 statt 0xC0 für ov6620.

    videodev2.h habe ich so geändert:
    #define V4L2_CID_FRATE (V4L2_CID_BASE+24)
    #define V4L2_CID_I2C_WRITE (V4L2_CID_BASE+25)
    #define V4L2_CID_CLKRC (V4L2_CID_BASE+26)
    #define V4L2_CID_LASTP1 (V4L2_CID_BASE+27) /* last CID + 1 */

    Ich werde nochmal kompilieren.
    Vielen Dank.

    MfG
    ciek

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    12.05.2008
    Beiträge
    25
    Hallo,

    tritt fast der gleiche Fehler auf:
    Code:
    Loading module ov7620
    Unable to handle kernel NULL pointer dereference at virtual address 000000e0
    ptbr = 91eb1000 pgd = 91d40000
    Oops: Kernel access of bad area, sig: 11 [#1]
    FRAME_POINTER chip: 0x01f:0x1e82 rev 2
    Modules linked in: ov7620(+) v4l2_int_device v4l2_common i2c_core compat_ioctl32
     atmel_isi videodev v4l1_compat xt_state iptable_filter ipt_MASQUERADE iptable_n
    at nf_nat nf_conntrack_ipv4 nf_conntrack ip_tables vfat fat nls_base
    PC is at ov7620_init+0xa/0xac [ov7620]
    LR is at sys_init_module+0xf8c/0x105c
    pc : [<c08ac00a>]    lr : [<90036638>]    Not tainted
    sp : 91ff3ee4  r12: 00000000  r11: c08aa278
    r10: c08aa3c0  r9 : ffffffff  r8 : c08ac000
    r7 : 91ff3ee4  r6 : 91de0fa0  r5 : 901ed8c0  r4 : 7fc0be2c
    r3 : 901ed8b8  r2 : 00000016  r1 : c08aa3c0  r0 : c0851e9c
    Flags: qvNzC
    Mode bits: hjmde....g
    CPU Mode: Supervisor
    Process: insmod [518] (task: 91c6a600 thread: 91ff2000)
    Stack: (0x91ff3ee4 to 0x91ff4000)
    3ee0:          90036638 91ff3f94 91de0fa0 901ed8c0 7fc0be2c 91ff3ef4 0007f008
    3f00: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    3f20: 00000000 00000000 00000000 00000000 00000009 c0852ed8 91e4e480 c08521bc
    3f40: c08520a4 c0851000 00000000 00000072 00000072 c08a9548 c08a4f88 00000016
    3f60: c0851de4 c0851e9c c085220c c08521e4 00000016 00000014 00000000 0000256d
    3f80: 900514fe 91ff3fa4 91d61cc0 c08a7da0 00000000 90013132 00000000 00072f70
    3fa0: 0000504c 7fc0be2c 00072a60 7fc0bed5 80000000 91ff2000 00000001 2aaf3bac
    3fc0: 7fc0bd00 7fc0bcf4 0007f018 0000246d 0007f008 0000246d 00000073 0007f008
    3fe0: 00072f70 0000504c 7fc0be2c 00072a60 7fc0bed5 00000002 0005a980 0007f018
    Call trace:
     [<90036638>] sys_init_module+0xf8c/0x105c
     [<90013132>] syscall_return+0x0/0x12
    aber trotzdem wurde das Modul geladen

    Code:
    Module                  Size  Used by    Tainted: G
    i2c_gpio                2336  0
    i2c_algo_bit            4676  1 i2c_gpio
    i2c_dev                 4740  0
    ov7620                  5632  1
    v4l2_int_device         2080  0
    v4l2_common             8800  0
    i2c_core               16176  5 i2c_gpio,i2c_algo_bit,i2c_dev,ov7620,v4l2_common
    
    compat_ioctl32           992  0
    atmel_isi              12200  1 ov7620
    videodev               25824  1 atmel_isi
    v4l1_compat            10212  1 videodev
    xt_state                1888  1
    iptable_filter          2432  1
    ipt_MASQUERADE          2368  1
    iptable_nat             4936  1
    nf_nat                 12758  2 ipt_MASQUERADE,iptable_nat
    nf_conntrack_ipv4      11304  4 iptable_nat,nf_nat
    nf_conntrack           42320  5 xt_state,ipt_MASQUERADE,iptable_nat,nf_nat,nf_co
    nntrack_ipv4
    ip_tables               8208  2 iptable_filter,iptable_nat
    vfat                    8480  0
    fat                    35868  1 vfat
    nls_base                5696  2 vfat,fat
    Ich kann die Fehler noch nicht finden.
    Eine Frage noch, ist es richtig so, in /drivers/media/video/Kconfig zu schreiben:

    Code:
    menuconfig VIDEO_CAPTURE_DRIVERS
    	bool "Video capture adapters"
    	depends on VIDEO_V4L2
    	default y
    	---help---
    	  Say Y here to enable selecting the video adapters for
    	  webcams, analog TV, and hybrid analog/digital TV.
    	  Some of those devices also supports FM radio.
    
    if VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2
    
    config VIDEO_AVR32_ISI
    	tristate "AVR32 video support"
    	depends on VIDEO_V4L2
    	---help---
    	  This module makes the AVR32 Image Sensor Interface available 
    	  as a v4l2 device.
    
    config VIDEO_OV7620
    	tristate "OV7620 camera"
    	default n
    	depends on VIDEO_AVR32_ISI && I2C
    	---help---
    	This will add support for the OV7620 camera.
    Mach es einen Unterschied zwischen VIDEO_V4L2 und VIDEO_DEV?

    In ov7620.c
    static struct ov7620_reg ov7620_registers[65]{}
    welche Adresse soll ich hier eingeben? Ich glaube, ich habe falsch gemacht (2. Variable is t nur name )

    Danke für das Support.

    MfG,
    Ciek

  4. #14
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    33
    Beiträge
    522
    Der erste Fehler konnte deswegen aufkommen, weil die physikalischen Buffer für die Frames eine konstante Größe von nur 198 kb haben, die Kamera jedoch wahrscheinlich 600kb (640*480*2) liefert und es deshalb zum Bufferoverflow kommt. Ersetzt mal alle 352 durch 640 und alle 288 durch 480 in atmel-isi.c, dann sollte es gehen.

    Zu anderen Problemen kann ich Dir leider nichts sagen, bin selbst noch Anfänger.

    MfG Mark

  5. #15
    Neuer Benutzer Öfters hier
    Registriert seit
    12.05.2008
    Beiträge
    25
    Hallo,

    Du hast Recht, habe vergessen den Buffer zu ändern.
    Aber die gleiche Meldung kommt noch, und beim Ausführen des 'capture' Programms, kommt noch:
    Failed to open video device: No such device

    Ich habe schon gemessen, das Kameramodul bekommt schon richtig 5V von dem Board, d.h. der Spannungsregler funktioniert eigentlich. Zum Testen, ob es defekt oder nicht ist,weiß ich nicht leider, wie ich das machen soll.

    Ich gucke nochmal den ov7620.c, ich glaube der Fehler liegt darin.

    Vielen Dank.
    MfG,
    Ciek

  6. #16
    Neuer Benutzer Öfters hier
    Registriert seit
    12.05.2008
    Beiträge
    25
    Hallo Mark,

    es funktioniert =)
    Zum ersten Mal bekomme ich Data =)

    Ich habe Clockrate geändert und reset wegmachen (in 0v7620_init Funktion).

    Ich weiß noch nicht, wie man diese Kode als Bild übernehmen kann.
    Zu Hause kann ich nicht weiter arbeiten, da ich keine serielle Schnitstelle habe und über LAN funktioniert irgendwie nicht mehr.
    Ich werde nochmal am Montag mit dem Board weiterspielen und mit der Bildverarbeitung anfangen.

    Hast Du Hinweis, wie ich mit openCV programmieren soll?

    Danke vielmals.

    MfG
    Ciek

  7. #17
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    33
    Beiträge
    522
    Von OpenCV hab ich (fast) keine Ahnung, wahrscheinlich muss man die Libs lediglich neucompilieren.

    Eine serielle Schnittstelle sollte man schon haben, spätestens beim Upgraden des Bootloaders oder wenn man von SD-Karte booten will braucht man die unbedingt. Und was genau funtkioniert nicht - telnte/ssh oder LAN an sich?

    MfG Mark

  8. #18
    Neuer Benutzer Öfters hier
    Registriert seit
    12.05.2008
    Beiträge
    25
    Hallo,

    versuche ich über telnet mit dem Board zu verbinden, dann geht es am Anfang. Aber nachdem ich irgendeine Taste eingegeben habe, dann wurde die Verbindung sofort beenden.
    Weitere Verbindung ist nicht möglich ohne reboot. Nach reboot, wird es sich wiederholen.

    Ich versuchte auch erstmal einen PC über serielle Schnittstelle mit dem Board zu verbinden, dann noch meinen Laptop über telnet zu verbinden, tritt diese Fehlermeldung in hyperterminal auf:

    release_dev: ptm0: read/write wait queue active!
    release_dev: ptm0: read/write wait queue active!
    release_dev: ptm0: read/write wait queue active!
    release_dev: ptm0: read/write wait queue active!
    usw..

    Im Forum las ich, dass der Script AVR32 GCC 4.2.2 (zusammen mit kernel 2.6.25.10) noch diesen Bug haben.

    Ich probiere jetzt ein kleines Program zu erstellen und ab Montag nochmal mit der Datenausgabe vom Kameramodul zu beschäftigen.

    Vielen Dank.

    MfG

  9. #19
    Neuer Benutzer Öfters hier
    Registriert seit
    12.05.2008
    Beiträge
    25
    Hallo,

    es gibt noch Fehler im Treiber und die Daten sind kein richtiges ppm Format, meiner Meinung nach. Dieses capture-Programm nimmt eigentlich nur ein Bild auf oder? Beim Ausführen kommt das Programm nicht zum Ende.

    Meldung in dmesg:

    Linux video capture interface: v2.00
    atmel_isi: fbd at 11cf5008 video buffer at phys addr 10c00000
    atmel_isi: fbd at 11cf5030 video buffer at phys addr 10d00000
    atmel_isi: fbd at 11cf5058 video buffer at phys addr 10e00000
    atmel_isi: fbd at 11cf5080 video buffer at phys addr 10f00000
    atmel_isi atmel_isi.0: capture buffer: 614400 bytes at b1f00000 (phys 0x11f00000
    )
    atmel_isi atmel_isi.0: Atmel ISI V4L2 device at 0xfff02c00
    I2C /dev entries driver
    i2c-adapter i2c-0: sendbytes: NAK bailout.
    OV7620 Image Sensor at i2c-gpio0:0x21
    i2c-gpio i2c-gpio.0: using pins 6 (SDA) and 7 (SCL)
    atmel-isi: v4l2 ioctl VIDIOC_QUERYCAP, dir=r- (0x80685600)
    atmel-isi: driver=atmel-isi, card=Atmel Image Sensor Interface, bus=, version=0x
    00000100, capabilities=0x05000001
    atmel-isi: v4l2 ioctl VIDIOC_S_FMT, dir=rw (0xc0cc5605)
    atmel-isi: type=video-cap
    atmel-isi: width=320, height=240, format=VYUY, field=any, bytesperline=0 sizeima
    ge=0, colorspace=0
    atmel-isi: v4l2 ioctl VIDIOC_QUERYCAP, dir=r- (0x80685600)
    atmel-isi: driver=atmel-isi, card=Atmel Image Sensor Interface, bus=, version=0x
    00000100, capabilities=0x05000001
    atmel-isi: v4l2 ioctl VIDIOC_S_FMT, dir=rw (0xc0cc5605)
    atmel-isi: type=video-cap
    atmel-isi: width=320, height=240, format=VYUY, field=any, bytesperline=0 sizeima
    ge=0, colorspace=0
    i2c-adapter i2c-0: sendbytes: NAK bailout.
    atmel_isi_capture: v4l2 ioctl VIDIOC_QUERYCAP, dir=r- (0x80685600)
    atmel_isi_capture: driver=atmel-isi, card=Atmel Image Sensor Interface, bus=, ve
    rsion=0x00000100, capabilities=0x01000001
    atmel_isi_capture: v4l2 ioctl VIDIOC_S_FMT, dir=rw (0xc0cc5605)
    atmel_isi_capture: type=video-cap
    atmel_isi_capture: width=320, height=240, format=VYUY, field=any, bytesperline=0
    sizeimage=0, colorspace=0
    atmel_isi_capture: v4l2 ioctl VIDIOC_QUERYCAP, dir=r- (0x80685600)
    atmel_isi_capture: driver=atmel-isi, card=Atmel Image Sensor Interface, bus=, ve
    rsion=0x00000100, capabilities=0x01000001
    atmel_isi_capture: v4l2 ioctl VIDIOC_S_FMT, dir=rw (0xc0cc5605)
    atmel_isi_capture: type=video-cap
    atmel_isi_capture: width=320, height=240, format=VYUY, field=any, bytesperline=0
    sizeimage=0, colorspace=0

    Ich verwende nur data0 bis data7 für die Kamera. In videodev2.h steh noch kein richtiges Format für diesen Fall oder?

    Vielen Dank.

    MfG

  10. #20
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    33
    Beiträge
    522
    Wie meindt Du das, dass das Programm nicht bis zum Ende kommt? Bricht es einfach ohne Meldung ab oder bleibst es hängen?

    Ich verwende nur data0 bis data7 für die Kamera. In videodev2.h steh noch kein richtiges Format für diesen Fall oder?
    Das Format hat mit der Anschlussart nichts zu tun.Standartmäßig ist es auf UYVY geschaltet. Die Kamera sollte natürlich dasselbe Format liefern, meine OV6620 ist nach Reset auf 16bit UYVY gestellt und man muss in set_format ein Paar Register ändern, um auf 8-bit YUVU zu kommen. Im Datenblatt sollte stehen wie das geht. Außerdem sollte die durch ioctl VIDIOC_S_FMT angegebene Auflösung auch die Auflösung sein, die die Kamera wirklich liefert.

    MfG Mark

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen