主题中讨论的其他器件:DLPA1000、、 DLPC2607
工具与软件:
大家好!
我与您联系是因为我最近使用了 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