This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

I2C broken

Other Parts Discussed in Thread: TVP5146

Hello!

I have a TMX320DM355 Evalution Module 702065 Rev C 30 Nov 07 manufactured by SpectrumDigital with MT9M131 CMOS-matrix.

Today I get errors:

Starting mt9t001_i2c_probe_adapter
_i2c_attach_client
I2C 0x48.
Write to page 1.
write reg = 0xf0, data[1] = 0x0, data[2] = 0x1
DaVinci I2C WARNING: i2c: NACK detected
DaVinci I2C WARNING: i2c: NACK detected
DaVinci I2C WARNING: i2c: NACK detected
DaVinci I2C WARNING: i2c: NACK detected
DaVinci I2C WARNING: i2c: NACK detected
write reg = 0xf0, data[1] = 0x0, data[2] = 0x1
DaVinci I2C WARNING: i2c: NACK detected
DaVinci I2C WARNING: i2c: NACK detected
DaVinci I2C WARNING: i2c: NACK detected
DaVinci I2C WARNING: i2c: NACK detected

My boot options:

bootdelay=3
baudrate=115200
bootfile="uImage"
videomode=video=davincifb:vid0=720x576x16,2500K:vid1=720x576x16,2500K:osd0=720x576x16,2025K
davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=ntsc
bootcmd=nboot 0x80700000 0 0x400000;bootm
capture=v4l2_video_capture=device:MT9T031
bootargs=console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2
ip=off mem=116M $(videomode) $(capture)
stdin=serial
stdout=serial
stderr=serial
videostd=ntsc

I try change capture device on TVP5146:

bootdelay=3
baudrate=115200
bootfile="uImage"
videomode=video=davincifb:vid0=720x576x16,2500K:vid1=720x576x16,2500K:osd0=720x576x16,2025K
davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=ntsc
bootcmd=nboot 0x80700000 0 0x400000;bootm
bootargs=console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2
ip=off mem=116M $(videomode) $(capture)
stdin=serial
stdout=serial
stderr=serial
videostd=ntsc
capture=v4l2_video_capture=device:TVP5146

But I again get this errors.

Why don't work boot switch?

I suppose what problem in my modify, but early all work, and restore original kernel.
But this don't solve problem.

I see signals on U1 microcircuit and on the 1 contact always I see signal 0.
I beliave what change signal on 1 solve my problem, but all my tryed with boot arguments don't change picture.

Problem in programm or hardware? I think problem in hardware.

How can I solve problem?

