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.

[参考译文] DLPDLCR230NPEVM:快速图像呈现期间的图像伪影

Guru**** 1693050 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/dlp-products-group/dlp/f/dlp-products-forum/1177315/dlpdlcr230npevm-image-artefacts-during-fast-image-presentation

器件型号:DLPDLCR230NPEVM

您好!

我将 DLP 与4GB 的 RPi4B 搭配使用、以投影用于心理实验的刺激物、主要是光栅/棋盘。 在大多数情况下、这是完美无缺的。 遗憾的是、我很少看到一些仅在将 RPI 与 DLP 配合使用时才出现的伪影、而不是在将其与显示屏配合使用时出现的伪影。

工件如下所示:
e2e.ti.com/.../VID_5F00_20221205_5F00_162704.mp4

前两个周期显示黑色环内的交替棋盘、除以空白黑色环。 在第三个周期中、伪影出现、整个激励似乎在某个点之上被裁剪。 将显示灰色背景、而不是激励。

我通过 python 脚本显示图像、以60Hz 更新屏幕、这对于我的原因是必要的。 我相应地修改了配置文件。

您是否猜到可能导致这种情况的原因? 不幸的是,我无法缩小问题的范围。
我知道这是一个非常复杂和具体的设置、我非常感谢我能提供的任何帮助。
此致、

