See C++ FX22MB_REG0_START_TX example.
See C++ FX22MB_REG0_START_RX example.
This example program implements a simple console that
Code Block | ||
---|---|---|
| ||
// 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"); |