Rev 2935 Rev 2940
1 #ifndef MLAB_XVCD_PORT_FTDI_H 1 #ifndef MLAB_XVCD_PORT_FTDI_H
2 #define MLAB_XVCD_PORT_FTDI_H 2 #define MLAB_XVCD_PORT_FTDI_H
3   3  
4   4  
5 // Pin Defs 5 // Pin Defs
6 // -------- 6 // --------
7   7  
8 // FTDI Pin Mask Definitions (valid for FT232R) 8 // FTDI Pin Mask Definitions (valid for FT232R)
9 #define DBUS0 0x0001 // Bit 0 Data Bus 9 #define DBUS0 0x0001 // Bit 0 Data Bus
10 #define DBUS1 0x0002 // Bit 1 10 #define DBUS1 0x0002 // Bit 1
11 #define DBUS2 0x0004 // Bit 2 11 #define DBUS2 0x0004 // Bit 2
12 #define DBUS3 0x0008 // Bit 3 12 #define DBUS3 0x0008 // Bit 3
13 #define DBUS4 0x0010 // Bit 4 13 #define DBUS4 0x0010 // Bit 4
14 #define DBUS5 0x0020 // Bit 5 14 #define DBUS5 0x0020 // Bit 5
15 #define DBUS6 0x0040 // Bit 6 15 #define DBUS6 0x0040 // Bit 6
16 #define DBUS7 0x0080 // Bit 7 16 #define DBUS7 0x0080 // Bit 7
17   17  
18 #define CBUS0 0x0100 // Bit 0 Control Bus 18 #define CBUS0 0x0100 // Bit 0 Control Bus
19 #define CBUS1 0x0200 // Bit 1 19 #define CBUS1 0x0200 // Bit 1
20 #define CBUS2 0x0400 // Bit 2 20 #define CBUS2 0x0400 // Bit 2
21 #define CBUS3 0x0800 // Bit 3 21 #define CBUS3 0x0800 // Bit 3
22   22  
23 #define FTDI_TXD DBUS0 // Bit 0 RS232 Signal Alias 23 #define FTDI_TXD DBUS0 // Bit 0 RS232 Signal Alias
24 #define FTDI_RXD DBUS1 // Bit 1 24 #define FTDI_RXD DBUS1 // Bit 1
25 #define FTDI_RTS DBUS2 // Bit 2 25 #define FTDI_RTS DBUS2 // Bit 2
26 #define FTDI_CTS DBUS3 // Bit 3 26 #define FTDI_CTS DBUS3 // Bit 3
27 #define FTDI_DTR DBUS4 // Bit 4 27 #define FTDI_DTR DBUS4 // Bit 4
28 #define FTDI_DSR DBUS5 // Bit 5 28 #define FTDI_DSR DBUS5 // Bit 5
29 #define FTDI_DCD DBUS6 // Bit 6 29 #define FTDI_DCD DBUS6 // Bit 6
30 #define FTDI_RI DBUS7 // Bit 7 30 #define FTDI_RI DBUS7 // Bit 7
31   31  
32   32  
33 // Includes 33 // Includes
34 // -------- 34 // --------
35 #undef UNICODE 35 #undef UNICODE
36 #define WIN32_LEAN_AND_MEAN 36 #define WIN32_LEAN_AND_MEAN
37   37  
38 #include <windows.h> // Windows Console Application -  
39 #include <stdlib.h> // Standard Library (exit, atoi, ...) 38 #include <stdlib.h> // Standard Library (exit, atoi, ...)
40 #include <stdio.h> // Standard IO (printf, ...) 39 #include <stdio.h> // Standard IO (printf, ...)
41 #include "mlab_xvcd.h" // Program Config (pin defs, settings, ...) 40 #include "mlab_xvcd.h" // Program Config (pin defs, settings, ...)
42   41  
-   42 #ifdef WIN32
-   43 #include <windows.h> // Windows Console Application
-   44 #else
-   45 #include <string.h>
-   46 #endif
-   47  
43 // Link with library 48 // Link with library
-   49 #ifdef WIN32
44 #include "ftd2xx.h" // FTDI Library 50 #include "lib_win32\ftd2xx.h" // FTDI Library
-   51 #else
45 #pragma comment (lib, "ftd2xx.lib") // Tell MS compiller to link with this library 52 #include "lib_linux_i386/ftd2xx.h"
-   53 #endif
46   54  
47   55  
48 // Public Definitions 56 // Public Definitions
49 // ------------------ 57 // ------------------
50   58  
51   59  
52 // Find Mode (for port open) 60 // Find Mode (for port open)
53 #define OPEN_BY_DESCRIPTION FT_OPEN_BY_DESCRIPTION // Find device by Description String 61 #define OPEN_BY_DESCRIPTION FT_OPEN_BY_DESCRIPTION // Find device by Description String
54 #define OPEN_BY_LOCATION FT_OPEN_BY_LOCATION // Find device by Bus Location 62 #define OPEN_BY_LOCATION FT_OPEN_BY_LOCATION // Find device by Bus Location
55 #define OPEN_BY_SERIAL_NUMBER FT_OPEN_BY_SERIAL_NUMBER // Find device by it's Serial Number 63 #define OPEN_BY_SERIAL_NUMBER FT_OPEN_BY_SERIAL_NUMBER // Find device by it's Serial Number
56   64  
57 // Max Data lengt to send to FTDI as one block 65 // Max Data lengt to send to FTDI as one block
58 #define FTDI_MAX_WRITESIZE 1024 66 #define FTDI_MAX_WRITESIZE 1024
59   67  
60   68  
61 // Function Prototypes (public functions only) 69 // Function Prototypes (public functions only)
62 // ------------------------------------------- 70 // -------------------------------------------
63   71  
64 // Connect to FTDI driver 72 // Connect to FTDI driver
65 // Find the device and open driver 73 // Find the device and open driver
66 int jtagOpenPort(int findDeviceBy, char *findDeviceByStr); 74 int jtagOpenPort(int findDeviceBy, char *findDeviceByStr);
67   75  
68 // Enable or Disable Activity LED 76 // Enable or Disable Activity LED
69 void jtagSetLED(bool LedEnable); 77 void jtagSetLED(bool LedEnable);
70   78  
71 // Set port to Idle state (all zeroes) 79 // Set port to Idle state (all zeroes)
72 void jtagSetIdle(); 80 void jtagSetIdle();
73   81  
74 // Close FTDI connection 82 // Close FTDI connection
75 int jtagClosePort(); 83 int jtagClosePort();
76   84  
77 // Send data to JTAG port and bring returned data 85 // Send data to JTAG port and bring returned data
78 // Turn LED On during processing 86 // Turn LED On during processing
79 int jtagScan(const unsigned char *TMS, const unsigned char *TDI, unsigned char *TDO, int bits); 87 int jtagScan(const unsigned char *TMS, const unsigned char *TDI, unsigned char *TDO, unsigned int bits);
80   88  
81 // Check if Cable is still connected and accesible 89 // Check if Cable is still connected and accesible
82 // True is o.k. 90 // True is o.k.
83 bool CheckCable(); 91 bool CheckCable();
84   92  
85 #endif 93 #endif