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.

[参考译文] DLPNIRNANOEVM:DLPC150 程序通信问题

Guru**** 2905440 points

Other Parts Discussed in Thread: DLPC150

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

https://e2e.ti.com/support/dlp-products-group/dlp/f/dlp-products-forum/1646366/dlpnirnanoevm-dlpc150-program-communication-issue

器件型号: DLPNIRNANOEVM
主题中讨论的其他器件: DLPC150

开发光谱仪时、DLPC150 的内部测试模式已经过调试并正常工作。 然而、当为外部 RGB 信号配置 DLPC150 时、每次写入配置时、都会首先使用 0xD3 命令读取通信状态、然后使用 0xD0 命令读取短状态。 DLPC150 以这种方式按顺序配置。 问题是 0xD3 和 0xD0 返回的状态不一致(请参阅下面的屏幕截图)。 配置代码如下所示:

				if(dlpc150_imageCrop() != PASS)
				{
            debug_print("  Failed to set dlpc150_imageCrop\r\n");
            return FAIL;					
				}
				vTaskDelay(200);
        debug_print("  Configuring for RGB port input mode...\r\n");
        dlpc150_GetCommunicationStatus();
				vTaskDelay(200);
				DLPC150_GetShortStatus(&states);
				debug_print("ShortStatus = %x\r\n",states);
				vTaskDelay(200);
        if (dlpc150_SetDefaultDisplaySize() != PASS)
        {
            debug_print("  Failed to set default display size\r\n");
            return FAIL;
        }
				vTaskDelay(200);
        debug_print("  Set default display size\r\n");
        dlpc150_GetCommunicationStatus();
				vTaskDelay(200);				
				DLPC150_GetShortStatus(&states);
				debug_print("ShortStatus = %x\r\n",states);
				vTaskDelay(200);
        if (dlpc150_SetDefaultInputImageSize() != PASS)
        {
            debug_print("  Failed to set default input image size\r\n");
            return FAIL;
        }
				vTaskDelay(200);
        debug_print("  Set default input image size\r\n");
				dlpc150_GetCommunicationStatus();
				vTaskDelay(200);
				DLPC150_GetShortStatus(&states);
				vTaskDelay(200);
				DLPC150_GetShortStatus(&states);
				debug_print("ShortStatus = %x\r\n",states);
				vTaskDelay(200);        
        source = INPUT_SOURCE_RGB;  // 0x00
        if (dlpc150_inputSourceSelect(source) != PASS)
        {
            debug_print("  Failed to select RGB source\r\n");
            return FAIL;
        }
				vTaskDelay(200);
        debug_print("  Selected RGB source\r\n");
				dlpc150_GetCommunicationStatus();
				vTaskDelay(200);
				DLPC150_GetShortStatus(&states);
				debug_print("ShortStatus = %x\r\n",states);
				vTaskDelay(200);
				if (DLPC150_SetSyncPolarity(0x07) != PASS)
        {
            debug_print("  Failed to Set SyncPolarity\r\n");
            return FAIL;
        }
				vTaskDelay(200);
        debug_print("  success to Set SyncPolarity\r\n");
				dlpc150_GetCommunicationStatus();
				vTaskDelay(200);
				DLPC150_GetShortStatus(&states);
				debug_print("ShortStatus = %x\r\n",states);
				vTaskDelay(200);				
        if (dlpc150_SetHWLockMode() != PASS)
        {
            debug_print("  Failed to set HW lock mode\r\n");
            return FAIL;
        }
        debug_print("  Set HW lock mode (24-bit)\r\n");
        vTaskDelay(30);

调试打印输出如下、为什么 0xD0 短状态命令的返回值 0x81 正确、但 0xD3 读取通信状态命令返回错误? 如何解决此问题? 通过观察打印调试信息、在 dlpc150_SetDefaultDisplaySize() 之后出现错误:  

0cda648fc51f320b67b575691dfd1d66.png

 

eb942ba8db2305ecf072cd6499529349.png

efe899b9c33c9738871ae30e04565b33.png