See C++ FX22MB_REG0_START_TX example.
See C++ FX22MB_REG0_START_RX example.
This example program implements a simple console that
// This line creates a concrete class that is able to manage one single FX2 //device (one single Trenz module) CyUSBDevice TE_USB_FX2_USBDevice = null; //This line creates a list of USB device that are used through Cypress driver USBDeviceList USBdevList = new USBDeviceList(CyConst.DEVICES); //This line read the number of modules (cards) that are identified by VID and PID //as Trenz Electronic modules int NumberOfCardAttached = TE_USB_FX2.TE_USB_FX2.TE_USB_FX2_ScanCards(ref USBdevList); Console.WriteLine("The number of card is {0} ", NumberOfCardAttached); //If you want use the first Trenz Electronic module use 0 if (TE_USB_FX2.TE_USB_FX2.TE_USB_FX2_Open(ref TE_USB_FX2_USBDevice, ref USBdevList, 0) == false) Console.WriteLine("Module is not connected!"); else Console.WriteLine("Module is connected!"); byte[] Command = new byte[64]; byte[] Reply = new byte[64]; int CmdLength = 64; int ReplyLength = 64; // Timeout of 1000 milliseconds uint TIMEOUT_MS = 1000; if (TE_USB_FX2_USBDevice == null) { Console.WriteLine("Error,no device is selected"); return; } else { UInt16 VID = TE_USB_FX2_USBDevice.VendorID; Console.WriteLine("VID {0:X4} e ", VID); UInt16 PID = TE_USB_FX2_USBDevice.ProductID; Console.WriteLine("PID {0:X4} e ", PID); } //comand read FX2 version Command[0] = (byte)FX2_Commands.READ_VERSION; Console.WriteLine("cmd[0] {0:X2} ", cmd[0]); if (TE_USB_FX2.TE_USB_FX2.TE_USB_FX2_SendCommand(ref TE_USB_FX2_USBDevice, ref Command, ref CmdLength, ref Reply, ref ReplyLength, TIMEOUT_MS) == true) { if (ReplyLength >= 4) { //printf("Major version: %d \n", reply[0]); //printf("Minor version: %d \n", reply[1]); //printf("Device hi: %d \n", reply[2]); //printf("Device lo: %d \n", reply[3]); Console.WriteLine("Major version: {0}", Reply[0]); Console.WriteLine("Minor version: {0}", Reply[1]); Console.WriteLine("Device hi: {0}", Reply[2]); Console.WriteLine("Device lo: {0}", Reply[3]); } } else //cout << "Error" << endl; Console.WriteLine("Error"); //If you want use the first Trenz Electronic module use 1 if (TE_USB_FX2.TE_USB_FX2.TE_USB_FX2_Open(ref TE_USB_FX2_USBDevice, ref USBdevList, 1) == false) Console.WriteLine("Module is not connected!"); else Console.WriteLine("Module is connected!"); if (TE_USB_FX2_USBDevice == null) { Console.WriteLine("Error,no device is selected"); return; } //byte cmd[64], reply[64]; byte[] Command1 = new byte[64]; byte[] Reply1 = new byte[64]; int CmdLength1 = 64; int ReplyLength1 = 64; uint TIMEOUT_MS1 = 1000; //Here two alternatives to initialize Command1 are shown byte MB_I2C_ADRESS = 0x3f; byte I2C_BYTES = 12; Command1[0] = (byte)FX2_Commands.SET_INTERRUPT; Command1[1] = MB_I2C_ADRESS; Command1[2] = I2C_BYTES; if (TE_USB_FX2.TE_USB_FX2.TE_USB_FX2_SendCommand(ref TE_USB_FX2_USBDevice, ref Command1, ref Cmdlength1, ref Reply1, ref ReplyLength1, TIMEOUT_MS) == false) { //cout << "Error" << endl; Console.WriteLine("Error Send Command SET INTERRUPT"); return; } Command1[0] = 0xAD;//comand I2C_WRITE Command1[3] = 0; Command1[4] = 0; Command1[5] = 0; Command1[6] = 1; //get FPGA version if (TE_USB_FX2.TE_USB_FX2.TE_USB_FX2_SendCommand(ref TE_USB_FX2_USBDevice, ref Command1, ref CmdLength1, ref Reply1, ref ReplyLength1, TIMEOUT_MS) == false) { //cout << "Error" << endl; Console.WriteLine("Error Send Command Get FPGA Version"); return; } Command1[0] = 0xB1;//comand (byte)FX2_Commands.GET_INTERRUPT if (TE_USB_FX2.TE_USB_FX2.TE_USB_FX2_SendCommand(ref TE_USB_FX2_USBDevice, ref Command1, ref CmdLength1, ref Reply1, ref ReplyLength1, TIMEOUT_MS) == true) { if ((ReplyLength1 > 4) && (Reply1[0] != 0)) { //Console.WriteLine("INT# : {0}", reply[0]); Console.WriteLine("Major version: {0}", Reply1[1]); Console.WriteLine("Minor version: {0}", Reply1[2]); Console.WriteLine("Release version: {0}", Reply1[3]); Console.WriteLine("Build version: {0}", Reply1[4]); } } else Console.WriteLine("Error, GET INTERRUPT");