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

Subversion Repositories adv_debug_sys

[/] [adv_debug_sys/] [trunk/] [Software/] [adv_jtag_bridge/] [cable_ft2232.h] - Blame information for rev 21

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 21 nyawn
 
2
#ifndef _CABLE_FT2232_H_
3
#define _CABLE_FT2232_H_
4
 
5
#define debug(...) //fprintf(stderr, __VA_ARGS__ )
6
#ifndef min
7
#define min(X,Y) ((X) < (Y) ? (X) : (Y))
8
#endif
9
 
10
#define FTDX_MAXSEND 4096
11
#define FTDX_MAXSEND_MPSSE (64 * 1024)
12
#define FTDI_MAXRECV   ( 4 * 64)
13
 
14
#define BIT_CABLEID2_TCK        0 /* ADBUS0 */
15
#define BIT_CABLEID2_TDIDO      1 /* ADBUS1 */
16
#define BIT_CABLEID2_TDODI      2 /* ADBUS2 */
17
#define BIT_CABLEID2_TMS        3 /* ADBUS3 */
18
#define BITMASK_CABLEID2_TCK    (1 << BIT_CABLEID2_TCK) 
19
#define BITMASK_CABLEID2_TDIDO  (1 << BIT_CABLEID2_TDIDO)
20
#define BITMASK_CABLEID2_TDODI  (1 << BIT_CABLEID2_TDODI)
21
#define BITMASK_CABLEID2_TMS    (1 << BIT_CABLEID2_TMS)
22
 
23
#define BIT_CABLEID2_OE                 1 /* ACBUS1 */
24
#define BIT_CABLEID2_RXLED              2 /* ACBUS2 */
25
#define BIT_CABLEID2_TXLED              3 /* ACBUS3 */
26
#define BITMASK_CABLEID2_OE     (1 << BIT_CABLEID2_OE) 
27
#define BITMASK_CABLEID2_RXLED  (1 << BIT_CABLEID2_RXLED)
28
#define BITMASK_CABLEID2_TXLED  (1 << BIT_CABLEID2_TXLED)
29
 
30
typedef struct usbconn_t usbconn_t;
31
 
32
typedef struct {
33
        char *name;
34
        char *desc;
35
        char *driver;
36
        int32_t vid;
37
        int32_t pid;
38
} usbconn_cable_t;
39
 
40
typedef struct {
41
        const char *type;
42
        usbconn_t *(*connect)( const char **, int, usbconn_cable_t *);
43
        void (*free)( usbconn_t * );
44
        int (*open)( usbconn_t * );
45
        int (*close)( usbconn_t * );
46
        int (*read)( usbconn_t *, uint8_t *, int );
47
        int (*write)( usbconn_t *, uint8_t *, int, int );
48
} usbconn_driver_t;
49
 
50
struct  usbconn_t {
51
        usbconn_driver_t *driver;
52
        void *params;
53
        usbconn_cable_t *cable;
54
};
55
 
56
typedef struct {
57
  /* USB device information */
58
  unsigned int vid;
59
  unsigned int pid;
60
  struct ftdi_context *ftdic;
61
  char *serial;
62
  /* send and receive buffer handling */
63
  uint32_t  send_buf_len;
64
  uint32_t  send_buffered;
65
  uint8_t  *send_buf;
66
  uint32_t  recv_buf_len;
67
  uint32_t  to_recv;
68
  uint32_t  recv_write_idx;
69
  uint32_t  recv_read_idx;
70
  uint8_t  *recv_buf;
71
} ftdi_param_t;
72
 
73
 
74
usbconn_t * usbconn_ftdi_connect();
75
int my_ftdi_write_data(struct ftdi_context *ftdi, unsigned char *buf, int size);
76
char *my_ftdi_get_error_string (struct ftdi_context *ftdi);
77
int my_ftdi_read_data(struct ftdi_context *ftdi, unsigned char *buf, int size);
78
int my_ftdi_usb_open_desc(struct ftdi_context *ftdi, int vendor, int product, const char* description, const char* serial);
79
void my_ftdi_deinit(struct ftdi_context *ftdi);
80
int my_ftdi_usb_purge_buffers(struct ftdi_context *ftdi);
81
int my_ftdi_usb_purge_rx_buffer(struct ftdi_context *ftdi);
82
int my_ftdi_usb_purge_tx_buffer(struct ftdi_context *ftdi);
83
int my_ftdi_usb_reset(struct ftdi_context *ftdi);
84
int my_ftdi_set_latency_timer(struct ftdi_context *ftdi, unsigned char latency);
85
int my_ftdi_set_baudrate(struct ftdi_context *ftdi, int baudrate);
86
int my_ftdi_read_data_set_chunksize(struct ftdi_context *ftdi, unsigned int chunksize);
87
int my_ftdi_write_data_set_chunksize(struct ftdi_context *ftdi, unsigned int chunksize);
88
int my_ftdi_set_event_char(struct ftdi_context *ftdi, unsigned char eventch, unsigned char enable);
89
int my_ftdi_set_error_char(struct ftdi_context *ftdi, unsigned char errorch, unsigned char enable);
90
int my_ftdi_set_bitmode(struct ftdi_context *ftdi, unsigned char bitmask, unsigned char mode);
91
int my_ftdi_usb_close(struct ftdi_context *ftdi);
92
int cable_common_write_bit(uint8_t packet);
93
int cable_common_read_write_bit(uint8_t packet_out, uint8_t *bit_in);
94
int cable_common_write_stream(uint32_t *stream, int len_bits, int set_last_bit);
95
int cable_common_read_stream(uint32_t *outstream, uint32_t *instream, int len_bits, int set_last_bit);
96
int cable_ftdi_init();
97
int cable_ftdi_write_bit(uint8_t packet);
98
int cable_ftdi_read_write_bit(uint8_t packet_out, uint8_t *bit_in);
99
int cable_ftdi_write_stream(uint32_t *stream, int len_bits, int set_last_bit);
100
int cable_ftdi_read_stream(uint32_t *outstream, uint32_t *instream, int len_bits, int set_last_bit);
101
int cable_ftdi_opt(int c, char *str);
102
int cable_ftdi_flush();
103
int cable_ftdi_close();
104
 
105
#endif
106
 
107
 

powered by: WebSVN 2.1.0

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