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.

[参考译文] DLPC3479:投影具有半幅图像、投影错误/损坏

Guru**** 2812305 points

Other Parts Discussed in Thread: DLP4710, DLPC3479

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

https://e2e.ti.com/support/dlp-products-group/dlp/f/dlp-products-forum/1607949/dlpc3479-the-projection-has-a-half-image-with-a-wrong-corrupted-projection

器件型号: DLPC3479
Thread 中讨论的其他器件: DLP4710

您好、

我们根据 TI 网站上所述的接线方法连接定制的第三方电路板。 该电路板包含 DLPC3479 控制器和 DLP4710 DMD。

我们在使用 DLP 时遇到的问题是、随机地、投影图像有一半的图像损坏或失真。 这种影响可以在下图中看到:

ProblemaDLP.PNG

问题随机出现。 在我们的项目中、我们在 6000 个预测中的 5 个中发现了这个问题。 安装最新固件版本后、稳定性提高、现在 12000 的投影效果不佳。

我们使用内部图案操作 DLP、对于每种图案更改、我们都会使用以下代码:

DLPC34XX_DUAL_WriteInternalPatternControl(DLPC34XX_DUAL_PC_STOP, 0x00);

DLPC34XX_DUAL_PatternOrderTableEntry_s config;
config.PatSetIndex = 1;
config.NumberOfPatternsToDisplay = 1;
config.RedIlluminator = DLPC34XX_DUAL_IE_ENABLE;
config.GreenIlluminator = DLPC34XX_DUAL_IE_DISABLE;
config.BlueIlluminator = DLPC34XX_DUAL_IE_DISABLE;
config.PatternInvertLsword = pattern_.GetInvert() ? -1 : 0;
config.PatternInvertMsword = pattern_.GetInvert() ? -1 : 0;
config.IlluminationTime = exposureConfig_.GetExposureTime();
config.PreIlluminationDarkTime = exposureConfig_.GetPreIlluminationDarkTime();
config.PostIlluminationDarkTime = exposureConfig_.GetPostIlluminationDarkTime();

DLPC34XX_DUAL_WritePatternOrderTableEntry(DLPC34XX_DUAL_WC_START, &config)
DLPC34XX_DUAL_WriteInternalPatternControl(DLPC34XX_DUAL_PC_START, -1);

是否有人对此问题有经验或可以帮助我们确定原因?