Paul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Paul、

    您能告诉我们配置文件中发生了哪些更改吗? 您也使用什么版本的 FW?

    为了澄清这一点、脚本按指定顺序选择和显示的单个图像是什么? 这不是视频输入?

    请尽快回答、我们可以更好地了解这种行为。

    此致、

    John

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、John、

    感谢您的快速响应。 这是我的配置文件:

    # For more options and information see
    # http://rpf.io/configtxt
    # Some settings may impact device functionality. See link above for details
    
    # #########################################
    # DO NOT MODIFY THE LINES BELOW THIS POINT
    # #########################################
    
    # uncomment if you get no picture on HDMI for a default "safe" mode
    # hdmi_safe=1
    
    # uncomment this if your display has a black border of unused pixels visible
    # and your display can output without overscan
    disable_overscan=1
    
    # uncomment the following to adjust overscan. Use positive numbers if console
    # goes off screen, and negative if there is too much border
    #overscan_left=16
    #overscan_right=16
    #overscan_top=16
    #overscan_bottom=16
    
    # uncomment to force a console size. By default it will be display's size minus
    # overscan.
    #framebuffer_width=1280
    #framebuffer_height=720
    
    # uncomment if hdmi display is not detected and composite is being output.
    #hdmi_force_hotplug=1
    
    # uncomment to force a specific HDMI mode (this will force VGA).
    #hdmi_group=2
    #hdmi_mode=82
    
    # uncomment to force a HDMI mode rather than DVI. This can make audio work in
    # DMT (computer monitor) modes
    #hdmi_drive=2
    
    # uncomment to increase signal to HDMI, if you have interference, blanking, or
    # no display
    config_hdmi_boost=4
    
    # uncomment for composite PAL
    #sdtv_mode=2
    
    #uncomment to overclock the arm. 700 MHz is the default.
    #arm_freq=800
    
    # Additional overlays and parameters are documented /boot/overlays/README
    
    # Enable audio (loads snd_bcm2835)
    dtparam=audio=on
    
    # Uncomment this to enable infrared communication.
    #dtoverlay=gpio-ir,gpio_pin=17
    #dtoverlay=gpio-ir-tx,gpio_pin=18
    
    # #########################################
    # DO NOT MODIFY THE LINES ABOVE THIS POINT
    # #########################################
    
    # Uncomment some or all of these to enable the optional hardware interfaces
    dtparam=i2c_arm=on
    #dtparam=i2s=on
    dtparam=spi=on
    
    # Configure Raspberry PI for SSH over USB
    dtoverlay=dwc2
    
    # Configure I2C on GPIO Pins #22 and #23
    dtoverlay=i2c-gpio,i2c-gpio_sda=23,i2c_gpio_scl=22,i2c_gpio_delay_us=2
    
    # Configure DPI on GPIO Pins #0 through #21
    gpio=0=op
    gpio=0=pn
    gpio=1-27=ip
    gpio=1-27=pn
    
    
    # Enable DPI18 Overlay
    enable_dpi_lcd=1
    display_default_lcd=1
    dpi_group=2
    dpi_mode=87
    
    # Configure DPI Video Timings
    # RGB 666 CFG 1 (MODE 5)
    dpi_output_format=458773 
    
    # 58 Hz Timings (Low-End Spec)
    # Works at GPIO DRIVE 5-7
    hdmi_timings=1920 0 20 10 10 1080 0 10 10 10 0 0 0 60 0 130515000 3
    # CHANGED: 58 to 60Hz FrameRate
    # CHANGED: 125 to 130.515MHZ Pixelfrequency 
    # NOTE: GPIO PINS #24 - #27 ARE DRIVEN SEPARATELY BY WiringPi SOFTWARE
    
    [pi4]
    #run as fast as board allows
    arm_boost=1
    
    [all]
    # Enable DRM VC4 V3D driver on top of the dispmanx display stack
    # kms newer but not working when init_parallel_mode.py
    dtoverlay=vc4-fkms-v3d
    max_framebuffers=2
    dtoverlay=w1-gpio
    enable_uart=1
    gpu_mem=252

    是的、脚本使用心理复制库来显示.bmp 图像。 Psychopy 使用 pyglet 作为显示图像的后端。 如何检查固件版本?

    此致、
    Paul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Paul:

    通过 DLPDCLR230NPEVM Pi Python 支持包(在 此处找到)运行 sample06_status.py 将提供所有固件信息。 如果您有机会运行该主题、请在该主题上发布退货信息。

    您的配置文件与我们建议的配置文件不同(也可在 Pi Python 支持包中找到)。 您能不能说为什么要进行这些更改? 使用 TI 提供的配置文件时、这些伪影是否仍然存在?

    此致、

    奥斯汀

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的奥斯汀:

    感谢您的意见。 这是我从运行 sample06_status.py 中获得的信息:

    pi@raspberrypi:~/Documents/dlp $ python sample06_status.py
    set slave address: 27
    Reading DLPC3436 Status Registers...
    ----------------------
    Short Status Register:
    {'SystemInitialized': 1,
    'CommunicationError': 0,
    'SystemError': 1,
    'FlashEraseComplete': 0,
    'FlashError': 0,
    'Application': 1,}
    ----------------------
    System Status Register:
    {'DmdDeviceError': 0,
    'DmdInterfaceError': 0,
    'DmdTrainingError': 0,
    'RedLedState': 1,
    'GreenLedState': 1,
    'BlueLedState': 1,
    'RedLedError': 0,
    'GreenLedError': 0,
    'BlueLedError': 0,
    'SequenceAbortError': 0,
    'SequenceError': 0,
    'SequenceBinNotFoundError': 0,
    'DcPowerSupply': 0,
    'ActuatorDriveEnable': 1,
    'ActuatorPwmGenSource1080POnly': 1,
    'ActuatorConfigurationError': 0,
    'ActuatorWatchdogTimerTimeout': 0,
    'ActuatorSubframeFilteredStatus': 0,}
    ----------------------
    Communication Status Register:
    {'InvalidCommandError': 0,
    'InvalidCommandParameterValue': 1,
    'CommandProcessingError': 1,
    'FlashBatchFileError': 1,
    'ReadCommandError': 1,
    'InvalidNumberOfCommandParameters': 1,
    'BusTimeoutByDisplayError': 1,
    'AbortedOpCode': 27,}
    ----------------------
    System Software Version Register:
    'Version':  2 . 1 . 3
    ----------------------
    Controller Device ID Register:
    {'_value_': 6,
    '_name_': 'Dlpc3436',}
    ----------------------
    DMD Device ID Register:
    'Device ID':  0x89000d60
    ----------------------
    Flash Build Version Register:
    'Version':  7 . 3 . 13
    ----------------------
    FPGA Version Register:
    'Version':  0x10001047 'Eco Revision':  0x0 'ARM SW Version':  0x0
    ----------------------
    FPGA Status Register:
    'XPR Status':  1 'Pass/Fail Status':  1
    

    关于配置文件、我最初开始将 DLP 与 RPi3B 一起使用、并致力于实现60Hz 的黑白闪烁。 我需要尽可能接近60Hz、因为实验依赖于它。 为了确认闪烁频率、我使用了示波器和光电二极管。 虽然取得了一些进展、但当我最终能够购买 RPI4B 时、我更换并保留了大部分更改、因为它们似乎没有任何负面影响。

    最有影响力的调整是更改 HDMI 时序中的像素频率。 只是将频率从58更改为60Hz 没有效果。 此外、更改像素频率使我非常接近所需的60Hz。

    我刚刚进行了以下测试:

    使用 TI 提供的配置文件:无伪影

    使用上面发布的我更改过的配置文件:出现了伪影

    使用 TI 提供的配置文件、仅将 HDMI_时序 更改为我更改的配置中的设置:出现伪影

    再次使用 TI 提供的配置文件进行确认:无伪影

    从这个结论中、更改 HDMI_时序 会导致伪影。 我还有点惊讶、使用 TI 提供的配置文件对所提供的激励没有明显的负面影响。 我认为我的更改很有用、但似乎只是对 RPI3有所帮助、而不是对 RPI4有所帮助。 我将在有时间进行其他测试时立即切换到最基本的设置。

    但是、将帧速率调整为60Hz 仍然至关重要。 您是否对如何在不获得人工制品的情况下实现它有任何想法?

    此致、
    Paul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Paul、

    我们必须了解从 RPi 到控制器的时序要求、以便为您提供解决方案。

    请告诉我们、下周再见。

    此致、

    John

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 John:

    我只是想告诉大家,我对解决这个问题仍然非常感兴趣。 不过,我完全明白,当然,在圣诞节期间,事情是否需要更长时间。

    此致、
    Paul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Paul:

    感谢您的耐心等待

    此致、

    Akhil

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Paul:

    DLPDLCR230NPEVM 用户指南的表9-1 (第13页) 包含 EVM 的 Raspberry Pi 视频时序设置。 考虑到这些最大值和最小值、我建议增大 GPIO 驱动强度。 RaspberryPi.com 和其他在线论坛提供了有关如何实现这一目标的详细说明。

    请注意、德州仪器推荐的最小驱动强度仍能满足您的时序要求。 如 Raspberry Pi 文档所述、以最大电流驱动每个引脚可能会导致3.3V 电源发生故障。

    请仔细尝试增大 GPIO 驱动强度、并告知我们这是否允许您满足60Hz 的帧速率。

    此致、

    奥斯汀

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的奥斯汀:

    感谢您的回答。 由于我以前从未改变过 GPIO 驱动强度、所以我只想在试验之前再问几个问题:

    a)就我所见、在运行 init_parally_mode.py 之前、可以通过更改提供的 dlpc343x_xpr4_evm.py 脚本中的相应变量来提高驱动强度?

    b)参考指南第13页指出、TI 评估了您提到的表中的设置、这也意味着将 GPIO 驱动强度提高到7应该相对节省、对吧?

    c)通过仔细增加 GPIO 驱动强度、您意味着将其更改为6、检查伪影是否消失、必要时将其更改为7? 或者、我是否可以采取任何其他措施来使其更安全?

    感谢您的耐心和快乐假期。

    此致、
    Paul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Paul:

    我们需要研究您的问题。  

    请注意、假期可能会延迟至1月。  

    快乐的假期!

    此致、

    Lori  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Paul、

    不用客气。

    a.)这是该脚本的意图、但经过一些调查后、我不相信使用该变量的命令是正确的。

    os.system("gpio drive 0 {0}".format(gpio_drive_strength))

    运行此命令会显示错误消息。 可以在 Raspberry Pi 终端上执行"GPIO drive 0 6"命令、以更直接地进行测试。 我一直在研究如何设置 GPIO 驱动强度、但尚未找到解决方案。 我建议您也这样做。 我将对此进行进一步调查、但在新的一年之前可能无法进行调查。

    请尝试在脚本中调整此变量以测试任何改进的性能。 虽然它似乎不起作用,但我很高兴得到更正。

    b.)我认为这是正确的。 但是、我无法保证这不会让您的 Pi 不堪重负。 我正在研究如何或是否对此进行了测试。

    c.)正确。 更安全的方法是缓慢增加驱动强度、并仅增加驱动 RGB666 DPI 输出的 GPIO (BCM #0 -21)。

    我会随时向您通报我所取得的任何进展。 也请告诉我您的情况。

    此致、

    奥斯汀

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我应该补充的是、我能够使用您的 HDMI 时序、而不会看到此处所示的伪影。

    这些异常是否可以通过眼部观察到? 其他视频内容是否显示相同问题?

    此致、

    奥斯汀

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、奥斯汀、

    可以通过眼睛看到异常情况。 我将测试其他视频内容并尽快提高驱动强度。

    此致、
    Paul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Paul:

    我知道。 奇怪的是、问题在我们的硬件上表现的方式不同。

    如果不同的视频内容未能解决该问题、您能否说出您已将哪种 Debian 版本格式化到 Pi 上?

    此致、
    奥斯汀

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的奥斯汀:

    我在运行

    Raspbian GNU/Linux 11 (牛眼)、

    Debian 版本11.5、

    内核 Linux 5.15.61-v7l+、32位内核。

    另外、我尝试了其他视频内容(通过 VLC 播放器显示的闪烁视频)、似乎不受干扰。 这似乎与我在另一个论坛中找到的这篇文章一致:

    https://psychtoolbox.discourse.group/t/rpi4b-bcm2711-what-is-page-flipping/3171/24

    据我所知、Psychopy 和 Psychetopbox 等软件工具包依赖于 vc4-kms-v3d 提供的功能、但 RPI4似乎没有完全支持?  我还将尝试联系上述讨论中的人员。

    此致、

    Paul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Paul:

    我无法肯定地说、您提到的工具包是否受 RPi4支持。 从您发布的帖子中、在这种情况下、HDMI 时序似乎被忽略。

    如果我们能为您的 EVM 的工作做出进一步的贡献、请告知我们。

    此致、

    奥斯汀