This is an old revision of the document!
← start
, 2013/11/21 11:11
~~DISCUSSION~~
#include[ztex-conf.h] // Loads the configuration macros, see ztex-conf.h for the available macros
#include[ztex-utils.h] // include basic functions
// configure endpoint 2, in, quad buffered, 512 bytes, interface 0
EP_CONFIG(2,0,BULK,IN,512,4);
// configure endpoint 6, out, doublebuffered, 512 bytes, interface 0
EP_CONFIG(6,0,BULK,OUT,512,2);
// select ZTEX USB FPGA Module 1.15 as target (required for FPGA configuration)
IDENTITY_UFM_1_15(10.13.0.0,0);
// this product string is also used for identification by the host software
#define[PRODUCT_STRING]["intraffic example for UFM 1.15"]
// enables high speed FPGA configuration via EP6
ENABLE_HS_FPGA_CONF(6);
// this is called automatically after FPGA configuration
#define[POST_FPGA_CONFIG][POST_FPGA_CONFIG
IOA7 = 1; // reset on
IOA0 = 1; // reset on
IOA3 = 0;
OEA |= bmBIT0 | bmBIT3;
IOC0 = 0; // controlled mode
OEC = 1;
//Configuration of CPUCS and IFconfig
CPUCS = 0x12;
IFCONFIG = bmBIT7 | bmBIT5 | 3; // internel 30MHz clock, drive IFCLK ouput, slave FIFO interface
//Configuration of flags Pin
SYNCDELAY;
FIFOPINPOLAR = 0;
SYNCDELAY;
PINFLAGSAB = 0x80;
SYNCDELAY;
PINFLAGSCD = 0x0E;
SYNCDELAY;
//Configuration PORTACFG
//PORTACFG = 0x00;
//Configuration of EPxCFG
EP2CFG = 0xA0;
SYNCDELAY;
EP6CFG = 0xE0;
SYNCDELAY;
//FIFOreset
FIFORESET = 0x80; // reset all FIFOs
SYNCDELAY;
FIFORESET = 0x82;
SYNCDELAY;
FIFORESET = 0x84;
SYNCDELAY;
FIFORESET = 0x86;
SYNCDELAY;
FIFORESET = 0x88;
SYNCDELAY;
FIFORESET = 0x00;
SYNCDELAY;
//Arm out buffers
OUTPKTEND = 0x82;
SYNCDELAY;
//Configuration of EPxFIFOCFG
EP2FIFOCFG = 0x10;
SYNCDELAY;
EP6FIFOCFG = 0x4C;//0x0c
SYNCDELAY;
EP6AUTOINLENH = 0x02;
SYNCDELAY;
EP6AUTOINLENL = 0x00;
SYNCDELAY;
]
// set mode
ADD_EP0_VENDOR_COMMAND((0x60,,
IOA7 = 1; // reset on
IOC0 = SETUPDAT[2] ? 1 : 0;
IOA7 = 0; // reset off
,,
NOP;
));;
ADD_EP0_VENDOR_REQUEST((0x70,, // return the checksum
EP0BUF[0] = IOC;
EP0BCH = 0;
EP0BCL = 1;
,,));;
// include the main part of the firmware kit, define the descriptors, ...
#include[ztex.h]
void main(void)
{
init_USB();
while (1) {
}
}
~~JAVA FUNCTION~~
System.out.println( LibusbJava.usb_bulk_write(ztex.handle(), 6, buf1, buf1.length, 1000) + " Bytes\r"); bufBytes[i] = LibusbJava.usb_bulk_read(ztex.handle(), 2, buf[i], bufSize, 1000);
It doesn´t work. Anyone know why this code doesn´t work. I have tried to add the configuration of AUTOIN and AUTOOUT. I have been several days with the manuals but I cannot find the problem.
I want to send 512 bytes, then I process the bytes and finally I want to receive the 512 bytes. I want to use EP2 and EP6. buf1 is an array of 512 bytes and buf[i] is an arry of 512 bytes too.
Thank you very much.
Best Regards