Other Parts Discussed in Thread: DLP7000, DLPLCRC410EVM
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;
}