/cvi/instr/SIS3153/sis3153.c |
---|
0,0 → 1,103 |
//============================================================================== |
// |
// Title: sis3153.c |
// Purpose: A short description of the implementation. |
// |
// Created on: 10.7.2016 at 8:53:29 by Samo Korpar. |
// Copyright: . All Rights Reserved. |
// |
//============================================================================== |
//============================================================================== |
// Include files |
#include <ansi_c.h> |
#include <stdint.h> |
//#include <wtypes.h> |
#include "sis3153.h" |
#include "sis3153w.h" |
//============================================================================== |
// Constants |
#define MAX_SIS_DEV 5 |
//============================================================================== |
// Types |
//============================================================================== |
// Static global variables |
static unsigned int SISndev; |
static SIS3153W_STATUS SISstat; |
static struct SIS3153USB_Device_Struct SISdevs[MAX_SIS_DEV]; |
static HANDLE SIShandle=NULL; |
//============================================================================== |
// Static functions |
//============================================================================== |
// Global variables |
//============================================================================== |
// Global functions |
/// HIFN What does your function do? |
/// HIPAR x/What inputs does your function expect? |
/// HIRET What does your function return? |
int SIS3153_USB_VME_START (char *node) |
{ |
SISstat=FindAll_SIS3153USB_Devices(SISdevs,&SISndev,MAX_SIS_DEV); |
printf("SISndev=%d\n",SISndev); |
SISstat=Sis3153usb_OpenDriver(&SISdevs[0]); |
SIShandle=SISdevs[0].hUsb; |
return 0; |
} |
int SIS3153_USB_VME_STOP (void) |
{ |
SISstat=Sis3153usb_CloseDriver(SIShandle); |
return 0; |
} |
short __stdcall SIS3153_USB_VME_R(uint16_t AM, uint16_t DW, uint32_t VME_Address, uint32_t *Data) |
{ |
SISstat=sis3153Usb_Vme_Single_Read(SIShandle,VME_Address,AM,DW,Data); |
return 0; |
} |
short __stdcall SIS3153_USB_VME_W(uint16_t AM, uint16_t DW, uint32_t VME_Address, uint32_t Data) |
{ |
SISstat=sis3153Usb_Vme_Single_Write(SIShandle,VME_Address,AM,DW,Data); |
return 0; |
} |
short __stdcall SIS3153_USB_VME_MWRST(void) |
{ |
return 0; |
} |
short __stdcall SIS3153_USB_VME_MW(uint16_t AM, uint16_t DW, uint32_t VME_Address, uint32_t Data) |
{ |
SISstat=sis3153Usb_Vme_Single_Write(SIShandle,VME_Address,AM,DW,Data); |
return 0; |
} |
short __stdcall SIS3153_USB_VME_MWEXEC(void) |
{ |
return 0; |
} |
short __stdcall SIS3153_USB_VME_MRRST(void) |
{ |
return 0; |
} |
short __stdcall SIS3153_USB_VME_MR(uint16_t AM, uint16_t DW, uint32_t VME_Address, uint32_t *Data) |
{ |
SISstat=sis3153Usb_Vme_Single_Read(SIShandle,VME_Address,AM,DW,Data); |
return 0; |
} |
short __stdcall SIS3153_USB_VME_MREXEC(uint32_t *Data) |
{ |
return 0; |
} |
/cvi/instr/SIS3153/sis3153.h |
---|
0,0 → 1,53 |
//============================================================================== |
// |
// Title: sis3153.h |
// Purpose: A short description of the interface. |
// |
// Created on: 10.7.2016 at 8:53:29 by Samo Korpar. |
// Copyright: . All Rights Reserved. |
// |
//============================================================================== |
#ifndef __sis3153_H__ |
#define __sis3153_H__ |
#ifdef __cplusplus |
extern "C" { |
#endif |
//============================================================================== |
// Include files |
#include "cvidef.h" |
//============================================================================== |
// Constants |
//============================================================================== |
// Types |
//============================================================================== |
// External variables |
//============================================================================== |
// Global functions |
int SIS3153_USB_VME_START (char *node); |
int SIS3153_USB_VME_STOP (void); |
short __stdcall SIS3153_USB_VME_R(uint16_t AM, uint16_t DW, uint32_t VME_Address, uint32_t *Data); |
short __stdcall SIS3153_USB_VME_W(uint16_t AM, uint16_t DW, uint32_t VME_Address, uint32_t Data); |
short __stdcall SIS3153_USB_VME_MWRST(void); |
short __stdcall SIS3153_USB_VME_MW(uint16_t AM, uint16_t DW, uint32_t VME_Address, uint32_t Data); |
short __stdcall SIS3153_USB_VME_MWEXEC(void); |
short __stdcall SIS3153_USB_VME_MRRST(void); |
short __stdcall SIS3153_USB_VME_MR(uint16_t AM, uint16_t DW, uint32_t VME_Address, uint32_t *Data); |
short __stdcall SIS3153_USB_VME_MREXEC(uint32_t *Data); |
#ifdef __cplusplus |
} |
#endif |
#endif /* ndef __sis3153_H__ */ |
/cvi/instr/SIS3153/sis3153w.h |
---|
0,0 → 1,101 |
#ifndef SIS3153W_H_ |
#define SIS3153W_H_ |
/***************************************************************************/ |
/* Filename: sis3153w.h */ |
/* */ |
/* Funktion: */ |
/* */ |
/* Autor: TH */ |
/* date: 01.07.2013 */ |
/* last modification: 19.01.2015 */ |
/* */ |
/* - 19.01.2015 */ |
/* add sis3153Usb_read_fx3_phy_info_counters */ |
/* */ |
/* ----------------------------------------------------------------------- */ |
/* */ |
/* SIS Struck Innovative Systeme GmbH */ |
/* */ |
/* Harksheider Str. 102A */ |
/* 22399 Hamburg */ |
/* */ |
/* Tel. +49 (0)40 60 87 305 0 */ |
/* Fax +49 (0)40 60 87 305 20 */ |
/* */ |
/* http://www.struck.de */ |
/* */ |
/* © 2015 */ |
/* */ |
/***************************************************************************/ |
#ifdef SIS3153W_EXPORTS |
#define SIS3153W_API __declspec(dllexport) |
#else |
#define SIS3153W_API __declspec(dllimport) |
#endif |
#include <windows.h> |
#include "sis3153wStat.h" |
#include "sis3153wType.h" |
#ifdef __cplusplus |
extern "C" { |
#endif |
// device handling |
SIS3153W_API SIS3153W_STATUS __cdecl FindAll_SIS3153USB_Devices(struct SIS3153USB_Device_Struct* sis3153usb_Device, UINT *nof_usbdevices, UINT max_usb_device_Number); |
SIS3153W_API SIS3153W_STATUS __cdecl Sis3153usb_OpenDriver(struct SIS3153USB_Device_Struct* sis3153usb_Device); |
SIS3153W_API SIS3153W_STATUS __cdecl Sis3153usb_CloseDriver(struct SIS3153USB_Device_Struct* sis3153usb_Device); |
// api information |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_version(PSIS3153W_VERSION version); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_getLastError(int *err); |
// local register access |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_Register_Single_Read(HANDLE usbDevice, UINT addr, UINT* data); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_Register_Single_Write(HANDLE usbDevice, UINT addr, UINT data); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_Register_Dma_Read(HANDLE usbDevice, UINT addr, UINT *dmabufs, UINT req_nof_data, UINT *got_nof_data); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_Register_Dma_Write(HANDLE usbDevice, UINT addr, UINT *dmabufs, UINT req_nof_data, UINT *put_nof_data); |
// remote vme access |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_Vme_Single_Read(HANDLE usbDevice, UINT addr, UINT am, UINT size, UINT *data); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_Vme_Single_Write(HANDLE usbDevice, UINT addr, UINT am, UINT size, UINT data); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_Vme_Dma_Read(HANDLE usbDevice, UINT addr, UINT am, UINT size, UINT fifo_mode, UINT *dmabufs, UINT req_nof_data, UINT *got_nof_data); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_Vme_Dma_Write(HANDLE usbDevice, UINT addr, UINT am, UINT size, UINT fifo_mode, UINT *dmabufs, UINT req_nof_data, UINT *put_nof_data); |
// remote vme handling |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_VmeSysreset(HANDLE usbDevice); |
// fpga flash utils |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_flash_fpga_ctrl(HANDLE usbDevice, UCHAR val); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_flash_cs_ctrl(HANDLE usbDevice, UCHAR val); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_flash_byte_io(HANDLE usbDevice, UCHAR byteIn, PUCHAR byteOut); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_flash_read_id(HANDLE usbDevice, PUCHAR id); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_flash_read_sr(HANDLE usbDevice, PUCHAR sr); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_flash_write_sr(HANDLE usbDevice, UCHAR sr); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_flash_write_en(HANDLE usbDevice); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_flash_write_en_volatile(HANDLE usbDevice); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_flash_write_dis(HANDLE usbDevice); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_flash_set_address(HANDLE usbDevice, UINT address); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_flash_read(HANDLE usbDevice, USHORT len, PUCHAR data); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_flash_prog_page(HANDLE usbDevice, USHORT len, PUCHAR data); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_flash_erase_sector(HANDLE usbDevice); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_flash_erase_block64(HANDLE usbDevice); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_update_firmware(HANDLE usbDevice, PCHAR bin, void(__cdecl *cb)(int percent)); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_program_devinfo(HANDLE usbDevice, USHORT serno); |
// read FX3 Firmware Version |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_read_fx3_firmware_version(HANDLE usbDevice, UINT *data); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_cmd_fx3_vme_interface_reset(HANDLE usbDevice); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_cmd_fx3_fpga_reset(HANDLE usbDevice); |
SIS3153W_API SIS3153W_STATUS __cdecl sis3153Usb_read_fx3_phy_info_counters(HANDLE usbDevice, USHORT write_data, UINT *read_data); |
#ifdef __cplusplus |
} |
#endif |
#endif // SIS3153W_H_ |
/cvi/instr/SIS3153/sis3153wStat.h |
---|
0,0 → 1,37 |
#ifndef SIS3153WSTAT_H_ |
#define SIS3153WSTAT_H_ |
#define API_RETURNCODE_START 0x0 |
#define API_RETURNCODE_LOCAL 0x100 |
#define API_RETURNCODE_REMOTE 0x200 |
typedef enum _SIS3153W_STATUS{ |
// 0: general return codes |
Stat3153Success = API_RETURNCODE_START, |
Stat3153NullArgument, |
Stat3153InvalidDeviceIndex, |
Stat3153InvalidArgument, |
Stat3153ErrorDeviceOpen, |
Stat3153ErrorDeviceHold, |
Stat3153ErrorDeviceDownload, |
Stat3153ErrorDeviceRun, |
Stat3153ErrorDeviceClose, |
Stat3153ErrorSetInterface, |
Stat3153ErrorDescriptorOpen, |
Stat3153ErrorIo, |
Stat3153ErrorFileOpen, |
Stat3153ErrorFileAlloc, |
Stat3153ErrorPromId, |
Stat3153ErrorPromTimeout, |
Stat3153ErrorVfyAlloc, |
Stat3153ErrorVfyFailed, |
// 0x100: local side errors |
Stat3153InvalidParameter = API_RETURNCODE_LOCAL + 0x10, // starts at 0x110 |
Stat3153UsbWriteError, |
Stat3153UsbReadError, |
Stat3153UsbReadLengthError, |
// 0x200: remote side errors |
Stat3153VmeBerr = API_RETURNCODE_REMOTE + 0x11 // starts at 0x211 |
}SIS3153W_STATUS; |
#endif |
/cvi/instr/SIS3153/sis3153wType.h |
---|
0,0 → 1,24 |
#ifndef SIS3153WTYPE_H_ |
#define SIS3153WTYPE_H_ |
// device handle |
struct SIS3153USB_Device_Struct{ |
PVOID hDev; |
PVOID hUsb; |
PCHAR cDName; |
PCHAR readableName; |
USHORT idVendor; |
USHORT idProduct; |
USHORT idSerNo; |
USHORT idDriverVersion; |
USHORT idFxFirmwareVersion; |
USHORT idFpgaFirmwareVersion; |
}; |
// version information |
typedef struct _SIS3153W_VERSION{ |
UCHAR SisMajor; |
UCHAR SisMinor; |
}SIS3153W_VERSION, *PSIS3153W_VERSION; |
#endif // SIS3153WTYPE_H_ |