Part Number: DLPD4X00KIT
Now I am trying to download my binary patterns to the DMD( DLP4100 & DLP7000 ) with USB DLL API.
But it doesn't work ; No patterns appear on the DMD surface.
I don't think the board or USB driver installation is in failure, as I already have checked my board's proper operation by Dicovery 4100 Explorer GUI software.
Though I have read the document DLPU039A, I can't figure out what procedure is correct.
Here is my understanding of API function call order. Please have a look at it and indicate what is incorrect.
(*.h and *.lib files were downloaded from this thread ; "DLPLCRC410EVM: Comunicate with the DLPLCRC410EVM through Matlab or Python")
#include "stdafx.h" #include "../../D4100Lib/8055.D4100_usb.h" #include "../../D4100Lib/CyAPI.h" #include "../../D4100Lib/RegisterDefines.h" #pragma comment(lib, "../../D4100Lib/6562.D4100_usb.lib") using namespace USB; int main() { short numDevices = GetNumDev(); short deviceNumber = numDevices - 1; // Only One device is connected. short dmdType = GetDMDTYPE(deviceNumber); // should be 1(DLP7000) SetWDT(0, deviceNumber); // Disable WDT SetPWRFLOAT(0, deviceNumber); // Disable Power Float SetTPGEnable(0, deviceNumber); // Disable TestPatternGenerator FILE *fp = fopen("./S1DMD-%04d.bin", "rb"); // load my own pattern unsigned char rowData[(1024/8)*768]; fread(rowData, sizeof(rowData), 1, fp); // prepare DMD pattern data from bin file. fclose(fp); SetBlkMd(0, deviceNumber); // DMD Block Operations -- NOP LoadControl(deviceNumber); // DMD Block Operations -- Execute! ClearFifos(deviceNumber); // Initialize the DMD fifo. LoadData(rowData, sizeof(rowData)/2, dmdType, deviceNumber); // Load 1st half of pattern into the DMD. LoadData(rowData+sizeof(rowData)/2, sizeof(rowData)/2, dmdType, deviceNumber); // Load last half of pattern into the DMD. SetBlkMd(3, deviceNumber); // DMD Block Operations -- Global Reset Requet SetBlkAd(8, deviceNumber); // BLK_AD=4'b10xx LoadControl(deviceNumber); // // DMD Block Operations -- Execute! ; SHOULD APPEAR MY OWN PATTERN HERE return 0; }