OpenCores
URL https://opencores.org/ocsvn/usb_fpga_2_13/usb_fpga_2_13/trunk

Subversion Repositories usb_fpga_2_13

[/] [usb_fpga_2_13/] [trunk/] [examples/] [usb-fpga-1.11/] [1.11b/] [intraffic/] [intraffic.c] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 ZTEX
/*!
2
   intraffic -- example showing how the EZ-USB FIFO interface is used on ZTEX USB-FPGA Module 1.11b
3
   Copyright (C) 2009-2014 ZTEX GmbH.
4
   http://www.ztex.de
5
 
6
   This program is free software; you can redistribute it and/or modify
7
   it under the terms of the GNU General Public License version 3 as
8
   published by the Free Software Foundation.
9
 
10
   This program is distributed in the hope that it will be useful, but
11
   WITHOUT ANY WARRANTY; without even the implied warranty of
12
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
   General Public License for more details.
14
 
15
   You should have received a copy of the GNU General Public License
16
   along with this program; if not, see http://www.gnu.org/licenses/.
17
!*/
18
 
19
#include[ztex-conf.h]   // Loads the configuration macros, see ztex-conf.h for the available macros
20
#include[ztex-utils.h]  // include basic functions
21
 
22
// 1024 (instead of 512) byte bulk transfers. 
23
// According to USB standard they are invalid but usually supported and 25% faster.
24
//#define[fastmode]
25
 
26
#ifdef[fastmode]
27
// configure endpoint 2, in, quad buffered, 1024 bytes, interface 0
28
EP_CONFIG(2,0,BULK,IN,1024,4);
29
#else
30
// configure endpoint 2, in, quad buffered, 512 bytes, interface 0
31
EP_CONFIG(2,0,BULK,IN,512,4);
32
#endif
33
 
34
// select ZTEX USB FPGA Module 1.11 as target  (required for FPGA configuration)
35
IDENTITY_UFM_1_11(10.12.0.0,0);
36
 
37
// this product string is also used for identification by the host software
38
#define[PRODUCT_STRING]["intraffic example for UFM 1.11"]
39
 
40
// this is called automatically after FPGA configuration
41
#define[POST_FPGA_CONFIG][POST_FPGA_CONFIG
42
        IOA0 = 1;                               // reset on
43
        IOA3 = 0;                                // controlled mode
44
        OEA |= bmBIT0 | bmBIT3;
45
 
46
        EP2CS &= ~bmBIT0;                       // clear stall bit
47
 
48
        REVCTL = 0x3;
49
        SYNCDELAY;
50
 
51
        IFCONFIG = bmBIT7 | bmBIT5 | 3;         // internel 30MHz clock, drive IFCLK ouput, slave FIFO interface
52
        SYNCDELAY;
53
        EP2FIFOCFG = bmBIT3 | bmBIT0;           // AOTUOIN, WORDWIDE
54
        SYNCDELAY;
55
 
56
#ifdef[fastmode]
57
        EP2AUTOINLENH = 4;                      // 1024 bytes 
58
#else   
59
        EP2AUTOINLENH = 2;                      // 512 bytes 
60
#endif  
61
        SYNCDELAY;
62
        EP2AUTOINLENL = 0;
63
        SYNCDELAY;
64
 
65
        FIFORESET = 0x80;                       // reset FIFO
66
        SYNCDELAY;
67
        FIFORESET = 2;
68
        SYNCDELAY;
69
        FIFORESET = 0x00;
70
        SYNCDELAY;
71
 
72
        FIFOPINPOLAR = 0;
73
        SYNCDELAY;
74
        PINFLAGSAB = 0;
75
        SYNCDELAY;
76
        PINFLAGSCD = 0;
77
        SYNCDELAY;
78
 
79
        IOA0 = 0;                                // reset off
80
]
81
 
82
// set mode
83
ADD_EP0_VENDOR_COMMAND((0x60,,
84
        IOA0 = 1;                               // reset on
85
        IOA3 = SETUPDAT[2] ? 1 : 0;
86
        IOA0 = 0;                                // reset off
87
,,
88
        NOP;
89
));;
90
 
91
// include the main part of the firmware kit, define the descriptors, ...
92
#include[ztex.h]
93
 
94
void main(void)
95
{
96
    init_USB();
97
 
98
    while (1) {
99
    }
100
}
101
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.