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.
工具与软件:
大家好!
我与您联系是因为我最近使用了 DLP2000投影了一条绿线。 我还在定制 PCB 中使用了 DLPC2607和 DLPA1000模块(以及其他模块)、并在代码中使用了 STM32CubeIDE 下的 STM32微控制器。 我确实成功投影了我的行、但在投影之前会短暂显示启动界面和红色屏幕。
以下是我如何显示我的图像:
-我计算我的线的位置,并存储在存储器上的 QSPI PSRAM。
-我用"HAL_GPIO_WritePin (PROJ_EXT_GPIO_Port、PROJ_EXT_Pin、GPIO_PIN_SET)"激活投影仪1ms。
-我做一个驻车镜像(1ms)然后软件重置(250ms)。 (PS:我认为这是投影期间最常显示启动界面的地方)。
-我设置分辨率(1ms)和像素格式(1ms)。
-选择并行输入源(1ms)。 这是出现红色屏幕的位置。
-最后,我在内存中显示我的行的图像。
实时操作的结果如下(视频):
e2e.ti.com/.../Bug_5F00_projector.mov
我在阅读 DLP2607的软件编程人员指南后发现可以关闭投影仪 LED (第23页)。 我对它进行了尝试、它确实会关闭图像、但在执行下一条命令后、启动界面会重新打开。
我还能够在这个论坛"DLPDLCR2000EVM:更改或删除启动界面"上读到、为了在它上面显示一个黑色图像、需要更改 DLP2000的固件。 但是、这并不能解决红屏问题、我需要对方法进行说明。
如需了解更多详细信息,下面是我用来显示该行的代码片段(FreeRTOS ):
HAL_GPIO_WritePin(PROJ_EXT_GPIO_Port,PROJ_EXT_Pin, GPIO_PIN_RESET); stopDisplayImg(); DisableOctoSPI(); EnterQuadMode(); osDelay(5); EraseAllPixel(); DrawLine(piezo_nb, green); DrawCross(piezo_nb, green); osDelay(1); EnableMemMappedQuadMode(); osDelay(1); HAL_GPIO_WritePin(PROJ_EXT_GPIO_Port,PROJ_EXT_Pin, GPIO_PIN_SET); osDelay(1); transmit_I2C(0x2D,0x01); //sendMessage("Park Mirror\n\r", sizeof("Park Mirror\n\r")); osDelay(1); transmit_I2C(0x1F,0x01); //sendMessage("Software Reset\n\r", sizeof("Software Reset\n\r")); osDelay(250); //freeze (doesn't work) // transmit_I2C(0xA6, 0x01); //black screen // osDelay(20); // transmit_I2C(0xA3, 0x01); //freeze on black screen // osDelay(1); transmit_I2C(0x0C,0x13); //sendMessage("Resolution 840 * 480\n\r", sizeof("Resolution 840 * 480\n\r")); osDelay(1); transmit_I2C(0x0D,0x00); //sendMessage("DataPixel\n\r", sizeof("DataPixel\n\r")); osDelay(1); transmit_I2C(0x0B,0x00); //sendMessage("Select Input Parrallele\n\r", sizeof("Select Input Parrallele\n\r")); osDelay(1); // unfreeze (doesn't work) // transmit_I2C(0xA6, 0x00); // osDelay(20); // transmit_I2C(0xA3, 0x00); // osDelay(1); displayImg(QSPI_BASE_ADDR);
我希望你能帮我。
此致
——
Brieuc CLAQUIN
您好、用户:
欢迎回到 E2E 论坛、我们希望能帮助您解决您的问题。
请给我们的团队更多时间来调查此问题。
此致、
Alex Chan
您好、Brieuc:
感谢您的耐心。
请尝试按照以下顺序倒转、即在切换输入源之前先显示输出
[报价 userid="593927" url="~/support/dlp-products-group/dlp/f/dlp-products-forum/1378440/dlp2000-how-to-remove-hide-dlp-splash-screen ]选择并行输入源(1ms)。 这是出现红色屏幕的位置。在打开 LED 之前、尝试选择并行或内部测试图形(黑屏)。
[引用 userid="593927" url="~/support/dlp-products-group/dlp/f/dlp-products-forum/1378440/dlp2000-how-to-remove-hide-dlp-splash-screen ]我在 DLP2607的软件程序员指南上读到一篇关于可以关闭投影仪 LED 的文字(第23页)。 我试过它,事实上,它确实关闭了图像,但启动屏幕在下一个命令后重新打开。此致、
Vivek
你好、Vivek!
我试着做你说的,但没有成功。 投影仪仅在打开时考虑输入的命令。
然而,我终于设法隐藏红色屏幕和闪屏与此代码:
HAL_GPIO_WritePin(PROJ_EXT_GPIO_Port,PROJ_EXT_Pin, GPIO_PIN_RESET); // Shut down projector stopDisplayImg(); DisableOctoSPI(); //'0002' EnterQuadMode(); osDelay(5); //'0019' EraseAllPixel(); DrawLine(piezo_nb, green); DrawCross(piezo_nb, green); osDelay(1); EnableMemMappedQuadMode(); osDelay(1); HAL_GPIO_WritePin(PROJ_EXT_GPIO_Port,PROJ_EXT_Pin, GPIO_PIN_SET); // Power up projector osDelay(200); //freeze transmit_I2C(0xA6, 0x01); //black screen osDelay(1); transmit_I2C(0xA3, 0x01); //freeze on black screen osDelay(1); //'0011' transmit_I2C(0x0C,0x13); //Resolution 840 * 480 osDelay(1); //'0012' transmit_I2C(0x0D,0x00); //Pixel format RGB565 16bits osDelay(1); //'0013' transmit_I2C(0x0B,0x00); //Select Input Parrallele osDelay(60); displayImg(QSPI_BASE_ADDR); //Complete image // unfreeze transmit_I2C(0xA3, 0x00); osDelay(80); transmit_I2C(0xA6, 0x00); osDelay(1);
我不知道是什么原因,但我还是不知道该怎么办了。 这种代码工作,但让我感到困惑。 事实上,我不得不在调用聚焦功能时至少留出200毫秒的时间。 为什么,当我过去只留下1ms 时,这似乎不是一个问题? 此外、使用200ms 计时器时、人眼应该会注意到并仍然看到短暂的启动界面、但事实并非如此。
很多未回答的问题...
您好、Brieuc:
对于更高延迟的一种解释是、显示需要几个视频帧才能与输入端口的变化同步。 如果以30Hz 的频率运行、则帧时间约为32ms、可能需要2-3帧才能显示正确的内容。
此致、
Vivek