Thank you and excuse me for my bad english.

  • I would try running the video_loopback test found in the target content tests http://c6000.spectrumdigital.com/evmdm355/revd/

    This test talks to TVP5146 via I2C, hence this should tell us if the hardware is working or not.  If the test passes, then we can assume is a software configuration issue; otherwise, you have a compelling reason to send the board back to Spectrum Digital (it failed one of their target content tests) and have it replaced.

     

  • Thank you.

    I downloaded http://c6000.spectrumdigital.com/evmdm355/revc/files/setup_evmdm355_v1.zip.

    But I have some problems - I work in Linux and not have CCS.

    What another ways can I use for solve this problem?

  • try removing '$(capture)' from bootargs; I believe the default is tvp5146. 

    FYI, device type should be 0, 1 (for tvp5146), or 2 per CCD driver user guide (spruep7.pdf included in DVSDK)

  • I get message Giancarlo Parodi with this solve and try it. It is not solve problem. Strage, by today I twice succesfully booting. But via 3-5 min I losing manage and only reset solve it.

    Davinci_capture.device_type=0:

    DM355 EVM # setenv capture davinci_capture.device_type=0
    DM355 EVM # setenv bootargs console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 ip=off mem=116M $(capture) $(videomode)
    DM355 EVM # printenv
    bootdelay=3
    baudrate=115200
    bootfile="uImage"
    videomode=video=davincifb:vid0=720x576x16,2500K:vid1=720x576x16,2500K:osd0=720x576x16,2025K davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=ntsc
    bootcmd=nboot 0x80700000 0 0x400000;bootm
    stdin=serial
    stdout=serial
    stderr=serial
    videostd=ntsc
    capture=davinci_capture.device_type=0
    bootargs=console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 ip=off mem=116M davinci_capture.device_type=0 video=davincifb:vid0=720x576x16,2500K:vid1=720x576x16,2500K:osd0=720x576x16,2025K davinci_enc

    Linux version 2.6.10Byterg_mvl401 (kirill@kirill) (gcc version 3.4.3 (MontaVista 3.4.3-25.0.104.0600975 2006-07-06)) #338 Fri Jan 30 11:57:07 MSK 2009
    CPU: ARM926EJ-Sid(wb) [41069265] revision 5 (ARMv5TEJ)
    CPU0: D VIVT write-back cache
    CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
    CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
    Machine: DaVinci DM355 EVM
    Memory policy: ECC disabled, Data cache writeback
    DM0350
    Built 1 zonelists
    Kernel command line: console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 ip=off mem=116M davinci_capture.device_type=0 video=davincifb:vid0=720x576x16,2500K:vid1=720x576x16,2500K:osd0=720x576x16,2025c
    PID hash table entries: 512 (order: 9, 8192 bytes)
    Console: colour dummy device 80x30
    Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
    Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
    Memory: 116MB = 116MB total
    Memory: 114176KB available (2725K code, 567K data, 176K init)
    Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
    CPU: Testing write buffer coherency: ok

    Davinci_capture.device_type=1:

    DM355 EVM # setenv capture davinci_capture.device_type=1
    DM355 EVM # setenv bootargs console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 ip=off mem=116M $(capture) $(videomode)
    DM355 EVM # printenv
    bootdelay=3
    baudrate=115200
    bootfile="uImage"
    videomode=video=davincifb:vid0=720x576x16,2500K:vid1=720x576x16,2500K:osd0=720x576x16,2025K davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=ntsc
    bootcmd=nboot 0x80700000 0 0x400000;bootm
    stdin=serial
    stdout=serial
    stderr=serial
    videostd=ntsc
    capture=davinci_capture.device_type=1
    bootargs=console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 ip=off mem=116M davinci_capture.device_type=1 video=davincifb:vid0=720x576x16,2500K:vid1=720x576x16,2500K:osd0=720x576x16,2025K davinci_en
    Linux version 2.6.10Byterg_mvl401 (kirill@kirill) (gcc version 3.4.3 (MontaVista 3.4.3-25.0.104.0600975 2006-07-06)) #338 Fri Jan 30 11:57:07 MSK 2009
    CPU: ARM926EJ-Sid(wb) [41069265] revision 5 (ARMv5TEJ)
    CPU0: D VIVT write-back cache
    CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
    CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
    Machine: DaVinci DM355 EVM
    Memory policy: ECC disabled, Data cache writeback
    DM0350
    Built 1 zonelists
    Kernel command line: console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 ip=off mem=116M davinci_capture.device_type=1 video=davincifb:vid0=720x576x16,2500K:vid1=720x576x16,2500K:osd0=720x576x16,2025c
    PID hash table entries: 512 (order: 9, 8192 bytes)
    Console: colour dummy device 80x30

    I insert in kernel/drivers/media/video/davinci/davinci_vpfe.c information for debuging:
    char *dm355_devices[] = { "MT9T001", "TVP5146", "MT9T031", "MT9M131" };
    int __init dm355_v4l2_device_setup(char *options)
    {
        char *this_opt;

        if (!options || !*options)
            return 0;

        while ((this_opt = strsep(&options, ":")) != NULL) {

            if (!*this_opt)
                continue;

            if (!strncmp(this_opt, "device=", 6)) {
                if (!strncmp(this_opt + 7, "MT9T031", 7)) {
                    device_type = MT9T031;
                    printk("Capture device MT9T031.\n");
                } else if (!strncmp(this_opt + 7, "MT9T001", 7)) {
                    device_type = MT9T001;
                    printk("Capture device MT9T001.\n");
               
                } else if (!strncmp(this_opt + 7, "TVP5146", 7)) {
                    device_type = TVP5146;
                    printk("Capture device TVP5146.\n");
                }
            }
        }
        return 0;
    }

    v4l2_video_capture=device:MT9T031

    DM355 EVM # setenv bootargs console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 ip=off mem=116M $(capture) $(videomode)
    DM355 EVM # printenv
    bootdelay=3
    baudrate=115200
    bootfile="uImage"
    videomode=video=davincifb:vid0=720x576x16,2500K:vid1=720x576x16,2500K:osd0=720x576x16,2025K davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=ntsc
    bootcmd=nboot 0x80700000 0 0x400000;bootm
    capture=v4l2_video_capture=device:MT9T031
    stdin=serial
    stdout=serial
    stderr=serial
    videostd=ntsc
    bootargs=console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 ip=off mem=116M v4l2_video_capture=device:MT9T031 video=davincifb:vid0=720x576x16,2500K:vid1=720x576x16,2500K:osd0=720x576x16,2025K davinc

    Linux version 2.6.10Byterg_mvl401 (kirill@kirill) (gcc version 3.4.3 (MontaVista 3.4.3-25.0.104.0600975 2006-07-06)) #338 Fri Jan 30 11:57:07 MSK 2009
    CPU: ARM926EJ-Sid(wb) [41069265] revision 5 (ARMv5TEJ)
    CPU0: D VIVT write-back cache
    CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
    CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
    Machine: DaVinci DM355 EVM
    Memory policy: ECC disabled, Data cache writeback
    DM0350
    Built 1 zonelists
    Kernel command line: console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 ip=off mem=116M v4l2_video_capture=device:MT9T031 video=davincifb:vid0=720x576x16,2500K:vid1=720x576x16,2500K:osd0=720x576x16,c
    Capture device MT9T031. <--- my debug
    PID hash table entries: 512 (order: 9, 8192 bytes)
    Console: colour dummy device 80x30

    v4l2_video_capture=device:TVP5146

    DM355 EVM # setenv capture v4l2_video_capture=device:TVP5146
    DM355 EVM # setenv bootargs console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 ip=off mem=116M $(capture) $(videomode)
    DM355 EVM # printenv
    bootdelay=3
    baudrate=115200
    bootfile="uImage"
    videomode=video=davincifb:vid0=720x576x16,2500K:vid1=720x576x16,2500K:osd0=720x576x16,2025K davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=ntsc
    bootcmd=nboot 0x80700000 0 0x400000;bootm
    stdin=serial
    stdout=serial
    stderr=serial
    videostd=ntsc
    capture=v4l2_video_capture=device:TVP5146
    bootargs=console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 ip=off mem=116M v4l2_video_capture=device:TVP5146 video=davincifb:vid0=720x576x16,2500K:vid1=720x576x16,2500K:osd0=720x576x16,2025K davinc
    Linux version 2.6.10Byterg_mvl401 (kirill@kirill) (gcc version 3.4.3 (MontaVista 3.4.3-25.0.104.0600975 2006-07-06)) #338 Fri Jan 30 11:57:07 MSK 2009
    CPU: ARM926EJ-Sid(wb) [41069265] revision 5 (ARMv5TEJ)
    CPU0: D VIVT write-back cache
    CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
    CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
    Machine: DaVinci DM355 EVM
    Memory policy: ECC disabled, Data cache writeback
    DM0350
    Built 1 zonelists
    Kernel command line: console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 ip=off mem=116M v4l2_video_capture=device:TVP5146 video=davincifb:vid0=720x576x16,2500K:vid1=720x576x16,2500K:osd0=720x576x16,c
    Capture device TVP5146. <-- my debug
    PID hash table entries: 512 (order: 9, 8192 bytes)

  • Kirill said:

    Strage, by today I twice succesfully booting. But via 3-5 min I losing manage and only reset solve it.

    Can you expand on what you mean by  "losing manage "?  Also, does this mean you have moved past the i2c problems (meaning hardware is ok)?

  • Juan Gonzales said:

    Can you expand on what you mean by  "losing manage "?  Also, does this mean you have moved past the i2c problems (meaning hardware is ok)?

    Board doesn't answer by RS232 and web-interface. After successfully booting I get I2C NACK Error again.

  • Kirill said:

    Board doesn't answer by RS232 and web-interface. After successfully booting I get I2C NACK Error again.

    The I2C NACK errors you sent previously seem to suggest the video input device specified by bootargs is not found.  Is this still the case or is the NACK you are seeing now due to some other reason.  Can you post a new log of what you are seeing?

    Also, what do you mean by "Board doesn't answer by RS232 and web-interface"; does this mean that RS232 does not respond to any keyboard inputs via serial terminal program such as teraterm?  How does "web-interface" fit into the picture...?  I just want to make sure I understand the issue at hand so I can advise acordingly.

  • Juan Gonzales said:

     Also, what do you mean by "Board doesn't answer by RS232 and web-interface"; does this mean that RS232 does not respond to any keyboard inputs via serial terminal program such as teraterm?  How does "web-interface" fit into the picture...?  I just want to make sure I understand the issue at hand so I can advise acordingly.

    I mean that board "hang up" - that RS232 does not respond to any keyboard inputs via serial terminal programm and browser lose connect to web-server.

    Juan Gonzales said:

    The I2C NACK errors you sent previously seem to suggest the video input device specified by bootargs is not found.  Is this still the case or is the NACK you are seeing now due to some other reason.  Can you post a new log of what you are seeing?

    When I successfully booted I haven't NACK errors.

    It seems that I solved problem by replacing NAND-flash.

     

  • The only reason I can think of as to why RS232 would stop responding is if system is hanged, perhaps by some other function... For example, when running a program which stops responding... 

    I am stiil unsure how web-interface fits into the big pictures, but since web server does not sound like i2c related, I will assume it is a separate issue for now.

    Since it appears you have solved the NACK problem by replacing NAND-flash, is the current issue you are trying to solve the halting of RS232 response?  If so, as you may imagine, it is pretty hard to say what the cause may be without knowing more about your system; are you simply booting (w/ or w/o our stock linux kernel) and uart hags right after booting? are you running any program after bootup, prior to seeing uart hang?  if so what does the program do?  have you seen uart hang when you do not run such program...?  these are just some of the questions that come to mind.

     

  • Is hard to say, but problem is not solve - I see I2C NACK on boot.

    I downloaded gel- and ccs-files from c6000.spectrumdigital.com, but CCS 3.3 Platinum can not connect to board via SAU510-USB Jtag.

    What do I need to connect CCS to board?

  • FYI, yesterday I was trying to play with other bootarg configurations and started getting I2C NACK (as result of looking for device that was not present); however, when I switched back to TVP5146 mode, I still got NACKs.  In order to get rid of these NACKs, I had to remove power from EVM (as opposed to just hitting reset button).  Not sure if this would help, but I thought I would share this.

    With regards to connecting to CCS, I did not recognize the JTAG model SAU510-USB, but it appears it has been discontinued (http://www.sauris.de/Equipment.htm).  Normally, JTAG vendors should provide you with the necessary software drivers (also appear to be available at sauris web site) for their particular JTAG emulator; some driver packages even include pre-defined configurations for certain EVM such as DM355, but you can always create your own if it does not.  I believe CCS 3.3 includes DM355 EVM configuration based on XDS510USB, I would work from this configuration.