谢谢!

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

    您好 Kevin、

    感谢您联系我们并使用 E2E 论坛! 我们团队的专家将审核该主题、并尽快回复您。

    此致、  

    Tristan Bottone

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

    您好 Kevin、

    这是一个已知的错误、在模式(图形或显示)之间切换时、ASIC 可能不同步、辅助 ASIC 会随机识别自身为主 ASIC。

    如您所说、您需要使用最新的固件来避免此问题。

    此致、

    Aaron

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

    您好 Aaron、  

    感谢您的回答。  

    在 EVM 中、请参阅 以下 数据

    最新固件版本是什么? 我认为这是最后一个版本、我们已经有了这个问题。

     

    在本例中、我们仅使用内部图形模式、但我们会更改用于更改所执行图形的顺序表条目。 也许问题是相似的 但不是一样的

     

    此致。

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

    嗨、Kevin、

    抱歉、v8.4.0 是最新版本的 DLP4710-LC 软件。 我显然需要更多地了解这个问题。

    当您在内部图案模式下运行时、您会看到这种情况、而半图像在投影时会“随机“发生、而不是在您更改模式时。

    除了完成位屏蔽与显式 定义之外、与您显示的代码和 API 没有任何不同。 您可以考虑查看 GetInvert() 命令。

    您能否提供您的模式集指数的详细信息 — 不同指数和类型的数量?  

    此致、

    Aaron

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

    您好 Aaron、

    对不起,我发布了一个简化版的代码真正的代码。 在我们的应用中、我们应用:

    -停止模式  

    -以下代码也会更改 PatSetIndex、NumberOfPatterns 等。

    DLPC34XX_DUAL_PatternOrderTableEntry_s config;
    
    config.PatSetIndex = pattern_.GetPatternIndex();
    config.NumberOfPatternsToDisplay = pattern_.GetNumImages();
    config.RedIlluminator = DLPC34XX_DUAL_IE_ENABLE;
    config.GreenIlluminator = DLPC34XX_DUAL_IE_DISABLE;
    config.BlueIlluminator = DLPC34XX_DUAL_IE_DISABLE;
    config.PatternInvertLsword = pattern_.GetInvert() ? -1 : 0;
    config.PatternInvertMsword = pattern_.GetInvert() ? -1 : 0;
    config.IlluminationTime = exposureConfig_.GetExposureTime();
    config.PreIlluminationDarkTime = exposureConfig_.GetPreIlluminationDarkTime();
    config.PostIlluminationDarkTime = exposureConfig_.GetPostIlluminationDarkTime();
    
    if (first_)
        return DLPC34XX_DUAL_WritePatternOrderTableEntry(DLPC34XX_DUAL_WC_START, &config) == SUCCESS;
    else
        return DLPC34XX_DUAL_WritePatternOrderTableEntry(DLPC34XX_DUAL_WC_CONTINUE, &config) == SUCCESS;

    -和启动模式

    我们曾经使用过内部模式、我们将不同的模式加载到 DLP、并使用 te PatSetIndex 更快地进行更改、DLP 可能会将其视为更改模式?  

    我们使用 11 PatSetIndex、有些有 3 张图像、最常见的是 1 张图像。  

    如果您需要一个特定的输入参数来尝试重现它,我们会触发以下参数的错误(只有一个表条目):

    CONFIG.PatSetIndex =4
    CONFIG.NumberOfPatternsToDisplay = 3;
    CONFIG.RedIlluminator = DLPC34XX_Dual_IE_ENABLE;
    CONFIG.GreenIlluminator = DLPC34XX_Dual_IE_DISABLE;
    CONFIG.BlueIlluminator = DLPC34XX_Dual_IE_DISABLE;
    CONFIG.PatternInvertL剑= 0;
    CONFIG.PatternInvertM剑= 0;
    CONFIG.IlluminationTime = 2650;
    CONFIG.PreIlluminationDarkTime = 255;
    CONFIG.PostIlluminationDarkTime = 80;

    此致。

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

    您好 Kevin、

    感谢您发送此信息、我将在下周回到办公室后尝试重新创建此问题。 不幸的是、预计达拉斯会有一场冰风暴、可能会有一些延误。

    我将 与我的团队讨论 ASIC 可能不同步的问题以及固定位置。

    此致、

    Aaron

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

    您好 Aaron、

    别担心、我希望冰风暴不会造成太多问题、确保每个人都能安全无忧。

    感谢您的检查、如果您需要我这边的任何其他信息、请告诉我。

    此致。

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

    嗨、Kevin、

    我理解这种担忧、我们保守、在我的团队中保持安全、我将在接下来的几天内让您了解最新情况、因为我将返回实验室。

    此致、

    Aaron

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

    您好 Aaron、  

    您是否能够重现此问题? 有新消息吗?
    此致。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Kevin、

    我无法重新创建此问题、请再给我几天时间以确保。

    此致、

    Aaron

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

    您好 Kevin、

    我未能通过以下设置重新创建此项:

    CONFIG.IlluminationTime = 2650;
    CONFIG.PreIlluminationDarkTime = 255;
    CONFIG.PostIlluminationDarkTime = 80;

    我对调查这一问题的程度深表歉意。 请告知我们是否可以使用其他信息?

    此致、

    Aaron

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

    尊敬的 Aron:

     

    感谢你能抽出时间。 重现此问题的常用模式涉及切换 IlluminationTime。

     

    我们有两种模式:

    模式 A => 8,400,700、12

    模式 B => 2,650,255、80

     

    问题似乎在模式 B 中更频繁地发生。一旦发生这种情况、模式 B 中的所有模式都不正确(或不同步)、直到我们从模式 A 中设置了一个正确的模式、之后模式 B 中的模式也会再次工作。

    使用 DLP 软件时、我无法重现通过 I2C 引脚连接的平台问题。

    这是使问题可重现的代码。 但请注意、我无法通过 USB 进行重现。 我一直在分享它、希望它能提供一些线索。  

    	from dlpc347x.dual.commands import *
    	import time
    
    	while true:
    		
    		# Stop
    		Summary = WriteInternalPatternControl(PatternControl.Stop, 0x0)		
    		# Write Pattern BF MODE B
    		PatternOrderTableEntryObj = PatternOrderTableEntry()
    		PatternOrderTableEntryObj.PatSetIndex = 0x0
    		PatternOrderTableEntryObj.NumberOfPatternsToDisplay = 0x1
    		PatternOrderTableEntryObj.RedIlluminator = IlluminatorEnable.Disable
    		PatternOrderTableEntryObj.GreenIlluminator = IlluminatorEnable.Disable
    		PatternOrderTableEntryObj.BlueIlluminator = IlluminatorEnable.Disable
    		PatternOrderTableEntryObj.PatternInvertLsword = 0x0
    		PatternOrderTableEntryObj.PatternInvertMsword = 0x0
    		PatternOrderTableEntryObj.IlluminationTime = 0xA5A
    		PatternOrderTableEntryObj.PreIlluminationDarkTime = 0xFF
    		PatternOrderTableEntryObj.PostIlluminationDarkTime = 0x50
    		Summary = WritePatternOrderTableEntry(WriteControl.Start, PatternOrderTableEntryObj)			
    		Summary = WriteInternalPatternControl(PatternControl.Start, 0xFF)    
    		Summary = WriteInternalPatternControl(PatternControl.Start, 0xFF)		
    		Summary = WriteInternalPatternControl(PatternControl.Stop, 0x0)
    			   
    		# Write Pattern CF MODE B
    		PatternOrderTableEntryObj = PatternOrderTableEntry()
    		PatternOrderTableEntryObj.PatSetIndex = 0xA
    		PatternOrderTableEntryObj.NumberOfPatternsToDisplay = 0x3
    		PatternOrderTableEntryObj.RedIlluminator = IlluminatorEnable.Disable
    		PatternOrderTableEntryObj.GreenIlluminator = IlluminatorEnable.Disable
    		PatternOrderTableEntryObj.BlueIlluminator = IlluminatorEnable.Disable
    		PatternOrderTableEntryObj.PatternInvertLsword = 0x0
    		PatternOrderTableEntryObj.PatternInvertMsword = 0x0
    		PatternOrderTableEntryObj.IlluminationTime = 0xA5A
    		PatternOrderTableEntryObj.PreIlluminationDarkTime = 0xFF
    		PatternOrderTableEntryObj.PostIlluminationDarkTime = 0x50
    		Summary = WritePatternOrderTableEntry(WriteControl.Start, PatternOrderTableEntryObj)
    		Summary = WriteInternalPatternControl(PatternControl.Start, 0xFF)    		

    		Summary = WriteInternalPatternControl(PatternControl.Stop, 0x0)		
    		# Write Pattern MODE A
    		PatternOrderTableEntryObj = PatternOrderTableEntry()
    		PatternOrderTableEntryObj.PatSetIndex = 0x0
    		PatternOrderTableEntryObj.NumberOfPatternsToDisplay = 0x1
    		PatternOrderTableEntryObj.RedIlluminator = IlluminatorEnable.Disable
    		PatternOrderTableEntryObj.GreenIlluminator = IlluminatorEnable.Disable
    		PatternOrderTableEntryObj.BlueIlluminator = IlluminatorEnable.Disable
    		PatternOrderTableEntryObj.PatternInvertLsword = 0x0
    		PatternOrderTableEntryObj.PatternInvertMsword = 0x0
    		PatternOrderTableEntryObj.IlluminationTime = 0x20D0
    		PatternOrderTableEntryObj.PreIlluminationDarkTime = 0x2BC
    		PatternOrderTableEntryObj.PostIlluminationDarkTime = 0xC
    		Summary = WritePatternOrderTableEntry(WriteControl.Start, PatternOrderTableEntryObj)		
    		Summary = WriteInternalPatternControl(PatternControl.Start, 0xFF)
    		Summary = WriteInternalPatternControl(PatternControl.Start, 0xFF)

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

    你好 Jordi、

    我需要短时间对此进行测试。 感谢您的耐心!

    此致、

    Aaron

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

    您好 Aaron、

    您是否重现了问题?

    我一直在努力寻找更好的设置。 我增加了 PreIlluminationDarkTime PostIlluminationDarkTime

    这似乎降低了问题的频繁程度、但仍然会出现。

    因为我们不可能检测到问题,直到扫描后,我们是有点卡住。

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

    你好 Jordi、

    很抱歉、我在扫描后才能检测到问题、尽管到目前为止我还没有看到问题。

    我再次对无法重新创建此问题深表歉意!

    此致、

    Aaron